linux下iptable的用法
########################
1.iptables的用法
########################
iptables比firewall功能更詳細,但是難上手
關閉火牆
安裝iptables
啟動服務
服務資訊儲存在/etc/sysconfig/iptables
iptables加以下
-nL不做解析列出 [[email protected] ~]# iptables -nL Chain INPUT (policy ACCEPT) target prot opt source destination ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22 REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host- prohibited Chain FORWARD (policy ACCEPT) target prot opt source destination REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host- prohibited Chain OUTPUT (policy ACCEPT) target prot opt source destination
-F 清除所有策略
[[email protected] ~]# iptables -F [[email protected] ~]# iptables -nL Chain INPUT (policy ACCEPT) target prot opt source destination Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination
###################################
2.iptable限制訪問
###################################
以httpd為例
通過控制埠不同ip的訪問許可權來控制訪問
檢視httpd服務的埠
有三個字尾
拒絕
REJECT
允許
ACCEPT
忽略
DROP
[[email protected] ~]# netstat -antlupe | grep httpd tcp6 0 0 :::80 :::* LISTEN 0 24061 1264/httpd
iptables -A INPUT -p tcp --dport 80 -j REJECT
拒絕所有訪問
[[email protected] ~]# iptables -A INPUT -p tcp --dport 80 -j REJECT
[[email protected] ~]# iptables -nL
Chain INPUT (policy ACCEPT)
target prot opt source destination
REJECT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 reject-with
icmp-port-unreachable
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
iptables -A INPUT -s 172.25.254.32 -p tcp --dport 80 -j ACCEPT
[[email protected] ~]# iptables -A INPUT -s 172.25.254.132 -p tcp --dport 80 -j ACCEPT
[[email protected] ~]# iptables -nL
Chain INPUT (policy ACCEPT)
target prot opt source destination
REJECT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 reject-with icmp-port-unreachable
ACCEPT tcp -- 172.25.254.32 0.0.0.0/0 tcp dpt:80
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
但此時還是無法連線,原因是讀取時是從第一條開始讀取,當第一條滿足時不再讀取第二條規則
有兩種刪除方法
按內容刪除,注意如果多個相同內容,按內容刪除的順序是從後往前刪除
iptables -D INPUT -s 172.25.254.32 -p tcp --dport 80 -j ACCEPT
按序號刪除第二條規則
iptables -D INPUT 2
插入到第一條規則
iptables -I INPUT 1 -s 172.25.254.32 -p tcp --dport 80 -j ACCEPT
[[email protected] ~]# iptables -D INPUT 2
[[email protected] ~]# iptables -I INPUT 1 -s 172.25.254.32 -p tcp --dport 80 -j ACCEPT
[[email protected] ~]# iptables -nL
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT tcp -- 172.25.254.32 0.0.0.0/0 tcp dpt:80
REJECT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 reject-with icmp-portunreachable
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
瀏覽器測試能連線
用172.25.254.232的瀏覽器連線
刪除掉允許,改為拒絕不提示
iptables -D INPUT 1
iptables -I INPUT 1 -s 172.25.254.32 -p tcp --dport 80 -j DROP
[[email protected] ~]# iptables -D INPUT 1
[[email protected] ~]# iptables -I INPUT 1 -s 172.25.254.32 -p tcp --dport 80 -j DROP
[[email protected] ~]# iptables -nL
Chain INPUT (policy ACCEPT)
target prot opt source destination
DROP tcp -- 172.25.254.32 0.0.0.0/0 tcp dpt:80
REJECT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 reject-with icmp-port-unreachable
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
此時重新整理瀏覽器連線時會一直在讀取,原因是拒絕不提示時沒有反饋
####################
3.簡單管理鏈
#####################
iptables -F ##清空策略
iptables -t nat -F PREROUTING:把表格換為nat並且重新整理prerouting連結
新增名為westos的鏈
iptables -N westos
iptables -E allowed disallowed:修改鏈名稱
iptables -D westos 1 刪除自定義鏈下的策略
iptables -X redhat :刪除自定義鏈
iptables -R INPUT 3 -j ACCEPT:把3號的規則替換為-j ACCEPT
iptables -P INPUT DROP: 設定filter表INPUT鏈的預設規則,當資料包沒有被規則列表的任何規則匹配到時,按這個規則處理
iptables -t nat -F:清空nat策略,-F只晴空鏈中的規則不影響-P設定的預設規則
iptables -t nat -nL:檢視nat策略
iptables -t nat -L PREROUTING:檢視nat表中prerouting鏈的規則
#########################
7.iptables做地址轉換
#########################
路由器為172.25.254.132
1.1.1.132
目的閘道器為1.1.1.232
目的是32連線132時自動連線到232,可用於不同網段的連線
清除所有表格
新增轉換規則
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 22 -j DNAT --to-dest 1.1.1.232
ssh 172.25.254.132
檢視連線後的ip