一、Netfilter 简介
(1) Netfilter 是 Linux 内置的一种防火墙机制,我们一般也称之为数据包过滤机制,而 iptables 只是操作 netfilter 的一个命令行工具
(2) Netfilter 是 Linux CentOS 6 内置的防火墙机制,Firewall 是 Linux CentOS 7 内置的防火墙机制,如果想在 CentOS 7 中使用 netfilter 而不是 firewall,操作如下
(3) 其他所有关于 iptables 的介绍请参考:https://www.cnblogs.com/metoy/p/4320813.html
[root@localhost ~]$ systemctl stop firewalld.service [root@localhost ~]$ systemctl disable firewalld.service [root@localhost ~]$ yum install -y iptables-services.x86_64 [root@localhost ~]$ systemctl start iptables.service [root@localhost ~]$ systemctl enable iptables.service
二、iptables 常见用法:
iptables -nvL # 查看规则,默认查看filter表的规则 iptables -F # 清空规则,默认清空filter表的规则 service iptables save # 保存规则,会把当前规则保存到/etc/sysconfig/iptables iptables-save > my.ipt # 备份规则,这里指定备份到my.ipt文件 iptables-restore < my.ipt # 恢复规则,这里指定使用my.ipt文件进行恢复
iptables -A INPUT -p tcp --dport 80 -j ACCEPT # 放通80端口
iptables -A INPUT -p tcp --dport 22 -j DROP # 禁用22端口
iptables -A INPUT -p tcp -m multiport --dports 80,843,443 -j ACCEPT # 放通多个端口
iptables -A INPUT -s 192.168.1.1/32 -p tcp --dport 22 -j ACCEPT # 只允许某个IP访问22端口
iptables -A INPUT -s 192.168.1.1/32 -p tcp -m multiport --dports 3873,4507,3306 -j ACCEPT # 允许某个IP访问多个端口
-A # 追加规则,默认追加到最后一条规则 -I # 插入规则,默认插入到第一条规则 -D # 删除规则,先执行 iptables -nvL --line-numbers 查看规则的序列号,然后执行 iptables -D INPUT <number> 删除规则 -s # 用于指定源IP地址,用法如:iptables -A INPUT -s 192.168.1.1/32 -p tcp --dport 22 -j ACCEPT -p # 用于指定检查哪个协议,用法如:iptables -A INPUT -p tcp --dport 80 -j ACCEPT -i # 用于指定入口网卡,用法如:iptables -A INPUT -i eth0 -j ACCEPT -o # 用于指定出口网卡,用法如:iptables -A FORWARD -o eth0 -j ACCEPT -j # 用于指定要进行的处理动作,用法如:iptables -A INPUT -p tcp --dport 80 -j ACCEPT -P # 用于设置默认规则,用法如:iptables -P INPUT DROP -t # 用于指定操作哪张表,用法如:iptables -t nat -nvL -Z # 用于清空计数器,用法如:iptables -Z -L # 用于列出规则链中的所有规则 --sport # 用于指定源端口,用法如:iptables -A INPUT -p tcp --sport 1234 -j ACCEPT --dport # 用于指定目标端口,用法如:iptables -A INPUT -s 192.168.1.1/32 -p tcp --dport 22 -j ACCEPT