iptables入门




首先介绍一下指令和相关配置文件
启动指令:service iptables start   
重启指令:service iptables restart   
关闭指令:service iptables stop   


介绍一些指令用法(主要还是man iptables看下相关资料才行)
-A:指定链名   
-p:指定协议类型   
-d:指定目标地址   
--dport:指定目标端口(destination port 目的端口)   
--sport:指定源端口(source port 源端口)   
-j:指定动作类型  


例如我给SSH加放行的语句:   
添加input记录: iptables -A INPUT -p tcp --dport 22 -j ACCEPT   
添加output记录: iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT   
注意要/etc/rc.d/init.d/iptables save否则就SSH链接不上都有可能!


把所有不符合自己配置的规则ACCEPT的连接全部DROP掉
iptables -P INPUT DROP    
iptables -P OUTPUT DROP    
iptables -P FORWARD DROP
DROP 可以这样理解:
    当INPUT =DROP,表示防火墙遇到数据就不接受它,不让它进入服务器
    当OUTPUT=DROP,表示防火墙阻止从服务器流出的数据
    当FORWARD=DROP,表示服务器不允许经服务器路由
这样的设置只是临时的, 重启服务器还是会恢复原来没有设置的状态(policy ACCEPT),要想重启后仍然生效需要使用service iptables save 进行保存,会提示保存信息到 /etc/sysconfig/iptables,所以我们可以打开文件查看 vi /etc/sysconfig/iptables
开启INPUT策略
# iptables -P INPUT  ACCEPT
# iptables -P FORWARD ACCEPT
# iptables -P OUTPUT ACCEPT


# iptables -A INPUT -p tcp --dport 22 -j ACCEPT
# iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT
iptables -t filter -A INPUT -p tcp --dport 22 -j DROP 
-A 添加规则到指定链的结尾,最后一条 
-I 添加规则到指定链的开头,第一条 
-t 指定表,也可以不指定默认是filter 
-p 指定协议(all.tcp,udp.icmp)默认all 
--dport 指定端口 
-j 处理的行为 
ACCPET接收、DROP丢弃、REJECT拒绝。最好使用ACCPET和DROP,因为拒绝会返回给用户信息。


匹配端口范围:
iptables -I INPUT -p tcp -m multiport --dport 22,23,24,25 -j DROP
iptables -I INPUT -p tcp -m multiport ! --dport 22,23,24,25 -j DROP




----------------------------------------------------------------------------------------------------------
清除已有iptables规则
iptables -F
iptables -X
iptables -Z


开放指定的端口
#允许本地回环接口(即运行本机访问本机)
iptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
# 允许已建立的或相关连的通行
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
#允许所有本机向外的访问
iptables -A OUTPUT -j ACCEPT
# 允许访问22端口
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
#允许访问80端口
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
#允许FTP服务的21和20端口
iptables -A INPUT -p tcp --dport 21 -j ACCEPT
iptables -A INPUT -p tcp --dport 20 -j ACCEPT
#如果有其他端口的话,规则也类似,稍微修改上述语句就行
#禁止其他未允许的规则访问
iptables -A INPUT -j REJECT  (注意:如果22端口未加入允许规则,SSH链接会直接断开。)
iptables -A FORWARD -j REJECT




屏蔽IP
#屏蔽单个IP
iptables -I INPUT -s 123.45.6.7 -j DROP
#封整个段即从123.0.0.1到123.255.255.254的命令
iptables -I INPUT -s 123.0.0.0/8 -j DROP
#封IP段即从123.45.0.1到123.45.255.254的命令
iptables -I INPUT -s 124.45.0.0/16 -j DROP
#禁止10.0.0.0网段接入
iptables -A INPUT -s 10.0.0.0/24 -j DROP
#还可以使用不是这个网段的进行操作
iptables -A INPUT ! -s 10.0.0.0/24 -j DROP


开启信任的IP网段
iptables -A INPUT -s 124.23.62.96/27 -p all -j ACCEPT   #办公室固定IP段
iptables -A INPUT -s 192.168.2.0/24 -p all -j ACCEPT     #IDC机房的内网网段
iptables -A INPUT -s 10.0.0.0/24 -p all -j ACCEPT           #其他机房的内网网段
iptables -A INPUT -s 203.82.24.0/24 -p all -j ACCEPT     #IDC机房的外网网段
iptables -A INPUT -s 203.82.23.0/24 -p all -j ACCEPT     #其他IDC机房的外网网段


如果想针对某IP进行单独开放端口可以如下配置:
如果我需要对内网某机器单独开放mysql端口,应该如下配置:   
iptables -A INPUT -s 192.168.2.6 -p tcp -m tcp --dport 3306 -j ACCEPT   
iptables -A OUTPUT -s 192.168.2.6 -p tcp -m tcp --sport 3306 -j ACCEPT  


强调:如果并发比较大,或者日PV多的情况下,开启防火墙要注意,很可能导致网站访问缓慢 
大并发(并发1万,PV日3000万)要么购买硬件防火墙,要么不开iptables防火墙







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值