防火墙的是干什么的?

简单来说:防火墙是用来将公网(外网)和内网or自身设备隔离开来的

需要准备的东西?

  • 掌握搜索引擎技能(下面的文章只会叫你如何进行使用基本的iptables)
  • 一个大脑🧠
  • 一台运行了Linux系统的电脑
  • 掌握基本的Linux基本知识

iptables 的基本知识

常说的名词四表五链

注意:以下知识不一定100%正确,如果有错误还请指出

四表:

  1. Filter表:也是用的最多,主要用来和主机自身有关系
  2. Nat表:是对进出主机的ip或者是端口进行转发的
  3. Mangle表:修改数据包的服务类型、TTL、并且可以配置路由实现QOS
  4. Raw表:决定数据包是否被状态跟踪机制处理

五链:

  • INPUT:来进行管理入站(进来)的数据包
  • OUTPUT:进行管理出站(出去)的数据包
  • FORWARD:进行管理转发数据包
  • PREROUTING:对数据包作路由选择前应用此链中的规则(所有的数据包进来的时侯都先由这个链处理)
  • POSTROUTING:对数据包作路由选择后应用此链中的规则(所有的数据包出来的时侯都先由这个链处理)

正常我们自己的服务器只要针对filter表进行过滤即可。

四表顺序

表的执行顺序是:Raw –> Mangle –> Nat –> Filter

下面这张图是我从搜索引擎上爬过来的

iptables.png

这张图 网络A网络B 可以把变成是一个网口分开了:从A网口进来数据包,再从B网口出去。

基本语法

1
iptables -t 表名 管理选项 [链名] [匹配条件] [-j 控制类型]
  1. -t 表名 :默认是Filter

  2. 管理选项:

    选项 功能
    -A 添加防火墙规则(在此链的最后面加入
    -D 删除防火墙规则
    -I 插入防火墙规则(默认是插入链的最前面,可以加数字选择插入第X行
    -F 清空防火墙规则
    -L 列出添加防火墙规则
    -R 替换防火墙规则
    -P 设置链默认的规则
    1. 列名:上面已经写不在说明

    2. 匹配条件:

      参数 功能
      [!]-p 匹配协议,! 表示取反
      [!]-s 匹配源地址
      [!]-d 匹配目标地址
      [!]-i 匹配入站网卡接口
      [!]-o 匹配出站网卡接口
      [!]–sport 匹配源端口
      [!]–dport 匹配目标端口
      [!]–src-range 匹配源地址范围
      [!]–dst-range 匹配目标地址范围
      [!]–limit 四配数据表速率
      [!]–mac-source 匹配源MAC地址
      [!]–sports 匹配源端口
      [!]–dports 匹配目标端口
      [!]–stste 匹配状态(INVALID、ESTABLISHED、NEW、RELATED)
      [!]–string 匹配应用层字串
    3. 控制类型:

      控制类型 功能
      ACCEPT 允许数据包通过
      DROP 丢弃数据包(不会回复给对方拒绝信号,相当于当前主机不在线,会有额外的资源占用
      REJECT 拒绝数据包通过(会发送给对方拒绝数据包,明确拒绝此链接
      LOG 将数据包信息记录 syslog 曰志
      DNAT 目标地址转换
      SNAT 源地址转换
      MASQUERADE 地址欺骗
      REDIRECT 重定向

防火墙的配置

看完前面的防火墙的基本语法,应该已经可以应对我们,管理vps的基本使用了,下面都是举一些最简单切最常用的命令。

  1. 开启22 ssh远程连接:
1
iptables -I INPUT -p tcp -dport 22 -j ACCEPT
  1. 修改默认配置INPUT丢弃(设置前一定要备份一下,或者有第二种手段联系到服务器,例如idc的vnc确保你的小鸡不会失联
1
iptables -P INPUT DROP
  1. 改完以后记得使用,来保存到文件,不然重启以后上面的配置将会丢失
1
iptables-save