Linux_firewalld服务

firewalld服务

在企业7以上的版本,,是一款类似于windows界面的可以图形化设置防火墙策略的工具。
一.firewalld服务的安装与启用

firewalld 域

网络区域名 默认配置
trust(信任) 可以接受所有的网络连接
home(家庭) 用于家庭网络 仅接受ssh,mdns,ipp-client,samba-client,dhcpv6-client连接
intetnal(内部) 用于内部网络连接,仅接受ssh,mdns,ipp-client,samba-client,dhcpv6-client连接
work(工作) 用于工作区域 仅接受ssh,ipp-client,dhcpv6-client 连接
public(公共) 在公共区域内使用 仅接受 ssh ,dhcpv-client连接 为firewalld的默认区域
external(外部) 出去的ipv4网络连接通过此区域伪装转发,仅接受ssh服务连接
dmz(非军事) 仅接受ssh连接
block(限制) 拒绝所有网络连接
drop(丢弃) 任何接受的网络数据包都被丢弃 没有任何回复

1.基本命令

firewall-cmd --state ##查看firewall服务当前状态
firewall-cmd --get-active-zones ##查看当前活跃域(已经激活的域)
firewall-cmd --get-default-zone ##查看当前默认域
firewall-cmd --get-zones ##列出所有域
firewall-cmd --zone=public --list-all ##列出public域的所有策略
firewall-cmd --get-services ##查看firewall管控的所有服务
firewall-cmd --list-all-zones ##列出所有域
firewall-cmd --set-default-zone=trusted ##设置默认域为trusted

firewall-cmd --get-services ##查看firewall管控的所有服务
所有服务的信息控制:/usr/lib/firewalld/services/*.xml,这些服务也是firewalld服务所能管理的所有服务

在默认域名为public的情况下,该域无httpd策略,客户机1,客户机2均无法访问httpd服务,添加httpd服务到trusted后,public虽无httpd服务策略,但两台客户机均能访问htppd服务
这里是我的主机配置
这里写图片描述
另外一台 为 192.168.122.83
还有一台为 192.168.122.1
下载httpd
由于火墙的关系是无法链接到的
这里写图片描述
将默认的域更改为trusted 便可以连接了
firewalld策略:服务器网卡管控实验 先将第二台主机ip改为192.168.2.83 并设置网关 192.168.2.84
默认域public 激活网卡接口eth0:192.168.122.84,无httpd服务,trusted添加httpd服务,激活网卡eth1:192.168.2.84 ,这时客户端2: 192.168.122.1可以访问httpd服务, 客户端1:192.168.2.83无法访问,因为httpd服务在域trusted也就是说任何相同主机都可以访问该域的服务,且通过该域的eth1192.168.2.84网卡接口传输数据,所以客户机2:192.168.2.83可以访问httpd服务,客户主机1:192.168.122.1,首先通过服务主机eth0:192.168.122.84接口进入内核,但是eth0:192.168.122.84网卡接口由public域管控,该域无httpd服务,所以客户机192.168.122.1无法访问httpd

firewall-cmd –set-default-zone=public ##设置默认域为public
firewall-cmd –add-interface=eth0 –zone=public ##添加网口eth0到public域
firewall-cmd –add-interface=eth1 –zone=trusted ##添加网口eth1到trusted域
firewall-cmd –add-service=http –zone=trusted ##添加服务httpd到trusted域
firewall-cmd –list-all (–zone=public) ##列出(当前域)所有的策略
firewall-cmd –get-active-zones ##查看当前激活域

remove掉public域的eth0,添加到trusted域上 ,也就是说trusted域中,有httpd服务,eth0,eth1,当然不论那台主机都可以访问了
对指定ip或网段的控制:
在2.3实验中客户主机192.168.2.83是无法访问httpd服务的,策略如下,
这里写图片描述
通过设置特定网段来是192.168.2.83使用httpd服务,使用该域
这里写图片描述
服务端口的控制
firewalld读取服务信息的文件:/usr/lib/firewalld/services/*.xml
以httpd服务为例说明

vim /etc/httpd/conf/httpd.conf
         --->>port 8080 
vim /usr/lib/firewalld/services/http.xml
         --->>port 8080
systemctl restart httpd
systemctl restart firewalld
客户端2:192.168.122.1测试:firefox  http://192.168.122.84:8080

vim /etc/httpd/conf/httpd.conf
这里写图片描述
vim /usr/lib/firewalld/services/http.xml
这里写图片描述
systemctl restart httpd
systemctl restart firewalld
注意:因为之前的设置都是临时的,重启firewalld后设置会失效,重新设置策略
重新在public域中加入http
这里写图片描述
不改/usr/lib/firewalld/services/http.xml中的端口,使用默认端口80,改动 /etc/httpd/conf/httpd.conf端口为8080,实验中 –permanent永久设定
这里写图片描述
这里写图片描述
ssh控制
在没有从public域中remove ssh服务,之前客户机ssh连接上服务器,remove ssh服务之后,已经链接上的shell还能继续使用,在重新开一个shell却无法链接了
firewall高级管理 (默认域public)

vim /usr/lib/firewalld/services/http.xml 
     -->>port 80) 不用改上边的实验已经改为80了
vim /etc/httpd/conf/httpd.conf
     --->>port 80   要改上边的实验此配置文件端口为8080
systemctl restart httpd
netstat -antlpue | grep httpd 查看80端口状态。处于开启状态
firewall-cmd --add-service=http  --permanent  --zone=public
firewall-cmd --reload
firewall-cmd --direct --get-all-rules  ##查看rules
firewall-cmd --direct --add-rule ipv4 filter INPUT 0  -s 192.168.122.1 -p tcp --dport 80 -j REJECT     ##添加rules
firewall-cmd --direct --get-all-rules  ##查看rules

移除

firewall-cmd --direct --remove-rule ipv4 filter INPUT 0 -s 192.168.122.1 -p tcp --dport 80 -j REJECT    ##删除rules

 firewall-cmd --direct --get-all-rules 

 ###firewall-cmd --direct --add-rule ipv4 filter INPUT 0 ! -s 192.168.122.84/24 -p tcp --dport 80 -j

ssh服务转到指定主机

 firewall-cmd --permanent --add-masquerade
 firewall-cmd --reload
 firewall-cmd --permanent --zone=public --add-forward-    port=port=22:proto=tcp:toport=22:toaddr=192.168.122.84

地址伪装

实验前执行以下代码,清除环境上边实验的环境

firewall-cmd --permanent --zone=public --remove-forward-port=port=22:proto=tcp:toport=22:toaddr=192.168.122.84
firewall-cmd --permanent --remove-masquerade
firewall-cmd --reload
 DIRECT RULES
    systemctl start httpd
    firewall-cmd --list-all 列出域内允许的服务
    firewall-cmd --permanent --add-service=http 添加http服务
    ifconfig 
    firewall-cmd --reload 刷新
 这种每个终端都能连接
    firewall-cmd --permanent --remove-service=http 删除
    firewall-cmd --reload 
    firewall-cmd --direct --add-rule ipv4 filter INPUT 1 -p tcp --dport 80 -s 172.25.254.244 -j ACCEPT 添加244可以连接 -p 传输协议 --dport 目的地端口 -s 数据来源 -j 执行的动作 accept 通过 drop 丢弃 reject 拒绝
    firewall-cmd --direct --get-all-rules

rich rules
    地址转换
    1  ifconfig 
    5  firewall-cmd --list-all 
    6  firewall-cmd --add-masquerade  开启masquerade 这一步应该放在后面 应为刷新之后就又没有开启 或者永久添加
    7  firewall-cmd --list-all
    8  firewall-cmd --permanent --add-forward-port=port=22:proto=tcp:toport=22:toaddr=172.25.254.44 当别人连接你时 转换到44 这台主机上
    9  firewall-cmd --list-all
   10  firewall-cmd --reload  刷新
   11  firewall-cmd --list-all
首先 将一台机器加入两块网卡
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.25.254.144  netmask 255.255.255.0  broadcast 172.25.254.255
        inet6 fe80::5054:ff:fef9:a6fe  prefixlen 64  scopeid 0x20<link>
        ether 52:54:00:f9:a6:fe  txqueuelen 1000  (Ethernet)
        RX packets 48966  bytes 7300894 (6.9 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 2266  bytes 305618 (298.4 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.25.2.144  netmask 255.255.255.0  broadcast 172.25.2.255
        inet6 fe80::5054:ff:fea6:fc6c  prefixlen 64  scopeid 0x20<link>
        ether 52:54:00:a6:fc:6c  txqueuelen 1000  (Ethernet)
        RX packets 4766  bytes 560459 (547.3 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 26  bytes 3811 (3.7 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
[root@desktop network-scripts]# sysctl -a | grep ip_forward
net.ipv4.ip_forward = 0
[root@desktop network-scripts]# vim /etc/sysctl.conf 
[root@desktop network-scripts]# sysctl -p
net.ipv4.ip_forward = 1  将内核上的文件路由器打开
   14  firewall-cmd --list-all
   15  firewall-cmd --permanent --add-masquerade 
   16  firewall-cmd --reload 
   17  firewall-cmd --list-all
   18  ifconfig 
   19  cd /etc/sysconfig/network-scripts/
   20  ls
   21  cp ifcfg-eth0 ifcfg-eth1
   22  vim ifcfg-eth1  配置第二块网卡的ip 为2 网段的
   23  systemctl restart network
   24  ifconfig 
   25  firewall-cmd --list-all
   26  sysctl -a | grep ip_forward
   27  ifconfig 
   28  nm-connection-editor 
   29  sysctl -a | grep ip_forward
   30  vim /etc/sysctl.conf 
   31  sysctl -p
   32  firewall-cmd --list-all
在另外一台机器上修改ip 与eth1的网段相同 
并将其设置成网管 
  然后就可以连接了 
last  伪装
kiosk    pts/4        :0               Sat Jun  9 11:41   still logged in   
root     pts/0        www.westos.com   Sat Jun  9 11:34   still logged in   

wtmp begins Sat Jun  9 11:34:17 2018

firewalld ip转换 以及地质伪装
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
之所以会显示,music.westos.com 是因为设置的本地解析 可以看到使用2网段的主机连接122.1记录为122.84连接的

猜你喜欢

转载自blog.csdn.net/ff12123/article/details/80683668
今日推荐