日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
通過(guò)nftables防火墻部署本地IPS

nftables 是一個(gè)新式的數(shù)據(jù)包過(guò)濾框架,旨在替代現(xiàn)用的 iptablesip6tablesarptablesebtables 的新的包過(guò)濾框架。nftables 誕生于 2008 年,2013 年底合并到 Linux 內(nèi)核,從 Linux 內(nèi)核 3.13 版本開始大多數(shù)場(chǎng)景下 nftables 已經(jīng)可以使用,但是完整的支持(即:nftables 優(yōu)先級(jí)高于 iptables)應(yīng)該是在 Linux 內(nèi)核 3.15 版本。

盡管紅帽公司提供了 firewalld.service 防火墻服務(wù)組件以及相關(guān)的配置管理命令 firewall-config、firewall-cmd 來(lái)對(duì)防火墻進(jìn)行管理,但該服務(wù)組件目前還沒(méi)有在其他發(fā)行版或者社區(qū)版本內(nèi)得到統(tǒng)一使用。

為了更好的幫助讀者朋友們理解該防火墻機(jī)制,筆者將自己在工作中直接使用 nftables 進(jìn)行手工創(chuàng)建配置,從而使系統(tǒng)具有本地 IPS 能力的過(guò)程進(jìn)行總結(jié)。

目前多數(shù)主流的新發(fā)行版 GNU/Linux 系統(tǒng),默認(rèn)安裝完成后 systemd 系統(tǒng)和服務(wù)管理器中已經(jīng)添加了新的 nftables.serivce 子服務(wù)配置文件。同時(shí)依然支持 iptables 規(guī)則和 iptables 命令,不過(guò)為了徹底將防火墻升級(jí)到 nftables 機(jī)制,我們可以在沒(méi)有 firewalld.service 的發(fā)行版系統(tǒng)中直接啟用 nftables.service 服務(wù)來(lái)使用新的防火墻。

通過(guò)執(zhí)行命令 vi /lib/systemd/system/nftables.service,從該文件中的語(yǔ)句 ExecStart=/usr/sbin/nft -f /etc/nftables.conf 我們可以清楚的看到,nftables 防火墻的默認(rèn)配置和規(guī)則文件一般都放置在系統(tǒng)的 /etc/nftables.conf 目錄中,不過(guò)該默認(rèn)配置文件中只包含一個(gè)名為 inet filter 的簡(jiǎn)單 IPv4/IPv6 防火墻列表。

inet 過(guò)濾器可以同時(shí)適用于 IPv4 和 IPv6 的規(guī)則,但不能用于 NAT 類型的鏈,只能用于過(guò)濾器類型的鏈。

為了保持和 iptables 防火墻的規(guī)則類比,便于用戶熟悉,我們可以使用如下 nftables 命令創(chuàng)建相應(yīng)的表和鏈來(lái)建立一個(gè)類似于傳統(tǒng) iptables 防火墻框架,創(chuàng)建過(guò)程如下:

創(chuàng)建 nft 表

與 iptables 中的表不同,nftables 中沒(méi)有內(nèi)置表,表的數(shù)量和名稱由用戶決定。但是,每個(gè)表只有一個(gè)地址簇,并且只適用于該簇的數(shù)據(jù)包。

表可以指定五個(gè)(ip、ip6、inet、arp、bridge)簇中的一個(gè),用戶可以依次執(zhí)行如下命令:

nft add table ip filter
nft add table ip6 filter
nft add table bridge filter

nftables 將為我們分別建立三個(gè) ip、ipv6、bridge 簇并且表名均為 filter 的防火墻框架。

創(chuàng)建鏈

表包含鏈,鏈的目的是保存規(guī)則。

與 iptables 中的鏈不同,nftables 也沒(méi)有內(nèi)置鏈。這意味著與 iptables 不同,如果鏈不匹配 nftables 框架中的簇或鉤子,則流經(jīng)這些鏈的數(shù)據(jù)包不會(huì)被 nftables 觸及。

鏈有兩種類型?;A(chǔ)鏈?zhǔn)莵?lái)自網(wǎng)絡(luò)棧的數(shù)據(jù)包的入口點(diǎn),其中指定了鉤子,其實(shí)可以理解為 iptables 防火墻的默認(rèn)規(guī)則。常規(guī)鏈可以理解為其它用戶自定義的規(guī)則鏈。

使用如下命令為每一個(gè)表建立 INPUT、FORWARD、OUTPUT 鏈,并且設(shè)置基礎(chǔ)鏈,其中 ip 簇 filter 表 INPUT 鏈默認(rèn)為丟棄所有數(shù)據(jù)包的相應(yīng)的命令格式如下。

添加 ip 簇 filter 表相應(yīng)鏈命令集:

nft add chain ip filter INPUT { type filter hook input priority 0\; policy drop\; }
nft add chain ip filter FORWARD { type filter hook forward priority 0\; policy accept\; }
nft add chain ip filter OUTPUT { type filter hook output priority 0\; policy accept\; }

添加 ipv6 簇 filter 表相應(yīng)鏈命令集:

nft add chain ip6 filter INPUT { type filter hook input priority 0\; policy accept\; }
nft add chain ip6 filter FORWARD { type filter hook forward priority 0\; policy accept\; }
nft add chain ip6 filter OUTPUT { type filter hook output priority 0\; policy accept\; }

添加 bridge 簇 filter 表相應(yīng)鏈命令集:

nft add chain bridge filter INPUT { type filter hook input priority 0\; policy accept\; }
nft add chain bridge filter FORWARD { type filter hook forward priority 0\; policy accept\; }
nft add chain bridge filter OUTPUT { type filter hook forward priority 0\; policy accept\; }

添加規(guī)則

規(guī)則由語(yǔ)句或表達(dá)式構(gòu)成,包含在鏈中。

將一條規(guī)則添加到鏈中使用如下語(yǔ)法

nft add rule family table chain handle statement

規(guī)則添加到 handle 處,這是可選的。如果不指定,則規(guī)則添加到鏈的末尾,類似于 iptables -A 方法。

將規(guī)則插入到指定位置使用如下語(yǔ)法:

nft insert rule family table chain handle statement

如果未指定handle,則規(guī)則插入到鏈的開頭,類似于 iptables -I 方法。

以下是用戶根據(jù)自己的實(shí)際情況添加的具體規(guī)則:

放行本地回環(huán)接口 lo 的所有流量:

nft add rule ip filter INPUT iif lo accept

放行 established、related 狀態(tài)的數(shù)據(jù)包,這一點(diǎn)很重要,因?yàn)槎鄶?shù)對(duì)外訪問(wèn)的數(shù)據(jù)包在收到對(duì)端主機(jī)回包時(shí)多為這兩種狀態(tài),如果在 INPUT 鏈中不放行該類型數(shù)據(jù)包,即使本機(jī)的 OUTPUT 鏈默認(rèn)為 ACCEPT,讓所有數(shù)據(jù)包出站,系統(tǒng)也會(huì)主動(dòng)在 INPUT 鏈中丟棄掉相應(yīng)的回包而導(dǎo)致數(shù)據(jù)無(wú)法交互。具體命令如下:

nft add rule ip filter INPUT ct state established,related accept

阻斷存在重大安全隱患的系統(tǒng)端口,包括已經(jīng)公布的比如勒索病毒等端口。nftables 在配置過(guò)程中,當(dāng)用戶使用端口進(jìn)行添加后,nftables 會(huì)自動(dòng)將端口轉(zhuǎn)換為 service 模式,用戶可以通過(guò)使用命令 nft describe tcp dport 對(duì)照查看。阻斷安全隱患的系統(tǒng)端口具體命令如下:

nft add rule ip filter INPUT meta l4proto tcp tcp dport { loc-srv, 136, netbios-ns, netbios-dgm, netbios-ssn, microsoft-ds, 3389, radmin-port } counter drop
nft add rule ip filter INPUT meta l4proto udp udp dport { loc-srv, 136, netbios-ns, netbios-dgm, netbios-ssn, microsoft-ds, 3389, radmin-port } counter drop

對(duì)服務(wù)進(jìn)行限流控制,防止 DDoS 攻擊或者 CC 攻擊造成系統(tǒng)服務(wù)中斷,可以通過(guò) limit 限制通信速率,以下是接受一個(gè)每秒最多 10 個(gè) web 或者 https 或者 dns 查詢請(qǐng)求的數(shù)據(jù)包,同時(shí)可以有 2 個(gè)包超出限制的規(guī)則具體命令:

nft add rule ip filter INPUT meta l4proto tcp tcp dport { 80,443,53 } ct state new limit rate 10/second burst 4 packets accept

nft add rule ip filter INPUT meta l4proto udp udp dport { 80,443,53 } ct state new limit rate 10/second burst 4 packets accept

總結(jié)

經(jīng)過(guò)以上配置后,我們的主機(jī)就具有了很好的本機(jī) IPS 能力。應(yīng)對(duì)不論是面向南北跨路由器的訪問(wèn)流量,還是本地網(wǎng)絡(luò)內(nèi)的東西訪問(wèn)流量,常規(guī)的惡意掃描或者惡意攻擊基本是夠用了。

之后用戶可以使用命令 nft list ruleset > /etc/nftables.conf 將這些規(guī)則保存在 nftables 的默認(rèn)配置文件中,并使用 systemctl enable nftables.service 打開該服務(wù)的默認(rèn)啟動(dòng)模式,之后系統(tǒng)將在開機(jī)時(shí)自動(dòng)啟動(dòng) nftables 防火墻并應(yīng)用相應(yīng)規(guī)則。


當(dāng)前文章:通過(guò)nftables防火墻部署本地IPS
網(wǎng)站鏈接:http://m.5511xx.com/article/dhjhphp.html