1. 程式人生 > >iptables防火牆配置

iptables防火牆配置

iptables命令:

列出iptables規則:iptables -L -n

列出iptables規則並顯示規則編號:iptables -L -n --line-numbers

列出iptables nat表規則(預設是filter表):iptables -L -n -t nat

清除預設規則(注意預設是filter表,如果對nat表操作要加-t nat)

#清楚所有規則:iptables -F 

#刪除使用者自定義的鏈:iptables -X

#將鏈的計數器清零:iptables -Z

#重啟iptables發現規則依然存在,因為沒有儲存:service iptables restart

#儲存配置:service iptables save

#禁止ssh登陸(若果伺服器在機房,一定要小心)iptables -A INPUT -p tcp --dport 22 -j DROP

#清除規則:iptables -D INPUT -p tcp --dport 22 -j DROP

-A, --append chain    追加到規則的最後一條

-D, --delete chain [rulenum]    Delete rule rulenum (1 = first) from chain

-I, --insert chain [rulenum]    Insert in chain as rulenum (default 1=first) 新增到規則的第一條

-p, --proto  proto    protocol: by number or name, eg. 'tcp',常用協議有tcp、udp、icmp、all

-j, --jump target 常見的行為有ACCEPT、DROP和REJECT三種,但一般不用REJECT,會帶來安全隱患

注意:INPUT和DROP這樣的關鍵字需要大寫

#禁止192.168.10.0網段從eth0網絡卡接入

iptables -A INPUT -p tcp -i eth0 -s 192.168.10.100 -j DROP

iptables -A INPUT -p tcp --dport 22 -i eth0 -s 192.168.10.100  -j ACCEPT

#禁止ip地址非192.168.10.10的所有型別資料接入:iptables -A INPUT ! -s 192.168.10.10 -j DROP

#禁止ip地址非192.168.10.10的ping請求:iptables -I INPUT -p icmp --icmp-type 8 -s 192.168.50.100 -j DROP

#擴充套件匹配:1.隱式擴充套件 2.顯示擴充套件

    #隱式擴充套件   -p tcp

        --sport PORT 源埠

        --dport PORT 目標埠

    #顯示擴充套件:使用額外的匹配規則

    -m EXTENSTION --SUB-OPT

    -p tcp --dport 22 與 -p tcp -m tcp --dport 22功能相同

    state:狀態擴充套件,介面ip_contrack追蹤會話狀態

        NEW:新的連線請求, ESTABLISHED:已建立的連線請求, INVALID:非法連線, RELATED:相關聯的連線

#匹配埠範圍:iptables -I INPUT -p tcp --dport 22:80 -j DROP

#匹配多個埠:iptables -I INPUT -p tcp -m multiport --dport 22,80,3306 -j ACCEPT

#不允許源埠為80的資料流出:iptables -I OUTPUT -p tcp --sport 80 -j DROP

配置防火牆:兩種模式-->電影院模式和逛公園模式

配置一個生產環境的防火牆

#1.清空所有規則

iptables -F

iptables -Z

iptables -X

#2.配置允許ssh協議的22埠進入

iptables -A INPUT -p tcp --dport 22 -s 192.168.50.100 -j ACCEPT

#3.配置允許lo介面資料的進出

iptables -A INPUT -i lo -j ACCEPT

iptables -A OUTPUT -o lo -j ACCEPT

#4.設定預設的進出規則,DROP掉INPUT鏈和FORWARD鏈,保留OUTPUT鏈

iptables --policy OUTPUT ACCEPT

iptables -P INPUT DROP

iptables -P FORWARD DROP

#5.開啟信任的IP段

iptables -A INPUT -p all -s 192.168.10.0/24 -j ACCEPT

#6.開放http的80埠

iptables -A INPUT -p tcp --dport 80 -j ACCEPT

#7.允許icmp型別協議通過

iptables -A INPUT -p icmp --icmp-type 8 -j ACCEPT

#8.允許關聯狀態包進出

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

iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

#對於FTP而言,就需要 RELATED 才能實現 21 埠白名單,如不加此項需要額外開放埠,而那些額外開放埠是不受連線狀態保護的。

#9.儲存iptables配置到檔案

service iptables save

iptables的NAT功能:將Linux伺服器配置為上網閘道器和埠對映功能

    上網閘道器:就是將Linux伺服器配置成路由器或者閘道器,實現其他伺服器能通過這臺伺服器進行上網的功能,如果需要實在

該功能,就要藉助iptables的nat表