欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

Linux的防火墙firewalld

最编程 2024-08-11 15:41:03
...

一.firewalld

        动态防火墙后台程序提供了一个动态管理的防火墙,用以支持网络“zone”,以分配对一个网络及其相关链接和界面一定程度上的信任。它具备对IPV4和 IPV6防火墙设置的支持。它支持以太网桥,并有分离运行时间和永久性配置选择。它还具备一个通向服务或者应用程序以直接增加防火墙规则的接口。

        系统提供了图像化的配置工具firewall-config、system-config-firewall,提供命令行客户端firewall- cmd,用于配置firewalld永久性运行时间的改变:它依次用iptables工具与执行数据包筛选的内核中的Netfilter通信。


firewalld和iptables service之间最本质的不同是:

        1)iptables service在/etc/sysconfig/iptables中存储配置,而firewalld将配置存储在/usr/lib/firewalld/和 /etc/firewalld/ 中的各种XML文件里。

        2)使用iptables service每一个单独更改意味着清楚所有旧的规则和从 /etc/sysconfig/iptables 里读取所有新的规则,然而使用firewalld却不会创建任何新的规则;仅仅运行规则中的不同之处。此,firewalld可以在运行时间内,改变设置而不丢失现行连接。


二.配置参数

1.firewalld的网络“zone”


firewall-cmd --get-zones                                   查看可用区域

firewall-cmd --state                                           查看firewalld的状态

firewall-cmd --get-default-zone                       查看当前默认活动的区域

firewall-cmd --get-default-zone=trusted         修改默认区域为trusted,可以接受任何连接


2.firewall-cmd --get-default-zone=trusted         修改默认区域为trusted,可以接受任何连接



4.firewall-cmd --list-all                      查看防火墙策略

   firewall-cmd --add-service=http   防火墙添加通过http服务

   firewall-cmd --reload                      重新加载


5.使用配置文件添加防火墙通过服务


编辑/etc/firewalld/zones/public.xml


6.设置防火墙通过8080端口

测试前修改http默认访问端口,无法浏览


添加8080端口后可以访问



7.允许172.25.254.228主机访问任何连接,将172.25.254.228添加到trusted域中


8.删除添加的服务


三.Direct Rules

        通过firewall-cmd工具,可以使用  --direct选项在运行时间里增加或者移除链。如果不熟悉iptables,使用直接接口非常危险,因为泥坑无意间导致防火墙被入侵。直接端口模式,适用于服务或者程序,以便在运行时间内增加特定的防火墙规则。直接端口模式添加的规则优先应用。


1.firewall-cmd --permanent --direct --add-rule ipv4 filter INPUT 0 ! -s 172.25.254.228 -p tcp --dport 22 -j ACCEPT    

除了228主机22端口不能访问,其他主机22端口都可访问




测试228主机,显示无法访问,别的主机可以



2.firewall-cmd --permanent --direct --add-rule ipv4 filter INPUT 1 -s 172.25.254.228 -p tcp --dport 80 -j REJECT    
除了228主机80端口不能访问,其他主机80端口都可访问




3.删除第二条策略




四.不同网卡接口的访问设置


1.eth0和eth1都属于public域


2.将eth1网口从public域调整到trusted域中


3.与eth0连接的网段无法访问服务,因为有public域的限制


4.与eth1连接的网段可以访问服务,因为eth1在trusted域




五.Rich Rules

        通过“rich language”语法,可以用比直接接口方式更易理解的方法建立复杂防火墙规则。此外,还能永久保留设置。这种语言使用关键词值,是iptables工具的抽象表示,这种语言可以用来配置分区,也仍然支持现行的配置方式。


环境配置

服务端两块网卡   eth0 172.25.254.128

                               eth1 172.25.0.128

客户端IP 172.25.0.228

真机         172.25.254.28


服务端firewall-cmd --add-masqueeade                        开启地址伪装


1.端口转换 真机到客户端

将从172.25.254.28的22端口 伪装为172.25.0.228的22端口



测试,从真机进入到服务端128,显示的网卡为172.25.0.228


2.地址伪装   客户机到真机

将从客户传过来的数据伪装为172.25.254.128端口的源数据



客户端登陆真机,显示域名为www.westos.com服务端128主机,伪装成功



六.允许非系统端口的服务通过防火墙(httpd服务修改端口为例)


1.防火墙通过http


2.修改http的端口为6666


3.添加系统http默认端口

由于修改后无法重启服务

原因是系统默认允许的http端口没有6666

添加6666端口到http的默认端口列表中

重启服务成功


4.访问http6666端口成功







      本文转自一百个小排 51CTO博客,原文链接:http://blog.51cto.com/anfishr/1957494,如需转载请自行联系原作者