现在的位置: 首页 > 操作系统 > 正文

Linux添加防火墙、iptables的安装和配置

2020年02月11日 操作系统 ⁄ 共 2299字 ⁄ 字号 评论关闭

  规则(rules)其实就是网络管理员预定义的条件,规则一般的定义为“如果数据包头符合这样的条件,就这样处理这个数据包”。规则存储在内核空间的信息 包过滤表中,这些规则分别指定了源地址、目的地址、传输协议(如TCP、UDP、ICMP)和服务类型(如HTTP、FTP和SMTP)等。当数据包与规 则匹配时,iptables就根据规则所定义的方法来处理这些数据包,如放行(accept)、拒绝(reject)和丢弃(drop)等。配置防火墙的 主要工作就是添加、修改和删除这些规则。

  规则链:

  1.INPUT   ——进来的数据包应用此规则链中的策略。

  2.OUTPUT   ——外出的数据包应用此规则链中的策略。

  3.FORWARD  ——转发数据包时应用此规则链中的策略。

  4.PREROUTING ——对数据包作路由选择前应用此链中的规则。

  (记住!所有的数据包进来的时侯都先由这个链处理)。

  5.POSTROUTING ——对数据包作路由选择后应用此链中的规则。

  (所有的数据包出来的时侯都先由这个链处理)。

  -A 在指定链的末尾添加(append)一条新的规则。

  -D 删除(delete)指定链中的某一条规则,可以按规则序号和内容删除。

  -I 在指定链中插入(insert)一条新的规则,默认在第一行添加。

  -R 修改、替换(replace)指定链中的某一条规则,可以按规则序号和内容替换。

  -L 列出(list)指定链中所有的规则进行查看。

  -E 重命名用户定义的链,不改变链本身。

  -F 清空(flush)。

  -N 新建(new-chain)一条用户自己定义的规则链。

  -X 删除指定表中用户自定义的规则链(delete-chain)。

  -P 设置指定链的默认策略(policy)。

  -Z 将所有表的所有链的字节和数据包计数器清零。

  -n 使用数字形式(numeric)显示输出结果。

  -v 查看规则表详细信息(verbose)的信息。

  -V 查看版本(version)。

  -h 获取帮助(help)。

  规则表之间的优先顺序:

  Raw——mangle——nat——filter

  规则链之间的优先顺序(分三种情况):

  第一种情况:入站数据流向

  从外界到达防火墙的数据包,先被PREROUTING规则链处理(是否修改数据包地址等),之后会进行路由选择(判断该数据包应该发往何处),如果数据包 的目标主机是防火墙本机(比如说Internet用户访问防火墙主机中的web服务器的数据包),那么内核将其传给INPUT链进行处理(决定是否允许通 过等),通过以后再交给系统上层的应用程序(比如Apache服务器)进行响应。

  第二冲情况:转发数据流向

  来自外界的数据包到达防火墙后,首先被PREROUTING规则链处理,之后会进行路由选择,如果数据包的目标地址是其它外部地址(比如局域网用户通过网 关访问QQ站点的数据包),则内核将其传递给FORWARD链进行处理(是否转发或拦截),然后再交给POSTROUTING规则链(是否修改数据包的地 址等)进行处理。

  第三种情况:出站数据流向

  防火墙本机向外部地址发送的数据包(比如在防火墙主机中测试公网DNS服务器时),首先被OUTPUT规则链处理,之后进行路由选择,然后传递给POSTROUTING规则链(是否修改数据包的地址等)进行处理。

  iptables 的安装与配置

  由于centos7默认是使用firewall作为防火墙,下面介绍如何将系统的防火墙设置为iptables。

  #停止firewall

  systemctl stop firewall.service

  #禁止firewall开机启动

  systemctl disable firewall.service

  #安装iptables

  yum install iptables-services

  #编辑防火墙文件 (建议都在配置文件配置,不要命令配置)

  vi /etc/sysconfig/iptables

  #添加80和3306端口 等等(自己配置)

  -A INPUT -m state –state NEW -m tcp -p tcp –dport 80 -j ACCEPT    #80端口开放

  -A INPUT -m state –state NEW -m tcp -p tcp –dport 3306 -j ACCEPT    #3306端口开放

  -I INPUT -s 113.106.93.110 -p tcp --dport 8089 -j DROP    #禁止指定IP访问 8089

  -I INPUT -s 113.106.93.110 -p tcp --dport 8080 -j ACCEPT    #开放固定ipIP访问 8080

  #重启防火墙使配置文件生效

  systemctl restart iptables.service

  #设置iptables防火墙为开机启动项

  systemctl enable iptables.service

  service iptables start #启动服务

  service iptables stop   #停止服务

  service iptables restart  #重启服务

  关闭SELINUX

  vi /etc/selinux/config

  #注释以下配置

  SELINUX=enforcing

  SELINUXTYPE=targeted

  #增加以下配置

  SELINUX=disabled

  #使配置立即生效

  setenforce 0

  查询是否配置好了端口号

  /sbin/iptables -L -n

抱歉!评论已关闭.