【原創】Linux基礎之iptables

iptables 1.4.21 html

 

官方:https://www.netfilter.org/projects/iptables/index.htmllinux

 

iptables is the userspace command line program used to configure the Linux 2.4.x and later packet filtering ruleset. It is targeted towards system administrators.服務器

iptables是一個命令行工具,與netfilter一塊兒組成linux服務器的防火牆,經過iptables能夠設置管理各類ip包過濾規則;ssh

 

查看當前配置,如下爲初始配置:curl

# iptables -nL
Chain INPUT (policy ACCEPT)
target prot opt source destination tcp

Chain FORWARD (policy ACCEPT)
target prot opt source destination 工具

Chain OUTPUT (policy ACCEPT)
target prot opt source destinationurl

policy有兩種,一種是ACCEPT(默認放開,須要加黑名單,初始配置爲所有放開),一種是DROP(默認拒絕,須要加白名單),經常使用的是後一種spa

服務器常見的策略是放開內網訪問,限制外網訪問:.net

#容許內網和本機訪問

iptables -A INPUT -p tcp -s 192.168.0.0/24 -j ACCEPT
iptables -A INPUT -p tcp -s 127.0.0.1 -j ACCEPT

#容許ssh登陸

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

#容許訪問dns、curl外網等

iptables -A INPUT -p udp --sport 53 -j ACCEPT
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

#容許訪問80端口

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

#容許ping

iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT

#容許keepalived

iptables -I INPUT -d 224.0.0.0/8 -j ACCEPT
iptables -A INPUT -p vrrp -j ACCEPT


iptables -P INPUT DROP

注意在執行最後一句以前,必定要先執行各類ACCEPT,不然執行以後服務器直接遠程直接登陸不了;

策略生效以後是這樣的:

# iptables -nL
Chain INPUT (policy DROP)
target prot opt source destination
ACCEPT tcp -- 192.168.0.0/24 0.0.0.0/0
ACCEPT tcp -- 127.0.0.1 0.0.0.0/0
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:22

ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp spt:53
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED

Chain FORWARD (policy ACCEPT)
target prot opt source destination

Chain OUTPUT (policy ACCEPT)
target prot opt source destination

若是想刪除某條規則,增長--line-number

# iptables -nL --line-number
Chain INPUT (policy DROP)
num target prot opt source destination
1 ACCEPT tcp -- 192.168.0.0/24 0.0.0.0/0
2 ACCEPT tcp -- 127.0.0.1 0.0.0.0/0
3 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:22
4 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80
5 ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp spt:53
6 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED

Chain FORWARD (policy ACCEPT)
num target prot opt source destination

Chain OUTPUT (policy ACCEPT)
num target prot opt source destination

而後指定行號刪除

# iptables -D INPUT $line

相關文章
相關標籤/搜索