----------------------------------------------------------------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"前缀"

posted on 2017-09-05 09:59  JasonChen1030  阅读(265)  评论(0编辑  收藏  举报