【开篇】软件防火墙

来源:互联网 发布:mini ninjas for mac 编辑:程序博客网 时间:2024/06/16 00:19

文章基于centos7系统,redhat7.

1:使用iptables防火墙,关闭系统自带防火墙firewalld:

firewall-cmd --state
systemctl stop firewalld.service
systemctl disable firewalld.service
 firewall-cmd --state   ( 查看状态 )

2:通过yum源安装iptables。(yum源可以选择网络yum源与本地挂载镜像yum源)
yum info iptables
安装iptables:
yum install iptables-services

3:iptables默认的规则有三条,分别为入包,出包,转发包。
INPUT              
OUTPUT
SWITCH
安装好iptables以后,首先执行iptables -P INPUT ACCEPT;
使用serviceiptables save 保存规则
接下来清除防火墙所有规则。iptables -F 清除预设表filter中的所有规则链的规则;  iptables -X 清除预设表filter中使用者自定链中的规则 ;iptables -Z 清空清空链,及链中默认规则的计数器

创建规则:(根据公司具体业务需求选择规则,一般服务提供,只需要对INPUT数据包进行限制)

 iptables -P INPUT DROP

 iptables -P OUTPUT ACCEPT

 iptables -P SWITCH ACCEPT


4:

允许icmp包通过,也就是允许ping,
[root@tp ~]# iptables -A OUTPUT -p icmp -j ACCEPT (OUTPUT设置成DROP时)
[root@tp ~]# iptables -A INPUT -p icmp -j ACCEPT  
允许loopback!(不然会导致DNS无法正常关闭等问题)
iptables -A INPUT -i lo -p all -j ACCEPT 
iptables -A OUTPUT -o lo -p all -j ACCEPT(如果OUTPUT DROP时)

5:重点!配置state状态,ESTABLISHED 此状态接续tcp二三次握手,接收返回的数据包
   iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
input所有数据包丢弃时,即使允许端口


为了能采用远程SSH登陆,我们要开启22端口.
[root@tp ~]# iptables -A INPUT -p tcp --dport 22 -m state --state NEW -j ACCEPT
如果做了WEB服务器,开启80端口.
[root@tp ~]#  iptables -A INPUT -p tcp --dport 80 -m state --state NEW -j ACCEPT
如果做了邮件服务器,开启25,110端口.
[root@tp ~]#  iptables -A INPUT -p tcp --dport 110 -m state --state NEW -j ACCEPT
[root@tp ~]#  iptables -A INPUT -p tcp --dport 25 -m state --state NEW -j ACCEPT
如果做了FTP服务器,开启21端口
[root@tp ~]# iptables -A INPUT -p tcp --dport 21 -j ACCEPT
[root@tp ~]# iptables -A INPUT -p tcp --dport 20 -j ACCEPT
如果做了DNS服务器,开启53端口
[root@tp ~]# iptables -A INPUT -p tcp --dport 53 -j ACCEPT
VNC服务开启一个端口,从5901端口开始
iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 5901 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 21 -j ACCEPT


制定dns服务规则

iptables -A INPUT -p tcp --dport 53 -j ACCEPT
iptables -A INPUT -p udp --dport 53 -j ACCEPT
iptables -A INPUT -p tcp --sport 53 -j ACCEPT
iptables -A INPUT -p udp --sport 53 -j ACCEPT
service iptables save


下面是之前公司做的防火墙规则贴图:

0 0