iptables命令

#### 选项

iptables -h    获取帮助
iptables -V   显示版本信息
iptables -L    列出链详细信息,可指定链
iptables -vL    显示更详细链信息
iptables -vnL   显示更详细链信息,并以数字化显示
iptables -vnL --line-number   列出信息时,显示规则序号
iptables -F     清除所有规则,不包括默认规则,可指定链
iptables -D 链名 规则序号    删除指定规则
iptables -I 链名 规则序号   插入规则,之后的规则依次向后排序
iptables -Z     链的计数器清零
iptables -t 表名    指定配置哪个表, filter是默认表,不指明就默认
iptables -A  链名   追加到链里,附加或追加规则,默认配置的规则在最后一条,规则按次序执行。
iptables -s ip     指定源IP地址或源网段信息
iptables -d ip   指定目标IP地址或目标网段信息
iptables -i 网卡名   指定从哪个网卡接口进入的流量信息,只应用于INPUT、 FORWARD、PREROUTING链
iptables -o 网卡名  指定从哪个网卡接口出去的流量信息,只应用于 FORWARD、OUTPUT、POSTROUTING链 
iptables -p  协议    指定规则协议,包括tcp、udp、icmp
iptables -j 动作   匹配数据包后执行的动作

iptables -m    用于指定扩展模块

#### ptables -j的动作

ACCEPT  允许   

DROP 丢弃(无响应)

REJECT  拒绝(回应请求者明确的拒绝)

MASQUERADE  伪装上网使用

SNAT   共享地址上网

DNAT   目标地址改写

#### 自定义链

除了系统默认五链,还可以自定义链,实现在链下规则分类。

iptables -N 链名   添加一条新自定义链
iptables -E  链名 新名    重命名链
iptables -X  链名  删除用户自定义的链,被挂着不能删,里面有内容不能删
iptables -P  链名 策略   更改默认规则策略,ACCEPT是黑名单,只要没有拒绝的都可以连,DROP反之

iptables -I链名 位置 -s IP或网段 -j 自定义链名  将自定义链挂到默认链,否则不生效

#### 协议扩展选项

iptables -p  协议    指定规则协议,使用p选项时无需使用m指明扩展模块

tcp 协议的扩展选项
iptables -p tcp --sport  源端口    指定源端口
iptables -p tcp --dport  目标端口    指定目标端口
iptables -p tcp --syn     检查三次握手的第一次握手
iptables -p tcp --tcp-flags SYN,ACK,FIN,RST  SYN,ACK  检查三次握手的第二次握手

udp 协议的扩展选项
iptables -p udp --sport  源端口    指定源端口
iptables -p udp --dport  目标端口    指定目标端口

icmp 协议的扩展选项
iptables -p --icmp-type 8    指定请求包
iptables -p --icmp-type 0    指定应答包

#### 网络扩展选项

multiport模块精确到传输层,可以指定最多15个不连续的端口
iptables -m multiport --sports 端口,端口  指定多个不连续的源端口
iptables -m multiport --dports 端口,端口  指定多个不连续的目标端口

iprange模块精确到网络层,可以指定一个连续的ip地址范围
iptables -m iprange --src-range 地址-地址  指定连续的源ip地址范围
iptables -m iprange --dst-range 地址-地址  指定连续的目标ip地址范围

mac模块精确到了数据链路层,可以指定mac地址
iptables -m mac --mac-source mac地址  指定源mac地址

#### 报文扩展选项

string模块可以对报文中的应用层数据做字符串模式匹配检测
iptables -A OUTPUT -p tcp --sport 80 -m string --algo bm --from 62  --string   "字符串" -j REJECT    指定算法、跳过报文头、字符串
禁止用户访问,所以指定OUTPUT,算法包括bm和kmp,报文头跳过了8字节的前导信息、6字节的目标mac、6字节的源mac、上层协议的2个类型、ip和tcp分别20个固定头,共62个。

time模块可以根据将报文到达的时间与指定的时间范围进行匹配
iptables -m time --timestart 起始时分 --timestop 结束时分  指定时间段,每天
iptables -m time --timestart 起始时分 --timestop 结束时分 -- weekdays Wed,Thu   指定时间段,按周几
iptables -m time --timestart 起始时分 --timestop 结束时分 --monthdays 几号,几号       指定时间段,按每月几号

connlimit模块可以根据每客户端IP做并发连接数数量匹配
iptables -m connlimit --connlimit-upto N 连接的数量小于等于N时匹配
iptables -m connlimit --connlimit -above N 连接的数量大于N时匹配

limit模块,基于收发报文的速率做匹配 , 实现限流
iptables -m limit -- limit 10/minute --limit-burst 5  前5个不限制,之后每分钟至多过10个
/second|/minute|/hour|/day  分别代表每秒、每分钟、每小时、每天

#### 状态扩展选项

state 模块,可以根据"连接追踪机制"去检查连接的状态,较耗资源
iptables -m state --state NEW     匹配第一次连接 
iptables -m state --state ESTABLISHED   匹配第一次之后的连接
iptables -m state --state RELATED   匹配相关的连接
iptables -m state --state INVALID    匹配无效的连接
iptables -m state --state UNTRACKED    匹配未追踪的连接

cat /proc/sys/net/netfilter/nf_conntrack_max  查看连接跟踪最大数量
超过最大数量时,主机将无法被访问,解决方法:
vi /etc/sysctl.conf 
net.nf_conntrack_max = 数量 net.netfilter.nf_conntrack_max = 数量

------

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值