开发者社区> 技术小阿哥> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

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

简介:
+关注继续查看

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

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


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

1
2
3
iptables -F
iptables -X
iptables -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】第二步:设置策略

1
2
3
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT

·设置原因:

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



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


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

1
iptables -A INPUT -i lo -j ACCEPT

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

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

(3)制定dns服务规则

1
2
3
4
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

·说明:

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

(4)制定其它规则

1
iptables -A INPUT -p icmp -j ACCEPT

·说明:

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


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

1
/etc/init.d/iptables save

·说明:

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


完整的执行脚本如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#!/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/binexport PATH
iptables -F
iptables -X
iptables -Z
 
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
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
iptables -A INPUT -p icmp -j ACCEPT
 
/etc/init.d/iptables save

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


其它常用命令:

查看防火墙简要配置

1
iptables -L -n

查看防火墙详细配置

1
iptables-save


重要说明:

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





本文转自 xpleaf 51CTO博客,原文链接:http://blog.51cto.com/xpleaf/1707025,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Linux服务器远程连接只允许密钥文件
Linux服务器远程连接只允许密钥文件
0 0
在linux服务器上监视指定程序是否正常进行
运行在linux服务器的程序,运行一段时间会自动断开终止运行,所以写了如下脚本去监视该进程是否正常运行,如果指定进程断掉,则自动重新启动。并将日志写入指定文件中:
0 0
安装 Linux 服务器面板管理工具 | 学习笔记
快速学习 安装 Linux 服务器面板管理工具
0 0
【服务器环境搭建】Linux安装Nginx
最近要部署一个项目 但是不能用 宝塔面板 啊这!赶快学习学习Linux安装Nginx!
0 0
linux服务器怎么检查后门账户
在Linux系统里植入账户后门是一个极其简单高效的管理权限维持办法。hack在获得目标系统权限的情况下,利用建立一个操作系统账户当做持久化的聚集点,如此一来随时都可以利用工具链接到目标操作系统,实现对目标服务器进行长期操控的目的。依据获得的shell方式不一样,建立操作系统账户的办法也不尽相同,一般shell方式可分为交互模式和非交互模式这两种情况:
0 0
Go打包 部署 优雅的把Go项目部署到Linux服务器
go项目运行之后,修改.env文件不会立即生效,需要重启go服务才会生效;go项目运行之后,修改config.ini配置文件会立即生效,无需重启go服务
0 0
【Linux】【CentOS】【FTP】FTP服务器安装与配置2(vsftpd、lftp)
【Linux】【CentOS】【FTP】FTP服务器安装与配置(vsftpd、lftp)
0 0
【Linux】【CentOS】【FTP】FTP服务器安装与配置1(vsftpd、lftp)
【Linux】【CentOS】【FTP】FTP服务器安装与配置(vsftpd、lftp)
0 0
【开发工具】【windows】Visual Studio Code(VS Code)远程Linux服务器环境搭建——SFTP篇
【开发工具】【windows】Visual Studio Code(VS Code)远程Linux服务器环境搭建——SFTP篇
0 0
【Linux】【开发环境】【RHEL】开发环境搭建系列之十——Linux主机环境下挂载samba服务器
【Linux】【开发环境】【RHEL】开发环境搭建系列之十——Linux主机环境下挂载samba服务器
0 0
文章
问答
文章排行榜
最热
最新
相关电子书
更多
ECS系统指南之Linux系统诊断
立即下载
ECS运维指南 之 Linux系统诊断
立即下载
Decian GNU/Linux安全合规之路
立即下载