iptables是Linux中对网络数据包进行处理的一个功能组件。等同于防火墙,可以对经过的数据宝进行处理。

  • 提供特定的功能,iptables中有4个表:filter表(数据包过滤),nat表(网络地址转换),mangle表(数据包重构)和raw表(数据追踪处理)。
  • 是数据包传播的路径,每一个链其实就是众多规则中的一个检查清单,每一条链中可以有一条或数条规则。
  • 规则 是iptables运行,运作所遵循的法则。
    ACCEPT 允许数据包通过
    DROP 直接丢弃数据包,不给任何回应消息
    REJECT 拒绝数据包通过,必要时会给数据的发送端回一个相应消息
    log 用于针对特定的数据包记录日志log,在/var/log/message文件中记录日志信息,然后将数据包传递给下一条规则

iptables基本语法结构

iptables[-t 表名] 命令选项 [链名] [条件匹配] [-j 目标动作或跳转]

  • 表名,链名 用于指定iptables命令所操纵的表和链,命令选项用于指定管理iptables规则的方式
  • 条件匹配 用于指定对符合什么样的条件的数据包进行处理
  • 目标动作或跳转 用于指定数据包的处理方式

iptables相关参数

iptables相关参数
iptables相关参数

示例

  • 显示搜有规则并以数字形式表示规则
    iptables -L -n

  • 设置所有规则为允许
    iptables -P INPUT ACCEPT # 设置默认规则
    iptables -P OUTPUT ACCEPT
    iptables -P FORWARD ACCEPT

  • 清楚已有规则
    iptables -F # 清楚全部规则
    iptables -X # 清楚自己定义的规则

  • 设置INPUT和FORWORD为封锁
    iptables -P INPUT DROP
    iptables -P FORWARD DROP

  • 允许ssh服务流量进入
    iptables -A INPUT -p tcp --dport 22 -j ACCEPT # 在末尾添加一条规则

  • 开启本地环路,使ping 127.0.0.1的ICMP包通过
    iptables -A INPUT -i lo -j ACCEPT

  • 允许其他机器ping这台服务器
    iptables -A INPUT -p icmp -j ACCEPT

  • 开放web端口
    iptables -A INPUT -p tcp --dport 80 -j ACCEPT

  • 删除指定规则
    iptables -D INPUT 3 # 删除第三行的规则

  • 保存配置
    /etc/init.d/iptables save

  • 重启iptables
    /etc/init.d/iptales restart
    service iptables restart

最后修改:2020 年 04 月 26 日
如果觉得我的文章对你有用,请随意赞赏