CentOS防火墙配置详解
一、开启和关闭防火墙
在CentOS系统中,防火墙的配置可以通过多种方式进行,以下是一些常用的方法和步骤:
1. 使用chkconfig
命令
开启防火墙:
sudo chkconfig iptables on
关闭防火墙:
sudo chkconfig iptables off
这些命令将设置防火墙在系统启动时自动开启或关闭,这些命令需要以root用户身份运行。
2. 使用systemctl
命令(适用于CentOS 7及更高版本)
查看防火墙状态:
sudo systemctl status firewalld
启动防火墙:
sudo systemctl start firewalld
停止防火墙:
sudo systemctl stop firewalld
重启防火墙:
sudo systemctl restart firewalld
设置防火墙开机自启动:
sudo systemctl enable firewalld
禁用防火墙开机自启动:
sudo systemctl disable firewalld
二、查看防火墙状态与规则
1. 查看防火墙状态
使用service iptables status
:
sudo service iptables status
使用firewall-cmd --state
:
sudo firewall-cmd --state
2. 查看防火墙规则
查看所有规则:
sudo firewall-cmd --list-all
查看开放端口:
sudo firewall-cmd --list-ports
查看允许的服务:
sudo firewall-cmd --list-services
三、添加防火墙例外端口
要添加防火墙例外端口,需要编辑防火墙配置文件,配置文件通常位于/etc/sysconfig/iptables
或/etc/iptables/rules.v4
(IPv4规则)和/etc/iptables/rules.v6
(IPv6规则),使用文本编辑器打开配置文件,并添加类似以下的规则:
允许TCP流量通过指定端口:
-A INPUT -p tcp --dport <port> -j ACCEPT
允许UDP流量通过指定端口:
-A INPUT -p udp --dport <port> -j ACCEPT
将<port>
替换为要添加的端口号,以上规则将允许TCP和UDP流量通过指定的端口,保存并关闭配置文件后,重新加载防火墙配置:
sudo service iptables restart
或者使用新版本的防火墙管理工具(如firewalld
):
sudo firewall-cmd --reload
四、防火墙IP指向限制配置
1. 允许指定IP访问所有流量
允许指定IP访问:
sudo firewall-cmd --permanent --add-rich-rule="rule family=ipv4 source address=192.168.43.100 accept" sudo firewall-cmd --reload
禁止指定IP访问:
sudo firewall-cmd --permanent --add-rich-rule="rule family=ipv4 source address=192.168.43.100 drop" sudo firewall-cmd --reload
2. 允许指定IP访问指定端口
允许特定IP访问指定端口:
sudo firewall-cmd --permanent --add-rich-rule="rule family=ipv4 source address=8.8.8.8 port protocol=tcp port=80 accept" sudo firewall-cmd --permanent --add-rich-rule="rule family=ipv4 source address=10.168.186.25 port protocol=tcp port=22 accept" sudo firewall-cmd --permanent --add-rich-rule="rule family=ipv4 source address=10.168.186.25 port protocol=tcp port=3306 accept" sudo firewall-cmd --permanent --add-rich-rule="rule family=ipv4 source address=10.168.186.0/24 port protocol=tcp port=22 accept" sudo firewall-cmd --reload
3. 允许指定IP访问指定协议
阻止ICMP包:
sudo firewall-cmd --permanent --add-rich-rule="rule protocol value=icmp drop"
允许特定地址通过ICMP:
sudo firewall-cmd --permanent --add-rich-rule="rule family=ipv4 source address=120.12.23.136 protocol value=icmp accept" sudo firewall-cmd --reload
4. 允许指定IP访问指定服务
允许特定IP访问SSH服务:
sudo firewall-cmd --permanent --add-rich-rule="rule family=ipv4 source address=10.168.186.25 service name=ssh accept" sudo firewall-cmd --reload
从允许列表中移除SSH服务:
sudo firewall-cmd --permanent --remove-service=ssh sudo firewall-cmd --reload
五、获取所有支持的服务
1. 增加、删除和服务操作
列出所有支持的服务:
sudo firewall-cmd --get-services
开放HTTP服务:
sudo firewall-cmd --permanent --add-service=http sudo firewall-cmd --reload
移除HTTP服务:
sudo firewall-cmd --permanent --remove-service=http sudo firewall-cmd --reload
六、自定义复杂规则(注意是否与已有规则冲突)
允许指定IP访问本机8080端口:
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.1" port protocol="tcp" port="8080" accept' sudo firewall-cmd --reload
允许指定IP段访问本机8080-8090端口:
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" port protocol="tcp" port="8080-8090" accept' sudo firewall-cmd --reload
禁止指定IP访问本机8080端口:
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.1" port protocol="tcp" port="8080" reject' sudo firewall-cmd --reload
任何修改操作,配置完成后,需要重新装载firewall,可重新启动firewalld服务。
firewall-cmd --reload service firewalld restart
七、相关问题与解答栏目
问题1:如何在CentOS中永久开放一个TCP端口?
答:要在CentOS中永久开放一个TCP端口,可以使用firewalld
工具,要永久开放TCP的80端口,可以执行以下命令:
sudo firewall-cmd --permanent --add-port=80/tcp sudo firewall-cmd --reload
这样,即使系统重启后,TCP的80端口仍然会保持开放状态。
问题2:如何在CentOS中允许特定IP访问某个服务?
答:要在CentOS中允许特定IP访问某个服务,可以使用firewalld
的富规则功能,要允许IP地址为192.168.1.100的设备访问SSH服务,可以执行以下命令:
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.100" service name="ssh" accept' sudo firewall-cmd --reload
小伙伴们,上文介绍了“centos防火墙配置”的内容,你了解清楚吗?希望对你有所帮助,任何问题可以给我留言,让我们下期再见吧。
文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/42364.html<