Linux防火墙iptables添加白名单方式
作者:SP八岐大兔
这篇文章主要介绍了Linux防火墙iptables添加白名单方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
Linux防火墙iptables添加白名单
iptables
在linux系统中安装yum install iptables-services
- 重启防火墙的命令:service iptables restart
- 保存到配置中:service iptables save ,该命令会将配置规则保存到/etc/sysconfig/iptables文件中。
添加白名单:
- 开放端口区间:iptables -A INPUT -p tcp --dport 3000:3006 -j ACCEPT
- 开放单个端口:iptables -A INPUT -p tcp --dport 3306 -j ACCEPT #追加到链的末尾
拓展:
iptables命令最后的ACCEPT表示公网可访问,换成whitelist则仅限服务器之间通过内网访问。
iptables -I
:默认插入到第一行,原有规则后移。iptables -A
:默认追加到最后一行。
Linux防火墙白名单设置
在linux系统中安装yum install iptables-services
然后 vi /etc/sysconfig/iptables
# Generated by iptables-save v1.4.7 on Sun Aug 28 12:14:02 2016 *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] #这里开始增加白名单服务器ip(请删除当前服务器的ip地址) -N whitelist -A whitelist -s 8.8.8.8 -j ACCEPT -A whitelist -s x.x.x.x -j ACCEPT #这些 ACCEPT 端口号,公网内网都可访问 -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT #允许接受本机请求之后的返回数据 RELATED,是为FTP设置的 -A INPUT -p icmp -j ACCEPT -A INPUT -i lo -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 13020 -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 1000:8000 -j ACCEPT #开放1000到8000之间的所有端口 #下面是 whitelist 端口号,仅限 服务器之间 通过内网 访问 -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j whitelist -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j whitelist -A INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j whitelist -A INPUT -m state --state NEW -m tcp -p tcp --dport 25 -j whitelist #为白名单ip开放的端口,结束 -A INPUT -j REJECT --reject-with icmp-host-prohibited -A FORWARD -j REJECT --reject-with icmp-host-prohibited COMMIT
解释:
添加防火墙过滤规则步骤如下;
1、查看现有防火墙过滤规则:
iptables -nvL --line-number
2、添加防火墙过滤规则(设置白名单):
1)添加白名单
iptables -I INPUT 3 -s 136.6.231.163 -p tcp --dport 1521 -j ACCEPT
命令详解:
-I
:添加规则的参数INPUT
:表示外部主机访问内部资源
规则链:
- 1)INPUT——进来的数据包应用此规则链中的策略
- 2)OUTPUT——外出的数据包应用此规则链中的策略
- 3)FORWARD——转发数据包时应用此规则链中的策略
- 4)PREROUTING——对数据包作路由选择前应用此链中的规则 (记住!所有的数据包进来的时侯都先由这个链处理)
- 5)POSTROUTING——对数据包作路由选择后应用此链中的规则(所有的数据包出来的时侯都先由这个链处理)
3、表示添加到第三行(可以任意修改)
-s
:指定作为源地址匹配,这里不能指定主机名称,必须是IP;-p
: 用于匹配协议的(这里的协议通常有3种,TCP/UDP/ICMP)--dport
: 用于匹配端口号-j
: 用于匹配处理方式:
常用的ACTION:
DROP
:悄悄丢弃,一般我们多用DROP来隐藏我们的身份,以及隐藏我们的链表REJECT
:明示拒绝ACCEPT
:接受
2)查看添加结果
iptables -nvL --line-number
然后重启防火墙即可生效
重启防火墙的命令:service iptables restart
此时,防火墙规则只是保存在内存中,重启后就会失效。
使用以下命令将防火墙配置保存起来;
保存到配置中:service iptables save (该命令会将防火墙规则保存在/etc/sysconfig/iptables文件中。)
附:
开放端口段3000~3008
iptables -A INPUT -p tcp --dport 3000:3008 -j ACCEPT
开放ip段
iprange模块提供了两个匹配参数:
- --src-range: 匹配来源地址的范围,例如,iptables -A INPUT -p tcp -m iprange --src-range 192.168.0.2-192.168.0.61 -j DROP
- --dst-range: 匹配目的地址的范围,例如,iptables -A OUTPUT -p tcp -m iprange --dst-range 192.168.0.2-192.168.0.61 -j DROP
禁止用户访问www.baidu.com
iptables -I FORWARD -d www.baidu.com -j DROP
iptables—命令(-A、-I、-D、-R、-L等)、
View Code
释义,可参考:Centos7.0-iptables linux的出站入站端口维护
Iptables防火墙规则使用梳理
规则的删除等:linux下iptables的使用下面是可能用于防止慢连接攻击的方式
#处理IP碎片数量,防止攻击,允许每秒100个 iptables -A FORWARD -f -m limit --limit 100/s --limit-burst 100 -j ACCEPT #设置ICMP包过滤,允许每秒1个包,限制触发条件是10个包 iptables -A FORWARD -p icmp -m limit --limit 1/s --limit-burst 10 -j ACCEPT
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。