linux-firewalld

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux-firewalld相关的知识,希望对你有一定的参考价值。


############# Firewalld ############


*)实验『使不同网段之间通信』######################

准备实验环境:

真机查看

技术分享图片


配置好双网卡主机


技术分享图片


第三台主机配置如下:

ip设置与双网卡主机内网在同一网段,网关设为双网卡eth1

技术分享图片


技术分享图片


效果如下:

技术分享图片



*)启用 firewalld ############################

#yum install -y firewalld firewall-config    安装服务

#systemctl start firewalld                        开启服务

#systemctl enable firewalld                    开机开启

#systemctl disable firewalld                      开机关闭

#systemctl stop firewalld                          关闭服务


*)网络区域名称及默认设置##################################


技术分享图片



[[email protected] ~]# firewall-config &   调用图形


看到如下界面!可在图形界面更改设置

技术分享图片

[[email protected] ~]# firewall-cmd --list-all   查看火墙


public (default, active)
  interfaces: eth0
  sources:
  services: dhcpv6-client ssh
  ports:
  masquerade: no
  forward-ports:
  icmp-blocks:
  rich rules: 


图形勾选 http



[[email protected] ~]# firewall-cmd --list-all
public (default, active)
  interfaces: eth0
  sources:
  services: dhcpv6-client http ssh   <-------
  ports:
  masquerade: no
  forward-ports:
  icmp-blocks:
  rich rules:


*)安装 http 服务###########################

[[email protected] ~]# yum install httpd -y


编辑 /var/www/html/index.html 文件,使实验效果明显

技术分享图片


测试 在浏览器输入:172.25.12.10  效果如下

技术分享图片


编辑配置文件 更改端口

[[email protected] ~]# vim /etc/httpd/conf/httpd.conf

[[email protected] ~]# systemctl restart httpd


技术分享图片

测试:




技术分享图片


在图形界面添加端口




如下命令查看http服务端口

技术分享图片


*)火墙的相关命令###################################


[[email protected] ~]# firewall-cmd --state     查看火墙状态

[[email protected] ~]# firewall-cmd --get-active-zones  查看活跃区域

[[email protected] ~]# firewall-cmd --get-default-zone   查看默认区域

[[email protected] ~]# firewall-cmd --get-zones    查看所有网络区域

[[email protected] ~]# firewall-cmd --zone=public --list-all 查看public区域信息

[[email protected] ~]# firewall-cmd --get-services  列出所有服务

[[email protected] ~]# firewall-cmd --list-all-zones  列出所有

[[email protected] ~]# firewall-cmd --set-default-zone=dmz 设置默认区域为dmz


技术分享图片



[[email protected] ~]# firewall-cmd --list-all-zones  列出所有

技术分享图片


技术分享图片


*)在 /etc/firewalld/zones 有关于火墙配置的一些文件#####################


技术分享图片


列如在public.xml中 可查看火墙的一些相关配置,也可通过修改该文件,改变火墙配置


技术分享图片


在此文件中加入443端口,重启火墙看到如下


技术分享图片


一些相关命令:

[[email protected] ~]# firewall-cmd --permanent --add-port=8080/tcp  永久加入80端口

[[email protected] ~]# firewall-cmd --permanent --remove-port=8080/tcp 永久移除80端口

[[email protected] ~]# firewall-cmd --permanent --zone=internal --add-source=172.25.0.0./24 加入--源

[[email protected] ~]# firewall-cmd --permanent --zone=internal --removesource=172.25.0.0./24 移除--源

[[email protected] ~]# firewall-cmd --add-interface=eth1 --zone=public     把eth1加入public

[[email protected] ~]# firewall-cmd --permanent --remove-interface=eth1 --zone=public 把eth1从public移除

[[email protected] ~]# firewall-cmd --permanent --add-interface=eth1 --zone=trusted 把eth1加入trusted

[[email protected] zones]# firewall-cmd --change-interface=eth1 --zone=public 更改所属区域

[[email protected] ~]# firewall-cmd --permanent --add-service=http  加入http服务

[[email protected] ~]# firewall-cmd --permanent --remove-service=http 移除服务

[[email protected] ~]# firewall-cmd --permanent --zone=internal --add-interface=eth0 加入

[[email protected]ost ~]# firewall-cmd --permanent --zone=internal --remove-interface=eth0 移除

[[email protected] services]# firewall-cmd --reload  重新加载


*)reload 与complete-reload ################################


实验环境:


[[email protected] zones]# firewall-cmd --get-active-zones
public
  interfaces: eth0
trusted
  interfaces: eth1

[[email protected] zones]# firewall-cmd --permanent --add-source=172.25.12.250 --zone=block  拒绝250连接

[[email protected] zones]# firewall-cmd --list-allpublic (default, active)
  interfaces: eth0
  sources:
  services: dhcpv6-client ssh
  ports:
  masquerade: no
  forward-ports:
  icmp-blocks:
  rich rules:


[[email protected] ~]$ ssh [email protected]  如下连接失败

技术分享图片


[[email protected] zones]# firewall-cmd --permanent --remove-source=172.25.12.250 --zone=block  取消拒绝250

250连接上后

[[email protected] zones]# firewall-cmd --reload
success

已连接上的未断开
[[email protected] zones]# firewall-cmd --complete-reload   断开所有连接
success



技术分享图片


只好用以下命令断开连接,恢复

技术分享图片


*)添加策略################################################

[[email protected] ~]# firewall-cmd --direct --get-all-rules   目前没有
[[email protected] ~]#

 

如下:station可连接

技术分享图片

加入规则:

[[email protected] ~]# firewall-cmd --direct --add-rule ipv4 filter INPUT 1 -s 172.25.12.12 -p tcp --dport 22 -j REJECT 

                                                                                                                                               拒绝12主机的ssh服务

技术分享图片


效果如下:连接不上

技术分享图片

特殊服务:

[[email protected] ~]# yum install vsftpd  安装服务
[[email protected] ~]# systemctl restart vsftpd  开启服务
[[email protected] ~]# ss -antulpe | grep vsftpd  查看端口
tcp    LISTEN     0      32                    :::21                   :::*      users:(("vsftpd",19346,3)) ino:165904 sk:ffff88007b53a000 <->
[[email protected] ~]# firewall-cmd --add-service=ftp  写入火墙策略
success


设置如下:

只允许250连接lftp
firewall-cmd --direct --add-rule ipv4 filter INPUT 1 ! -s 172.25.254.250 -p tcp --dport 21 -j REJECT



查看   cat /usr/lib/firewalld/services/ftp.xml


技术分享图片


  <port protocol="tcp" port="21"/>
  <module name="nf_conntrack_ftp"/>    相比其他服务,多了此模块,该模块为跟踪模块,可跟踪随机端口


[[email protected] ~]# lsmod | grep ftp  可查看服务模块


技术分享图片


*)伪装#############################################


[[email protected] ~]# firewall-cmd --add-forward-port=port=22:proto=tcp:toport=22:toaddr=172.25.12.12  将desktop(10)的22端口伪装到12主机上


技术分享图片





[[email protected] ~]# firewall-cmd --add-masquerade 开启伪装


测试:当主机(250)连接10时,连接到了12上


技术分享图片


[[email protected] ~]# firewall-cmd --remove-masquerade 关闭伪装




以上是关于linux-firewalld的主要内容,如果未能解决你的问题,请参考以下文章