firewall-cmd --zone=public --add-port=3306/tcp --permanent
CentOS7中执行
service iptables start/stop
会报错Failed to start iptables.service: Unit iptables.service failed to load: No such file or directory.
在CentOS 7或RHEL 7或Fedora中防火墙由firewalld来管理,
如果要添加范围例外端口 如 1000-2000
语法命令如下:启用区域端口和协议组合
firewall-cmd [–zone=] --add-port=[-]/ [–timeout=]
此举将启用端口和协议的组合。端口可以是一个单独的端口 或者是一个端口范围 - 。协议可以是 tcp 或 udp。
实际命令如下:
添加
firewall-cmd --zone=public --add-port=80/tcp --permanent (–permanent永久生效,没有此参数重启后失效)
firewall-cmd --zone=public --add-port=1000-2000/tcp --permanent
重新载入
firewall-cmd --reload
查看
firewall-cmd --zone=public --query-port=80/tcp
删除
firewall-cmd --zone=public --remove-port=80/tcp --permanent
当然你可以还原传统的管理方式。
执行一下命令:
systemctl stop firewalld
systemctl mask firewalld
并且安装iptables-services:
yum install iptables-services
设置开机启动:
systemctl enable iptables
systemctl stop iptables
systemctl start iptables
systemctl restart iptables
systemctl reload iptables
保存设置:
service iptables save
OK,再试一下应该就好使了
开放某个端口 在/etc/sysconfig/iptables里添加
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT
iptables 的安装与配置
由于centos7默认是使用firewall作为防火墙,下面介绍如何将系统的防火墙设置为iptables。
#停止firewall
systemctl stop firewall.service
#禁止firewall开机启动
systemctl disable firewall.service
#安装iptables
yum install iptables-services
#编辑防火墙文件 (建议都在配置文件配置,不要命令配置)
vi /etc/sysconfig/iptables
#添加80和3306端口 等等(自己配置)
-A INPUT -m state –state NEW -m tcp -p tcp –dport 80 -j ACCEPT #80端口开放
-A INPUT -m state –state NEW -m tcp -p tcp –dport 3306 -j ACCEPT #3306端口开放
-I INPUT -s 113.106.93.110 -p tcp --dport 8089 -j DROP #禁止指定IP访问 8089
-I INPUT -s 113.106.93.110 -p tcp --dport 8080 -j ACCEPT #开放固定ipIP访问 8080
#重启防火墙使配置文件生效
systemctl restart iptables.service
#设置iptables防火墙为开机启动项
systemctl enable iptables.service
service iptables start #启动服务
service iptables stop #停止服务
service iptables restart #重启服务
关闭SELINUX
vi /etc/selinux/config
#注释以下配置
SELINUX=enforcing
SELINUXTYPE=targeted
#增加以下配置
SELINUX=disabled
#使配置立即生效
setenforce 0