firewall的规则设置与命令(白名单设置)

代码青焰使
• 阅读 7769

一. 设置firewall规则

例1:对外暴露8080端口

firewall-cmd --permanent --add-port=8080/tcp

例2:使mysql服务的3306端口只允许192.168.1.1/24网段的服务器能访问

#添加规则
firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.1.1/24" port protocol="tcp" port="3306" accept"

#reload使生效
firewall-cmd --reload

注意:如果不开启伪装IP,端口转发会失败;其次,要确保源服务器上的端口(3306)和目标服务器上的端口(13306)是开启的。

二. firewall命令

1.启动, 停止, 重启firewalld
1. 停止
systemctl stop firewalld.service 

2. 启动
systemctl start firewalld.service 

3. 重启
systemctl restart firewalld.service

4. 查看状态: 
systemctl status firewalld 

5.禁止firewall开机启动
systemctl disable firewalld

6. 设置开机启用防火墙:
systemctl enable firewalld.service
2.查看firewall规则与状态
1. 查看默认防火墙状态(关闭后显示notrunning,开启后显示running)
firewall-cmd --state              

2. 查看防火墙规则(只显示/etc/firewalld/zones/public.xml中防火墙策略)
firewall-cmd --list-all           

3. 查看所有的防火墙策略(即显示/etc/firewalld/zones/下的所有策略)
firewall-cmd --list-all-zones     

4. 重新加载配置文件
firewall-cmd --reload             

3.配置firewalld-cmd

查看版本: firewall-cmd --version

查看帮助: firewall-cmd --help

显示状态: firewall-cmd --state

查看所有打开的端口: firewall-cmd --zone=public --list-ports

更新防火墙规则: firewall-cmd --reload

查看区域信息:  firewall-cmd --get-active-zones

查看指定接口所属区域: firewall-cmd --get-zone-of-interface=eth0

拒绝所有包:firewall-cmd --panic-on

取消拒绝状态: firewall-cmd --panic-off

查看是否拒绝: firewall-cmd --query-panic
4. 那怎么开启一个端口呢
1. 添加(--permanent永久生效,没有此参数重启后失效)
firewall-cmd --zone=public --add-port=80/tcp --permanent

2. 重新载入(修改规则后使其生效)
firewall-cmd --reload

3. 查看
firewall-cmd --zone= public --query-port=80/tcp

4. 删除
firewall-cmd --zone= public --remove-port=80/tcp --permanent
 
因为在/usr/lib/firewalld/services/中事先定义了ssh.xml的相应的规则
5. systemctl是CentOS7的服务管理工具中主要的工具,它融合之前service和chkconfig的功能于一体。
启动一个服务:systemctl start firewalld.service
关闭一个服务:systemctl stop firewalld.service
重启一个服务:systemctl restart firewalld.service
显示一个服务的状态:systemctl status firewalld.service
在开机时启用一个服务:systemctl enable firewalld.service
在开机时禁用一个服务:systemctl disable firewalld.service
查看服务是否开机启动:systemctl is-enabled firewalld.service
查看已启动的服务列表:systemctl list-unit-files|grep enabled
查看启动失败的服务列表:systemctl --failed

原文链接

点赞
收藏
评论区
推荐文章
Stella981 Stella981
3年前
Centos7中使用iptables,docker容器中实例,外网端口无法访问
因微信小程序需要https的域名访问方式,阿里云无法通过IP和端口绑定域名,只能通过IP进行绑定,故如果不想直接使用443端口,就只能进行端口映射了。这里我使用iptables。由于centos7默认是使用firewall作为防火墙,下面介绍如何将系统的防火墙设置为iptables。停止firewall systemctlstopfire
Wesley13 Wesley13
3年前
Ubuntu 14.04 搭建 ftp
一、安装ftp服务器vsftpd$sudoaptgetupdate$sudoaptgetinstallvsftpdftp服务器使用21端口,安装成功之后查看是否打开21端口$sudonetstatnpltu|grep21tcp       0     00.0.0.0:21             0.
Stella981 Stella981
3年前
Apache设置反向代理转发端口
场景:这个是将8080端口转发到80端口,使用场景如:1.给Django服务设置域名或者IP访问;2.给node服务设置域名或者IP访问。具体文档参考:http://httpd.apache.org/docs/2.0/mod/mod\_proxy.html(https://www.oschina.net/action/GoToLin
Wesley13 Wesley13
3年前
MySQL 5.7免安装版设置编码格式、设置root用户密码 远程登录.
 一、设置默认编码格式为utf8...   由于免安装版并没有my.ini的配置文件。需要自行粘贴配置并创建一个my.ini   配置如下:mysql设置mysql客户端默认字符集defaultcharactersetutf8mysqld设置3306端口
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Stella981 Stella981
3年前
Jetty Maven Plugin 配置说明
23.2.3配置Jetty容器  下面这些Jetty环境属性的设置在你的web应用中执行,最常用的配置如下: httpConnector  可选择的配置,如果没有设置,Jetty将创建ServerConnector实例来监听8080端口。你可以在命令行上使用系统属性jetty.http.port来修改默认的端口配置,例如m
Wesley13 Wesley13
3年前
mysql ubuntu 开启3306端口,设置远程访问
远程登陆数据库的时候出现了下面出错信息:ERROR2003(HY000):Can'tconnecttoMySQLserveron'xxx.xxx.xxx.xxx',经过今天下午的反复纠结,关于MySql数据库无法远程连接的问题可以归结为以下几点:1).没有授予相应的权限:例如,你想root使用12345
Stella981 Stella981
3年前
Mycat防火墙配置:IP白名单和 SQL黑名单说明
server.xml文件    firewall标签用来定义防火墙;firewall下whitehost标签用来定义IP白名单,blacklist用来定义SQL黑名单。<firewall<whitehost<hostuser"mycat"host"127.0.0.1"</
Stella981 Stella981
3年前
CentOS 7.0如何将iptables作为防火墙(默认使用的是firewall作为防火墙)
1、直接关闭防火墙 systemctlstopfirewalld.service停止firewall systemctldisablefirewalld.service禁止firewall开机启动2、设置iptablesservice yumyinstalliptablesservices 如果要修改防
Stella981 Stella981
3年前
Nginx 简单配置域名跳转
暂时用到这么多,简单记录下首先要买个域名去买域名的网站后台管理配置域名解析,设置跳转到服务器公网ip直接访问公网ip的结果是访问80端口,一般web应用并不是,如tomcat默认8080服务器安装Nginx修改Nginx配置文件,转发80端口收到的请求到web应用的真实地址使生效
Stella981 Stella981
3年前
Redis(1.5)Redis配置文件(4.0.14)
4.0.14常用配置bind127.0.0.1默认绑定本地,不写的话任何地址都可以访问protectedmodeyes    保护模式,如果没有设置bind配置地址,也没有设置任何密码,则只允许本地连接port6379        端口号6379timeout0