iptables 相关

执行iptables 命令是马上奇效, 不需要重启
/etc/sysconfig/iptables

1. 查看、重启、关闭

iptables -L -n --line-number  //查看
vi /etc/sysconfig/iptables   //查看
service iptables save && service iptables restart // 保存配置并重启
chkconfig iptables off && service iptables stop// 关闭
iptables -D INPUT 2 // 2是iptables -L -n 的结果
iptables-save  //查看当前的防火墙配置
  

2. 配置

1) 整体策略

iptables -P INPUT (DROP|ACCEPT)  默认是关的/默认是开的  
例
iptables -P INPUT DROP        //阻止所有INPUT
iptables -P FORWARD DROP    //阻止所有FORWARD
iptables -P OUTPUT DROP     //阻止所有OUTPUT

2) 允许或禁止地址

iptables [-AI 链名] [-io 网络接口] [-p 协议]  [-s 来源IP/网域] [-d 目标IP/网域] -j [ACCEPT|DROP|REJECT|LOG]
选项与参数:
-AI 链名:针对某的链进行规则的 "插入" 或 "累加"
    -A :新增加一条规则,该规则增加在原本规则的最后面。例如原本已经有四条规则,
         使用 -A 就可以加上第五条规则!
    -I :插入一条规则。如果没有指定此规则的顺序,默认是插入变成第一条规则。
         例如原本有四条规则,使用 -I 则该规则变成第一条,而原本四条变成 2~5 号
    链 :有 INPUT, OUTPUT, FORWARD 等,此链名称又与 -io 有关,请看底下。

-io 网络接口:设定封包进出的接口规范
    -i :封包所进入的那个网络接口,例如 eth0, lo 等接口。需与 INPUT 链配合;
    -o :封包所传出的那个网络接口,需与 OUTPUT 链配合;

-p 协定:设定此规则适用于哪种封包格式
   主要的封包格式有: tcp, udp, icmp 及 all 。

-s 来源 IP/网域:设定此规则之封包的来源项目,可指定单纯的 IP 或包括网域,例如:
   IP  :192.168.0.100
   网域:192.168.0.0/24, 192.168.0.0/255.255.255.0 均可。
   若规范为『不许』时,则加上 ! 即可,例如:
   -s ! 192.168.100.0/24 表示不许 192.168.100.0/24 之封包来源;

-d 目标 IP/网域:同 -s ,只不过这里指的是目标的 IP 或网域。

-j :后面接动作,主要的动作有接受(ACCEPT)、丢弃(DROP)、拒绝(REJECT)及记录(LOG)

3). 允许或禁止端口

iptables [-AI 链] [-io 网络接口] [-p tcp,udp]  [-s 来源IP/网域] [--sport 埠口范围]  [-d 目标IP/网域] [--dport 埠口范围] -j [ACCEPT|DROP|REJECT]
选项与参数:
--sport 埠口范围:限制来源的端口号码,端口号码可以是连续的,例如 1024:65535
--dport 埠口范围:限制目标的端口号码。

3. 概念理解

1). 报文怎么走

  • 到本机某进程的报文:PREROUTING -> INPUT
  • 从本机某进程出去的报文:OUTPUT -> POSTROUTING
  • 由本机转发的报文:PREROUTING -> FORWARD -> POSTROUTING

2). 那些功能

  • filter: 定义允许或者不允许的, 通常是 (INPUT、FORWARD 、OUTPUT)
  • nat: 地址转换, 通常是 (PREROUTING 、OUTPUT 、POSTROUTING)
  • mangle: 修改报文, 通常是 (PREROUTING、INPUT、FORWARD、OUTPUT、POSTROUTING)

上到下检查, 所以规则严格的放在前面

引用规则 防火墙 iptables input accept【转】

清除所有规则:
iptables -F
开放常用tcp端口:
iptables -I INPUT -p tcp -m multiport --dports 20,21,22,3690,80,443,4443,8023,8888,25,110,30000:30999 -j ACCEPT
iptables -I OUTPUT -p tcp -m multiport --sports 20,21,22,3690,80,443,4443,8023,8888,25,110,30000:30999 -j ACCEPT
开放常用udp端口:
iptables -I INPUT -p udp -m multiport --dports 53,123,8571,8888 -j ACCEPT
iptables -I OUTPUT -p udp -m multiport --sports 53,123,8571,8888 -j ACCEPT
开放特殊udp端口(如:dns):
iptables -I INPUT -p udp --sport 53 -j ACCEPT
iptables -I OUTPUT -p udp --dport 53 -j ACCEPT
开放vrrp协议:
iptables -I INPUT -p vrrp -j ACCEPT
允许服务器互ping:
iptables -A OUTPUT -p icmp -j ACCEPT
iptables -A INPUT -p icmp -j ACCEPT
允许握手成功的数据通过:
iptables -I INPUT -p tcp -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -I OUTPUT -p tcp -m state --state RELATED,ESTABLISHED -j ACCEPT
设置默认关闭所有端口:
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
iptables -P INPUT DROP
防syn
iptables -N syn-flood
iptables -A INPUT -p tcp --syn -j syn-flood
iptables -I syn-flood -p tcp -m limit --limit 3/s --limit-burst 6 -j RETURN
iptables -A syn-flood -j REJECT
防ddos

iptables -A INPUT -i eth0 -p tcp --syn -m connlimit --connlimit-above 15 -j DROP
iptables -A INPUT -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp --syn -m limit --limit 12/s --limit-burst 24 -j ACCEPT
iptables -A FORWARD -p tcp --syn -m limit --limit 1/s -j ACCEPT
防cc***:
iptables -I INPUT -p tcp --dport 80 -m connlimit --connlimit-above 50 -j REJECT # 允许单个IP的最大连接数为30
iptables -A INPUT -p tcp --dport 80 -m recent --name BAD_HTTP_ACCESS --update --seconds 60 --hitcount 30 -j REJECT
iptables -A INPUT -p tcp --dport 80 -m recent --name BAD_HTTP_ACCESS --set -j ACCEPT

单个IP在60秒内只允许最多新建30个连接

保存:
iptables-save > /etc/sysconfig/iptables

posted on 2020-10-29 14:06  WillingCPP  阅读(167)  评论(0编辑  收藏  举报

导航