iptable策略

input output forward prerouting postrouting

五鏈相當於在五個位置設置安全策略做檢查

流量進入網卡(路由表)後查看是否是發給自己的,

1 總的檢查口 prerouting

2 是發給自己的就轉發給自己進程的端口,input

不是就轉發走,只是穿過 output

4 自己訪問外部網絡時,流量往外出的時候也要經過自己的路由表 forward

穿過我的做設置,例如教室內訪問視頻網站

5 最外面的出口做檢查 postouting

1 隱式擴展

不用寫調用哪個模塊,當指定協議的時候系統會自動調用協議所需要的模塊,協議名就是模塊名,系統自己去找,tcp,udp協議

指定端口號

只讓tcp的22端口通過

iptables -I INPUT 3 -s 192.168.1.11 -p tcp --dport22 -j ACCEPT

                                          dport目標端口

                                          sport源端口

              指定端口範圍,必須是連續的   m:n 例如1:10  1到10    

自定義鏈

除了系統自帶的五個鏈,自己可以自定義鏈

1先自定義一個鏈

Iptables –N invalid_packets

重命名

Iptables –E invalid_packets INVALID_PACKETS

爲自定義的鏈添加規則

Iptables –A invalid_packets –p tcp –tcp-flags ALL ALL –j REJECT

定義完不和原有規則關聯就沒意義,就像函數,只定義沒調用就無意義

Iptables –A OUTPUT –j INVALID_PACKAGES

從我這裏出的,只要是不符合規則的統統拒絕

刪除時,先刪除關聯的鏈,再清空自定義鏈添加的內容,最後刪除自定義鏈

Iptables –D OUTPUT 1

Iptables –F invalid_packets

Iptables –X invalid_packets

顯示擴展

1 multiport 可以指定不連續端口

iptables -I INPUT -p tcp -m multiport --dports 139,445 -j ACCEPT

2 iprange

iptables -I INPUT -m iprange --src-range 192.168.1.11-192.168.1.12 -j ACCEPT

3 mac --mac-source

Ip 限制了可以從mac突破限制

Iptables -I INPUT 3 -m mac --mac-source 00:0C:29:D9:83:55 -j ACCEPT

加兩個

Iptables -I INPUT 3 -m mac --mac-source 00:0C:29:D9:83:55 -s 192.168.1.11 -j ACCEPT

4 string

對應用層數據的字符串進行限制

例如用戶訪問百度搜索google等字符串,可以屏蔽掉

Iptables -I OUTPUT -m string --algo bm --string”google” -f REJECT

Tcpdump -I etho port 80

5 time

iptables -I INPUT 3 -m time --timestart 01:00:00 --timestop 02:00:00 --weekdays 1,2,3,4,5 -j ACCEPT

週一到週五的上班時間才能訪問

6 connlimit 限制單個機器的連接數

限制客戶端的IP連接數,併發連接數

--connlimit-upto n 小於某個值,在某個範圍內時是匹配的

--connlimit-above n 連接數大於n的時候匹配

超過兩個就拒絕

iptables -A INPUT -m connlimit --connlimit-above 2 -j REJECT

添加策略是防止和iptables -vnL 裏面其他策略衝突

7 limit 擴展 限制總的連接數,多個機器加起來

先放行5個,以後每一分鐘放行一個

iptables -A INPUT -m limit --limit 1/minute --limit-burst 5 -j ACCEPT

8 state

New:第一次訪問就叫做new

ESTABLISHED:第二次訪問的叫做established

RELATED:新發起的與已有連接相關聯的連接,例如ftp協議中數據連接與命令連接的關係

防火牆策略中,established放在最前面,之前檢查過了,再次見面直接放在最前面直接通過

例如 舊的已經連接過的用戶accept,新的用戶只有httpd80端口可以連,其他的都不讓連

Iptables -I INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

Iptables -I INPUT 4 tcp --dport 80 -m state --state NEW -j ACCEPT

針對ftp的端口容易變化的特性,加載專門模塊

modprobe nf_conntrack_ftp

可以加入開機啓動 /etc/rc.d/rc.local

Lsmod |grep ftp 查看是否加載成功

加載後, 新添加的21端口和相關聯的內容都放行

新發起的請求連接的21端口是允許的

iptables -I INPUT 3 -p tcp --dport 21 -m state --state NEW -j ACCEPT

相關的已經建立連接的直接放行

iptables -I INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章