linux-redhat7-防火墙配置管理

##########
##防火墙管理
##########

===================
火墙的安装与基本操作
===================
  yum install firewalld -y      ##安装防火墙软件
  systemctl start firewalld     ##开启防火墙
  systemctl stop firewalld      ##关闭防火墙
  systemctl status firewalld    ##查看防火墙状态
  systemctl restart firewalld   ##重启防火墙
  systemctl enable firewalld    ##开机启动防火墙
  systemctl disable firewalld   ##开机不启动防火墙

=================
图形界面配置防火墙
=================
  firewall-config    ##打开图形界面,自行配置


区域:

  drop(丢弃)

       任何接收的网络数据包都被丢弃,没有任何回复,仅能有发送出去的网络连接

  block(限制)

       任何接收的网络连接都被 IPv4 的 icmp-host-prohibited 信息和 IPv6 的 icmp6-adm-prohibited 信息所拒绝

  public(公共)

       在公共区域里使用,不能呢个相信网络内的其他计算机不会对你的计算机造成危害,只能接收经过选取的连接

  external(外部)
       特别是为路由器启用了伪装功能的外部网。您不能信任来自网络的其他计算,不能相信它们不会对您的计算机造成危害,只能接收经过选择的连接。

  dmz(非军事区)
       用于您的非军事区内的电脑,此区域内可公开访问,可以有限地进入您的内部网络,仅仅接收经过选择的连接。

  work(工作)
       用于工作区。您可以基本相信网络内的其他电脑不会危害您的电脑。仅仅接收经过选择的连接。

  home(家庭)
       用于家庭网络。您可以基本信任网络内的其他计算机不会危害您的计算机。仅仅接收经过选择的连接。

  internal(内部)
       用于内部网络。您可以基本上信任网络内的其他计算机不会威胁您的计算机。仅仅接受经过选择的连接。

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

==========
iptables
==========

       表是包含处理特定类型信息包的规则和链的信息包过滤表,iptables内置了三种表:filter、nat、mangle,分别用于实现包过滤,网络地址转换和包重构功能。

  1>filter表包含了INPUT链(处理进入的数据包)、FORWORD链(处理转发的数据包)和OUPUT链(处理本地生成的数据包)在filter表中只允许对数据包进行DROP或ACCEPT操作,而无法对数据包进行更改
  2>nat表用于网络地址转换做过NAT操作的数据包的地址就被改变了,当然这种改变是根据规则进行的。
    OUTPUT链
    PREROUTING链的作用是在包刚刚到达防火墙时改变他的目的地址(如果需要的话)。OUTPUT链改变本地产生的包的目的地址
    POSTROUTING链在包要离开防火墙之前改变其源地址,
      操作:
    DNAT操作改变的时目的地址,以使包能重路由到某台主机
    SNAT改变包的源地址
  3>mangle表有五个内建的链:PREROUTING  POSTROUTING  OUTPUT  INPUT  FORWORD
    mangle表不能做任何的NAT,他只是改变数据包的TTL  TOS  MARK 而不是其源  目的地址

===================
命令行接口配置防火墙
===================

  firewall-cmd --state             #查看firewalld的状态
  firewall-cmd --get-active-zones  #查看当前活动的区域,并附带一个目前分配给它们的接口列表
  firewall-cmd --get-default-zone  #查看默认区域
  firewall-cmd --get-zones         #查看所有可用区域
  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=dmz
   设置网络地址到指定的区域:
      firewall-cmd --permanent --zone=internal --add-source=172.25.0.0/24
      (--permanent参数表示永久生效设置,如果没有指定--zone参数,那么会加入默认区域)
    删除指定区域中的网路地址:
      firewall-cmd --permanent --zone=internal --remove-source=172.25.0.0/24
    添加、改变、删除网络接口:
      firewall-cmd --permanent --zone=internal --add-interface=eth0
      firewall-cmd --permanent --zone=internal --change-interface=eth0
      firewall-cmd --permanent --zone=internal --remove-interface=eth0
    添加、删除服务:
      firewall-cmd --permanent --zone=public --add-service=smtp
      firewall-cmd --permanent --zone=public --remove-service=smtp

    列出、添加、删除端口:
      firewall-cmd --zone=public --list-ports
      firewall-cmd --permanent --zone=public --add-port=8080/tcp
      firewall-cmd --permanent --zone=public --remove-port=8080/tcp
    重载防火墙:(当进行更改后,就要重新加载防火墙)
      firewall-cmd --reload
     (注意:这并不会中断已经建立的连接,如果打算中断,可以使用 --complete-reload选项)
 firewalld的规则被保存在/etc/firewalld目录下的文件中,你也可以直接编辑这些文件达到
  配置防火墙的目的。/usr/lib/firewalld目录下的内容是不可以被编辑的,但可以用做默认模板

  **************
 Direct Rules
  **************
   通过 firewall-cmd 工具,可以使用 --direct 选项在运行时间里增加或者移除链。
   如果不熟悉 iptables ,使用直接接口非常危险,因为您可能无意间导致防火墙被入侵。
   直接端口模式适用于服务或者程序,以便在运行时间内增加特定的防火墙规则。
   直接端口模式添加的规则优先应用。
    firewall-cmd --direct  --add-rule  ipv4 filter INPUT 1 -p tcp --dport=80 -s 172.25.254.15 -j  REJECT        ##添加规则   (-p 协议类型   -s 源ip地址  -j 动作)   此处是拒绝此ip对80端口的INPUT请求
    firewall-cmd --direct  --remove-rule ipv4 filter INPUT 1 -p tcp --dport=80 -s 172.25.254.15 -j  REJECT     ##删除规则
    firewall-cmd --direct --get-all-rules     ##列出规则



=============
伪装和端口转发
=============
  伪装:
   firewall-cmd --permanent --zone=< ZONE > --add-masquerade
   firewall-cmd --permanent --zone=< ZONE > --add-rich-rule='rule family=ipv4 source addres=172.25.0.0/24 masquerade'
  端口转发:
   firewall-cmd --permanent --zone=< ZONE > --add-forward-port=  port=80:proto=tcp:toport=8080:toaddr=172.25.12.10
   firewall-cmd --permanent --zone=< ZONE > --add-rich-rule='rule family=ipv4 source address=172.25.0.0/24 forward-port port=80 protocol=tcp to-port=8080'


===============
管理selinux标签
===============

  默认情况下很多服务的很多端口都是被占用的如http服务的默认端口为80,理论上这个端口可以被更改为任意值,但是有很多端口都被占用,无法更改,哪怕你与外网不通的情况下! 这个与原因就是防火墙的selinux标签里有记录这些被占用端口的信息,那我们可以对这些信息进行更改,以达到我们更改想要端口的目的.

  列出端口标签:
   semanage port -l
  添加端口标签:
   semanage port -a -t http_port_t -p tcp 82
  删除端口标签:
   semanage port -d -t http_port_t -p tcp 82




  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值