这篇文章给大家分享的是有关linux下防火墙的设计示例的内容。小编觉得挺实用的,因此分享给大家做个参考。一起跟随小编过来看看吧。
应用规则如下:
清除已有规则,将原有的规则全部清除。
设定默认策略,将filter的input链默认策略设置为drop,其他的都设置为accept。
信任本机,对于回环网卡lo必须设置为可信任的。
响应数据包,对于主机主动向外请求的而响应的数据包可以进入本机(establish/related)
拒绝无效数据包,对于无效的数据包都拒绝(INVALID)
白名单,信任某些ip或网络地址等
黑名单,不信任的ip或网络地址等
允许icmp包,对于icmp包放行
开放部分端口, 有些服务的端口是必须要向外开放的,比如80、443、22等端口
我们准备制作3个shell脚本文件:iptables.rule、iptables.allow(白名单)、iptables.deny(黑名单)文件。这三个文件,我一般会先建立一个目录/etc/iptables,这三个文件存在这个目录。
下面,我们看这个iptables.rule的脚本内容:
#!/bin/bash # iptables rule # 清楚默认规则 iptables -F iptables -X iptables -Z # 修改默认策略 iptables -P INPUT DROP iptables -P FORWARD ACCEPT iptables -P OUTPUT ACCEPT # 信任本机 iptables -A INPUT -i lo -j ACCEPT # 响应数据包 iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT # 拒绝无效数据包 iptables -A INPUT -m state --state INVALID -j DROP # 白名单 if [ -f "/etc/iptables/iptables.allow" ];then sh /etc/iptables/iptables.allow fi # 黑名单 if [ -f "/etc/iptables/iptables.deny" ];then sh /etc/iptables/iptables.deny fi # 允许icmp包 iptables -A INPUT -p icmp -j ACCEPT # 开放部分端口 iptables -A INPUT -p tcp --dport 22 -j ACCEPT # ssh服务 iptables -A INPUT -p tcp --dport 80 -j ACCEPT # www服务 iptables -A INPUT -p tcp --dport 443 -j ACCEPT # ssl # 保存规则 /usr/libexec/iptables/iptables.init save
对于iptables.allow,我们一般会将信任的ip或网络地址写入到这个文件,比如该主机所在局域网络为192.168.1.0/24,想要信任该局域网内的主机的话,可以在该文件写入
iptables -A INPUT -s 192.168.1.0/24 -j ACCEPT
而iptables.deny则是用来阻挡某些恶意ip的流量进入到本机,比如像阻挡8.210.247.5这个ip,可以在该文件写入
iptables -A INPUT -s 8.210.247.5/32 -j DROP
在iptables.rule的最后,我们使用的命令来保存了防火墙规则,注意,如果不加入本命令,该规则只会零时生效,当重启了iptables或重启了系统,我们之前设定的规则就会失效了。
感谢各位的阅读!关于linux下防火墙的设计示例就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到吧!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。