金沙官网线上iptables应用

  192.168.4.119 为本机的ip地址;每条链的规则是由上至下进行匹配,因此我们需要把范围小的规则放在上面以防被覆盖。

参考:tcp/ip协议

1)清空iptables默认规则,并自定义规则

1.Linux框架概念

[root@iptables ~]# systemctl start firewalld.service  #启用防火墙
[root@iptables ~]# iptables -F  #清空默认规则
[root@iptables ~]# iptables -I INPUT -d 192.168.4.119 -p tcp --dport 22 -j ACCEPT  #接受任何主机对本机的ssh连接请求
[root@iptables ~]# iptables -I OUTPUT -s 192.168.4.119 -p tcp --sport 22 -j ACCEPT  #允许本机对任何主机建立ssh连接
[root@iptables ~]# iptables -A INPUT -j REJECT  #最后一条规则设置为拒绝所有入站请求
[root@iptables ~]# iptables -A OUTPUT -j REJECT  #最后一条规则设置为拒绝所有出站流量
[root@iptables ~]# iptables -vnL
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            192.168.4.119        tcp dpt:22
    7  1076 REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            reject-with icmp-port-unreachable

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 ACCEPT     tcp  --  *      *       192.168.4.119        0.0.0.0/0            tcp spt:22
    8   720 REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            reject-with icmp-port-unreachable

 2)多端口匹配,开放21,22,23,80,3306端口

1.1.工作流程图

[root@iptables ~]# iptables -I INPUT -d 192.168.4.119 -p tcp -m multiport --dports 21:23,80,3306 -j ACCEPT
[root@iptables ~]# iptables -I INPUT -d 192.168.4.119 -p udp -m multiport --dports 21:23,80,3306 -j ACCEPT
[root@iptables ~]# iptables -I OUTPUT -s 192.168.4.119 -p tcp -m multiport --sports 21:23,80,3306 -j ACCEPT
[root@iptables ~]# iptables -I OUTPUT -s 192.168.4.119 -p udp -m multiport --sports 21:23,80,3306 -j ACCEPT

金沙官网线上 1

3)连续地址的匹配,允许192.168.4.1 ~ 192.168.4.100访问80端口

 

[root@iptables ~]# iptables -I INPUT -d 192.168.4.119 -p tcp --dport 80 -m iprange --src-range 192.168.4.1-192.168.4.100 -j ACCEPT
[root@iptables ~]# iptables -I OUTPUT -s 192.168.4.119 -p tcp --sport 80 -m iprange --dst-range 192.168.4.1-192.168.4.100 -j ACCEPT

1.2.功能:

4)限定时间访问,只允许周一到周五 9:00~18:00 之间访问80端口

  ①过滤(filter)

[root@iptables ~]# iptables -I INPUT -d 192.168.4.119 -p tcp --dport 80 -m time --kerneltz --weekdays 1,2,3,4,5 --timestart 9:00 --timestop 18:00 -j ACCEPT
[root@iptables ~]# iptables -I OUTPUT -s 192.168.4.119 -p tcp --sport 80 -m time --kerneltz --weekdays 1,2,3,4,5 --timestart 9:00 --timestop 18:00 -j ACCEPT

  ②修改源ip、目标ip(nat)

5)对报文作字符串匹配,拒绝响应带“vpn”明文字符的报文通过80端口

  ③拆解报文、修改报文标记、重新封装(mangle)

[root@iptables ~]# iptables -I OUTPUT -s 192.168.4.119 -p tcp --sport 80 -m string --algo kmp --string "vpn" -j REJECT

  ④关闭net表启用的连接追踪标记(raw)

6)并发连接限制,限制192.168.2.0/24网段中每个ip对3306端口最多只能有2个并发

 

[root@iptables ~]# iptables -I INPUT -d 192.168.4.119 -s 192.168.2.0/24 -p tcp --dport 3306 -m connlimit --connlimit-upto 2 -j ACCEPT

1.3.表

7)对报文作速率限制,限制同时最多有5个icmp包,每秒1个icmp包

  iptables/netfilter表:filter,mangle,nat

[root@iptables ~]# iptables -I INPUT -d 192.168.4.119 -p icmp --icmp-type 8 -m limit --limit-burst 5 --limit 60/minute -j ACCEPT
[root@iptables ~]# iptables -I OUTPUT -s 192.168.4.119 -p icmp --icmp-type 0 -j ACCEPT

 

8)对报文状态作匹配,开放会话状态为ESTABLISHED的连接

排序 功能表
raw PREROUTING、OUTPUT
mangle 5个链全包含
nat PREROUTING、OUTPUT、POSTROUTING
filter INPUT、FORWARD、OUTPUT
[root@iptables ~]# iptables -I INPUT -d 192.168.4.119 -m state --state ESTABLISHED -j ACCEPT
[root@iptables ~]# iptables -I OUTPUT -s 192.168.4.119 -m state --state ESTABLISHED -j ACCEPT

 

9)对ftp服务作会话追踪:

  数据流向图(圆圈表示路由):

# 加载ftp追踪模块
[root@iptables data]# modprobe nf_conntrack_ftp
[root@iptables data]# lsmod | grep ftp
nf_conntrack_ftp       18638  0 
nf_conntrack          105745  8 nf_nat,nf_nat_ipv4,nf_nat_ipv6,xt_conntrack,nf_nat_masquerade_ipv4,nf_conntrack_ftp,nf_conntrack_ipv4,nf_conntrack_ipv6
# 卸载模块:rmmod nf_conntrack_ftp
# 添加iptables rules
[root@iptables data]# iptables -I INPUT -d 192.168.4.119 -p tcp --dport 21 -m state --state NEW -j ACCEPT
[root@iptables data]# iptables -I INPUT -d 192.168.4.119 -m state --state ESTABLISHED,RELATED -j ACCEPT
[root@iptables data]# iptables -I OUTPUT -s 192.168.4.119 -m state --state ESTABLISHED -j ACCEPT
[root@iptables data]# cat /proc/net/nf_conntrack
ipv4     2 tcp      6 431995 ESTABLISHED src=192.168.4.116 dst=192.168.4.119 sport=57103 dport=21 ...

金沙官网线上 2

10)将对80端口的访问重定向到8080端口:

 

[root@iptables ~]# iptables -t nat -I PREROUTING -d 192.168.4.119 -p tcp --dport 80 -j REDIRECT --to-port 8080
[root@iptables ~]# iptables -I INPUT -d 192.168.4.119 -p tcp --dport 8080 -j ACCEPT
[root@iptables ~]# iptables -I OUTPUT -s 192.168.4.119 -p tcp -m multiport --sports 80,8080 -j ACCEPT

1.4.连接状态

  4个状态:NEW,ESTABLISHED,INVALID,RELATED

  针对3个协议:TCP,UDP,ICMP

  5个配置策略:

    ①通用的

    ②TCP

    ③UDP

    ④ICMP

    ⑤状态,所有者,访问的频率限制

 

  规则匹配,从上往下。高频匹配项、精确匹配项放在最上边、能合并的合并后放在中间、最后跟上默认匹配项。

 

 

1.5.监听协议

 

  Linux防火墙工作在规则下,规则由两部分组成:匹配标准、处理办法。

  匹配规则:

    ip :sip、dip

    tcp :sport、dport、报文(设定标志位:syn=1、ack=0、find=0、rst=0;……)

    udp :sport、dport

    icmp :icmp-type(0到15;0响应报文、3错误响应报文、8请求报文)

 

 

2.相关操作


  保存配置

# iptables-save > /etc/sysconfig/iptables

  保存配置filter表

# iptables-save -t filter > /etc/sysconfig/iptables

  检查配置文件合法性

# iptables-restore -t /etc/sysconfig/iptables
iptables-restore: COMMIT expected at line 60

  读取全部配置、filter表的配置

# iptables-restore < /etc/sysconfig/iptables
# iptables-restore -T filter < /etc/sysconfig/iptables

 

3.命令语法


3.1.语法

简单语法:

  iptables [table] [Command] [chain] [num] [Rule] [Action]

  指定:操作的表、操作命令、关键字chain、规则编号、匹配规则、处理办法。

语法详解:

语法:
  iptables [-t table] {-A|-C|-D} chain rule-specification
  iptables [-t table] -I chain [rulenum] rule-specification
  iptables [-t table] -R chain rulenum rule-specification
  iptables [-t table] -D chain rulenum
  iptables [-t table] -S [chain [rulenum]]
  iptables [-t table] {-F|-L|-Z} [chain [rulenum]] [options...]
  iptables [-t table] -N chain
  iptables [-t table] -X [chain]
  iptables [-t table] -P chain target
  iptables [-t table] -E old-chain-name new-chain-name

说明:
  rule-specification = [matches...] [target]
  match = -m matchname [per-match-options]
  target = -j targetname [per-target-options]

 

3.2.语法说明

  命令:

    A:添加规则

    I:插入规则

    D:删除规则

    R:替换规则

    F:清空所有规则

本文由金沙官网线上发布于操作系统,转载请注明出处:金沙官网线上iptables应用

您可能还会对下面的文章感兴趣: