Ubuntu 下使用iptables

启动iptables

modprobe ip_tables

关闭iptables(关闭命令要比启动复杂)

iptalbes -Fiptables -Xiptables -Ziptables -P INPUT ACCEPTiptables -P OUTPUT ACCEPTiptables -P FORWARD ACCEPTmodprobe -r ip_tables

依次执行以上命令即可关闭iptables,否则在执行modproble -r ip_tables时将会提示FATAL: Module ip_tables is in use.

清除预设表filter中的所有规则链的规则

iptables -F

清除预设表filter中使用者自定链中的规则

 iptables -X

以数字形式查看iptables规则

iptables -L -n

抛弃所有不符合三种链规则的数据包

iptables -P INPUT DROPiptables -P OUTPUT DROPiptables -P FORWARD DROP


设置 本地进程 lo 的 INPUT 和 OUTPUT 链接,eth0 的 INPUT 链

iptables -A INPUT -i lo -j ACCEPTiptables -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -jACCEPTiptables -A INPUT -i eth0 -m state --state NEW,INVALID -j LOGiptables -A OUTPUT -o lo -j ACCEPT

开放SSH端口22

iptables -A INPUT -p tcp -i eth0 --dport ssh -j ACCEPT

开放Web端口80

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

开放FTP端口21、20

iptables -A INPUT -p tcp --dport 20 -j ACCEPTiptables -A INPUT -p tcp --dport 21 -j ACCEPT

删除FTP端口21、20

iptables -D INPUT -p tcp --dport 20 -j ACCEPTiptables -D INPUT -p tcp --dport 21 -j ACCEPT

允许loopback(不然会导致DNS无法正常关闭等问题)

IPTABLES -A INPUT -i lo -p all -j ACCEPT  (如果是INPUT DROP)IPTABLES -A OUTPUT -o lo -p all -j ACCEPT (如果是OUTPUT DROP)

保存iptables规则

iptables-save > /etc/iptables.up.rules

iptables规则自动保存与自动加载

nano /etc/network/interfaces

修改 /etc/network/interfaces ,添加下面末尾2行脚本

auto eth0iface eth0 inet dhcppre-up iptables-restore < /etc/network/iptables.up.rules

发表评论