CentOS中的iptables是一个用于配置Linux内核防火墙的命令行工具,它允许系统管理员定义表(tables)、链(chains)和规则(rules)来过滤网络流量。以下是一些常用的iptables规则:
每个表包含预定义的链,以及用户可以自定义的链:
以下是一些基本的iptables命令示例:
iptables -F
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP
iptables -A INPUT -s 192.168.1.100 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j ACCEPT # 允许HTTP
iptables -A INPUT -p tcp --dport 443 -j ACCEPT # 允许HTTPS
iptables -A INPUT -s 192.168.1.101 -j DROP
iptables -A INPUT -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
service iptables save
iptables -L -n -v
firewalld,它提供了更友好的图形界面和动态管理功能。以下是一个简单的示例,设置一个基本的防火墙规则集:
# 清空所有规则
iptables -F
# 设置默认策略
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
# 允许本地回环接口的流量
iptables -A INPUT -i lo -j ACCEPT
# 允许已建立的连接和相关的数据包
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# 允许SSH连接
iptables -A INPUT -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
# 允许HTTP和HTTPS流量
iptables -A INPUT -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -m state --state NEW,ESTABLISHED -j ACCEPT
# 保存规则
service iptables save
通过这些基本规则,你可以构建一个相对安全的防火墙配置。根据实际需求,可以进一步细化和扩展这些规则。