centos7下防火墙配置开放所有端口,对指定IP开放指定端口

前两天工作需要,在修复助理漏洞是需要启动防火墙上,并在防火墙上加白名单,翻了好多资料没有找到firewall的配置方法,只能换成iptables,特此记录下解决过程
centos7下防火墙默认用的是firewall,但是iptables也可以用
iptables配置方法:iptables所有的规则都写在配置文件里,所以生效配置必须重启防火墙,下面以开放所有端口,对指定IP开放22端口为例
禁用firewall

[root@test02 Desktop]# systemctl stop firewalld.service 
[root@test02 Desktop]# systemctl disable firewalld.service 

安装iptables

[root@test02 sysconfig]# yum -y install iptables-services

修改配置文件

[root@test02 Desktop]# vi /etc/sysconfig/iptables

将里面的内容全部删掉,写入以下内容(开放所有端口,但是22端口只对192.168.191.8一台主机开放)

*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -s 192.168.191.8 -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 22 -j DROP
COMMIT

重启防火墙即可

[root@test02 Desktop]# systemctl start iptables.service 

firewall配置方法:firewall当时也想了一个办法,但是比较low,所以当时没用,
就是把除去22端口的所有端口开放

开放出22端口外的所有端口

[root@test02 zones]# firewall-cmd --permanent --zone=public --add-port=1-21/tcp
[root@test02 zones]# firewall-cmd --permanent --zone=public --add-port=23-65535/tcp

对指定IP开放22端口

[root@test02 zones]# firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.191.8" port protocol="tcp" port="22" accept"
[root@test02 bin]# firewall-cmd --reload 

配置完成后发现不管用,以为是没有重启防火墙,重启后还是一样,22端口对所有IP都是开放的,后来查阅资料发现firewall和iptables不太一样,firewall的配置文件较多,22端口是默认的ssh端口,不受firewall-cmd的命令控制,所以想要上面的配置生效,还需删掉/usr/lib/firewalld/services目录下的ssh.xml文件才可以

你可能感兴趣的:(Linux)