CentOS 7 下使用iptables
详解
在 CentOS 7 中,默认的防火墙是firewalld
,但许多用户仍然习惯使用iptables
,本文将详细介绍如何在 CentOS 7 上安装、配置和管理iptables
,并提供一些常见问题的解决方案。
一、安装与启动iptables
1、检查是否已安装:
rpm qa | grep iptables
2、安装iptablesservices
:
yum install y iptablesservices
3、启动并设置开机自启:
systemctl start iptables systemctl enable iptables
4、查看状态:
systemctl status iptables
5、关闭 SELinux(可选):
SELinux 可能会影响iptables
规则的生效,建议关闭:
setenforce 0 sed i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config
二、基本命令与语法
1、查看帮助:
iptables h
2、列出所有规则:
iptables L n v
3、清除所有规则:
iptables F
4、添加规则:
iptables A INPUT p tcp dport 80 j ACCEPT # 允许访问80端口 iptables A INPUT m state state ESTABLISHED,RELATED j ACCEPT # 允许已建立连接的流量
5、删除规则:
iptables D INPUT 1 # 删除INPUT链中的第一条规则
6、保存规则:
service iptables save
三、常见配置案例
1、开放特定端口:
iptables I INPUT p tcp dport 22 j ACCEPT # 开放SSH端口 iptables I INPUT p tcp dport 80 j ACCEPT # 开放HTTP端口
2、禁止特定IP访问:
iptables I INPUT s 192.168.1.100 j DROP # 禁止特定IP访问
3、限制访问范围:
iptables I INPUT p tcp dport 80 s 192.168.1.0/24 j ACCEPT # 仅允许特定网段访问80端口
4、默认策略设置:
iptables P INPUT DROP # 设置默认输入策略为拒绝 iptables P FORWARD DROP # 设置默认转发策略为拒绝
四、高级功能与优化
1、NAT表操作:
iptables t nat A PREROUTING p tcp dport 80 j REDIRECT toport 8080 # 端口转发
2、状态模块加载:
确保以下内核模块已加载:
modprobe ip_tables modprobe ipt_MASQUERADE modprobe ipt_REDIRECT modprobe xt_CHECKSUM
3、性能优化:
使用conntrack
模块跟踪连接状态。
根据需要调整日志记录级别。
五、常见问题解答(FAQs)
Q1:iptables
规则不生效怎么办?
A1: 确保 SELinux 已关闭或设置为宽松模式,并检查规则是否正确添加和保存,使用service iptables restart
重启iptables
服务。
Q2: 如何更改iptables
的默认策略?
A2: 使用iptables P
命令设置默认策略。iptables P INPUT DROP
将所有进入流量的策略设置为拒绝。
CentOS 7 下使用iptables
需要先关闭默认的firewalld
,然后安装并配置iptablesservices
,通过掌握基本的命令和语法,用户可以灵活地管理网络流量,实现安全策略,了解常见问题的解决方案有助于快速排除故障。