服务器维护,服务器代维,安全设置,漏洞扫描,入侵检测服务

运维之家

 找回密码
 注册
搜索
查看: 11339|回复: 3

bind-9详细安装配置DNS服务

[复制链接]
dirtysea 发表于 2010-4-15 14:31:14 | 显示全部楼层 |阅读模式
1.安装bind软件:
# yum install bind*
# yum install caching-nameserver
# rpm -qa |grep bind
bind-libs-9.3.3-10.el5
ypbind-1.19-8.el5
bind-utils-9.3.3-10.el5
bind-9.3.3-10.el5
bind-chroot-9.3.3-10.el5


安装过程很简单主要的就是配置BIND服务。
本机IP是:192.168.0.14
# ls /var/named/chroot/etc/  
localtime   named.rfc1912.zones named.caching-nameserver.conf    rndc.key
这些是在/var/named/chroot/etc/下的几个主要的配置文件。
3)、首先编辑 named.conf 文件
# cp -p named.caching-nameserver.conf named.conf
注:使用cp -p 参数在复制的时候文件的属性不会改变。如果直接 cp 则要修改此文件的属主:
#chown :named named.conf
编辑 named.conf文件进行配置。
# vi named.conf   
options {
    listen-on port 53 { 127.0.0.1; };    //127.0.0.1 改为 any
    listen-on-v6 port 53 { ::1; };
    directory     "/var/named";
    dump-file     "/var/named/data/cache_dump.db";
        statistics-file "/var/named/data/named_stats.txt";
        memstatistics-file "/var/named/data/named_mem_stats.txt";
    query-source    port 53;   
    query-source-v6 port 53;
    allow-query     { any; };             //localhost  改为 any
    forwarders      { 208.67.222.222; };  // 此行默认没有,如果内网使用此dns 服务器可以设置 dns 转发,这里一定是一个有效的 dns 服务器地址,则添加这两行 。
    forward only;         
};
logging {
        channel default_debug {
                file "data/named.run";
                severity dynamic;
        };
};
view localhost_resolver {
    match-clients         { any; };     //localhost  改为 any
    match-destinations { any; };        //localhost  改为 any
    recursion yes;
    include "/etc/named.rfc1912.zones";
};
4)、然后编辑  /var/named/chroot/etc/named.rfc1912.zones
# vi named.rfc1912.zones   //dns 服务器的区域主配置文件
在最后添加自己的 dns 区域  如果有多个则类似添加
zone "leisure.com" IN {                 // leisure.com 我实验用的区域,正向解析区域
    type master;
    file "leisure.com.zone";            // leisure.com.zone本区域的配置文件
    allow-update { none; };
};
zone "0.168.192.in-addr.arpa" IN {       //0.168.192      反向解析区域  
    type master;
    file "0.168.192.zone";               // 0.168.192     反向解析区域配置文件
    allow-update { none; };
};
5)、这两个区域配置文件可以分别直接拷贝 /var/named/chroot/var/named/localdomain.zone 和
/var/named/chroot/var/named/named.local
# cd /var/named/chroot/var/named/
# cp -p localdomain.zone  leisure.com.zone  
# cp -p named.local       0.168.192.zone
注意:这两个配置文件名一定要跟named.rfc1912.zones 你定义的名称相同
下面主要是编辑这两个文件了。
# vi 0.168.192.zone
$TTL    86400
@       IN      SOA     localhost. root.localhost. (
                                      1997022700 ; Serial
                                      28800      ; Refresh
                                      14400      ; Retry
                                      3600000    ; Expire
                                      86400 )    ; Minimum
         IN      NS      leisure.com.
         IN      PTR     dns.leisure.com.   //添加反向解析记录  14
         IN      PTR     www.test.com.      //添加反向解析记录
         IN      PTR     mail.test.com.     //添加反向解析记录
14 是指的 dns 服务器IP:192.168.1.14 的最后地址区域
6)、# vi leisure.com.zone
$TTL    86400
@        IN SOA    localhost root (
                    42        ; serial (d. adams)
                    3H        ; refresh
                    15M        ; retry
                    1W        ; expiry
                    1D )        ; minimum
     IN NS        dns     //添加域名服务器记录-NS记录(设置当前域的DNS服务器名称)  
     IN MX  5     mail    //添加邮件交换记录-MX记录(设置mail.leisure.com主机作为邮件服务器)
dns     IN A        192.168.1.14        //添加正向解析
www     IN A        192.168.1.15      //添加正向解析
mail    IN A        192.168.1.16        //添加正向解析
bbs     CNAME       www                 //添加别名              
7)、最后就是修改/etc/resolv.conf文件了. 也就是添加主dns 服务器
# vi /etc/resolv.conf
nameserver 192.168.0.14
8)、测试:
#named-checkzone leisure.com /var/named/chroot/var/named/leisure.com.zone   //测试正向区域文件(文件没有语法错误则显示OK,有错误则显示错误内容)
#named-checkzone leisure.com /var/named/chroot/var/named/0.168.192.zone    //同理测试反向解析文件
zone leisure.com/IN: loaded serial 1997022700
OK

9)、启动 bind 服务
#service named start
ok  
到此配置就结束了,如果开启了selinux 则要设置一下selinux,因为不配置这个的话就不会让别人访问你的DNS服务器。 防火墙开启 tcp:53 udp:53
# ntsysc
这只named 开启自动启动即可;
实验中可关闭Selinux,开启服务service named start.
10)、以上即是配置主域名服务器过程,如果是从域名服务器,这个配置过程也是一样的,只需要改动named.rfc1912.zones文件即可
zone "test.com" IN {
    type slave;
    file "slaves/leisure.com.zone";   //在/var/named/chroot/var/named/slaves
    masters { 192.168.1.12; };          添加区域配置文件leisure.com.zone既可
};
zone "0.168.192.in-addr.arpa" IN {
    type slave;
    file "slaves/0.168.192.zone";    //在/var/named/chroot/var/named/slaves
    masters { 192.168.1.12; };         添加区域配置文件 0.168.192.zone 即可
};
11)、域名解析测试系统自带的 nslookup 工具
# nslookup
> www.leisure.com
Server:         192.168.1.14
Address:        192.168.1.14#53
Name:   www.leisure.com
Address: 192.168.1.14
>set type=mx
>leisure.com
Server:         192.168.0.14
Address:        192.168.0.14#53
leisure.com     mail exchanger = 5 mail.leisure.com.
 楼主| dirtysea 发表于 2010-4-15 16:07:48 | 显示全部楼层
xbayDNS

  协议:New BSD License
  作者:huangdong
  团队:新浪研发中心──系统研发
  网址:http://code.google.com/p/xbaydns/

  xBayDNS是一个基于Web的BIND 9管理界面。与通常我们所知道的管理界面所不同的是,它尽可能的将DNS的管理简化,并帮助用户建立起一个容易管理、维护、扩展的DNS系统。

  一个普通的DNS服器可以提供域名的解析、代理、缓存这样的服务。我们期望DNS不但是一个服务,它更应该承担起GSLB、用户访问加速这样的任务。而在现实的环境中,应用DNS已经能够很好的完成这样的工作。所以沿着从前的经历,我们启动了xBayDNS这个项目,它的目的是让DNS服务在承担着GSLB和访问加速这样的工作时更容易管理。做为xBayDNS附加的礼物,也可以从中学到如何形成一个基于DNS的GSLB和用户访问加速的原理。

  xBayDNS的特性如下:
  • 基于Web的BIND管理
  • 非常容易的支持多种操作系统(现有我们考虑支持的就有FreeBSD、OpenBSD、MacOSX、Linux)
  • 支持ACL、View、TSIG这样的BIND高级管理功能

  什么时候使用xBayDNS?
  • 你需要简单的管理一台BIND的DNS服务器
  • 你需要多台DNS服务器来为你的用户提供解晰服务
  • 一套基于DNS的GSLB系统
  • 一套基于DNS的分布式GSLB系统
  • 你需要维护多台分布式的服务器

  安装:

  xBayDNS需要以下软件:
  • BIND (>9.4.1)
  • Django (0.96.1)
  • dnspython (1.6)
  • python(2.5)
  • setuptool


0.安装BIND9
# yum install bind*
# yum install caching-nameserver
#service named restart

1、安装python2.5.1
wget http://www.python.org/ftp/python/2.5.1/Python-2.5.1.tgz
tar -zxvf Python-2.5.1.tgz
cd Python-2.5.1
./configure
make;make install

2、安装Django setuptool dnspython
wget http://www.djangoproject.com/download/0.96.1/tarball/
tar -xzvf Django-0.96.1.tar.gz
cd Django-0.96.1
python setup.py install

http://pypi.python.org/pypi/setuptools
tar -zxvf setuptools-0.6c8.tar.gz
cd setuptools-0.6c8
python setup.py install

http://www.dnspython.org/kits/1.6.0/
tar -zxvf dnspython-1.6.0.tar.gz
cd dnspython-1.6.0
python setup.py install

3、这些安装都很简单,因为xbaydns要用到sqlite,,所以还要安装sqlite和pysqlite
wget http://www.sqlite.org/sqlite-3.5.6.tar.gz
tar -zxvf sqlite-3.5.6.tar.gz
cd sqlite-3.5.6
./configure
make;make install

http://initd.org/tracker/pysqlite/wiki/pysqlite
tar -zxvf pysqlite-2.4.1.tar.gz
cd pysqlite-2.4.1
python setup.py install




  1、安装xbaydns基础系统
  下载xbaydnsx.x.tar.gz,将它解压,执行安装脚本:
  python setup.py install
  它将会把xbaydns的基础系统安装到你的操作系统中。

  2、初始化BIND配置
  执行xbdinit,它会初始化操作系统中的BIND相关配置。对于不同操作系统,我们还需要你自己**操作系统的BIND的启动设备:

  FreeBSD
  /etc/rc.conf中设置了 named_enable="YES"你可以使用
  /etc/rc.d/named restart
  了解是不是能正常启动bind。

  Mac OSX 10.5
  使用launchctl  load了org.isc.named的job。你可以使用
  service org.isc.named stop
  service org.isc.named start
  了解是不是能正常启动bind。

  3、启动xBayDNS WebAdmin
  在解开的包中有一个目录叫xbaydnsweb,在其中有全套的web系统,安装好Django后,到这个目录中执行:
  python manage.py runserver
  缺省的,登录管理系统的帐号为admin,它的密码也是admin。

  4、将xBayDNS的sync加入crontab中
  你希望用户增加的域名多久生效就在crontab中设置多久运行一次,运行这个sync脚本需要root权限,脚本为
  xbdsync
  它通常在/usr/local/bin中
 楼主| dirtysea 发表于 2010-7-2 11:38:40 | 显示全部楼层
在ubuntu下用bind9配置dns

1.安装bind9
sudo apt-get install bind
2.bind9的配置文件解释
安装bind9后会生成如下配置文件:named.conf/named.conf.options/named.conf.local,其中 named.conf是主配置文件,里面包含了named.conf.options和named.conf.local,我们在架设dns时,只需改动 named.conf.local即可。
3.设置实例
⑴环境:主机A:主机名:jzzlx,ip:10.9.110/24;主机B:主机名ubuntu,ip:10.9.1.79/24
现在将主机B架设成主dns服务器,要求能解析
ubuntu.jh9z .com 10.9.1.79
www .jh9z .com 10.9.1.79
jzzlx.jh9z .com 10.9.1.110
⑵分析:根据上面的主机名称和ip对应可以看出,
①需要添加正向区域“jh9z.com”和反向区域“1.9.10.in-addr.arpa”,
②在“jh9z.com”区域中添加A记录ubuntu对应79,jzzlx对应110,CNAME记录www对应ubuntu
③在“1.9.10.in-addr.arpa”区域中添加79对应ubuntu,110对应jzzlx
⑶编辑配置文件
①编辑named.conf.local
添加下列语句
//反向区域
zone "1.9.10.in-addr.arpa"{
type master;
file "/etc/bind/db.10.9.1";
};
//正向区域
zone "jh9z.com"{
type master;
file "/etc/bind/db.jh9z.com";
};
②在/etc/bind下建立db.10.9.1文件
; db.10.9.1
;
$TTL 604800
@ IN SOA ubuntu.jh9z.com. root.ubuntu.jh9z .com. (
1 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL;
@ IN NS ubuntu.jh9z .com.
79 IN PTR ubuntu.jh9z .com.
110 IN PTR jzzlx.jh9z .com.
③在/etc/bind下建立db.jh9z.com文件
; db.jh9z.com
;
$TTL 604800
@ IN SOA ubuntu.jh9z.com. root.ubuntu.jh9z .com. (
1 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL;
@ IN NS ubuntu.jh9z .com.
ubuntu IN A 10.9.1.79
www IN CNAME ubuntu
jzzlx IN A 10.9.1.110
(4)重新启动 named
sudo /etc/init.d/bind9 restart
到此位置dns就配置完成了,你可以用nslookup去试试看
注意:改动配置文件后都要重新启动bind9。
 楼主| dirtysea 发表于 2012-1-16 11:08:32 | 显示全部楼层

CentOS5 安裝 SPF/DKIM 郵件認證

  • SPF (Sender Policy Framework)
  • DKIM (DomainKeys Identified Mail)

安裝前先確認已經安裝以下套件

yum install openssl openssl-devel sendmail sendmail-devel

1 設定 SPF 方式

設定 SPF 只是在 DNS 內增加兩行有關 mail server 的定義

  1. 連上 http://www.openspf.org/Project_Overview 使用 Deploying SPF 來快速產生你的 SPF 在 DNS 需要的資料.
  2. 產生給 BIND 的資訊:
    everplast.net. IN TXT "v=spf1 a mx include:everplast.com.tw include:e-plast.com.tw ~all"
    mail.everplast.net. IN TXT "v=spf1 a -all"

  3. 在 everplast.net 的 DNS 定義檔 1) 增加這兩行

    ;
    ; Mail Server
    ;
    @                       A       192.168.0.250
    @               IN      MX      10 mail
    everplast.net. IN TXT "v=spf1 a mx include:everplast.com.tw include:e-plast.com.tw ~all"
    mail            IN      A       192.168.0.251
    mail            IN      MX      10 mail
    mail.everplast.net. IN TXT "v=spf1 a -all"
    ;

  4. 定義完成後, 重新啟動 named

    service named restart

  5. 使用 nslookup 確認設定是否正確

    [root@ag320-mail data]# nslookup
    > set type=TXT
    > everplast.net
    Server:         192.168.0.251
    Address:        192.168.0.251#53
     
    everplast.net   text = "v=spf1 a mx include:everplast.com.tw include:e-plast.com.tw ~all"
    > mail.everplast.net
    Server:         192.168.0.251
    Address:        192.168.0.251#53
     
    mail.everplast.net      text = "v=spf1 a -all"

  6. 透過 mail.everplast.net 寄信到 check-auth@verifier.port25.com 可得到設定結果的回信. 內容如:

    :
    Summary of Results
    ==========================================================
    SPF check:          pass
    DomainKeys check:   neutral
    DKIM check:         neutral
    Sender-ID check:    pass
    SpamAssassin check: ham
    :

2 安裝與設定 DKIM 方式

  1. 下載安裝 dkim-milter
    1. 使用原始碼安裝程序
    2. 使用 rpm 安裝程序
  2. http://www.socketlabs.com/services/dkwiz 產生 Domain Key / DKIM Key Exp:

    Domain : everplast.net
    Selector : key1

  3. 將產生結果的 Private Key 貼到 mail server 內的 /etc/mail/dkim/keys/everplast.net/key1 並設定權限

    mkdir -p /etc/mail/dkim/keys/everplast.net
    vi /etc/mail/dkim/keys/everplast.net/key1
    chmod 600 /etc/mail/dkim/keys/everplast.net/key1
    chown -R dkim-milt:dkim-milt /etc/mail/dkim/keys

  4. 將產生結果的 domainkey 放入 everplast.net DNS 定義檔內

    ;
    ; Mail Server
    ;
    @                       A       192.168.0.250
    @               IN      MX      10 mail
    everplast.net. IN TXT "v=spf1 a mx include:everplast.com.tw include:e-plast.com.tw ~all"
    mail            IN      A       192.168.0.251
    mail            IN      MX      10 mail
    mail.everplast.net. IN TXT "v=spf1 a -all"
    _domainkey.everplast.net.       IN TXT  "t=y;o=~;"
    key1._domainkey.everplast.net.  IN TXT  "k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDNPwPm7Q/OONldTMPV8pkXbmSXqxyMCGbQu9bBqK8HtsNZzqxE1kyFCiQ/7BJ6W9CK82pOtP97Z8XyoEp2JDSxNkSTr/36kIaAkzmZhWpsNYhZLNhD707XunD27BpNWtDIMc2wdGMHUq3ErghUUuDkiC7pTNjz9L9E2Q+EzxXZpwIDAQAB"
    ;

  5. 編輯相關 mail domain name 清單

    vi /etc/mail/dkim/trusted-hosts
    mail.everplast.net
    everplast.net
    mail.e-plast.com.tw
    e-plast.com.tw
    mail.everplast.com.tw
    everplast.com.tw
    localhost
    127.0.0.1

  6. 修改 /etc/dkim-filter.conf

    vi /etc/dkim-filter.conf
    :
    Canonicalization        simple/simple
    :
    Domain                  everplast.net
    :
    KeyFile /etc/mail/dkim/keys/everplast.net/key1
    :
    Selector                key1
    :
    Socket                  inet:8891@localhost
    :
    Mode                    sv
    :
    InternalHosts           /etc/mail/dkim/trusted-hosts
    :

    當發現時常因為驗簽章失敗退別人的信, 想關閉驗簽失敗退信的功能可修改一下參數:

    :
    On-Default              reject
    On-BadSignature         accept
    On-DNSError             tempfail
    :

  7. 修改 /etc/mail/dkim/keylist

    vi /etc/mail/dkim/keylist
    :
    *@everplast.net:everplast.net:/etc/mail/dkim/keys/everplast.net/key1

  8. 啟動 dkim-milter 服務

    service dkim-milter start
    chkconfig dkim-milter on

  9. 更改 sendmail 使用 dkim 服務

    vi /etc/mail/sendmail.mc
    :
    :
    INPUT_MAIL_FILTER(`dkim-filter', `S=inet:8891@localhost')
    cd /etc/mail
    mv sendmail.cf sendmail.cf.back1
    m4 sendmail.mc > sendmail.cf

  10. 重新啟動 MailServer

    service MailScanner restart

 
 
来源:http://www.ichiayi.com/wiki/tech/install_spf_dkim

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|小黑屋|手机版|Archiver|运维之家

GMT+8, 2024-4-20 12:21 , Processed in 0.141983 second(s), 14 queries .

Powered by Dirtysea

© 2008-2020 Dirtysea.com.

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