Archive for 七月, 2007

DNS日常的安全管理维护

星期天, 七月 22nd, 2007

从DNS服务器的安全运行管理可以考虑采用下面几种方法:
1、采用多个域名服务器应付恶意攻击者,对DNS服务器进行拒绝服务攻击。
如果纯粹从理论上出发,那么一台DNS服务器是完全可以完成所有任务的。当注册了一个域名以后,实际上可以最大为企业的域名设置6个DNS服务器名。如 果主域名服务器被人攻击了,可以启用辅域名服务器,如果主辅域名服务器都被同时攻破了,也可以用第三台或第四台域名服务器进行工作,具体设置几个域名服务 器可根据企业构建网络情况而设定。
而对于广大的用户而言,当出现这种多个DNS服务器停止服务带来的唯一的影响就是查询域名的时候会延迟,因为它需要一个一个的去查询,直到找到最后的一个为止。
2、启动BIND(DNS)安全选项来进行配置。
named进程启动选项如下:
-r:关闭域名服务器的递归查询功能(缺省为打开)。该选项可在配置文件的
options中使用”recursion”选项覆盖。
-u 和-g :定义域名服务器运行时所使用的UID和GID。 这用于丢弃启动时所需要的root特权。
-t :指定当服务器进程处理完命令行参数后所要chroot()的目录。
在options节中增加自定义的BIND版本信息,可隐藏BIND服务器的真正版本号。
version “No know?”;
// version 8.2.3;
此时如果通过DNS服务查询BIND版本号时,返回的信息就是”No know?”。
要禁止DNS域名递归查询,在options(或特定的zone区域)节中增加:
recursion no;
fetch-glue no;
要限制对DNS服务器进行域名查询的主机,在options(或特定的zone区域)节中增加:
allow-query { };
address_match_list是允许进行域名查询的主机IP列表,如”202.102.24.35; 61.132.57/24;”。
要限制对DNS服务器进行域名递归查询的主机,在options(或特定的zone区域)节中增加:
allow-recursion { };
address_match_list是允许进行域名递归查询的主机IP列表,如 “202.102.24.35; 61.132.57/24;”。
l 要限制对DNS服务器进行区域记录传输的主机,在options(或特定的zone区域)节中增加:
allow-transfer { };
address_match_list是允许进行区域记录传输的主机IP列表,如”202.102.24.35; 61.132.57/24;”。
3、通过TSIG(Transaction Signature)对区域记录传输进行认证和校验。
首先请确保BIND域名服务器软件已更新到最新版本,因为最新的BIND版本解决了在以前版本中发现的bug和/或安全漏洞。
如果需要用TSIG签名来进行安全的DNS数据库手工更新,具体操作步骤很简单:
① 用BIND自带的dnskeygen工具生成TSIG密钥。
# dnskeygen -H 128 -h -n tsig-key.

如果你要写自己写启动脚本,可参考以下信息:
named (启动脚本)
=============
#!/bin/sh
#
#Description: named (BIND) is a Domain Name Server (DNS)
export PATH=/usr/sbin

case “$1″ in
start)
echo -n “Starting named: ”
named -c /etc/named.conf
echo “done”
;;
stop)
echo -n “Shutting down named: ”
rndc stop
echo “done”
;;
status)
rndc status
exit $?
;;
restart)
echo -n “Reload named: ”
rndc reload
echo “done”
;;
reload)
echo -n “Reload named: ”
rndc reload
echo “done”
;;
*)
echo “Usage: named {start|stop|status|restart|reload}”
exit 1
esac
exit 0

阅读(141 次)

Bind安装与配置

星期天, 七月 22nd, 2007

关于linux下,dns服务器的架设,bind的安装,我想会的很多,不会的也很多,在这里只是写了自己使用过的一点心得,提供给有需要的人作参考,对于内容中有什么疑问或者建议的朋友,欢迎你和我进行联系交流.
配置安装环境:
./configure –prefix=/usr/local/bind –sysconfdir=/var/named(bind配置文件) –disable-threads(开启将会占用很大的系统资源) 有关各个配置文件的默认安装路径请参考后面的附加部分.

编译(需要花些时间): Make

安装: Make install

到安装的根目录下(bind根目录),生成rndc控制命令的key文件
sbin/rndc-confgen > etc/rndc.conf

提取named.conf用的key
tail -10 rndc.conf | head -9 | sed s/#\ //g > named.conf

配置/etc/resolv.conf文件
Domain dns.com
Nameserver IP

以下文件均存放于/var/named目录下:(可根据自己的实际安装指定情况来决定路径)
生成named.ca文件
dig > named.ca

hosts文件:
$ttl 600
domain.com.(可用@代替) IN SOA domain.com. webmaster.domain.com. (
1077295082
10800
3600
604800
600 )
inamtv.com. (可用@简化) IN NS nsdomain.com.
www.domain.com.(可只写www) IN A 211.147.215.65

named.conf文件:
# named.conf - configuration for bind
key “rndc-key” {
algorithm hmac-md5;
secret “z6In4NVD9VlBdoAQFRlw5Q==”;
};
options {
directory “/var/named/”; //指定db文件的目录
pid-file “/var/named/named.pid”; //指定进程文件的存放位置
#notify yes; //是否开户更新通报
};
#Generated automatically for bindconf
controls {
inet 127.0.0.1 port 953
allow { 127.0.0.1; } keys { “rndc-key”; };
};
#end of named.conf
#zone file configuration
zone “.” {
type hint;
file “named.root”;
};
zone “local.db” {
type master;
file “/var/named/local.db”;
};
zone “0.0.127.in-addr.arpa” {
type master;
file “/var/named/0.0.127.in-addr.arpa”;
};
zone “domain.com” {
type master;
file “/var/named/domain.com.db”;
};

local.db文件:(正向解析)
$TTL 2w
@ IN SOA localhost. root.localhost. (
1 ; Serial
1w ; Refresh
2d ; Retry
2w ; Expire
1w ) ; Negative Cache TTL
;
@ IN NS localhost.
@ IN A 127.0.0.1

0.0.127.in-addr.arpa文件: (反向解析)
$TTL 1h
@ IN SOA localhost. root.localhost. (
1997022700 ; Serial
1d ; Refresh 1d=1 days
2h ; Retry 30m=30 minutes
2w ; Expire 1w=7 days
2d ) ; Minimum ;Negative Caching
IN NS localhost.

1 IN PTR localhost.

dns启动:
/usr/local/bind/named -gc /var/named/named.conf &
可用lsof –I:53/953查看服务端口情况
bind正常启动后,可用rndc命令来进行管理,而不必野蛮的停掉bind,如添加了新的域名,可用rndc reload来使bind对其进行加载,其他的相关参数可参考帮助.

其他相关文件:
/etc/host.conf文件:
“order hosts bind”语句,用于指定对主机名的解析顺序是先到hosts中查找,然后到dns服务器的记录里查找。“multi on”则是允许一个主机名对应多个ip地址。内容:
order hosts, bind
multi on
nospoof on

以下这段信息直接摘取自网络,本人并未使用过,在这加上是提供给有需要的朋友参考:
如何判断你配置成功与否 :必须按照下面介绍的步骤检验完都无错就是OK
1>重启dns :service named reload
2>named-checkconf (必须主机登陆,telnet,su等登陆都不执行)
此命令检测named.conf语法是否有错,并不能保证dns配置成功
3>假如1.2没错(否则解决完2再次步) 检测命令有3种以上,介绍2种流行适用
host <你要解析的IP或域名> 成功就OK
或 nslookup <你要解析的IP或域名> 成功就OK
也可以浏览/var/log/messages 文件,不过对于3错误在次文件中不会留有记录

附加:
./configure –sbindir=/usr/sbin –sysconfdir=/etc –libdir=/var/lib –datadir=/usr/share/bind –localstatedir=/var –mandir=/usr/man –with-openssl=no
安装后一些相关文件的位置是:
1. named.conf ( /etc/named.conf )
2. rndc.key ( /etc/rndc.key )
3. rndc-access.conf (/etc/named.d/rndc-access.conf )
4. named ( /usr/sbin/named )
5. named-checkconf ( /usr/sbin/named-checkconf )
6. named-checkzone ( /usr/sbin/named-checkzone )
7. zone files ( /var/lib/named/ )
8. createNamedConfInclude ( /usr/share/bind/createNamedConfInclude )
9. ldapdump ( /usr/share/bind/ldapdump )
10. named.pid ( /var/lib/named/var/run/named.pid

如果觉得自己编译安装要做的工作太多太麻烦,建议直接下载二进制包来安装,很方便,只要RP没有问题,安装应该都会成功的 :)

阅读(130 次)

回来了

星期六, 七月 7th, 2007

这两天回到南宁了。虽然我很想像徐志摩那样酷酷的说:轻轻的我走了,正如我轻轻的来;我挥一挥衣绣,不带走一片云彩。但现实是我不免的心酸了、心伤了;不知从什么时候开始,我也逐渐不再去极力的掩饰自己的内心了。一切是那么的简单而又复杂,轻松而又沉重,混乱的思绪以至于几乎让自己模糊了视线、迷失了方向。

南宁的天气很热也很善变,前十分钟正在下大雨,而后十分钟已经在出太阳了,之后再下十分钟的太阳雨,一天的天气就如此交替的进行着。最大的感触就是雨水和汗水混合在身上,使得全身粘乎乎的,听说最近一直这样,还真有些不习惯。

阅读(87 次)