首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Linux防火墙设置-DNS服务器篇

亲测可用,对于刚刚搭建了DNS服务器,需要开启防火墙但又不知道该怎么设置的朋友,可以参考下面的内容,或者直接使用我下面给出的脚本程序。

如果服务器是作为DNS服务器使用的,针对绝大多数的情况,为了开启防火墙同时又能正常地提供相关的服务,一般的设置如下:

【1】第一步:清除默认防火墙规则

iptables -Fiptables -Xiptables -Z

·参数说明:

-F:清除所有的已制定的规则

-X:清除所有用户自定义的chain(应该说的是tables)

(扩展:table--Linux的iptables防火墙默认有三种表,Filter、NAT与Mangle,当然还有自定义的,其中Filter即是默认使用的表格,chain--条链,比如filter有INPUT、OUTPUT、FORWARD三条链)

-Z:将所有的chain的计数与流量统计清零

·设置原因:

filter的三条链中,默认策略都为ACCEPT,显然对于INPUT来说,这是很危险的,可以使用命令iptables -L -n来查看默认设置,或者使用iptables-save命令(会列出更详细的防火墙配置信息)。

【2】第二步:设置策略

iptables -P INPUT DROPiptables -P OUTPUT ACCEPTiptables -P FORWARD ACCEPT

·设置原因:

DROP为丢弃,由1中可知,INPUT策略制定为DROP时才比较安全。

【3】第三步:根据所需服务制定各项规则

(1)将本机设置为信任设备

iptables -A INPUT -i lo -j ACCEPT

(2)制定ssh远程连接规则

iptables -A(添加) INPUT(链路) -p(指定协议) tcp(指定为TCP协议) --dport(指定目标端口号) 22(指定目标端口号为22) -j(指定操作) ACCEPT(指定操作为接受)

(3)制定dns服务规则

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

·说明:

允许新的dns请求,同时允许以nslookup的方式来向服务器查询,即以源端口号53来查询dns信息。

(4)制定其它规则

iptables -A INPUT -p icmp -j ACCEPT

·说明:

可不用,但为了方便检测服务器的网络连通性,所以还是加上。

【4】写入防火墙配置文件

/etc/init.d/iptables save

·说明:

要保存,否则重启服务器后上面所做的配置会失效。

完整的执行脚本如下:

#!/bin/bashPATH=/sbin:/bin:/usr/sbin:/usr/bin; export PATHiptables -Fiptables -Xiptables -Ziptables -P INPUT DROPiptables -P OUTPUT ACCEPTiptables -P FORWARD ACCEPTiptables -A INPUT -i lo -j ACCEPTiptables -A INPUT -p tcp --dport 22 -j ACCEPTiptables -A INPUT -p tcp --dport 53 -j ACCEPTiptables -A INPUT -p udp --dport 53 -j ACCEPTiptables -A INPUT -p tcp --sport 53 -j ACCEPTiptables -A INPUT -p udp --sport 53 -j ACCEPTiptables -A INPUT -p icmp -j ACCEPT/etc/init.d/iptables save

保存为.sh文件,以管理员权限执行即可。

其它常用命令:

查看防火墙简要配置

iptables -L -n

查看防火墙详细配置

iptables-save

重要说明:

进行防火墙的配置一定要格外小心,特别在远程做配置时,如果不小心清除了已定义的规则,又把默认的INPUT规则设置为DROP,这时就没有办法远程连接了,这点特别要注意。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20171214A04K3900?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券