0%

iptable

2019年12月21日 上午10:42

iptables详解:图文并茂理解iptables

  • 这篇文章是网上最好的iptable入门文章,这是一个系列还有14篇具体深度讲解iptable的文章,需要时可以仔细看

查看所有开放端口信息:

netstat -anp

常操作的两个表

linux 查看并对外开放端口(防火墙拦截处理)

  • filter表是系统默认的
    • INPUT表(进入的包),FORWORD(转发的包),OUTPUT(处理本地生成的包),filter表只能对包进行授受和丢弃的操作。
  • nat表(网络地址转换):其实就是在修改数据包
    • PREROUTING(修改即将到来的数据包)
    • OUTPUT(修改在路由之前本地生成的数据包)
    • POSTROUTING(修改即将出去的数据包)

命令参数:

iptables [-t 表名] <-A|I|D|R> 链名 [规则编号] [-i|o 网卡名称] [-p 协议类型] [-s 源ip|源子网] [—sport 源端口号] [-d 目的IP|目标子网] [—dport 目标端口号] [-j 动作]

  • 参数:-A 增加 -I 插入 -D 删除 -R 替换

常用命令:

iptables -t filter -A INPUT -s 192.168.1.5 -I eth0 -j DROP
* 禁止IP为192.168.1.5的主机从eth0访问本机
iptables -t filter -I INPUT 2 -s 192.168.5.0/24 -p tcp —dport 80 -j DROP
* 禁止子网192.168.5.0访问web服务
iptables -t filter -I INPUT 2 -s 192.168.7.9 -p tcp —dport ftp -j DROP
* 禁止IP为192.168.7.9访问FTP服务
iptables -t filter -L INPUT
* 查看filter表中INPUT链的规则
⑤iptables -t nat -F
* 删除nat表中的所有规则
iptables -I FORWARD -d wwww.playboy.com -j DROP
* 禁止访问 www.playboy.com 网站
iptables -I FORWARD -s 192.168.5.23 -j DROP
* 禁止192.168.5.23上网

自己补充:

  1. 针对固定ip开放端口

    1. 编辑_etc_sysconfig/iptables
      1
      2
      3
      4
      5
      6
      7
      8
      9
      # 本机和141.36.185.213开放8080端口,其他ip用telnet是无法连接的
      -A INPUT -m state --state NEW -m tcp -p tcp -s 127.0.0.1 —dport 8080 -j ACCEPT
      -A INPUT -m state —state NEW -m tcp -p tcp -s 141.36.185.213 —dport 8080 -j ACCEPT

      #拦截所有非指定ip(host)的访问的规则
      -A INPUT -j REJECT --reject-with icmp-host-prohibited
      -A FORWARD -j REJECT —reject-with icmp-host-prohibited

      COMMIT
    2. 重启防火墙:service iptables start
  2. 拦截特定IP地址的访问
    ### iptables -A INPUT -I $IF_PUB -s 10.220.231.236 -j REJECT —reject-with icmp-host-prohibited

    • 这条规则拒绝那些到达公网接口的、来自IP地址10.220.231.236的传输。我是通过回应说主机被封锁了来拒绝这些传输,你也可以只是丢弃这些数据包,对问题主机不做回应。
  3. 拦截特定网络段的访问
    iptables -A INPUT -I $IF_PUB -s 10.67.232.0/24 -j REJECT —reject-with icmp-net-prohibited

    • 这条规则拒绝到达公网接口的、源地址为10.67.232.0/24的网络。这次该传输的发送方会收到一条ICMP网络禁止的消息