您的位置:首页 > 其它

firewalld与iptables对防火墙策略的管理

2017-12-06 19:34 399 查看
一.firewalld防火墙

1.firewalld的启用

   yum install firewalld firewall-config -y

   systemctl start firewalld

   systemctl enable firewalld



2.firewalld的图形配置

  firewall-config

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

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

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

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

  public(公共)                            ##在公共区域内使用,仅接受ssh或dhcpv6-client服务连接,为firewalld的默认区域

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

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

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

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

注意:  runtime是临时更改,即改即生效    permanent是永久更改,需要重新加载火墙并重启



3.firewalld的基本命令

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

  firewall-cmd --get-active-zones              ##正在使用的区域

  firewall-cmd --get-zones                         ##列出所有的域

  firewall-cmd --list-all --zone=public         ##列出某个指定的域

  firewall-cmd --get-default-zone               ##列出默认的域

  firewall-cmd --set-default-zone=dmz      ##设置默认的域为dmz

  firewall-cmd --get-services                     ##列出所有的服务

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



4.firewalld的配置文件

  vim /usr/lib/firewalld/services/http.xml

  vim /etc/firewalld/zones/public.xml

5.firewalld配置策略

  firewall-cmd --permanent --add-source=172.25.0.0/24 --zone=internal   ##给指定的网段一个内部网络的域

  firewall-cmd --permanent --remove-source=172.25.0.0/24                      ##删除指定的网段

  firewall-cmd --permanent --zone=internal --remove-interface=eth1         ##删除网卡1上的内部网络域

  firewall-cmd --permanent --add-interface=eth1 --zone=internal               ##给网卡1添加一个内部网络域

  firewall-cmd --permanent --change-interface=eth1 --zone=trusted          ##改变网卡1上的域为trusted

  firewall-cmd --permanent --remove-service=http                                      ##删除aphache服务

  firewall-cmd --permanent --remove-port=8080/tcp                                   ##删除端口号为8080的服务

  firewall-cmd --reload                                                                                 ##firewall的重新加载

  firewall-cmd --permanent --add-service=ftp --zone=public                       ##在public域上添加ftp服务

  firewall-cmd --permanent --remove-service=ftp --zone=public                 ##删除public域上的ftp服务

  firewall-cmd --list-ports --zone=public                                                      ##列出public域上的所有端口

  firewall-cmd --add-port=8080/tcp --zone=public                                      ##在public域上添加端口号是8080的服务

  lsmod | grep ftp

  --permanent参数表示永久生效,需要重启服务,如果没有指定--zone的参数,那么会加入默认区域



6.通过firewall-cmd工具,可以使用--direct选项在运行时间里增加或者移除链

  firewall-cmd --direct --get-all-rules                                                           ##查看firewall配置的规则

  firewall-cmd --direct --add-rule ipv4 filter  INPUT 1 -s 172.25.254.42 -p tcp --dport 22 -j REJECT

  ##来自于172.25.254.42这台主机上的ssh服务是被拒绝的

## filter: 本地数据的限制  -s:源地址 -p:协议 -d:目的地址 --dport:端口  -j:动作(REJECT/ACCERT/DROP)



测试:在172.25.254.42主机上



 端口的转发

  firewall-cmd --permanent --add-forward-port=port=80:proto=tcp:toport=80:toaddr=172.25.254.42 --zone=*

  

二.iptables防火墙

 如果不熟悉ipables,使用直接接口非常危险,因为可能导致无意间防火墙被入侵,直接端口模式适用于服务或者程序,以便在运行时间内增加特定的防火墙规则,直接端口模式添加的规则优先应用。

 iptables防火墙通过审查经过的每一个数据包,判断它是否有相匹配的过滤规则,根据规则的先后顺序一一比较,直到满足其中的一条规则为止,然后依据控制机制做出相应的动作,如果都不满足则将数据包丢弃,从而保护网络的安全。

1.iptables基础

 规则(rules):网络管理员预定义的条件(如果数据包头符合这样的条件,就这样处理这个数据包),规则存储在  内核空间的信息包过滤表中,指定了源地址,目的地址,传输协议和服务类型等

  链(chains):是数据包传输的路径,每一条链其实都是众多规则中的一个检查清单,每一条链中可以有一条或数    条规则。

  表(tables):filter表,实现包过滤 ,对于防火墙而言,主要利用在filter表中指定的一系列规则来实现对数据包进行   过滤的操作;    nat表,实现网络地址的转换,iptables就是使用该表实现共享上网的功能;  mangle表,实现包重构的功能。

2.iptables的基本策略配置

   iptables -F                                                                             ##刷新iptables策略

   service iptables save                                                            ##保存策略

   iptables -nL                                                                           ##列出策略



   iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT ##添加状态为related,established为允许

   iptables -A INPUT -m state --state NEW -i lo -j ACCEPT                            ##添加本机的为允许

   iptables -A INPUT -m state --state NEW -p tcp --dport 22 -j ACCEPT        ##添加端口号22的允许

   iptables -A INPUT -j REJECT                                                                      ##除过以上其余都拒绝



3.nat 转换

  在客户机中设置自己的网关为服务路由上的与自己同一网段上的





  测试;可以ping通网关,但不能ping通另外一个网卡的ip



  在双网卡机中做nat转换,可以使不同网段的主机可以转到它上面

  iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source 172.25.254.142  ##源地址转换为142这台主机

  sysctl -a | grep ip_forward                  ##查看内核路由功能是否开启  

  vim /etc/sysctl.conf

  net.ipv4.ip_forward=1                         ##使在一个主机上的两个网卡可以相互通信

  sysctl -p                                               ##让上述功能生效

  iptables -t nat -A PREROUTING -i eth0 -d 172.25.254.142 -j DNAT --to-dest 172.25.42.1 ##目的地址转换为.1主机

  iptables -nL -t nat





测试:在客户机中测ping 不同网段的ip



 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: