linux—火墙之firewalld

动态防火墙后台程序 FireWalld 提供了一个动态管理的防火墙,用以支持网络的zones,以分配对一个网络及相关连接和界面一定程度的信任;它支持以太网桥,并有分离运行时间和永久行配置选择。

一、火墙的一般策略

1、firewalld的所有网络区

1、trusted(信任) 可接受所有的网络连接
home(家庭) 用于家庭网络,仅接受ssh、mdns、ipp-cliebt、samba-client、或dhcpv6-client服务连接
internal(内部) 用于内部网络,仅接受ssh、mdns、ipp-cliebt、samba-client、或dhcpv6-client服务连接
work(工作) 用于工作区 仅接受ssh、ipp-cliebt、或dhcpv6-client服务连接
public(公共) 在公共区域内使用仅接受ssh、ipp-cliebt或dhcpv6-client服务连接 是firewalld的默认域
external(外部) 出去的ipv4网络连接通过此区域伪装和转发,仅接受ssh服务连接
dmz(非军事区) 仅接受ssh服务连接
block(限制) 剧界所有连接
drop(丢弃) 任何接受的网络数据包都被丢弃,没有任何回复

2、firewalld的查看

firewall-config     开启图形化firewalld  
systemctl start firewalld.service   打开防火墙
firewall-cmd --state     查看防火墙状态
firewall-cmd --get-active-zones    查看当前所在的域
firewall-cmd --get-default-zone 	  查看firewalld的默认域
firewall-cmd --get-zones 	  显示firewalld的所有域
firewall-cmd --zone=public --list-all 显示public域的所有信息
firewall-cmd --get-services 	显示firewalld支持的服务
firewall-cmd --list-all-zones 	显示所有域的所有信息
firewall-cmd --set-default-zone=dmz   修改默认域

3、接口的添加和删除

  1  firewall-cmd --permanent  --remove-interface=eth1    从当前域删除eth1接口
    3  firewall-cmd --permanent  --add-interface=eth1       添加eth1接口到当前域
    4  firewall-cmd --change-interface=eth1   		    临时添加

4、服务的添加和删除

firewall-cmd --get-services        查看可以直接通过服务名添加的服务
firewall-cmd --remove-service=http       在当前域删除http服务
firewall-cmd --add-service=http		在当前域添加http

5、firewalld接口的添加和修改

当服务的接口修改后,firewalld也要添加服务修改后的接口

firewall-cmd --add-port=8080/tcp  添加接口
firewall-cmd --list-ports     查看接口
firewall-cmd --remove-port=8080/tcp     删除接口

6、重新加载firewalld

[root@localhost services]# firewall-cmd --reload    重新加载firewalld  但不终端当前服务
[root@localhost services]# firewall-cmd --complete-reload 重新加载firewaalld,并中断当前

7、火墙域的修改

这里写图片描述

8、火墙的图形化界面

这里写图片描述

二、firewalld高级策略

1、三大表五大链

filter:经过本机内核的数据,input,forward,ouput

nat:不经过本机内核的数据,input,ouput,prerouting,postrouting

mangle:所有经过主机上的数据,prerouting,input,forward,ouput,postrouting
[root@localhost ~]# firewall-cmd --direct --add-rule ipv4 filter INPUT 2 -p tcp --dport 80 -s 172.25.254.16 -j ACCEPT 允许16客户端通过http(80)接口访问,其他客户按照默认规则访问

2、地址转化和伪装

firewall-cmd --add-forward-port=port=22:proto=tcp:toport=22:toaddr=172.25.254.5
地址转化,客户通过ssh(22) 通过访问,转化到172.25.254.5(转化前需要开伪装)

firewall-cmd --add-masquerade   开启伪装
[root@localhost ~]# firewall-cmd --list-all
public (default, active)
  interfaces: eth0 eth1
  sources: 
  services: dhcpv6-client ssh
  ports: 
  masquerade: yes
  forward-ports: port=22:proto=tcp:toport=22:toaddr=172.25.254.5
  icmp-blocks: 
  rich rules: 

3、路由设置

当服务端有两个网卡的时候,并且这两个网卡在不同的网关,开启地址伪装后,客户端设置ip网关设置和eth1相同,可以ping通eth0
1、服务端

[root@localhost ~]# ifconfig 
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.25.254.102  netmask 255.255.255.0  broadcast 172.25.254.255
        inet6 fe80::5054:ff:fe00:20a  prefixlen 64  scopeid 0x20<link>
        ether 52:54:00:00:02:0a  txqueuelen 1000  (Ethernet)
        RX packets 521891  bytes 4032429503 (3.7 GiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 515558  bytes 4039274258 (3.7 GiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.25.0.202  netmask 255.255.255.0  broadcast 172.25.0.255
        inet6 fe80::5054:ff:fe47:d23d  prefixlen 64  scopeid 0x20<link>
        ether 52:54:00:47:d2:3d  txqueuelen 1000  (Ethernet)
        RX packets 8172  bytes 928147 (906.3 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 97  bytes 12909 (12.6 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
[root@localhost ~]# firewall-cmd --list-all
public (default, active)
  interfaces: eth0 eth1
  sources: 
  services: dhcpv6-client ssh
  ports: 
  masquerade: yes
  forward-ports: port=22:proto=tcp:toport=22:toaddr=172.25.254.5
  icmp-blocks: 
  rich rules: 

2,在客户端
设置网卡配置文件

vim /etc/sysconfig/network-scripts/ifcfg-eth0
HWADDR=52:54:00:00:02:0B
TYPE=Ethernet
BOOTPROTO=none
IPADDR=172.25.0.102
GATEWAY=172.25.0.202  #########设置网关为服务端eth1的ip
PREFIX=24
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
NAME=eth0
UUID=03569245-7857-43fe-8891-54535e643a7a
ONBOOT=yes

重启后ping

[root@localhost ~]# ping 172.25.254.102
PING 172.25.254.102 (172.25.254.102) 56(84) bytes of data.
64 bytes from 172.25.254.102: icmp_seq=1 ttl=64 time=0.267 ms
64 bytes from 172.25.254.102: icmp_seq=2 ttl=64 time=0.284 ms
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值