关于iptables的常用技巧方法
来源:互联网 发布:公司域名申请需要多久 编辑:程序博客网 时间:2024/05/29 04:34
前序
iptables的起源发展防火墙的工作原理等这里我们就不在复述。这里主要记录下日常运维过程中关于iptables的命令,参数及实际运用。
链路管理命令
iptables -F 清除预设表filter中的所有规则链的规则
iptables -X 清除预设表filter中使用者自定链中的规则
iptables -P :设置默认策略的
iptables -Z:清空链,及链中默认规则的计数器
iptables -N:NEW 支持用户新建一个链
iptables -L -n 查看规则
链表规则管理命令
-A:追加,在当前链的最后新增一个规则
-I num : 插入,把当前规则插入为第几条。
-I 3 :插入为第三条
-o 指定数据包传出的那个网络接口。经常与OUTPUT链配合
-p 指定规则使用的协议
常用 tcp,udp,icmp,all
-s 指定来源ip或者网络,可以整个段,可以单个ip
例如 192.168.31.0/24 192.168.31.2规则前加 !表示取反 例如:iptables -A INPUT -i eth0 -p tcp --dport=80 -s 192.168.31.0/24 -j ACCEPT这表示允许192.168.31.0网段的机器通过eth0网卡访问本机80端口iptables -A INPUT -i eth0 -p tcp --dport=80 -s !192.168.31.0/24 -j ACCEPT这就表示不允许了 因为!取反
-d 与-s类似功能
-j 需要执行的动作
主要有ACCEPT,DROP,REJECT,REDIRECT
-i 指定数据包进入的那个网卡。
如 eth0,lo 此参数一般配合INPUT链使用
-m 指定使用的模块
例如: multiport(启用多端口扩展) state(状态监测) limit(限制) mac(网卡物理地址) .......
-R num:Replays替换/修改第几条规则
格式:iptables -R 3 …………
-D num:删除,明确指定删除第几条规则
设置预置规则
-P 指定链策略
-t 指定链表
例如允许所有数据流出
iptables -P OUTPUT ACCEPT (不指定-t 默认为filter表)
–sport与–dport
–sport 限制来源的端口号
tcp连接实际是两个端口建立连接。
所以来源端口号就是别人访问你这个服务时他的端口号
–dport 恰恰相反.也就是你服务的端口号。所以我们基本使用的都是dport
状态检测
-m state –state <状态>
有数种状态,状态有:
- INVALID:无效的封包,例如数据破损的封包状态
- ESTABLISHED:已经联机成功的联机状态;
- NEW:想要新建立联机的封包状态;
- RELATED:表示这个封包是与我们主机发送出去的封包有关, 可能是响应封包或者是联机成功之后的传送封包!这个状态很常被设定,因为设定了他之后,只要未来由本机发送出去的封包,即使我们没有设定封包的 INPUT 规则,该有关的封包还是可以进入我们主机, 可以简化相当多的设定规则。
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPTiptables -P OUTPUT ACCEPTiptables -A INPUT -i lo -j ACCEPT
一般当我们需要建立一些临时规则时 一般会在开头加上这3句
这样的作用:
不影响现有的传入数据。而且也不用担心开放了之前拒绝的端口
不影响流出数据
不影响本地Lo环路数据(访问本地127.0.0.1)
常用的规则配置:
允许192.168.31.0网段访问80端口
iptables -A INPUT -p tcp --dport 80 -s 192.168.31.0/24 -j ACCEPT
不允许
iptables -A INPUT -p tcp --dport 80 -s !192.168.31.0/24 -j ACCEPT或iptables -A INPUT -p tcp --dport 80 -s 192.168.31.0/24 -j DROP
只允许 mac地址为aa:bb:cc:dd:ee:ff 的机器访问本地ssh端口
iptables -A INPUT -m mac --mac-source aa:bb:cc:dd:ee:ff -p tcp --dport 22 -j ACCEPT
将80端口重定向到8080端口
iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8080
443端口限流,每秒最多150个连接(防ddos)
iptables -A INPUT -i eth0 -p tcp --dport 443 -m limit --limit 150/s --limit-burst 150 -j ACCEPT
防SYN_FLOOD
iptables -N syn-flood (新建一条链)iptables -A INPUT -p tcp --syn -j syn-flood iptables -A syn-flood -p tcp -m limit --limit 2/s --limit-burst 50 -j RETURNiptables -A syn-flood -j DROP
单个ip最大并发数50
iptables -I INPUT -p tcp --dport 80 -m connlimit --connlimit-above 50 -j REJECT
对访问本机的22端口进行限制,每个ip每小时只能连接5次,超过的拒接,1小时候重新计算次数
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --name SSHPOOL --rcheck --seconds 3600 --hitcount 5 -j DROPiptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --name SSHPOOL --set -j ACCEPT(上面recent规则只适用于默认规则为DROP中,如果要适用默认ACCEPT的规则,需要--set放前面 并且无-j ACCEPT)
预防cc攻击
tcpdump -tnn dst port 80 -c 100 | awk -F"." '{print $1"."$2"."$3"."$4}' | sort | uniq -c | sort -n -r |head -20 查找发包最多的ip iptables -I INPUT -s ip -j REJECT 封掉
- 关于iptables的常用技巧方法
- Iptables的常用防火墙配置方法
- 关于javascript常用的技巧
- 常用的IPTABLES规则
- iptables 常用的实例
- Linux系统Iptables的常用防火墙配置方法
- Linux系统Iptables的常用防火墙配置方法
- 关于WORD的一些常用使用技巧
- Symbian关于listBox的常用技巧小结
- css关于背景的一些常用技巧
- 几个 iptables 常用的实例
- iptables常用的一些规则
- 常用的 Linux iptables 规则
- 关于字符串的常用方法
- 关于ArrayList 的常用方法
- windows 系统的常用方法与技巧
- 关于iptables的u32匹配
- 关于Linux下的iptables
- 1088 最长回文子串 manacher算法
- 算法时间复杂度和空间复杂度
- log4cplus的使用(学习笔记)
- firewalld的常用命令
- 六级_第一天
- 关于iptables的常用技巧方法
- 局部变量线程安全的理解
- Spring+监听器+Quartz集群(2)——quartz2.2.1创建表结构
- 51nod 1092 回文字符串 (添加几个变成回文)
- 怎么理解数据集市
- 51nod-1154-回文串划分
- 移动端列表长按后上下拖动进行排序
- Mysql中 char 和 varchar 的区别
- 2012