linux下的软件防火墙iptables——防火墙的设计-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或重新启动了系统,我们以前设置的法则就会失效了。