1 / 181

Linux 操作系统 用 Linux 构建 Intranet

Linux 操作系统 用 Linux 构建 Intranet. 周炯 上海艾基信息技术有限公司. 内容提要. Apache 服务器的安装与设置 FTP 服务器的安装与设置 DHCP 服务器的安装与设置 DNS 服务器的安装与设置 邮件服务器的安装与设置 Linux 下 NAT 服务器简介. DNS 服务器. 域名的介绍 BIND 的介绍 (Berkeley Internet Name Domain), 当前有三版 :bind4 、 bind8 、 bind9 ),支持多处理器、线程安全操作、公钥加密、 IPv6 支持、增量区传送等). BIND.

taber
Download Presentation

Linux 操作系统 用 Linux 构建 Intranet

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Linux操作系统用Linux构建Intranet 周炯 上海艾基信息技术有限公司 Acegene IT Co. Ltd.

  2. 内容提要 • Apache服务器的安装与设置 • FTP服务器的安装与设置 • DHCP服务器的安装与设置 • DNS服务器的安装与设置 • 邮件服务器的安装与设置 • Linux下NAT服务器简介 Acegene IT Co. Ltd.

  3. DNS服务器 • 域名的介绍 • BIND的介绍 • (Berkeley Internet Name Domain),当前有三版:bind4、bind8、bind9),支持多处理器、线程安全操作、公钥加密、IPv6支持、增量区传送等) Acegene IT Co. Ltd.

  4. BIND • BIND的组成: • named守护进程,回答用户查询 • 库例程,联系DNS分布式数据库的服务器 • DNS的命令接口:nslookup、dig和host Acegene IT Co. Ltd.

  5. BIND • BIND名字服务器的分类: • 权威:一个区的正式代表 • 主服务器:区数据的首要服务器,数据在磁盘 • 从服务器:从主服务器复制得到它的数据 • 存根:和从服务器类似,但仅复制名字服务器的数据 • 分支:仅在域内可见的服务器(秘密服务器) • 非权威:用缓存数据回答查询:未知数据有效 • 缓存:缓存以前的查询:没有本地区 • 转发器:代替许多客户机执行查询,创建一个大的缓存 • 递归:代替您查询,直到返回答案或出错 • 非递归:如果不能回答查询,则返回下一服务器地址 Acegene IT Co. Ltd.

  6. BIND • 解板库例程: • 客户机例程:gethostbyname • 轻量级例程:lwresd(对不支持IPv6的主机可以使用,要在服务器中包含lwres语句) Acegene IT Co. Ltd.

  7. BIND • 非/递归工作原理:例:访问:www.sina.com root(“.”) 3-R 2-Q 4-Q 1-Q com wtb ns.liaomeng.com 10-A 5-R 7-R 6-Q 9-A 8-Q sina.com ns.sina.com Q=Query A=Answer R=推荐 Acegene IT Co. Ltd.

  8. BIND • 缓存和效率: • 早期缓存机制仅用于肯定回答,但实验发现DNS查询请求有60%都是无效查询,因此后来实现了否定缓存 Acegene IT Co. Ltd.

  9. BIND • 解析器配置: • /etc/resolv.conf • search:列出了如果主机名不完整时要查询的域 • 如:search wtb.com. wtb.net. wtb.org. • 注:此文件中的DNS服务器地址必须是递归的(解析器不懂推荐) • 最多,可配置三个DNS地址,按顺序访问 Acegene IT Co. Ltd.

  10. BIND • 下载安装BIND: • www.isc.org • (最新版BIND需openssl0.9.6e以上版本,在www.openssl.org下载最新版安装) Acegene IT Co. Ltd.

  11. BIND • 主配置文件: /etc/named.conf • 区文件目录: /var/named/ • 区文件: named.ca //根服务器信息,在ftp.internic.com/domain获取 named.local //本地反向区域 localhost.zone //本地区域 Acegene IT Co. Ltd.

  12. BIND—localhost.zone • $TTL 86400 • $ORIGIN localhost. • @ 1D IN SOA @ root ( • 42 ; serial (d. adams) • 3H ; refresh • 15M ; retry • 1W ; expiry • 1D ) ; minimum • 1D IN NS @ • 1D IN A 127.0.0.1 Acegene IT Co. Ltd.

  13. BIND—named.local • $TTL 86400 • @ IN SOA localhost. root.localhost. ( • 1997022700 ; Serial • 28800 ; Refresh • 14400 ; Retry • 3600000 ; Expire • 86400 ) ; Minimum • IN NS localhost. • 1 IN PTR localhost. Acegene IT Co. Ltd.

  14. BIND—/etc/named.conf • 注: • 1、每句以分号结束 • 2、大括号用于分组 • 3、可用:named-checkconf和named-checkzone检查语法错误 Acegene IT Co. Ltd.

  15. BIND—主配置语句类型 • include:插入一个文件 • options:设置名字服务器的全局配置选项和默认值 • server:指定每个服务器所特有的选项 • lwres:将DNS也配置成一个轻量级解析器 • key:定义验证信息 • acl:定义访问控制列表 • zone:定义资源记录的一个区 • trusted-keys:定义预先设置的密钥 • controls:用ndc来定义用于控制名BIND的渠道 • logging:指定日志记录分类及其目的位置 • view:定义域名空间的一个veiw(视图) Acegene IT Co. Ltd.

  16. BIND • include:补充文件引入named.conf文件 • include "path"; • options:指定全局选项,仅有一个 • 9.0版本有50个左右的选项,以下是常用选项: • version "string"; [实际版本号] • directory "path"; [启动目录] • notify yes|no; [yes] :数据发生改变,通知从服务器 • also-notify servers_ipaddrs; [empty] • :通知所有DNS服务器 Acegene IT Co. Ltd.

  17. BIND- options语句 • recursion yes|no; [yes] :递归/非递归解析 • allow-recursion {address_list} [allhost} 允许的主机 • transfer-format one-answer|many-answers; • 主服务器到从服务器一次传输的记录数 • transfers-in number; [10] 同时发生入站区传送数目 • transfers-out number; [10] 同时发生出站区传送数目 • transfers-per-ns number; [2] 每个站点最大数目 • transfer-source IP-address; 允许的源IP地址(需和allow 中定义的相同) Acegene IT Co. Ltd.

  18. BIND- options语句 • listen-on port ip_port address_list [53 all] • query-source address ip_addr port ip_port • 查询其它名字服务器的接口和端口(用于有防火墙中) • forwarders {in_addr;in_addr;...}; [empty list] • 转发服务器列表 • forward only|first; [first] • 转发方式,仅转发|先转发,不行再自己查询,转发服务器中有大容易的内存,用于缓存 • 注:转发区域必须是递归 Acegene IT Co. Ltd.

  19. BIND- options语句 • allow-query {address_list}; [all hosts] • 可以查询的主机 • allow-transfer {address_list}; [all hosts] • 可以请求传输区数据的主机 • blackhole {address_list}; [empty] • 从不希望与之通信的主机 Acegene IT Co. Ltd.

  20. BIND-acl语句 • acl acl_name{ address_list }; • 除also-notify语句外,其它地方都可使用 • 必须在named.conf中定义 • 必须在使用前定义 • 默认定义:any、localnets、localhost、none Acegene IT Co. Ltd.

  21. BIND—server语句 • server ip_addr{ • bogus yes|no; [no] :伪服务器 • provide-ixfr yes|no; [yes(v9)] :发送增量区数据(主服务器) • request-ixfr yes|no: [yes(v9)] :请求增量区数据(从服务器) • support-ixfr yes|no; [no(v8)] :同上 • edns yes|no; [yes] :extend DNS协议 • transfers number; [2(v9)] :并发传数量 • transfer-format one-answer |many-answers; :支持格式 • keys {key-id;key-id;...}; :key中定义的密钥ID • } Acegene IT Co. Ltd.

  22. BIND-- logging语句 • 术语: • channel(通道):消息能去的地方:syslog或文件 • category(类别):named消息类型 • module(模块):产生消息的来源模块名 • facility(设备):syslog设备名 • severity(严重性):出错消息的等级 • logging语法: • logging{ [channelchannel_name{ (file path_name [versions(number|unlimited)] [sizesize_spec] |syslog(kern|user|mail|daemon|auth|syslog|lpr| news|uucp|cron|authpriv|ftp| local0|local1|local2|local3| local4|local5|local6|local7) |null); Acegene IT Co. Ltd.

  23. BIND-- logging语句 • [severity(critical|error|warning|notice| info|debug[level]|dynamic);] [print-categoryyes_or_no;] [print-severityyes_or_no;] [print-timeyes_or_no;] };] category{模块名 } • }; • 模块: • xfer-in :区传送 • default :默认 • security :安全 • os :系统 • panic :恐慌 • statistics:统计信息 • config :配置文件 • maintenance:维护 Acegene IT Co. Ltd.

  24. BIND—zone语句 • 定义权威性的区域 • 装载根服务器地址和名称 • 一、配置主服务器 • zone "domain_name"{ • type master; • file "path"; • allow-query{address_list};[all] • allow-transfer {address_list}; [all] • allow-update{addres_list}; [none] :动态更新、联系DHCP(限本地网络使用) • zone-statistics yes|no [no] :保留统计信息 • }; Acegene IT Co. Ltd.

  25. BIND—zone语句 • 二、从服务器配置 • zone "domain_name" { • type slave|stub; :stub:只传送NS记录(即存根) • file "path"; :从主服务器传来的区数据 • masters {ip_addr;ip_addr;...}; [no default]:主服务器地址(主服务器有多个网络接口时) • allow-query {address_list}; [all] • allow-transfer {address_list}; [all] • }; Acegene IT Co. Ltd.

  26. BIND—zone语句 • 三、设置根服务器的线索 • zone "." { • type hint; • file "path"; • }; • named由此“线索”查找其它域的信息,否则只能维护本域 • 四、设置一个转发区 • zone "domain_name" { • type forward; • forward only|first; • forwarders {ip_addr;ip_addr;..}; • }; • 实现一个对外部不可见的DNS Acegene IT Co. Ltd.

  27. BIND—key语句 • key语句: • 定义用于某个特定服务器身份验证的有名字的加密密钥。 • key key-id{ • algorithm string; • secret string; • }; • 必须在named.conf中先定义方可使用 • 于某个服务器关联时,只要在该服务器的server中的keys中包括此key_id; • 用于验证来自那个服务器的请求,又用来对那些请求的响应作签名 Acegene IT Co. Ltd.

  28. BIND-controls语句 • 定义rndc如何控制一个正在运行的named进程 • controls{ • inet ip_addr port allow{addres_list} keys {key_list}; • }; • 默认端口号是:953rndc-confgen –b 256 //会产生密钥 • 方法一:可让named和rndc都参考同一个配置文件 • 方法二:把产生结果分别写入/etc/rndc.key和/etc/named.conf,此方法用于rndc和dns不在一个主机 Acegene IT Co. Ltd.

  29. BIND—split DNS和view(仅v9) • 分隔DNS对不同的网络的可视程度 • 下表是对内外服务配置的差别 • 参数 外部 内部 • directory /var/named/external /var/named/internal • listen-on 外部接口 内部接口 • recursion no yes • allow-query any 仅内部网 • forward 不用 forward only • forwarders external_ns Acegene IT Co. Ltd.

  30. BIND—split DNS和view(仅v9) • view view-name{ • match-clients {address_list}; :控制谁能看到 • view_option;... • zone_statement;... • }; • view是按顺序来处理,所以先加上最严格的限制 • view是全无全有的概念,即要么全加要么都不加 Acegene IT Co. Ltd.

  31. BIND—DNS数据库 • 一、资源记录 • 格式: • [name] [ttl] [class] type data • 特殊字符: • ;:引入注释 • @:当前的域名 • ():允许数据跨行 • *:通配符(仅由named字段使用) • name:表示该记录所描述的实体(一个主机或域),如果几个连续的记录涉及同一个实体,则第一条记录之后可以省略这个名字。可以用相对名或全名,全名后要加"." • ttl:存活时间,以秒为单位。默认以开头的$TTL设置的值 • class:指定网络类型:IN对应internet,CH对应chaosNet,HS对应Hesiod Acegene IT Co. Ltd.

  32. BIND—DNS数据库 Acegene IT Co. Ltd.

  33. SOA记录 • @ IN SOA ns.wtb.com. wtb.wtb.com.( • 20041101;序列号 • 7200 ;刷新时间(2 h) • 1800 ;重试时间(30 m) • 604800 ;终止时间(1 w) • 7200) ;否定缓存存活时间(2 h) • @:名字,可以用$ORIGIN设置; • IN:类别;SOA:记录类型,"ns.wtb.com."是该区的主名字服务器,"wtb.wtb.com."是管理员邮件地址。 • 20041101:是序列号 • 7200:指定从服务器应该多长时间联系主服务器,1-6小时为合适值 • 1800:多长时间后再重试 • 604800;很长时间重试还是无效时则终止重试 • 7200:被缓存的否定回答的存活时间 Acegene IT Co. Ltd.

  34. BIND—NS记录 • NS:记录标识一个区的权威服务器,通常跟在SOA后面 • 例: • wtb.com. IN NS ns.wtb.com. • wtb.com IN NS ns.cs.wtb.com. • wtb.com IN NS ns.li.wtb.com. • 每个权威名字服务器应该既要在wtb.com的区文件中列出,也要在父区com的文件中列出。仅缓存服务器不能是权威的,不用列出它们。在这中不指定主/从服务器。 Acegene IT Co. Ltd.

  35. BIND—其它记录 • A记录: • 记录DNS数据库的核心,定义一个主机名到IP地址的对应 • hostname [ttl] IN A ipaddr • PTR记录: • 执行从IP地址到主机名的反向映射。 • addr [ttl] IN PTR hostname Acegene IT Co. Ltd.

  36. BIND—其它记录 • MX记录:定义邮件服务器 • name [ttl] IN MX preference host .... • CNAME记录:为主机多分配几个名字 • nickname [ttl] IN CNAME hostname • 注:如果一个主机有别名,在引用时不能使用 • LOC记录:描述DNS对象的物理位置和大小,但不汲及技术操作。 • name [ttl] IN LOC lat lon [alt [size [hp [vp]]]] Acegene IT Co. Ltd.

  37. BIND—其它记录 • SRV记录:指定域内服务的位置 service.proto.name [ttl] IN SRV pri wt port target service:标准互联网服务名称(www.iana.org/numbers.htm可查看) proto:不是tcp就是udp name:SRV记录引用的域 pri:是MX风格的优先级 wt:是用于几个服务器这间平衡负载的权重(为0表示不需负载平衡) port:是服务器服务的端口号 target:目标服务器主机(为.表示禁止此服务) Acegene IT Co. Ltd.

  38. BIND—其它记录 • TXT记录: • 引入一段说明在DNS记录中 Acegene IT Co. Ltd.

  39. BIND—区文件中的命令 • $ORIGIN domain-name :定义域名 • $INCLUDE filename : 包含文件 • $TTLdefault-ttl (必须存在) : 默认存活时间 • $GENERATE lots-of-args :成组生成对应 • 注:命令必须从第一列开始。整个命令要在一行 Acegene IT Co. Ltd.

  40. BIND-粘合记录 • 在父DNS服务器中添加子DNS服务器中的A记录。以便于在父服务器中设置子域的DNS服务器, • cs.wtb.com. IN NS ns1.cs.wtb.com. • kw.wtb.com. IN NS ns2.kw.wtb.com. • ns1.cs.wtb.com IN A 218.22.1.132 • ns2.kw.wtb.com IN A 218.22.1.138 Acegene IT Co. Ltd.

  41. BIND-区传送 • 一、AXFR • 传送整个区数据 • 二、IXFR • 只传送少量变更的数据 • provide-ixfr yes; //在服务器主区域设置,允许此方式发送 • request-ixfr no: //在服务器从区域设置,允许此方式接受 • 注:IXFR只能用在全自动更新的区域 Acegene IT Co. Ltd.

  42. BIND-动态更新 • DHCP的配置: • 1. ‘ddns-update-style’这个就是动态DNS的更新方式,有几个选项,我用的是interim,可以用 man dhcpd.conf找到另外的几个选项。2. ‘ignore client-updates’这个选项是不允许客户机更新DNS记录。当然,也可能允许,但会有一点问题。 3. ‘key DHCP_UPDATER’这个是更新DNS的KEY,是必须的。其中algorithm 后的是生成key的算法,key的生成是用 ‘dnssec-keygen -a HMAC-MD5 -b 128 -n USER DHCP_UPDATER’。 4. ‘zone’要更新的zone,如果是本机就是DNS server,primay 就写127.0.0.1,要是其它机器是DNS server, 就写那台机器的IP。 • zone test.com. { primary 127.0.0.1; key DHCP_UPDATER; } zone 251.168.192.in-addr.arpa. { primary 127.0.0.1; key DHCP_UPDATER; } Acegene IT Co. Ltd.

  43. BIND-动态更新 • named.conf的配置: • key DHCP_UPDATER { algorithm HMAC-MD5; secret qhB++OR5yWo8BTXwk/m4ng; }; //必须和dhcp中一样。 • zone "test.com" IN { type master; file "test.com"; allow-update { key DHCP_UPDATER; }; }; Acegene IT Co. Ltd.

  44. BIND--rndc • status:状态报告 • stop:停止named,保存没做完的更新 • halt:中止named,不保存没做完的更新 • dumpdb:把DNS数据库转储到named_dump.db中 • stats:把统计转储到named.stats • flush:刷新服务器的缓存 • reload:重新载入named.conf和区文件 • reload zone:只重新载入指定的区 • reconfig:重新载入配置文件和任何新的区 • querylog:开关对查询的日志功能 Acegene IT Co. Ltd.

  45. BIND-DDNS • vi /etc/dhcpd.conf • ddns-update-style interim; • ignore client-updates; • key "rndc-key1" { • algorithm HMAC-MD5; • secret "koWQcX9XbbyzuzeUi0dK0QKmmZtN4L8PjtY4NP3CkOM="; • }; • zone test.com. { • primary 127.0.0.1; • key rndc-key1; • } • vi /etc/named.conf • key "rndc-key1" { • algorithm HMAC-MD5; • secret "koWQcX9XbbyzuzeUi0dK0QKmmZtN4L8PjtY4NP3CkOM="; • }; • zone "test.com" { • type master; • file "test1.com.zone"; • allow-update {key rndc-key1;}; • }; • 注:尽量不要手工修改区域文件,以免冲突而引起named库破坏 Acegene IT Co. Ltd.

  46. BIND-制作自己的”根”服务器 • 一、自己分发根“线索”文件中只有你DNS服务器的“线索”文件 • 二、你要对com、net、org等域授权DNS服务器地址。 Acegene IT Co. Ltd.

  47. BIND-安全--chroot • #useradd bind • #cd /chroot/bind # mkdir chroot # mkdir chroot/dev # mkdir chroot/etc # mkdir chroot/etc/namedb # mkdir chroot/usr # mkdir chroot/usr/sbin # mkdir chroot/var # mkdir chroot/var/run • #grep bind /etc/passwd >chroot/etc/passswd • # grep bind /etc/group >chroot/etc/group # cp /etc/namedb/named.conf chroot/bind/etc/ # cp /etc/localtime chroot/bind/etc/ # cp -R /etc/namedb/ chroot/etc/namedb/ # mknod chroot/dev/null c 2 2 # chmod 666 chroot/dev/null # cp /usr/local/sbin/named* chroot/sbin/ # cp /usr/local/sbin/dns* chroot/sbin/ • chroot/sbin/named –u bind(或id号) -t /chroot/bind/chroot Acegene IT Co. Ltd.

  48. BIND-安全DNSSEC • 功能:使用公钥加密对区数据的来源进行身份验证,并验证其完整性 • 一、dnssec-keygen –a DSA –b 768 –n ZONE mydomain.com. //生成密钥对 • 二、dnssec-makekeyset -t 3600 –s +0 –e +864000 Kmydomain.com.+003+12345 //绑定签名 • 三、由父区:dnssec-signkey keyset.mydomain.com Kcom.+003+56789 //父对子签名 • 四、dnssec-signzone -o mydomain.com /db.mydomain // 域名 输入文件 Acegene IT Co. Ltd.

  49. BIND-启动脚本 • if [ -f /etc/init.d/functions ] ; then • . /etc/init.d/functions • elif [ -f /etc/rc.d/init.d/functions ] ; then • . /etc/rc.d/init.d/functions • else • exit 0 • fi • # Source networking configuration. • . /etc/sysconfig/network • [ ${NETWORKING} = "no" ] && exit 0 • # Check that smb.conf exists. • [ -f /etc/named.conf ] || exit 0 • [ -d /var/namedb ] || exit 0 • RETVAL=0 • start() { • KIND="Named" • echo -n $"Starting $KIND services: " • daemon /usr/local/sbin/named • RETVAL=$? • echo • [ $RETVAL -eq 0 ] || RETVAL=1 • return $RETVAL • } Acegene IT Co. Ltd.

  50. BIND-启动脚本 • stop() { • KIND="Named" • echo -n $"Shutting down $KIND services: " • killproc named • RETVAL=$? • echo • return $RETVAL • } • restart() { • stop • start • } • reload() { • echo -n $"Reloading named all file: " • /usr/local/sbin/rndc reload • RETVAL=$? • echo • return $RETVAL • } • status() { • /usr/local/sbin/rndc status • } Acegene IT Co. Ltd.

More Related