一、firewalld的认识
1、firewalld提供了支持网络/防火墙区域(zone)定义网络链接以及接口安全等级的动态防火墙管理工具。
2、firewalld将网卡分为不同的区域,这些区域的区别在于对待来访的用户及传输的数据包的默认动作的不同,通过制定一些安全策略从而保证系统在被访问或传输数据时的安全。
二、firewalld区域(zones)
firewalld分为九个区域,含义如下:
·trust(信任):可接受所有的网络连接;
·home(家庭):用于家庭网络,仅接受ssh、mdns、ipp-client、samba-client或dhcpv6-client服务连接;
·internal(内部):用于内部网络,仅接受ssh、ipp-client、mdns、samba-client或dhcpv6-client服务连接;
·work(工作区):用于工作区,仅接受ssh、ipp-client、dhcpv6-client服务连接;
·public(公共):用于公共区域的使用,仅接受ssh、dhcpv6-client服务,为firewalld的默认区域;
·external(外部区域):出去的ipv4的网络连接经过此区域的伪装和转发,只支持ssh服务;
·dmz(非军事区):仅接受ssh服务;
·block(限制):拒绝所有的网络服务;
·drop(丢弃):任何访问的网络数据包都会被丢弃,没有任何回应。
三、firewalld的控制命令
1、firewalld图形管理工具:firewall-config
如上左图显示的是firewalld的九个区域,右边是各区域内对各个服务的限制;
如上右图是所做设定的生效时间,runtime表示立即生效,但重新启动或加载服务后设定消失;permanent是永久设定生效,设定后需要重启服务!!!
临时设定:
临时设定即勾选该服务后立即将该服务添加到所对应的区域内,但重启服务后设定消失:
永久设定:
永久设定时勾选后并不能立即生效,必须重启服务才能生效:
2、firewalld控制命令:
firewall-cmd --list-all:查看默认区域的设定信息
firewall-cmd --state:查看firewalld的状态
firewall-cmd --get-active-zones:查看被激活的空间(即添加网卡的空间)
firewall-cmd --get-default-zone:查看当前默认空间
firewall-cmd --get-zones:查看firewalld所有的空间
firewall-cmd --zone=public --list-all:查看指定空间的信息
firewall-cmd --get-services:查看可通过firewalld进行设定的系统中的服务
firewall-cmd --llist-all-zones:查看所有空间的所有设定
firewall-cmd --set-default-zone=空间名:设定默认空间
四、firewalld策略的设定
1、firewall-cmd --add-source=172.25.254.25 --zone=trusted:设定某个主机通过某个空间访问该主机
上图将ip为172.25.254.25的主机设置为通过trusted区域连接该主机,该区域支持所有服务(包括ssh)
2、firewall-cmd --remove-source=172.25.254.25 --zone=trusted:取消设定某个主机通过某个区域访问该主机
3、firewall-cmd --zone=publice --add-service=http:给某个空间添加某个服务
4、firewall-cmd --zone=public --remove-service=http:将某个空间的某个服务移除
5、firewall-cmd --zone=public --add-port=80/tcp :给某个空间添加一个端口
上图给公共区域添加了一个80端口,该端口为http服务端口,则其他主机可通过http访问该主机:
6、firewall-cmd --zone=public --remove-port=80/tcp:关闭某空间上开放的某个端口
将公共区域的80端口关闭后则无法通过http进行访问:
在linux中想要保证主机的绝对安全时光以上的策略是远远不够的,还需要一些设定更为复杂、更加具体、更加安全的设定,即直接选项!!
该条设定中各个参数的含义:
--direct:表示该设定为直接选项
--add-rule:表示添加一个新的策略
filter:firewalld将策略全部以表格的形式存放,当接收数据包时按列表读取策略以获取对该数据包的动作,而filter便是firewalld表格中的一个;
INPUT:在各个表格中又有链接,即chains,INPUT是filter表格的一个链接
1:表示将该策略写在第一行;
-s:表示对哪个主机进行设定的参数,其后跟主机IP
-p:表示访问的协议设定;
--dport :表示针对于哪个接口的设定
-j:表示设定策略的动作,REJECT表示拒绝,ACCEPT表示接受,DROP表示丢弃
由于该条设定表示拒绝IP为172.25.254.25的主机访问22端口(即ssh服务),所以172.25.254.25主机无法ssh远程连接该主机
查看所有直接选项的策略:
删除该条策略:
打开firewalld的伪装:
访问地址的转发设定:即当其他主机通过某个端口访问该主机时,将其转移至其他主机上!!
该策略表示当其他主机通过22端口访问本主机时,让他们去访问IP为172.25.254.225的主机
为了更加明显的显示该策略的作用,先在172.25.254.225的主机上建立一个辨识文件
然后再通过其他主机访问本主机:
给某个空间添加一个网卡:
表示其他主机通过该网卡上的IP访问该主机时,通过该区域访问:
测试:通过172.25.25.225ip访问时被拒绝