在CentOS系统中,iptables
是一个用于配置内核防火墙(netfilter)规则的工具。通过iptables
,你可以设置、查看和删除网络数据包过滤规则,从而控制网络流量。以下是一些基本的iptables
命令和管理方法:
1. 查看当前规则
sudo iptables -L -n -v
-L
:列出所有规则。-n
:以数字形式显示地址和端口,而不是尝试解析主机名和服务名。-v
:详细模式,显示更多信息。
2. 清空所有规则
sudo iptables -F
-F
:清空所有链中的规则。
3. 允许特定IP访问
sudo iptables -A INPUT -s 192.168.1.100 -j ACCEPT
-A INPUT
:将规则添加到INPUT链。-s 192.168.1.100
:指定源IP地址。-j ACCEPT
:接受匹配的数据包。
4. 拒绝特定IP访问
sudo iptables -A INPUT -s 192.168.1.100 -j DROP
-j DROP
:丢弃匹配的数据包。
5. 允许特定端口访问
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
-p tcp
:指定协议为TCP。--dport 80
:指定目标端口为80(HTTP)。
6. 拒绝特定端口访问
sudo iptables -A INPUT -p tcp --dport 22 -j DROP
-p tcp
:指定协议为TCP。--dport 22
:指定目标端口为22(SSH)。
7. 保存规则
CentOS 7及以上版本使用firewalld
作为默认防火墙管理工具,但你可以手动保存iptables
规则:
sudo service iptables save
或者直接编辑/etc/sysconfig/iptables
文件。
8. 恢复默认规则
如果你不小心删除了所有规则,可以恢复默认规则:
sudo iptables-restore < /etc/sysconfig/iptables
9. 使用firewalld
管理防火墙
CentOS 7及以上版本推荐使用firewalld
来管理防火墙。以下是一些基本命令:
- 查看当前区域和规则:
sudo firewall-cmd --list-all
- 添加规则:
sudo firewall-cmd --permanent --add-port=80/tcp
- 删除规则:
sudo firewall-cmd --permanent --remove-port=80/tcp
- 重新加载配置:
sudo firewall-cmd --reload
通过这些命令,你可以有效地管理和配置CentOS系统中的防火墙规则。