原创文章,转载请注明出处:https://www.myzhenai.com/thread-17843-1-1.html https://www.myzhenai.com.cn/post/2161.html
原理是使用iptables封锁了PREROUTING (路由前) INPUT (数据包流入口) FORWARD (转发管卡) OUTPUT(数据包出口) POSTROUTING(路由后)五个规则链,只要是从这些规则链里出口的和入口的数据,都不能经过指定的端口. 例程封锁了这些端口 25,110,50,105,106,109,209,512,465,992,1109,24554,60177,60179
同时枚举了当前所有网卡,把所有网卡的进出数据都不能通过指定的端口传输.
这五个位置也被称为五个钩子函数(hook functions),也叫五个规则链。
1.PREROUTING (路由前)
2.INPUT (数据包流入口)
3.FORWARD (转发管卡)
4.OUTPUT(数据包出口)
5.POSTROUTING(路由后)
这是NetFilter规定的五个规则链,任何一个数据包,只要经过本机,必将经过这五个链中的其中一个链。
常用的ACTION:
DROP:悄悄丢弃
一般我们多用DROP来隐藏我们的身份,以及隐藏我们的链表
REJECT:明示拒绝
ACCEPT:接受
custom_chain:转向一个自定义的链
DNAT
SNAT
MASQUERADE:源地址伪装
REDIRECT:重定向:主要用于实现端口重定向
MARK:打防火墙标记的
RETURN:返回
在自定义链执行完毕后使用返回,来返回原规则链。
-P :设置默认策略的(设定默认门是关着的还是开着的)
默认策略一般只有两种
iptables -P INPUT (DROP|ACCEPT) 默认是关的/默认是开的
比如:
iptables -P INPUT DROP 这就把默认规则给拒绝了。并且没有定义哪个动作,所以关于外界连接的所有规则包括Xshell连接之类的,远程连接都被拒绝了。
-F: FLASH,清空规则链的(注意每个链的管理权限)
iptables -t nat -F PREROUTING
iptables -t nat -F 清空nat表的所有链
-N:NEW 支持用户新建一个链
iptables -N inbound_tcp_web 表示附在tcp表上用于检查web的。
-X: 用于删除用户自定义的空链
使用方法跟-N相同,但是在删除之前必须要将里面的链给清空昂了
-E:用来Rename chain主要是用来给用户自定义的链重命名
-E oldname newname
-Z:清空链,及链中默认规则的计数器的(有两个计数器,被匹配到多少个数据包,多少个字节)
iptables -Z :清空
(4) -i
以包进入本地所使用的网络接口来匹配包。只能用INPUT \ FORWARD \PREROUTING 三个链中。用在其他任何链中都会出错。
可使用“+” “!”两种符号。
只用一个“+"号,表示匹配所有的包,不考虑使用哪个接口。如: iptable -A INPUT -i + //表匹配所有的包。
放在某类接口后面,表示所有此类接口相匹配。如: iptable -A INPUT -i eth+ //表示匹配所有ethernet 接口。
(5) -o
以数据包出本地所使用的网络接口来匹配包。与-i一样的使用方法。
只能用OUTPUT \ FORWARD \POSTROUTING 三个链中。用在其他任何链中都会出错。
可使用“+” “!”两种符号。
iptables规则创建脚本.
# !/bin/bash mv /etc/sysconfig/iptables /etc/sysconfig/iptables.back iptables -F service iptables save echo "# !/bin/bash" >> iptables.sh echo "service iptables restart" >> iptables.sh ip=`ifconfig -a|grep encap|awk -F " " '{ print $1 }'` OLD_IFD="$IFD" IFD=" " arr=($ip) IFD="$OLD_IFD" for d in ${arr[@]} do #echo $d a="25,110,50,105,106,109,209,512,465,992,1109,24554,60177,60179" OLD_IFS="$IFS" IFS="," arr=($a) IFS="$OLD_IFS" for s in ${arr[@]} do #************************************************************************************# echo "iptables -A INPUT -p tcp --dport $s -j DROP" >> iptables.sh echo "iptables -A INPUT -p tcp --sport $s -j DROP" >> iptables.sh echo "iptables -A OUTPUT -p tcp --dport $s -j DROP" >> iptables.sh echo "iptables -A OUTPUT -p tcp --sport $s -j DROP" >> iptables.sh echo "iptables -A PREROUTING -p tcp --dport $s -j DROP" >> iptables.sh echo "iptables -A PREROUTING -p tcp --sport $s -j DROP" >> iptables.sh echo "iptables -A FORWARD -p tcp --dport $s -j DROP" >> iptables.sh echo "iptables -A FORWARD -p tcp --sport $s -j DROP" >> iptables.sh echo "iptables -A POSTROUTING -p tcp --dport $s -j DROP" >> iptables.sh echo "iptables -A POSTROUTING -p tcp --sport $s -j DROP" >> iptables.sh #**************************************************************************************# echo "iptables -A INPUT -p udp --dport $s -j DROP" >> iptables.sh echo "iptables -A INPUT -p udp --sport $s -j DROP" >> iptables.sh echo "iptables -A OUTPUT -p udp --dport $s -j DROP" >> iptables.sh echo "iptables -A OUTPUT -p udp --sport $s -j DROP" >> iptables.sh echo "iptables -A PREROUTING -p udp --dport $s -j DROP" >> iptables.sh echo "iptables -A PREROUTING -p udp --sport $s -j DROP" >> iptables.sh echo "iptables -A FORWARD -p udp --dport $s -j DROP" >> iptables.sh echo "iptables -A FORWARD -p udp --sport $s -j DROP" >> iptables.sh echo "iptables -A POSTROUTING -p udp --dport $s -j DROP" >> iptables.sh echo "iptables -A POSTROUTING -p udp --sport $s -j DROP" >> iptables.sh #**************************************************************************************# echo "iptables -A INPUT -i $d -p tcp --dport $s -j DROP" >> iptables.sh echo "iptables -A INPUT -i $d -p tcp --sport $s -j DROP" >> iptables.sh echo "iptables -A INPUT -i $d -p udp --dport $s -j DROP" >> iptables.sh echo "iptables -A INPUT -i $d -p udp --sport $s -j DROP" >> iptables.sh echo "iptables -A OUTPUT -o $d -p tcp --dport $s -j DROP" >> iptables.sh echo "iptables -A OUTPUT -o $d -p tcp --sport $s -j DROP" >> iptables.sh echo "iptables -A OUTPUT -o $d -p udp --dport $s -j DROP" >> iptables.sh echo "iptables -A OUTPUT -o $d -p udp --sport $s -j DROP" >> iptables.sh echo "iptables -A PREROUTING -i $d -p tcp --dport $s -j DROP" >> iptables.sh echo "iptables -A PREROUTING -i $d -p tcp --sport $s -j DROP" >> iptables.sh echo "iptables -A PREROUTING -i $d -p udp --dport $s -j DROP" >> iptables.sh echo "iptables -A PREROUTING -i $d -p udp --sport $s -j DROP" >> iptables.sh echo "iptables -A FORWARD -i $d -p tcp --dport $s -j DROP" >> iptables.sh echo "iptables -A FORWARD -o $d -p tcp --dport $s -j DROP" >> iptables.sh echo "iptables -A FORWARD -i $d -p tcp --sport $s -j DROP" >> iptables.sh echo "iptables -A FORWARD -o $d -p tcp --sport $s -j DROP" >> iptables.sh echo "iptables -A FORWARD -i $d -p udp --dport $s -j DROP" >> iptables.sh echo "iptables -A FORWARD -o $d -p udp --dport $s -j DROP" >> iptables.sh echo "iptables -A FORWARD -i $d -p udp --sport $s -j DROP" >> iptables.sh echo "iptables -A FORWARD -o $d -p udp --sport $s -j DROP" >> iptables.sh echo "iptables -A POSTROUTING -o $d -p tcp --dport $s -j DROP" >> iptables.sh echo "iptables -A POSTROUTING -o $d -p tcp --sport $s -j DROP" >> iptables.sh echo "iptables -A POSTROUTING -o $d -p udp --dport $s -j DROP" >> iptables.sh echo "iptables -A POSTROUTING -o $d -p udp --sport $s -j DROP" >> iptables.sh echo "#**********************This is Divider**************************#" >> iptables.sh done done echo "service iptables save" >> iptables.sh echo "service iptables restart" >> iptables.sh service iptables restart
所创建的iptables规则
链接: https://pan.baidu.com/s/1dEpubzN 密码: 59ra
Demo Preview: 链接: https://pan.baidu.com/s/1ba7FdG 密码: ws2i
sicnature ---------------------------------------------------------------------
I P 地 址: 3.138.102.163
区 域 位 置: 美国
系 统 信 息:
Original content, please indicate the source:
同福客栈论坛 | 蟒蛇科普 | 海南乡情论坛 | JiaYu Blog
sicnature ---------------------------------------------------------------------
没有评论