CentOS中的iptables是一个用于配置Linux内核防火墙的命令行工具,它允许系统管理员定义表(tables)、链(chains)和规则(rules)来过滤网络流量。以下是一些常用的iptables规则:
表(Tables)
- filter:默认表,用于控制数据包的访问控制。
- nat:用于网络地址转换(NAT),如端口转发和源地址转换。
- mangle:用于特殊的数据包修改,如更改TTL值。
- raw:用于配置免除连接跟踪的规则。
链(Chains)
每个表包含预定义的链,以及用户可以自定义的链:
- INPUT:处理进入本机的数据包。
- OUTPUT:处理从本机发出的数据包。
- FORWARD:处理经过本机转发的数据包。
- PREROUTING:用于目标地址转换(DNAT)的规则。
- POSTROUTING:用于源地址转换(SNAT)的规则。
常用规则
以下是一些基本的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
允许特定IP访问
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
阻止特定IP访问
iptables -A INPUT -s 192.168.1.101 -j DROP
允许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
保存规则
service iptables save
查看规则
iptables -L -n -v
注意事项
- 修改iptables规则时要小心,错误的配置可能导致网络中断。
- 在生产环境中,建议使用更高级的工具如
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
通过这些基本规则,你可以构建一个相对安全的防火墙配置。根据实际需求,可以进一步细化和扩展这些规则。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请发送邮件至 55@qq.com 举报,一经查实,本站将立刻删除。转转请注明出处:https://www.szhjjp.com/n/1444261.html