首页 > 其他分享 >firewalld规则配置

firewalld规则配置

时间:2023-05-10 10:26:53浏览次数:32  
标签:配置 -- cmd firewalld 192.168 firewall 规则 port

firewalld规则配置

一、概念

  1. 动态防火墙

    启动新规则时,不会像iptables一样,先清空规则,再启动所有规则,如此会对现在程序有影响,哪怕只是一条规则。而firewalld 规则变更不需要对整个防火墙规则重载,可直接添加新规则

  2. iptables与firewalld的关系

    firewalld底层使用iptables作为防火墙规则管理入口。
    firewalld内核模块还是netfilter,只是firewalld修改了daemon和service
    添加规则还是通过iptables管理的,可以通过iptables查看规则
    firewalld没有链的概念

  3. firewalld配置

    储存在/usr/lib/fierwalld/和/etc/firewalld/目录中的XML文件中

    /usr/lib/fierwalld/services/ 模块目录,里面有每个服务对应的模板,配置默认端口
    /etc/firewalld/ 配置目录

  4. firewalld区域

    firewalld将网卡对应到不同的区域(zone),zone默认共有9个:block,dmz,drop,external,home,internal,public,trusted,work.
    区域相当于iptables的表 drop区域:配置的规则为丢弃的规则
    public区域:公共规则

二、开放端口

  1. 配置文件添加

    添加配置

    [root@localhost ~]# vi /etc/firewalld/zones/public.xml
    <?xml version="1.0" encoding="utf-8"?>
    <zone>
      <short>Public</short>
      <description>For use in public areas. You do not trust the other computers on networks to not harm your computer. Only selected incoming connections are accepted.</d
    escription>
      <service name="ssh"/>
      <service name="dhcpv6-client"/>
      <port protocol="tcp" port="80"/>
      <port protocol="tcp" port="22"/>
      <port protocol="tcp" port="3306"/>
      <port protocol="tcp" port="8080"/>
      <port protocol="tcp" port="2222"/>
      <masquerade/>
      <forward-port to-addr="192.168.1.109" to-port="8080" protocol="tcp" port="80"/>
    </zone>
    

    加载规则

    firewall-cmd --reload
    
  2. 命令行添加

    列出所支持的zone和查看当前的默认zone

    firewall-cmd --get-zones
    

    默认使用区域

    firewall-cmd --get-default-zone
    

    查看防火墙规则

    firewall-cmd --list-all
    

    查看规则状态

    firewall-cmd --state
    

    加载规则

    firewall-cmd --reload
    

    开放3306端口

    firewall-cmd --add-port=3306/tcp --permanent
    firewall-cmd --reload
    

    开放网段

    firewall-cmd --permanent --add-source=192.168.0.0/22
    

    移除规则

     firewall-cmd --permanent --remove-source=192.168.0.0/22
    

    开放服务

    firewall-cmd --permanent --add-service=http
    

    移除服务

    firewall-cmd --permanent --remove-service=http
    

    添加服务

    #cp ssh.xml tomcat.xm 添加模块
    vim tomcat.xml
    #systemctl restart firewalld.service
    #firewall-cmd --add-service=tomcat --permanent
    

    开启12222端口

    #firewall-cmd -add-port=12222/tcp --permanent
    #cat /etc/firewalld/zones/public.xml
    

    删除规则

    #firewall-cmd --remove-port=12222/tcp --permanent
    

    允许192.168.0.142访问80端口

    #firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.0.142" port protocol="tcp" port="80" accept"
    family  对哪个协议
    source address	源地址
    accept	允许
    drop	拒绝
    

    拒绝192.168.0.142访问80端口

    #firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.0.142" port protocol="tcp" port="80" drop"
    

    注:同一规则允许及拒绝时,效果为拒绝,不会跟iptables一样,没有先后顺序优先匹配,为全文匹配,拒绝大于允许

三、端口转发

开启转发功能

[root@localhost subsys]# vim /etc/sysctl.conf 
net.ipv4.ip_forward = 1
#sysctl -p
或者
echo 1 >/proc/sys/net/ipv4/ip_forward

将访问192.168.1.123(本机)主机8080端口的请求转发至80端口

#firewall-cmd --permanent --zone=public --add-forward-port=port=8080:proto=tcp:toport=80:toaddr=192.168.1.123

将访问192.168.1.123(本机)主机8080端口的请求转发至192.168.1.111的80端口

#firewall-cmd --permanent --zone=public --add-forward-port=port=8080:proto=tcp:toaddr=192.168.1.111:toport=80

将本机的80端口转发至192.168.1.109 8080端口

#firewall-cmd --permanent --zone=public --add-forward-port=port=80:proto=tcp:toport=8080:toaddr=192.168.1.109

允许IP 192.168.1.142访问本机器的6379端口

#firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.1.142" port protocol="tcp" port="6379" accept"

拒绝IP 192.168.1.142访问本机的22号端口

#firewall-cmd --permanent --add-rech-rule="rule family="ipv4" source address="192.168.1.142" port protocol="tcp" port="80" drop"

注:转发时,要开启伪装,伪装就是SNAT

允许IP伪装

[root@localhost ~]#  firewall-cmd --permanent --zone=public --add-masquerade
success
[root@localhost ~]# firewall-cmd --reload
success
[root@localhost ~]# firewall-cmd --query-masquerade                         
yes

标签:配置,--,cmd,firewalld,192.168,firewall,规则,port
From: https://www.cnblogs.com/technicianafei/p/17387170.html

相关文章

  • 关于arcgis和postgresql数据库创建企业级地理数据库的配置文件
    第一:需要将arcgis的C:\ProgramFiles(x86)\GeoScene\Desktop\Desktop10.8\DatabaseSupport\PostgreSQL\12\Windows64这个路径下的文件拷贝到postgresql数据库的安装目录的lib文件夹中;第二:需要将五个文件libeay32.dll、libiconv-2.dll、libintl-8.dll、libpq.dll和ssleay32.d......
  • log4net 多文件配置
    C#log4net.Config.XmlConfigurator.Configure(newSystem.IO.FileInfo(AppDomain.CurrentDomain.BaseDirectory+"App.config"));testLog=log4net.LogManager.GetLogger("testLog");warnLog=log4net.LogManager.GetLogger......
  • 国密算法环境配置
    国密算法环境配置参考链接openssl配置:https://blog.csdn.net/bruce135lee/article/details/81811403openssl命令:https://www.cnblogs.com/rocedu/p/14891816.html#opensslgmssl-tasslgmssl配置:https://blog.csdn.net/zyhse/article/details/112350363......
  • AStyle - Clion中配置代码格式化工具
    安装(OSX平台)brewinstallastylebrewlistastyleCLion配置1、下载插件FileWatchers2、配置插件FileWatchers:按照图中一摸一样填写即可Name:用户自己取个名字Filetype:选C/C++Scope:选择OpenFilesProgram:找到目录并选择上面brewlistastyle的路径Argument(附:博主......
  • Maven安装与配置教程
    一、安装前检查检查电脑上是否安装JDK,如果没有安装,请查看JDK安装教程:点我查看如果电脑上已经安装JDK,按Win和R键,输入cmd,然后点击确定输入java-version,点击回车,查看JDK安装信息,如果有下面提示信息,说明JDK安装成功二、下载Maven以下两种方式二选一:方式一:网盘下载(强......
  • git配置
    配置邮箱、用户名gitconfig--globaluser.email"[email protected]"gitconfig--globaluser.name"xxx" 生成秘钥ssh-keygen-trsa-C "[email protected]" 查询配置gitconfig--global-l TRANSLATEwithxEnglishArabicHebrewPoli......
  • Linux部署Prometheus+Alertmanager并配置企业微信告警
    一、Prometheus告警简介告警能力在Prometheus的架构中被划分成两个独立的部分。如下所示,通过在Prometheus中定义AlertRule(告警规则),Prometheus会周期性的对告警规则进行计算,如果满足告警触发条件就会向Alertmanager发送告警信息。在Prometheus中一条告警规则主要由以下几部分组......
  • Linux部署Prometheus+Alertmanager并配置邮件告警
    一、Prometheus告警简介告警能力在Prometheus的架构中被划分成两个独立的部分。如下所示,通过在Prometheus中定义AlertRule(告警规则),Prometheus会周期性的对告警规则进行计算,如果满足告警触发条件就会向Alertmanager发送告警信息。在Prometheus中一条告警规则主要由以下几部分组......
  • KingbaseES V8R6运维案例之---MySQL和KingbaseES字符串排序规则对比
    案例说明:相同数据排序后查询,在MySQL和KingbaseES下得到的排序顺序不一致,本案例从MySQL和KingbaseES的排序规则分析,两种数据库排序的异同点。适用版本:KingbaseESV8R6、MySQL8.0一、MySQL的排序规则1、排序规则(collation)排序规则是依赖于字符集,字符集是用来定义MySQL存储不......
  • KingbaseES V8R3 集群运维系列 -- sync_flag参数配置
    ​案例说明:在KingbaseESV8R3集群一主二备的架构中,配置了流复制为同步(sync)模式,但是集群启动后,流复制状态中显示备库是async模式(备库和主库数据已经同步),从备库的recovery.log日志也可以看到,备库启动后被复制模式设置为async模式。如下图备库recovery.log:适用版本:KingbaseES......