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的主要内容,如果未能解决你的问题,请参考以下文章