防火墙的部署

yum install firewalld firewall-config

1.火墙的启动

systemctl stop iptables.service

systemctl disable iptables.service

systemctl start firewalld.service

systemctl enable firewalld.service

2.firewall管理

<1>firewall-cmd --state   #查看火墙状态

running

<2>firewall-cmd --get-active-zones  #查看火墙当前生效的域

<3> firewall-cmd --get-default-zone   #查看火墙控制的域,默认为public

<4>firewall-cmd --get-zones   #列出所有可用域


<5> firewall-cmd --zone=public --list-all  #列出public域的所有信息

 

<6>firewall-cmd --get-services     #列出可以控制的协议名称

<7>firewall-cmd --list-all-zones     #列出所有域的状态


<7>firewall-cmd --set-default-zone=dmz      #仅接受ssh服务连接

success

<8>firewall-cmd --set-default-zone=trusted

success

<9> firewall-cmd --list-all  #列出所有域的规则

trusted (default, active)

  interfaces: eth0

  sources:

  services:

  ports:

  masquerade: no

  forward-ports:

  icmp-blocks:

  rich rules:

3.ip和网络接口的设定

添加eth1网卡

systemctl restart firewalld

<1>firewall-cmd --list-all --zone=trusted   

<2>firewall-cmd --add-source=172.25.254.78 --zone=trusted   #添加此主机ip为信任

  yum install httpd -y

  systemctl start httpd

  echo westos > /var/www/html/index.html

测试,在78这台主机上

添加之前:172.25.254.238   #什么都看不到

添加之后:172.25.254.238   #可以看到文件内容

<3>firewall-cmd --remove-source=172.25.254.78      #移除此主机ip

  网卡所在域的更改,添加与删除

<1>firewall-cmd --list-interfaces    #查看端口

<2>firewall-cmd --get-zone-of-interface=eth1    #查看eth1所在的域

<3>firewall-cmd --get-zone-of-interface=eth0    #查看eth0所在的域

<4>firewall-cmd --change-interface=eth0 --zone=trusted   #改变eth0所在的域为trusted

<5>firewall-cmd --get-zone-of-interface=eth0     #查看是否改变

<6>firewall-cmd --remove-interface=eth0 --zone=trusted    #从trusted域中移除eth0

<7>firewall-cmd --get-zone-of-interface=eth0            

<8>firewall-cmd --add-interface=eth0 --zone=public  #添加eth0所在的域为public

  火墙对ssh服务的控制  

<1>firewall-cmd --remove-service=ssh #临时移除ssh服务,终端连接该主机之后移除ssh不会断开,打开另一个终端连接该主机时会失败

<2>firewall-cmd --reload              #重新加载,不会中断服务

<3>firewall-cmd --list-all

<4>firewall-cmd --permanent --remove-service=ssh   #永久移除

<5>firewall-cmd --reload

<6>firewall-cmd --list-all

<7>firewall-cmd --complete-reload        #重新加载,并中断当前服务

<8>firewall-cmd --permanent --add-service=ssh  #永久添加ssh服务

<9>firewall-cmd --reload

<10>firewall-cmd --list-all

  永久修改public域的配置文件

<1>firewall-cmd --add-source=172.25.254.78   #临时添加ip源,重启就会消失

<2>firewall-cmd --list-all    #查看添加成功

<3>systemctl restart firewalld    

<4>firewall-cmd --list-all   #已经消失

<5>firewall-cmd --permanent --add-source=172.25.254.78    #永久添加ip源

<6>systemctl restart firewalld

<7>firewall-cmd --list-all

4.火墙的文件管理:

<1>cd /etc/firewalld/zones/

<2>ls

<3>vim public.xml       #永久修改public域的配置文件

添加    <service name="http"/>

<4>systemctl restart firewalld

<5>firewall-cmd --list-all

修改及查看http在火墙中开启的端口

<1>firewall-cmd --add-port=8080/tcp --zone=public    #临时添加8080端口

<2>firewall-cmd --list-all

<3>cd /usr/lib/firewalld/

<4>ls

<5>cd services/

<6>vim http.xml           #查看网络当中生效的网络接口,文件里面xml代表可扩展标记语言

5.80端口打开时,任何主机都可以访问,不安全

<1>yum install httpd

<2>systemctl start httpd

此时任何主机都可以访问,这样不安全,可以通过限定主机来保证安全

<3>firewall-cmd --direct --add-rule ipv4 filter INPUT 1 -p tcp --dport 80 -s 172.25.254.38 -j ACCEPT  

--direct  #添加direct规则

 filter   #添加表

INPUT 1   #添加第一条链

-p tcp    #添加tcp协议

--dport 80#目的地端口为80

-s        #设定被允许访问的ip

-j        #要执行的动作,ACCEPT表示接受,DROP表示丢弃,不回显,REJECT表示拒绝,回显

测试:

38上:可以访问

在其他主机上:拒绝访问

2.转发(外网访问内网)

<1>firewall-cmd --permanent  --add-forward-port=port=22:proto=tcp:toport=22:toaddr=172.25.254.138  #访问本机的22端口时将自动转到172.25.254.138的22端口

<2>firewall-cmd --reload    #因为是永久添加,所以要重新加载

此时用真机连接此主机还不能转发到138这台主机上,因为masquerade服务没有开启

<4>firewall-cmd  --list-all

<5>firewall-cmd --permanent  --add-masquerade

<6>firewall-cmd --reload

此时用真机连接此主机可以转发到138这台主机上

3.伪装(内网连接外网)<火墙必须打开>

服务端设置两个网段不同的ip

eth0 172.25.254.238

eth1 172.25.0.238

<1>firewall-cmd --permanent  --add-masquerade

<2>firewall-cmd --reload

<3> sysctl -a | grep ip_forward #查看ip_forward

<4>vim /etc/sysctl.conf     #设置ip_forward=1使内部两个不同网端的ip相通

<5>sysctl -p            #使更改生效

<6>firewall-cmd --list-all

<7>firewall-cmd --permanent --add-rich-rule='rule family=ipv4 source address=172.25.0.238 masquerade'    #把ipv4发出去的数据包都伪装成172.25.0.238

<8>firewall-cmd --reload

<9>firewall-cmd --list-all

在客户端

<1>vim /etc/sysconfig/network-scripts/ifcfg-eth0

IPADDR0=172.25.254.138        #更改eth0使之与服务端的eth0网段相同

<2>route add default gw 172.25.254.238     #添加服务端网关

<3>route -n

<4>ping 172.25.0.238   #测试该机是否可以通过和网关相通的172.25.0.238连接和自己网端不通的ip

 

 


猜你喜欢

转载自blog.csdn.net/wzt888_/article/details/80603368