簡單的介紹iptables的基本設置
# 1:顯示您的防火牆的狀態
輸入以下命令(root):
# iptables – l – n – v
輸出:
Chain INPUT (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination
以上輸出表示防火牆沒有設置任何規則
介紹iptables 命令參數
-L 列出所有規則
-n 顯示ip/端口
-v 顯示接口名字
# 2:停止/啓動/重新啓動防火牆
# service iptables stop
# service iptables start
# service iptables restart
如何停止防火牆和刪除所有規則:
# iptables -F
# iptables -X
# iptables -t nat -F
# iptables -t nat -X
# iptables -t mangle -F
# iptables -t mangle -X
# iptables -P INPUT ACCEPT
# iptables -P OUTPUT ACCEPT
# iptables -P FORWARD ACCEPT
-F 是刪除所有規則
-X 刪除鏈
-t 選擇table 刪除和刷新規則
-P 設置默認策略(DROP REJECT ACCEPT)
# 3:刪除防火牆規則
顯示行號以及其他信息
# iptables -L INPUT -n –line-numbers
# iptables -L OUTPUT -n –line-numbers
# iptables -L OUTPUT -n –line-numbers | less
# iptables -L OUTPUT -n –line-numbers | grep 202.54.1.1
根據行號刪除指定規則例如
# iptables -D INPUT 4
或者從規則中刪除行
# iptables -D INPUT -s 61.152.1.1 -j DROP
-D 選項就是刪除指定規則
# 4:插入防火牆規則
插入一個或多個規則使用以下語法。首先看看行號,輸入:
# iptables – l – n – line-numbers
輸出:
Chain INPUT (policy DROP)
num target prot opt source destination
1 DROP all – 202.54.1.1 0.0.0.0/0
2 ACCEPT all – 0.0.0.0/0 0.0.0.0/0 state NEW,ESTABLISHED
插入規則num 1到 num 2之間,輸入:
# iptables -I INPUT 2 -s 202.54.1.2 -j DROP
輸入下面命令查看:
# iptables -L INPUT -n –line-numbers
輸出:
Chain INPUT (policy DROP) num target prot opt source destination
1 DROP all – 202.54.1.1 0.0.0.0/0
2 DROP all – 202.54.1.2 0.0.0.0/0
3 ACCEPT all – 0.0.0.0/0 0.0.0.0/0 state NEW,ESTABLISHED
# 5:保存防火牆規則
# service iptables save
#或者
#iptables save
在這個例子中,刪除一個IP並保存防火牆規則:
# iptables -A INPUT -s 202.5.4.1 -j DROP
# service iptables save
有必要解釋下 -A
-A 就是 “–append -A chain Append to chain” 添加的意思
如果想把規則備份怎麼辦呢?
iptables-save 命令可以做到
# iptables-save > /root/my.active.firewall.rules
# cat /root/my.active.firewall.rules
#6: 恢復備份
從一個文件中恢復:
# iptables-restore < /root/my.active.firewall.rules
# service iptables restart
# 7:設置默認的防火牆策略
# iptables -P INPUT DROP
# iptables -P OUTPUT DROP
# iptables -P FORWARD DROP
# iptables -L -v -n
# 8:阻止或允許ICMP Ping請求
# iptables -A INPUT -p icmp –icmp-type echo-request -j DROP
# iptables -A INPUT -i eth1 -p icmp –icmp-type echo-request -j DROP
指定ip 不能ping
# iptables -A INPUT -s 192.168.1.0/24 -p icmp –icmp-type echo-request -j ACCEPT
以下只接受有限的類型的ICMP請求:
iptables -A INPUT -p icmp –icmp-type echo-reply -j ACCEPT
iptables -A INPUT -p icmp –icmp-type destination-unreachable -j ACCEPT
iptables -A INPUT -p icmp –icmp-type time-exceeded -j ACCEPT
## ** all our server to respond to pings ** ##
iptables -A INPUT -p icmp –icmp-type echo-request -j ACCEPT
# 9:開放端口
使用以下的語法來打開一個端口範圍:
iptables -A INPUT -m state –state NEW -m tcp -p tcp –dport 8000:8080 -j ACCEPT
8000—>8080 之間的端口可以訪問
#10:開放範圍的IP地址
使用以下的語法來打開一個範圍的IP地址:
iptables -A INPUT -p tcp –destination-port 80 -m iprange –src-range 192.168.1.100-192.168.1.200 -j ACCEPT
192.168.1.100-192.168.1.200 範圍的主機可以訪問服務器
#11:開放常見的端口
## 開放 ssh 22端口##
iptables -A INPUT -m state –state NEW -m tcp -p tcp –dport 22 -j ACCEPT
iptables -A INPUT -s 192.168.1.0/24 -m state –state NEW -p tcp –dport 22 -j ACCEPT##打印服務port 631 for 局域網用戶##
iptables -A INPUT -s 192.168.1.0/24 -p udp -m udp –dport 631 -j ACCEPT
iptables -A INPUT -s 192.168.1.0/24 -p tcp -m tcp –dport 631 -j ACCEPT## allow time sync via NTP for lan users (open udp port 123) ##
iptables -A INPUT -s 192.168.1.0/24 -m state –state NEW -p udp –dport 123 -j ACCEPT## 開放 25 (smtp) 端口 ##
iptables -A INPUT -m state –state NEW -p tcp –dport 25 -j ACCEPT# 開放dns server端口##
iptables -A INPUT -m state –state NEW -p udp –dport 53 -j ACCEPT
iptables -A INPUT -m state –state NEW -p tcp –dport 53 -j ACCEPT##開放 http/https (Apache) server 端口##
iptables -A INPUT -m state –state NEW -p tcp –dport 80 -j ACCEPT
iptables -A INPUT -m state –state NEW -p tcp –dport 443 -j ACCEPT## 開放110 (pop3) 端口 ##
iptables -A INPUT -m state –state NEW -p tcp –dport 110 -j ACCEPT## 開放143 (imap) 端口##
iptables -A INPUT -m state –state NEW -p tcp –dport 143 -j ACCEPT##開放Samba 文件服務器端口 ##
iptables -A INPUT -s 192.168.1.0/24 -m state –state NEW -p tcp –dport 137 -j ACCEPT
iptables -A INPUT -s 192.168.1.0/24 -m state –state NEW -p tcp –dport 138 -j ACCEPT
iptables -A INPUT -s 192.168.1.0/24 -m state –state NEW -p tcp –dport 139 -j ACCEPT
iptables -A INPUT -s 192.168.1.0/24 -m state –state NEW -p tcp –dport 445 -j ACCEPT## 開放代理server 端口 ##
iptables -A INPUT -s 192.168.1.0/24 -m state –state NEW -p tcp –dport 3128 -j ACCEPT
## 開放mysql 3306端口 ##
iptables -I INPUT -p tcp –dport 3306 -j ACCEPT
#12:阻止一個ip
# iptables -A INPUT -s 1.2.3.4 -j DROP
# iptables -A INPUT -s 192.168.0.0/24 -j DROP