firewall

来源:互联网 发布:创维网络电视怎么使用 编辑:程序博客网 时间:2024/05/17 04:55

1.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可以在运行时间内,改变设置而不丢失现行连接。。


2.配置

firewall-cmd --state                                    ##产看firewalld的状态



firewall-cmd --get-active-zones                ##查看当前活动的区域,并附带一个目前分配给他们的接口列表



firewall-cmd --get-default-zone                 ##查看默认区域



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


##

trusted(信任)                       ##可接受所有的网络连接

home(家庭)                         ##用于家庭网络,仅接受ssh,mdns,ipp-client,samba-client,或dhcpv6-client服务连接

internal(内部)                      ##用于内部网络,仅接受ssh,mdns,ipp-client,samba-client,或dhcpv6-client服务连接

work(工作)                           ##用于工作区,仅接受ssh,mdns,ipp-client,dhcpv6-client服务连接

public(公共)                         ##在公共区域内使用,仅接受ssh或dhcpv6-client服务链接

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

dmz(非军事区)                     ##仅接受ssh服务连接

block(限制)                           ##拒绝所有网络连接

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


firewall-cmd --zone=public --list-all                  ##列出指定域的所有设置



firewall-cmd --get-services                       ##列出所有预设服务(这样将列出/usr/lib/firewalld/services/中的服务器名称。注意,配置文件是以服务本身命名的service-name.xml)



firewall-cmd --list-all-zones                      ##列出所有区域的设置



firewall-cmd --set-default-zone=trusted                   ##设置默认区域


测试:通过http连接配置虚拟机IP



firewall-cmd --permanent --zone=internal --add-source=172.25.254.27                     ##设置网络地址到指定区域(permanent参数表示永久生效设置,如果没有指定--zone参数,那么将会加入默认区域)

firewall-cmd --reload                      ##重新加载服务,不中断

firewall-cmd -complete--reload    ##重新加载服务,中断服务



firewall-cmd --permanent --zone=internal --remove-source=172.25.254.27                 ##删除指定域中的网络地址



firewall-cmd --add-interface=eth0 --zone=trusted                 ##添加eth0端口到trusted域


测试:连接配置主机IP

eth0:172.25.254.127



##eth1:172.25.27.10




firewall-cmd --add-service=http --zone=public                     ##添加http服务至public域



firewall-cmd --list-ports                 ##查看默认域中端口

firewall-cmd --add-port=53/tcp    ##添加53/tcp端口至默认域



firewall-cmd --remove-service=ssh --zone=public              ##将ssh服务从public域中移除



3.Direct Rules

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


firewall-cmd --direct --add-rule ipv4 filter INPUT 0 ! -s 172.25.254.60 -p tcp --dport 22 -j ACCEPT     ##除了60主机22端口不能访问,其他主机22端口都可访问


测试:IP:172.25.254.60上


#IP:172.25.254.227上



firewall-cmd --direct --get-all-rules                  ##列出规则


4.Rich Rules

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


firewall-cmd --add-masqueeade                        ##地址伪装



1)端口转换

firewall-cmd --zone=public --add-forward-port=port=22:proto=tcp:toport=22:toaddr=172.25.254.60

##端口转换为172.25.254.60



测试:ssh root@172.25.254.127,连接登入后实际为172.25.254.60主机



2)伪装

firewall-cmd --zone=public --add-rich-rule 'rule family=ipv4 source address=172.25.254.127 masquerade'



测试:不同网段可以了连接,172.25.27.11主机可PING通172.25.254.127主机