LINUX中IPTABLES防火墙的基本使用教程
前言
对于有公网IP的生产环境VPS,仅仅开放需要的端口,即采用ACL来控制IP和端口(AccessControlList).
这里可以使用Linux防火墙netfilter的用户态工具
iptables有4种表:raw–>mangle(修改报文原数据)–>nat(定义地址转换)–>filter(定义允许或者不允许的规则)
每个表可以配置多个链:
*对于filter来讲一般只能做在3个链上:INPUT,FORWARD,OUTPUT
*对于nat来讲一般也只能做在3个链上:PREROUTING,OUTPUT,POSTROUTING
*对于mangle是5个链都可以做:PREROUTING,INPUT,FORWARD,OUTPUT,POSTROUTING
filter表的三个链详解:
*INPUT链:过滤所有目标地址是本地的数据包
*FORWARD链:过滤所有路过本机的数据包
*OUTPUT链:过滤所有由本机产生的数据包
举一反三学习:
【例】:过滤所有的访问: iptables-tfilter-AINPUT-s0.0.0.0/0.0.0.0-dX.X.X.X-jDROP 【例】:对SSH的22端口开放 iptables-IINPUT-s0.0.0.0/0.0.0.0-dX.X.X.X-ptcp--dport22-jACCEPT 【例】:开放80端口 iptables-AINPUT-s0.0.0.0/0.0.0.0-dX.X.X.X-ptcp--dport80-jACCEPT 【例】:来自124的数据禁止通过174IP iptables-AOUTPUT-ptcp-s45.32.102.124-d157.240.22.174-jREJECT 【例】打印当前生效的iptables规则(-n显示IP地址) iptables-L-n
Linux中iptables防火墙指定端口范围
iptables-IINPUT-ptcp--dport700:800-jDROP iptables-IINPUT-s11.129.35.45-ptcp--dport700:800-jACCEPT
一、700:800表示700到800之间的所有端口
二、:800表示800及以下所有端口
三、700:表示700以及以上所有端口
这个例子作用是,700-800端口,仅仅对11.129.35.45IP开放,白名单机制。
Snat、Dnat的iptables用途:
源地址转换(Snat):iptables-tnat-A-s私IP-jSnat–to-source公IP
目的地址转换(Dnat):iptables-tnat-A-PREROUTING-d公IP-jDnat–to-destination私IP
iptables命令详解
iptables常用的命令选项有:
-P:设置默认策略的(设定默认门是关着的还是开着的)如:iptables-PINPUT(DROP|ACCEPT)
-F:FLASH,清空规则链的(注意每个链的管理权限)
-N:NEW支持用户新建一个链,比如:iptables-Ninbound_tcp_web表示附在tcp表上用于检查web的。
-X:用于删除用户自定义的空链
-Z:清空链
-A:追加
-Inum:插入,把当前规则插入为第几条
-Rnum:Replays替换/修改第几条规则
-Dnum:删除,明确指定删除第几条规则
-L:查看规则详细信息,比如"iptables-L-n-v"
-s表示源地址IP
-d表示目标地址IP
DROP表示丢弃(拒绝)
ACCEPT表示接受
-p表示适用协议,如tcp
其他更多例子:
【例】添加iptables规则禁止用户访问域名为www.sexy.com的网站。 iptables-IFORWARD-dwww.sexy.com-jDROP 【例】添加iptables规则禁止用户访问IP地址为20.20.20.20的网站。 iptables-IFORWARD-d20.20.20.20-jDROP 【例】添加iptables规则禁止IP地址为192.168.1.X的客户机上网。 iptables-IFORWARD-s192.168.1.X-jDROP 【例】添加iptables规则禁止192.168.1.0子网里所有的客户机上网。 iptables-IFORWARD-s192.168.1.0/24-jDROP 【例】禁止192.168.1.0子网里所有的客户机使用FTP协议下载。 iptables-IFORWARD-s192.168.1.0/24-ptcp–dport21-jDROP 【例】强制所有的客户机访问192.168.1.x这台Web服务器。 iptables-tnat-IPREROUTING-ieth0-ptcp–dport80-jDNAT–to-destination192.168.1.x:80 【例】禁止使用ICMP协议。 iptables-IINPUT-ippp0-picmp-jDROP
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对毛票票的支持。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。