----------------------------------------------------------------IPTABLES----------------------------------------------------------------
#systemctl stop firewalld.service #停止firewall
#systemctl disable firewalld.service #禁止firewall开机启动
#yum -y install iptables-services
#service iptables restart
# iptables -A INPUT -d 192.168.3.31 -p tcp --dport 22 -j ACCEPT #进ssh
# iptables -A OUTPUT -s 192.168.3.31 -p tcp --sport 22 -j ACCEPT #出sssh
# iptables -P INPUT DROP #禁用默认链
# iptables -P OUTPUT DROP
# iptables -P FORWARD DROP
# iptables -A INPUT -d 192.168.3.31 -p tcp --dport 80 -j ACCEPT
# iptables -A OUTPUT -s 192.168.3.31 -p tcp --sport 80 -j ACCEPT
# iptables-save
----------------------------------------------------IPTABLES知识A-----------------------------------------------------------------------
-s :指定源地址
-d:目标地址
-p:{tcp,udp,icmp}指定协议
-i INTERFACE:指定数据报文流入的接口、可用于的链:PREROUTING INPUT FORWARD
-o INTERFACE:指定数据报文流出的接口、可用于的链: OUTPUT POSTROUTING FORWAD
-j 跳转
ACCEPT 允许
DROP 丢弃
REJECT 挑衅不允许
-P tcp
--sport port 源端口
--dport port 目标端口
--tcp-flags mask comp
--tcp-flags SYN,FIN,ACK,RST SYN,ACK 只检查mask指定的标志位,是都好分隔的标志位列表
-P comp: 此列表中出现的标记位必须为1,comp中没出现的为0
例:iptables -t filter(可以省略) -A INPUT -s 172.168.0.0/16 -d 172.168.100.1 -p tcp --dport 22 -j ACCEPT
iptables -t filter(可以省略) -A INPUT -s 17
-------------------------------------------------------------------IPTABLES知识B-------------------------------------------------------------
管理规则
-A:附加一条规则,添加丰链的尾部
-I CHAIN [NUM]:插入一条规则插入为对应CHAIN上的第NUM条
-D CHAIN [NUM]:删除指定链中的第NUM规则
-R CHAIN [NUM]:替换指定的规则
管理链
-F [CHAIN]清空指定规则链,如果省略CHAIN则可买实现删除对应的所有链
-P CHAIN:设定指定链默认策略
-N:自定义一个新的空链
-X:删除一个自定义的空链
-Z:置零指定链中所有规则的计数器
-E:重命名自定义的链
查看类:
-L :显示指定表中的规则
-n:以数字显示主机换
-x:显示计数器的精确值
-v:显示详细信息
--line-numbers:显示规则号码
可以执行的动作(target):
ACCEPT 放行
DROP 丢弃
REGECT 拒绝
DNAT 目标地址转换
SNAT 源地址转换
REDIRECT 端口重定向
MASQUERADE 地址伪装
LOG 日志
MARK 打标记.
----------------------------------------------IPTABLES知识C-----------------------------------------------------------------
-m 指定扩展名称
1、state 状态扩展,结合ip_conntrack追跑会话的状态
NEW: 新请求连接
ESTABLISHED: 已经建立的连接(对新请求的响应)
INVALID: 非法请求
RELATED: 相关联的
-m state --state NEW,established -j ACCEPT
2、multiport: 多端口选项拓展
--source
--destination-ports
--ports
条件取反: !
3、-m iprange 多个IP或IP段
--src-range
--dst-range
例:#iptables -A INPUT -p tcp -m iprange --src-range 192.168.2.1-192.168.2.100 --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
4、-m connlimit: 连接数限定
! --connlimit-above n 满足条件才执行,常态会加取反
5、-m limit
--limit 说明速率
--limit-burst 一次进入上限
6、-m recent 模块
iptables -I INPUT -p tcp --dport 22 -m connlimit --connlimit-above 3 -j DROT
iptables -I INPUT -p tcp --dport 22 -m state --state NEW -m recent --set --name SSH
iptables -I INPUT -P tcp --dport 22 -m state NEW -m recent --update --seconds 300 --hitcounts 3 --name SSH -j DROP
同一个ip访问300秒最多访问3次,超过3次禁止300秒时间访问
-j LOG 记录日志
--log-prefix"前缀"