Professional Documents
Culture Documents
用 Linux 构建 Intranet
周炯
上海艾基信 息技术有限 公司
• BIND 名字服务器的分类 :
• 权威: 一个区的正式代表
• 主服务 器: 区数据的首要服务器,数据在磁盘
• 从服务 器: 从主服务器复制得到它的数据
• 存根: 和从服务器类似,但仅复制名字服务器的数据
• 分支: 仅在域内可见的服务器(秘密服务器)
• 非权威 :用缓存数据回答查询:未知数据有效
• 缓存: 缓存以前的查询:没有本地区
• 转发器 :代替许多客户机执行查询,创建一个大的缓存
• 递归: 代替您查询,直到返回答案或出错
• 非递归 :如果不能回答查询,则返回下一服务器地址
Q=Query ns.sina.com
A=Answer
R= 推荐
Acegene IT Co. Ltd. 7
BIND
• 缓存和效率 :
– 早期缓存机制仅用于肯定回答,但实验发现
DNS 查询请求有 60% 都是无效查询,因此后
来实现了否定缓存
• 区文件目录:
/var/named/
– 区文件:
named.ca // 根服务器信息,在
ftp.internic.com/domain 获取
named.local // 本地反向区域
localhost.zone // 本地区域
• 1D IN NS @
• 1D IN A 127.0.0.1
• transfer-format one-answer|many-
answers;
– 主服务器到从服务器一次传输的记录数
• transfers-in number; [10] 同时发生入站区
传送数目
• transfers-out number; [10] 同时发生出站区
传送数目
• transfers-per-ns number; [2] 每个站点最大数
目
Acegene IT Co. Ltd. 17
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. 18
BIND- options 语句
• allow-query {address_list}; [all
hosts]
– 可以查询的主机
• allow-transfer {address_list}; [all
hosts]
– 可以请求传输区数据的主机
• blackhole {address_list}; [empty]
– 从不希望与之通信的主机
• 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; :
支持格式
Acegene IT Co. Ltd. 21
BIND-- logging 语句
• 术语 :
– channel( 通道) : 消息能去的地方 :syslog 或文件
– category( 类别): named 消息类型
– module( 模块):产生消息的来源模块名
– facility( 设备): syslog 设备名
– severity( 严重性):出错消息的等级
• logging 语法:
• logging {
[ channel channel_name {
( file path_name
[ versions ( number | unlimited ) ]
[ size size_spec ]
| syslog ( kern | user | mail | daemon | auth | syslog | lpr |
news | uucp | cron | authpriv | ftp |
local0 | local1 | local2 | local3 |
local4 | local5 | local6 | local7 )
| null );
类型 名称 功能
区记录 SOA Start Of Authority 定义一个 DNS 区
NS Name Server 标识区服务器,授权子域
基本记录 A IPv4 Address 名字到地址的转换
AAAA original ipv6 被丢弃又被重用
address
A6 IPv6 名字到 ipv6 地址的转换(仅 bind9 有)
• ns1.cs.wtb.com IN A 218.22.1.132
• ns2.kw.wtb.com IN A 218.22.1.138
3 配置 Apache 服务器
Apache 的配置文件是
/etc/httpd/config/httpd.conf , Apache 的运行
参数由此文件决定,通过修改此文件,来调整
Apache 的性能。
在需要配置 Apache 服务器时,首先编辑
httpd.conf 文件,然后使用 reload , restart ,
stop 和 start 等参数重新启动 httpd 进程使得该
配置文件生效。如:
# /etc/rc.d/init.d/httpd reload
Acegene IT Co. Ltd. 56
8.1 Apache 服务器的 安装与设置
4 启动和关闭 Apache 服务器
通过 /sbin/service 命令启动 Apache
服务器:
# /sbin/service httpd start
关闭 Apache 服务器,采用如下的命令
:
# /sbin/service httpd stop
data_connection_timeout=120 ,设
定默认的数据连接超时时间。
Acegene IT Co. Ltd. 64
8.2 FTP 服务器 的安装与设 置
(4) 服务器日志和欢迎信息
dirmessage_enable=YES ,允许为目录配置显示
信息,显示每个目录下面的 message_file 文件的
内容。
ftpd_banner=Welcome to FTP service ,自定义
FTP 用户登录到服务器所看到的欢迎信息。
xferlog_enable=YES ,启用记录上传 / 下载活动
日志功能。
xferlog_file=/var/log/vsftpd.log ,自定义日志文
件的保存路径和文件名,默认是
/var/log/vsftpd.log 。
2 安装 DHCP 服务器软件
在 RedHad Linux9.0 中,默认情况下并
没有安装 DHCP 服务器软件,可以在终端窗口
下用如下命令安装:
# mount /mnt/cdrom
host haagen {
hardware ethernet
08:00:2b:4c:59:23;
fixed-address 192.168.1.222;
} Acegene IT Co. Ltd. 72
8.3 DHCP 服务器 的安装与设置
4 启动 DHCP 服务器
启动 DHCP 服务器,可以在终端命令窗口输入
:
# /usr/sbin/dhcpd
或者用 # ntsysv 把 DHCP 服务自动启动。
如果想在 eth1 设备上启动 dhcpd ,则 :
# /usr/sbin/dhcpd eth1
选择一台客户机,启动
windows ,将 IP 地址选择为自动获得
,重新启动计算机后,执行
ipconfig/all 命令检查 DHCP 服务是否
设置正确。
• cache_peer_domain: 用来限定查询相邻的缓存服务器
的域
– cache_peer_domain 服务器地址 域
• 如: cache_peer_domain 218.2.2.3 edu.cn
– neighbor_type_domain 服务器 类型 域
• 如: neighbor_type_domain 218.2.2.3 sibling .com .net
• neighbor_type_domain 218.2.2.3 parent .org
– icp_query_timeout 微秒
• 超时
– maximum_icp_query_timeout 2000
– hierarchy_stoplist cgi-bin ?: 在 URL 中发现的此字符串,直
接在此服务器处理
– no_cache : 指定对象不被缓存
• 例: acl QUERY urlpath_regex cgi-bin \?
• no_cache deny QUERY
• dead_peer_timeout: 多长时间宣布对等服务器已死亡
,时间用秒
Acegene IT Co. Ltd. 103
squid-OPTIONS WHICH AFFECT THE CACHE SIZE
• cache_mem: 缓存内存大小
• cache_swap_low(percent,0-100): 缓存对象
交换的最低点
• cache_swap_high(percent,0-100): 缓存对象
交换的最高点
• maximum_object_size: 缓存对象的最大大小
• minimum_object_size: 缓存对象的最小大小
• maximum_object_size_in_memory: 在内存
中缓存的最大的对象大小
• ipcache_size 4096: ip 对应 cache 的大小为
4096
fqdncache_size 4096: 域名全称 cache 的大
小为 4096
• redirect_program:URL 重点向程序
• redirect_children :重点向进程数
• redirect_rewrites_host_heade :重点向时重
写包头(用加速器时勿用)
• authenticate_program :认证程序
– 例: authenticate_program /usr/bin/ncsa_auth
/usr/etc/passwd
• authenticate_children 5 :认证程序的进程数
• authenticate_ttl 1 hour: 认证有效时间
• authenticate_ip_ttl : 对一个 IP 一次认证后多长时
间有效
– 此时在同一个 IP 有第二个用户认证会失败
• authenticate_ip_ttl_is_strict : 禁止一个用在
多处登录 Acegene IT Co. Ltd. 108
squid-OPTIONS FOR TUNING THE
CACHE
• request_header_max_size: 最大 http 请求头
• request_body_max_size :最大 http 请求数据内容
• reply_body_max_size :最大返回数据
– 可限制用户下载的数据大小
• reference_age : LRU 算法中指定 LRU 时间
• quick_abort_min (KB) :断点续传最小值
• quick_abort_max (KB) :断点续传最大值
• quick_abort_pct (percent) :超过值认为续传成功
• negative_ttl: 否定回答 TTL
• positive_dns_ttl : DNS 肯定回答 TTL
• range_offset_limit :请求 SQUID 预取数据的大小
• 3 、对 arp 控制
• acl advance arp 00:01:02:1f:2c:3e 00
:01:02:3c:1a:8b ...
4 、禁止下载
– acl mmxfile urlpath_regex –
i \.mp3$ \.avi$ \.exe$
http_access deny mmxfile
• 5 、固定时间
• acl worktime time MTWHF 8:30-
12:00 14:00-18:00
http_access deny !worktime
Acegene IT Co. Ltd. 124
其它
• 6 、限制单用户最大连接数
– acl conncount maxconn 3
http_access deny conncount normal
http_access allow normal
• 7 、反向代理
– a) 用 iptables 将外网 80 端口访问重定向到 squid
– b) 让 http 只监听 127.0.0.1 80
– c) 在 squid 中包含 hosts_file /etc/hosts
– d) 在 /etc/hosts 中包含本地所有虚拟主机域名
– e) 让 squid 只监听 127.0.0.1
• 实现模块: mod_vhost_aliases
• 基于主机名的动态虚拟主机
– 指令 :( 只用两个指令)
• VirtualDocumentRoot
• VirtualScriptAlias
– 可使用的变量
• %% :即 %
• %p: 动态虚拟主机的 tcp 端口号
• %0: 整个服务器名字
• %N :服务名中的第 N 部分
• %N+: 服务器名的第 N 部分和其后所有其余部分
• %-N: 字符器串倒数第
Acegene IT Co.N 部分,
Ltd. 156
动态虚 拟主机
• apache 必须要构造一个指向它自己的 URL
• 构造指令 :UseCanonicalName
• 1 、 on :apache 使用 ServerName 和 Port 生
成自指 URL
• 2 、 off: 使用 http/1.1 中的主机名和端口号构
成 URL ,如果客户方是 http/1.0 ,则 apache
使用 ServerName 和 Port 构造自指 URL
• 3 、 DNS: 则查询 DNS 以便购成自指 URL
• 注 :httpd -S 用于调试虚拟主机启动
qmail-lspawn qmail-local
qmail-inject
qmail-queue qmail-send
qmail-smtpd
qmail-respawn qmail-rremote
qmail-clean