一、说明
防火墙有两种:iptables、firewall
iptables 一般是centos7之前的版本
firewall:一般是centos7
cat /etc/redhat-release 查看CentOS版本
二、firewalld基础操作
启动firewalld服务: systemctl start firewalld
2. 停止firewalld服务: systemctl stop firewalld
3. 查看firewalld状态: systemctl status firewalld
4. 查看已开放的端口列表:firewall-cmd --zone=public --list-ports
5. 查看已允许通过防火墙的服务列表:firewall-cmd --zone=public --list-services
6. 重新加载防火墙(添加端口后要重启防火墙进行生效)firewall-cmd --reload
7. 查看已设置规则 firewall-cmd --zone=public --list-rich-rules
8. 查看防火墙配置文件 cat /etc/firewalld/zones/public.xml
三、添加firewalld的IP白名单
firewall-cmd --permanent --zone=public --add-source=<IP地址>
检查不生效原因:
- 检查防火墙区域:确认您添加白名单的IP地址与正确的防火墙区域关联。
使用以下命令检查白名单所在的区域:firewall-cmd --list-all-zones - 检查其他规则冲突:如果存在其他规则与白名单规则冲突,可能会导致白名单不生效。请检查其他防火墙规则和设置,确保没有规则阻止了白名单IP地址的访问
- 检查默认策略:确保防火墙的默认策略允许白名单IP地址通过。您可以使用以下命令查看和更改默认策略:
firewall-cmd --get-default-zone
firewall-cmd --set-default-zone=+
如果默认策略设置为拒绝或拒绝所有,您需要将其更改为允许或更具体的策略。
四、端口开放
1、单独开放端口:
单独开放端口,任何IP都能访问
sudo firewall-cmd --zone=public --add-port=xxxx/tcp --permanent
2、开放端口给特定的IP
只有特定IP能访问,其余IP不能访问
添加
firewall-cmd --permanent --add-rich-rule="rule family=“ipv4” source address=“10.0.0.0” port protocol=“tcp"port=“xxx” accept”
移除
firewall-cmd --permanent --remove-rich-rule="rule family=“ipv4” source address=“10.0.0.0” port protocol=“tcp"port=“xxx” accept”
五、试验结果
添加ip白名单不会生效,其他的ip也会正常通过(百度:只有添加到白名单的ip才能访问,其他ip都不能访问),但是目前添加失效,可能是运维侧的限制问题,实在不行这个方案就不行
六、iptbales基础操作
1、开启iptables端口
开启1521端口:
iptables -A INPUT -p tcp --dport 1521 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 1521 -j ACCEPT
2、保存iptables设置,重启iptables
在更改完设置后要先保存设置:
service iptables save
然后再重启iptables才能使设置生效:
service iptables restart
如果失败可能是centos7后是使用的基于iptable的systemctl stop firewalld
(1)service iptables stop关闭防火墙;
(2)service iptables start开启防火墙;
(3)service iptables reload重新加载防火墙;
(4)service iptables restart重启防火墙;
3、看端口
输入命令查看已开端口:
iptables -L -n