iptables 访问控制配置

iptables 访问控制配置:

一,四表五链:(按优先级顺序)

  • raw:PREROUTING, OUTPUT
  • mangle:PREROUTING,INPUT,FORWARD,OUTPUT,POSTROUTING
  • nat:PREROUTING,[INPUT,]OUTPUT,POSTROUTING
  • filter:INPUT,FORWARD,OUTPUT

二,规则格式:

iptables   [-t table]   COMMAND   chain   [-m matchname [per-match-options]]   -j targetname [per-target-options]

三,可选参数:

1,-t table:(可以不写,默认filter)

raw, mangle, nat, ,filter

例子:查看nat表的所有链上的规则

iptables -t nat -nvL

2,COMMAND:

链管理:

  • -N:new, 自定义一条新的规则链;
iptables -N abc
  • -X: delete,删除自定义的规则链;
iptables -X abc (不加参数是清空)
  • -P:Policy,设置默认策略;对filter表中的链而言,其默认策略有:
    ACCEPT:接受
iptables -P INPUT ACCEPT

DROP:丢弃

iptables -P INPUT DROP

REJECT:拒绝

iptables -P INPUT REJECT
  • -E:重命名自定义链;引用计数不为0的自定义链不能够被重命名,也不能被删除;
iptables -E aaa abc

规则管理:

  • -A:append,追加;
iptables -A INPUT -d 3.3.3.10 -p icmp -j DROP
  • -I:insert, 插入,要指明位置,省略时表示第一条;
iptables -I INPUT -d 3.3.3.10 -p icmp -j DROP
  • -D:delete,删除;
    (1) 指明规则序号;
iptables -D INPUT 1

(2) 指明规则本身;

  • -R:replace,替换指定链上的指定规则;
iptables -R INPUT 1 + 需要修改的规则
  • -F:flush,清空指定的规则链;
  • -Z:zero,置零;
  • iptables的每条规则都有两个计数器:
    (1) 匹配到的报文的个数;
    (2) 匹配到的所有报文的大小之和;

查看规则:

iptables filter -nvL --line-numbers

3,匹配条件

  • -s
    --source address[/mask][,...]:检查报文中的源IP地址是否符合此处指定的地址或范围;
  • -d
    --destination address[/mask][,...]:检查报文中的目标IP地址是否符合此处指定的地址或范围;
  • -p
    --protocol: tcp, udp, udplite, icmp, icmpv6,esp, ah, sctp, mh or "all"{tcp|udp|icmp}
  • -i
    --in-interfacename:数据报文流入的接口;只能应用于数据报文流入的环节,只能应用于PREROUTING,INPUT和FORWARD链;
  • -o
    --out-interfacename:数据报文流出的接口;只能应用于数据报文流出的环节,只能应用于FORWARD、OUTPUT和POSTROUTING链;

tcp拓展:
--sport +端口号
--dport +端口号
--tcp-flags SYN,ACK,FIN,RST SYN
表示,要检查的标志位为SYN,ACK,FIN,RST四个,其中SYN必须为1,余下的必须为0
--syn:用于匹配第一次握手,相当于 --tcp-flags SYN,ACK,FIN,RST SYN

udp拓展:
--sport +端口号
--dport +端口号

icmp拓展:
--icmp-type 8 请求报文
--icmp-type 0 相应报文

4,处理动作:

-j targetname [per-target-options]:

  • ACCEPT
  • DROP
  • REJECT
  • RETURN:返回调用链;
  • REDIRECT:端口重定向;
  • LOG:记录日志;
  • MARK:做防火墙标记;
  • DNAT:目标地址转换;
  • SNAT:源地址转换;
  • MASQUERADE:地址伪装;

5,显示拓展:(-m)

multiport:

iptables -A INPUT -s 172.16.100.10 -d 10.1.1.20 -p tcp -m multiport --dports 22,80 -j ACCEPT

iprange:

iptables -A INPUT -d 172.16.100.67 -p tcp --dport 80 -m iprange --src-range 172.16.100.5-172.16.100.10 -j DROP

string:

iptables -A OUTPUT -s 172.16.100.67 -d 172.16.0.0/16 -p tcp --sport 80 -m string --algo bm --string "gay" -j REJECT

time

connlimit

limit

iptables -I INPUT -d 172.16.100.67 -p icmp --icmp-type 8 -m limit --limit 3/minute --limit-burst 5 -j ACCEPT

state

iptables -A INPUT -d 172.16.100.67 -p tcp -m multiport --dports 22,80 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -s 172.16.100.67 -p tcp -m multiport --sports 22,80 -m state --state ESTABLISHED -j ACCEPT

注意:
调整连接追踪功能所能够容纳的最大连接数量:
/proc/sys/net/nf_contrack_max 已经追踪到到的并记录下来的连接: /proc/net/nf_conntrack

不同的协议的连接追踪时长:
			/proc/sys/net/netfilter/
								
		iptables的链接跟踪表最大容量为/proc/sys/net/ipv4/ip_conntrack_max,链接碰到各种状态的超时后就会从表中删除;当模板满载时,后续的连接可能会超时

		解決方法一般有两个:
			(1) 加大nf_conntrack_max 值
			vi /etc/sysctl.conf
			net.ipv4.nf_conntrack_max = 393216 net.ipv4.netfilter.nf_conntrack_max = 393216 (2) 降低 nf_conntrack timeout时间 vi /etc/sysctl.conf net.ipv4.netfilter.nf_conntrack_tcp_timeout_established = 300 net.ipv4.netfilter.nf_conntrack_tcp_timeout_time_wait = 120 net.ipv4.netfilter.nf_conntrack_tcp_timeout_close_wait = 60 net.ipv4.netfilter.nf_conntrack_tcp_timeout_fin_wait = 120

注意:在iptables上做vsftp显示需要加载ftp模块

modprobe nf_conntrack_ftp
lsmod | grep ftp

转载于:https://www.cnblogs.com/linushelp/p/7019229.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值