LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 863|回复: 0

主域名服务器DNS的配置及在防火墙下的使用方法

[复制链接]
发表于 2005-4-7 01:16:46 | 显示全部楼层 |阅读模式
注:本人是初学者是,为了搞清dns服务器的正确配置方法,花了两天时间,反复在机器上装了几次。并进行多次网络测试。本文参照了这个论坛及国外的许多先辈帖子和经验。这里特别感谢kissingwolf提供许多有益的文章和资料。写这文章的另一个原因是,由于我的学习笔记都在电脑上,不小心把系统搞坏了,许多资料没贴出来出就随之消失,心中十分不快。水平有限不足之处请批评指正。webmaster@8280666.com

主要解决的问题:在不关闭防火墙的情况下配置一个可转发请求的主域名服务器(masterDNS)
服务器ip:192.168.0.254
服务器名:server1.office.com和一些别名
linx OS: RHEL4

一、首先安装DNS服务(bind bind-utils caching-nameserver),这里不再说明。
然后打开IP转发功能 :
[root@localhost ~]# echo 1 > /proc/sys/net/ipv4/ip_forward
查看一下是否打开:
[root@localhost ~]# cat /proc/sys/net/ipv4/ip_forward
1
如果你想每次开机就启动,可将其加入到/etc/rc.d/rc.local中。或者在sysctl.conf中做以下修改:
net.ipv4.ip_forward = 1

二、设置防火墙,在/etc/sysconfig/iptables中加入如下两行:
-A RH-Firewall-1-INPUT -p udp --dport 53 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp --sport 53 -j ACCEPT
这两句是参照国外有关文档。国内介绍的都异常复杂。
就象这样:
=======================================================================
# Firewall configuration written by system-config-securitylevel
# Manual customization of this file is not recommended.

*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:RH-Firewall-1-INPUT - [0:0]
-A INPUT -j RH-Firewall-1-INPUT
-A FORWARD -j RH-Firewall-1-INPUT
-A RH-Firewall-1-INPUT -i lo -j ACCEPT
-A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT
-A RH-Firewall-1-INPUT -p 50 -j ACCEPT
-A RH-Firewall-1-INPUT -p 51 -j ACCEPT
##########加入以下两行:
-A RH-Firewall-1-INPUT -p udp --dport 53 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp --sport 53 -j ACCEPT
######################
-A RH-Firewall-1-INPUT -p udp --dport 5353 -d 224.0.0.251 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 53 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 23 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 25 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited
COMMIT

这样网内其它电脑使用这个服务器DNS解析就不会被服务器的防火墙档在门外了。


三、设置网络,查看以下文件(可在网络图形状态下设置)
/etc/hosts
-----------------------------------
# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1        localhost
#这行不要删除,否则Xwindows启动时会提示,而且named服务不能正常启动。
====================================
/etc/sysconfig/network-scripts/ifcfg-eth0
------------------------------------
# Please read /usr/share/doc/initscripts-*/sysconfig.txt
# for the documentation of these parameters.
TYPE=Ethernet
DEVICE=eth0
BOOTPROTO=none
IPADDR=192.168.0.254
IPV6INIT=no
ONBOOT=yes
USERCTL=no
PEERDNS=yes
==================================
/etc/resolv.conf
-----------------------------------
search office.com
nameserver 192.168.0.254
===================================
/etc/sysconfig/network
-----------------------------------
NETWORKING=yes
HOSTNAME=localhost
===================================

四、设置DNS的配置文件/etc/named.conf

----------------------------------
//
// named.conf for Red Hat caching-nameserver
//

options {
        directory "/var/named";
        dump-file "/var/named/data/cache_dump.db";
//以下两行是将不能解析的IP转发到61.177.7.1,这里用的是公网DNS,目的是一方面可测试转发DNS解析请求,同时做测试时可以上互连网。
//在网络设置中DNS只用192.168.0.254,否则解析的结果很可能出你意料。
        forwarders { 61.177.7.1; };
        forward only;
        statistics-file "/var/named/data/named_stats.txt";
        /*
         * If there is a firewall between you and nameservers you want
         * to talk to, you might need to uncomment the query-source
         * directive below.  Previous versions of BIND always asked
         * questions using port 53, but BIND 8.1 uses an unprivileged
         * port by default.
         */
         // query-source address * port 53;
};

//
// a caching only nameserver config
//
controls {
        inet 127.0.0.1 allow { localhost; } keys { rndckey; };
};

zone "." IN {
        type hint;
        file "named.ca";
};

zone "localdomain" IN {
        type master;
        file "localdomain.zone";
        allow-update { none; };
};

zone "localhost" IN {
        type master;
        file "localhost.zone";
        allow-update { none; };
};

zone "0.0.127.in-addr.arpa" IN {
        type master;
        file "named.local";
        allow-update { none; };
};

zone "0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa" IN {
        type master;
        file "named.ip6.local";
        allow-update { none; };
};

zone "255.in-addr.arpa" IN {
        type master;
        file "named.broadcast";
        allow-update { none; };
};

zone "0.in-addr.arpa" IN {
        type master;
        file "named.zero";
        allow-update { none; };
};
//################ 增加二行,是进行正向和反向解析的入口
zone "server1.office.com" IN {    //这里不要加server1,否则只能解析server1.office.com
type master;
file "n2ip";
};

zone "254.0.168.192.in-addr.arpa" IN {
type master;
file "ip2n";
};
//##########################################

include "/etc/rndc.key";
//这里要注意的是,引号如果是中文全角,就象“”,会给你带来麻烦的。

五、用vi创建两个文件/var/named/chroot/var/named/n2ip和ip2n
对于n2ip文件的内容如下:
$TTL    86400
@               IN SOA  server1.office.com. Root.server1.office.com. (
            05050600              ; serial (d. adams)
            3H              ; refresh
            15M             ; retry
            1W              ; expiry
            1D )            ; minimum
@        IN        NS        server1.office.com.

server1.office.com.         IN        A        192.168.0.254
www                                IN        A        192.168.0.254
ftp                                IN        A        192.168.0.254
pop                                 IN        A        192.168.0.254
www1                                IN        CNAME        server1.office.com.
www2                                IN        CNAME        server1.office.com.

@        IN        MX                10                server1.office.com.
server1.office.com.                IN        MX        10        server1.office.com.       
----------------------------------------------------------------------
这里不做解释,其实原理很简单,坛里有这类帖子,参见nobody_am的帖子:
http://www.linuxsir.cn/bbs/showthread.php?t=50245
这里需要指出的是,很多测试失败的原因是每行开头不顶格,留下空格,这也浪费了我很多排错时间,一个字,“菜”啊:)。

对于ip2n文件的内容如下:
-----------------------------------------------------------------------
$TTL        86400
@       IN      SOA     server1.office.com. root.server1.office.com.  (
              0505062 ; Serial
              28800      ; Refresh
               14400      ; Retry
               3600000    ; Expire
               86400 )    ; Minimum
               IN      NS     server1.office.com.

254.0.168.192.IN-ADDR.ARPA.      IN      PTR     server1.office.com.

----------------------------------------------------------------------

六、检测,可用host或nslookup命令:


[root@localhost ~]# nslookup
> server1.office.com
Server:         192.168.0.254
Address:        192.168.0.254#53

Name:   server1.office.com
Address: 192.168.0.254
> 192.168.0.254
Server:         192.168.0.254
Address:        192.168.0.254#53

254.0.168.192.in-addr.arpa      name = server1.office.com.
> www.office.com
Server:         192.168.0.254
Address:        192.168.0.254#53

Name:   www.office.com
Address: 192.168.0.254
> ftp.office.com
Server:         192.168.0.254
Address:        192.168.0.254#53

Name:   ftp.office.com
Address: 192.168.0.254
> pop.office.com
Server:         192.168.0.254
Address:        192.168.0.254#53

Name:   pop.office.com
Address: 192.168.0.254
> www1.office.com
Server:         192.168.0.254
Address:        192.168.0.254#53

www1.office.com canonical name = server1.office.com.
Name:   server1.office.com
Address: 192.168.0.254
> www2.office.com
Server:         192.168.0.254
Address:        192.168.0.254#53

www2.office.com canonical name = server1.office.com.
Name:   server1.office.com
Address: 192.168.0.254
>

就到这里,收船了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表