您的位置:首页 > 理论基础 > 计算机网络

Linux网络服务_防火墙_firewalld设定

2018-03-02 17:25 567 查看

FIirewalld

1.firewalld服务启动

systemctl stop iptable.service //关闭iptable

systemctl mask iptable.service //锁定iptable

systemctl unmask firewalld.service //解锁firewalld

systemctl start firewalld.service  //开启firewalld

systemctl enable firewalld.service  //开机自动启动firewalld

firewall-config //firewalld图形界面开启方式

firewalld域zone:(默认publi c)

block                           //限制,域            拒绝所有网络

dmz                             //非军事域,        只有ssh服务

drop                            //丢弃域,             任何接收的网络数据包都被丢弃,没有任何回复

external                      //外部域,              出去的ipv4网络连接通过此区域伪装和转发仅接收ssh服务连接

home                          //home域,           仅接收ss,mdns,ipp-client,或dhcpv6-client服务连接

internal                      //内部域,              用于内部网络,接受ssh、mdns、ipp-client、samba-client、dhcpv6-client服务连接

public                        //公共域              在公共区域内使用,接受ssh或dhcpv6-client服务连接,为firewalld的默认区域

ROL                           //ROL域

trusted                       //信任域,              可接受所有的网络连接(优先级别最高)

work                          //工作域,              用于工作区,仅接受ssh、ipp-client或dhcpv6-client服务连接


2.firewall基本命令

(1).基本参数
interfaces               //接口
sources                   //指定源地址

services                  //服务

ports                        //端口

masquerading        //伪装

forward-ports
    //端口转发

icmp- blocks            //icmp协议阻绝一个或多个ICMP类型

rich rules                //rich rules是一种类似iptables的设置

(2).安装包相关命令
yum search firewalld                 //查看安装包信息
 rpm -ql firewalld.noarch          //查看所有配置文件
/usr/lib/firewalld/services/http.xml:
vim /usr/lib/firewalld/services/http.xml
  5   <port protocol="tcp" port="80"/> //默认接口80        //即开启阿帕奇服务后自动开启80接口

(3).常用的查看命令

示例:

[root@server103 ~]# firewall-cmd --list-all --zone=trusted

--state                                      //查看状态

--list-all                                   //查看firewalld的所有信息

--get-active-zone                   //查看正在运行(已激活)的域

--get-default-zone                 //查看默认的域

--get-zones                             //查看所有域的名称

--zone=public --list-all        //查看public域的所有信息

--get-services                        //查看所有服务

--list-all-zones                      //查看所有域

--zone=trusted --list-all      //查看trusted域的内容

(4).常用的设置命令

--set-default-zone=dmz      //设定默认域为dmz

--permanent --add-source=172.25.254.103           //永久添加可接收数据包来源172.25.254.103

--remove-source=172.25.254.103                           //临时删除可接收数据包来源172.25.254.103

--reload                                 //重新加载firewalld,若更改永久性的设定,必须重启,临时重启后失效

注意:

--permanent                          //永久修改,不加permanent为临时修改

--add                                      //添加

--remove                               //删除

--reload                                  //重新加载firewalld

3.实现双网卡连接的管控(连接172为trusted,192为public)

添加网卡eth1,保证存在eth0与eth1双网卡

ifconfig                                  //查看网卡设置



firewalld-cmd --list-all                             //查看firewalld信息

firewall-cmd --set-default-zone=public      //设定默认域为public

firewall-cmd --get-default-zone                 //查看默认域

yum install httpd -y                                //验证已安装阿帕奇

echo 172.25.254.103> /var/www/html/index.html //更改apache功能的默认文件

systemctl start httpd                                           //启动阿帕奇

此时server可以连接到172.25.254.103

真机无法连接

firewall-cmd --set-default-zone=trusted //设定firewalld为信任域

firewall-cmd --list-all //查看

此时都可以连接

firewall-cmd --set-default-zone=public //还原设置

firewall-cmd --list-all //查看

firewall-cmd --change-interface=eth0 --zone=trusted //设定eth0为trusted,eth1还是public

firewall-cmd --list-all //查看 

firewall-cmd --get-active-zones //查看正在运行的域,此时有两个

firewall-cmd --remove-interface=eth0 //删除eth0网卡的防火墙设定

firewall-cmd --list-all //查看

firewall-cmd --get-active-zones  //查看正在运行的域,此时有一个

firewall-cmd --add-interface=eth0 --zone=public //添加eth0网卡的防火墙设定,域为public

firewall-cmd --get-active-zones //查看正在运行的域,此时有两个

【实验】

[root@server103 ~]# ifconfig

eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500

        inet 172.25.254.103  netmask 255.255.255.0  broadcast 172.25.254.255

eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500

        inet 192.168.0.103  netmask 255.255.255.0  broadcast 192.168.0.255

[root@server103 ~]# firewall-cmd --list-all

public (default, active)

  interfaces: eth0 eth1

  sources: 

  services: dhcpv6-client ssh

  ports: 24/tcp

  masquerade: no

  forward-ports: 

  icmp-blocks: 

  rich rules: 

[root@server103 ~]# firewall-cmd --set-default-zone=public

success

[root@server103 ~]# firewall-cmd --get-default-zone

public

[root@server103 ~]# yum install httpd -y

[root@server103 ~]# echo 172.25.254.103> /var/www/html/index.html

[root@server103 ~]# systemctl start httpd

此时server可以连接到172.25.254.103

真机无法连接



[root@server103 ~]# firewall-cmd --set-default-zone=trusted 

success

[root@server103 ~]# firewall-cmd --list-all

trusted (default, active)

  interfaces: eth0 eth1

  sources: 172.25.254.103/24

  services: 

  ports: 

  masquerade: no

  forward-ports: 

  icmp-blocks: 

  rich rules: 

此时都可以连接

[root@server103 ~]# firewall-cmd --set-default-zone=public

success

[root@server103 ~]# firewall-cmd --list-all

public (default, active)

  interfaces: eth0 eth1

  sources: 

  services: dhcpv6-client ssh

  ports: 24/tcp

  masquerade: no

  forward-ports: 

  icmp-blocks: 

  rich rules: 

[root@server103 ~]# firewall-cmd --change-interface=eth0 --zone=trusted 

success

[root@server103 ~]# firewall-cmd --get-active-zones 

ROL

  sources: 172.25.0.252/32

public

  interfaces: eth1

trusted

  interfaces: eth0

[root@server103 ~]# firewall-cmd --remove-interface=eth0

success

[root@server103 ~]# firewall-cmd --get-active-zones 

ROL

  sources: 172.25.0.252/32

public

  interfaces: eth1

trusted

  sources: 172.25.254.103/24

[root@server103 ~]# firewall-cmd --add-interface=eth0 --zone=public 

success

[root@server103 ~]# firewall-cmd --get-active-zones

  sources: 172.25.0.252/32

public

  interfaces: eth0 eth1

trusted

  sources: 172.25.254.103/24

4.实现访问192可以172不可以

实验环境:server双网卡,172.25.254.103和192.168.0.103

desktop192.168.0.203

真机172.25.254.3

firewall-cmd --list-all //查看防火墙设定,此时eth0和eth1都在public

firewall-cmd --add-source=192.168.0.0/24 --zone=trusted 

此时服务器中trusted添加了192网段,真机连服务器不通,客户机器连172.25.254.103不通,

客户机连192.168.0.103通

清理浏览器缓存ctrl+shift+delete

5.将http的80接口改为8080

vim /etc/httpd/conf/httpd.conf 

 42 Listen 8080

vim /usr/lib/firewalld/services/http.xml

  5   <port protocol="tcp" port="8080"/>

systemctl restart httpd.service 

firewall-cmd --remove-source=192.168.0.0/24 --zone=trusted

firewall-cmd --list-all

firewall-cmd --complete-reload完全重启,包括正在运行的



6.server的添加与设置

vim /usr/lib/firewalld/services/http.xml //将8080端口还原成默认

  5   <port protocol="tcp" port="80"/>

firewall-cmd --zone=public --add-service=http

systemctl restart httpd.service 

systemctl restart firewalld.servic

此时无法连接8080,可连接80

[root@server103 ~]# vim /etc/httpd/conf/httpd.conf

 42 Listen 80

firewall-cmd --zone=public --add-port=8080/tcp

此时可以连接80与8080

 

firewall-cmd --permanent  --remove-service=ssh //永久删除ssh服务,重启动后生效

firewall-cmd --add-source=172.25.254.3 --zone=trusted

firewall-cmd --reload

firewall-cmd --list-all

此时无法通过客户机192.168.0.203通过ssh服务连接192.168.0.103,

若正在连接中则中断连接,无提示

7.firewall的类iptables高级策略添加

firewall-cmd --list-all

firewall-cmd --get-active-zones 

firewall-cmd --direct --get-all-rules //查看所有规则

firewall-cmd --direct --add-rule ipv4 filter INPUT 0 -s 192.168.0.203 -p tcp --dport 80 -j REJECT ////添加规则(192无法登录)

success

usage: --direct --add-rule { ipv4 | ipv6 | eb } <table> <chain> <priority> <args> //规则格式

此时desktop192.168.0.203打开firefox访问192.168.0.103显示无法访问

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

ipv4 filter INPUT 0 -s 192.168.0.203 -p tcp --dport 80 -j REJECT



netstat -antlupe | grep httpd //查看http服务接口

vim /etc/httpd/conf/httpd.conf  //还原80接口

 42 Listen 80

systemctl restart httpd.service 

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

firewall-cmd --direct --remove-rule ipv4 filter INPUT 0 -s 192.168.0.203 -p tcp --dport 80 -j REJECT //删除策略

此时desktop192.168.0.203打开firefox访问192.168.0.103可以成功

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

firewall-cmd --direct --add-rule ipv4 filter INPUT 0 ! -s 192.168.0.203 -p tcp --dport 80 -j REJECT //添加非192.168.0.203不能登陆的策略

8.端口转发
在服务端

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

firewall-cmd --permanent --add-masquerade

[root@server103 ~]# firewall-cmd --permanent \

> --zone=public \

> --add-forward-port=port=22:proto=tcp:toport=22:toaddr=172.25.254.9

success        //设置地址转换

firewall-cmd --reload

firewall-cmd --list-all

[kiosk@foundation3 Desktop]$ ssh root@172.25.254.103    //真机连接检验

这样用192.168.0.203  ssh root@192.168.0.103 -X,连上后ifconfig查看ip是9,成功



9.地址伪装

firewall-cmd --permanent --remove-masquerade //关闭伪装

firewall-cmd --permanent \    //还原上步操作

> --zone=public \

> --remove-forward-port=port=22:proto=tcp:toport=22:toaddr=172.25.254.3

firewall-cmd --add-rich-rule='rule family=ipv4 masquerade'  //地址伪装

(伪装成中转站地址,原来只能ping不能ssh,设定这个就能ssh了,并且产生伪装)

用192.168.0.203 ssh root@172.25.254.3 可以连上,并且w查看是中转站ip
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: