iptables filter表

准备

安装 iptables:
apt-get install iptables-persistent
启动 iptables:
service iptables start
安装 ping:
apt-get install inetutils-ping
查看防火墙规则:
iptablse -L -vn

备份和加载配置

iptables-save > backup.txt
iptables-restore < backup.txt

查看配置

  • 查看filter表
    • iptables -t filter -L -vn 详细信息(-t filter可以不加,默认就是查看filter表)
    • iptables -t filter -l -vvn 更详细信息
  • 查看nat表
    • iptables -t nat -L -vn
    • iptables -t nat -l -vvn

删除配置

iptables -t [filter/nat/...] -D [Chain] 1 删除某个表中某个链中的第几个规则

处理动作

  • ACCEPT:允许,同意
  • DROP:丢弃
  • REJECT:–reject-with:icmp-port-unreachable默认,拒绝
  • RETURN:返回调用链
  • REDIRECT:端口重定向
  • LOG:记录日志,dmesg
  • MARK:做防火墙标记
  • DNAT:目标地址转换
  • SNAT:源地址转换
  • MASQUERADE:地址伪装
    常用 ACCEPT,DROP,DNAT

常用示例

  • 设置默认规则,在其他规则都不满足时走默认规则

    • iptables -P INPUT DROP 丢弃所有收到的数据包
    • iptables -P OUTPUT ACCEPT 允许发送所有数据包
    • iptables -P FORWARD DROP 丢弃所有转发的数据包
  • 禁止特定源ip访问

    • iptables -A INPUT -s 192.168.70.128 -p all -j DROP
    • iptables -A INPUT -s 192.168.70.0/24 -p tcp -j DROP
  • 禁止范围源ip使用tcp协议访问特定目标ip

    • iptables -A INPUT -m iprange –src-range 172.16.1.5-172.16.1.10 -d 172.16.1.100 -p tcp -j DROP
  • 允许特定ip访问

    • iptables -A INPUT -s 192.168.70.128 -p all -j ACCEPT
    • iptables -A INPUT -s 192.168.70.0/24 -p all -j ACCEPT
  • 禁止特定网段访问22端口

    • iptables -A INPUT -s 192.168.60.0/24 -p all -j DROP
  • 允许特定网段访问22端口

    • iptables -A INPUT -s 192.168.0.0/16 -p tcp -dport 22 -j ACCEPT
    • iptables -A INPUT -s 192.168.0.0/16 -p tcp -dport 22,23 -j ACCEPT
    • iptables -A INPUT -s 192.168.0.0/16 -p tcp -dport 22:30 -j ACCEPT
  • 禁止特定ip访问特定ip

    • iptables -A INPUT -s 192.168.0.0/16 -p all -d 192.168.70.0/24 -j DROP
  • 允许特定ip访问特定ip的端口

    • iptables -A INPUT -s 192.168.0.0/16 -p all -d 192.168.70.129:80 -j ACCEPT
  • 禁止特定ip以外的ip访问

    • iptables -I INPUT ! -s 192.168.70.128 -p all -j DROP
  • 允许本地回环地址正常使用

    • iptables -A INPUT -i lo -j ACCEPT
    • iptables -A OUTPUT -o lo -j ACCEPT