(转自LinuxSir)
一: DNS服务器的设置
1. 编辑/etc/named.conf
// generated by named-bootconf.pl
options {
directory "/var/named";
/*
* 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 "mydomain.com" IN {
type master;
file "named.mydomain.com";
allow-update { none; };
};
zone "1.168.192.in-addr.arpa" IN {
type master;
file "named.mydomain.com.rev";
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; };
};
include "/etc/rndc.key";
2. 编辑正向解析文件/var/named/named.mydomain.com
$TTL 86400
@ IN SOA my.mydomain.com. root.my.mydomain.com. (
1997022700 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400 ) ; Minimum
IN NS my.mydomain.com.
IN MX 10 my.mydomain.com.
my IN A 192.168.1.50
www IN CNAME my.mydomain.com.
ftp IN CNAME my.mydomain.com.
smtp IN CNAME my.mydomain.com.
pop3 IN CNAME my.mydomain.com.
3. 编辑反向解析文件/var/named/named.mydomain.com.rev
$TTL 86400
@ IN SOA my.mydomain.com. root.ns.mydomain.com. (
1997022700 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400 ) ; Minimum
IN NS my.mydomain.com.
50 IN PTR my.mydomain.com.
4. 编辑/var/named/named.local文件
$TTL 86400
@ IN SOA my.mydomain.com. root.my.mydomain.com. (
1997022700 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400 ) ; Minimum
IN NS my.mydomain.com.
1 IN PTR localhost.
5. 编辑/etc/resolv.conf
# MADE-BY-RP-PPPOE
domain mydomain.com
nameserver 192.168.1.50
search localdomain
二: WEB服务器的设置
只需对/etc/httpd/conf/httpd.conf进行部分修改即可
ServerTokens OS
ServerRoot "/etc/httpd" 注:指定守护进程httpd的运行目录
PidFile run/httpd.pid
Timeout 300 注:定义客户程序和服务器连接的超时间隔
KeepAlive Off 注:定义是否支持一次连接,多次传输功能
MaxKeepAliveRequests 100 注:一次连接可以进行的HTTP请求的最大请求次数
KeepAliveTimeout 15 注:一次连接中的多次请求传输之间的时间
MaxRequestsPerChild 0 注:每个子进程处理服务请求次数 0为无限次
Listen 80
User apache 注:指定用户和组
Group apache
ServerAdmin nangshou@mydomain.com 注:服务器管理员的E_MAIL地址
#ServerName 192.168.1.50:80 注:服务器域名,通常没有dns才需要
UseCanonicalName Off
DocumentRoot "/var/www/html" 注:指定网页文件存放位置
UserDir user_www 注:用于个人主页,一般为/home/user/网页文件目录
DirectoryIndex index.html index.htm index.php 注:指定网站首页名
AccessFileName .htaccess
Alias /manual "/var/www/manual"
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
Allow from all
注:以上是设置针对目录进行文件的访问控制
ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
Scriptsock run/httpd.cgid
AllowOverride None
Options None
Order allow,deny
Allow from all
AddDefaultCharset GB2312 注:网站支持的字符编码
注:以下是设置虚拟主机服务所需配置的地方
#NameVirtualHost 202.101.2.1 注:基于名字的虚拟主机必须,如基于IP地址则不需要
#
# VirtualHost example:
# Almost any Apache directive may go into a VirtualHost container.
# The first VirtualHost section is used for requests without a known
# server name.
#注:如果是基于IP地址的虚拟主机只需下面的设置即可
#
# ServerAdmin webmaster@dummy-host.example.com
# DocumentRoot /www/docs/dummy-host.example.com
# ServerName dummy-host.example.com
# ErrorLog logs/dummy-host.example.com-error_log
# CustomLog logs/dummy-host.example.com-access_log common
#
注:基于名字即一个IP地址对应多个域名
基于IP地址即每一个域名均有与之对应的IP
三: DHCP服务器的安装设置
1. 在安装光盘里找到dhcp-*.rpm,
2. Rpm –ivh dhcp-*.rpm
3. Setup/system serviceu将dhcp设为系统自启动
4. 配置/etc/dhcpd.conf文件
subnet 192.168.1.0 netmask 255.255.255.0 {
range dynamic-bootp 192.168.1.60 192.168.1.160; 注:IP地址分配范围
option routers 192.168.1.254; 注:默认网关
option subnet-mask 255.255.255.0; 注:默认子网掩码
option domain-name “mydomain.com”; 注:默认域名
option domain-name-servers 192.168.1.50,202.96.134.133;
四: 电邮(sendmail)服务器的设置
4.1 设置Sendmail.cf
请在Cwlocalhost之後加上你那一台机器所有可能用来当收信地址的host name 。 例如我有一台机器叫:ftp.mydoamin.com,而且也叫:email.mydomain.com,而我希望这一台机器这两个名字都能收信,那我要这么作:
Cwlocalhost ftp.mydomain.com email.mydomain.com
顺便说一下,Cw之後只能写入本机器的名字,千万不能写入其他机器的名字,否则,甚麽地方都能寄,那被写的就 一定不能寄。
上面其实是简略的说法,如果你对DNS 也熟悉的话,可参考这节来作判断,判断是否须要在Cw之後写入东东。否则 请直接跳过这一小节,把本机器所用的所有名字都写上。
1.在一台机器上,如果有多个名字(hostname),而是用CNAME 建立的,如:
$ORIGIN my.mydomain.com
ftp IN A 192.168.1.50
email IN CNAME my.mydomain.com
那麽可以不必在Cw上标明。系统会透过DNS 找到其 Canonical name。
2.如果一台机器有多个名字,可是,每个名字是用A record 建立的。如:
$ORIGIN my.mydomain.com
ftp IN A 192.168.1.50
emial IN A 192.168.1.50
这种情况【一定】要记得在Cw後写上你所要收信的名字。如果这个忘了写,会有怎样的问题呢? 忘了将会有从外面机器寄信来,没有写上的机器名将却收不到信,会提示:
"Local configuration error" 。
如:我的sendmail.cf中的Cw这行是如下: Cw my.mydomain.com那我将无法使用这个地址: username@my.mydomain.com而只能用 username@ftp.mydomain.com 否则将出现上述错误。
如果发现了错误,那再加上去也就可以了。
3.如果一台机器有多interface ,各interface有其本身的名字,且要收信。这个情况也要在Cw之後写明所有要收信的hostname。
Fw/etc/sendmail.cw 这一行表示让sendmail去哪里找sendmail.cw这个文件,这个文件很重要。
还有一行你可能也需要改一下:
R$* $#error $@ 5.7.1 $:"550 Relaying denied" 改成
R$- $@ OK
注意:中间的分隔要用"Tab"键.
4.2 设置Sendmail.cw
修改sendmail.cw文件,设置这个邮件服务器用于发送邮件的主机的名字,可以用你的域名,或主机名。
# sendmail.cw - include all aliases for your machine here.
mydomain.com
mail.mydomain.com
my.mydomain.com
ok!一个标准的sendmail.cf文件就设置完了!
4.3 设置access
打开/etc/mail/access,你会看到 (注意一些系统的access文件不再/etc/mail下,如找不到请用whereis查找或检查是否安装正常)
# Check the /usr/doc/sendmail-8.9.3/README.cf file for a description
# of the format of this file. (search for access_db in that file)
# The /usr/doc/sendmail-8.9.3/README.cf is part of the sendmail-doc
# package.
#
# by default we allow relaying from localhost...
localhost.localdomain RELAY
localhost RELAY
如果您的IP地址是192.168.1.50的话,这样请在最后一行加上 192.168.1.50 RELAY
其文件的最后三行应是:
localhost.localdomain RELAY
localhost RELAY
192.168.1.50 RELAY
加上这句话您就可以用sendmail发送接收mail了!但是如果您想让别人也可以使用sendmail的话,他的IP是202.168.25.22,这样就在在最后一行加入 202.168.25.22 RELAY
其文件的最后四行应是:
localhost.localdomain RELAY
localhost RELAY
192.168.1.50 RELAY
202.168.25.22 RELAY
我想,您现在一定有个疑问是,如果我想设置50个人用sendmail是不是需要加50个IP啊!?嘿嘿,不用啦,是这样,sendmail考虑到多用户的时候,它准许你添入整个C类地址。其格式如下:
localhost.localdomain RELAY
localhost RELAY
192.168.1 RELAY
这样,您就是把192.168.1这整个C都加入的sendmail中,这个C类地址的用户,如果在你的系统里有账号的话,就可以使用sendmail收发信件了!然后运行:# makemap hash access.db < access
4.4 设置pop3
如果您需要pop3来接收信件,您需要打开pop3端口,
vi /etc/inetd.conf 查找到
# pop-3 stream tcp nowait root /usr/sbin/tcpd ipop3d把#号删掉。vi/etc/services 查找#pop-3 110/tcp # POP version 3把#号删掉。这样,在restart inetd后,pop3 110端口就可以接信了!如果还是不行,请检查是否安装pop3端口!
4.5 sendmail的别名和forward
(1) 关于直接用IP地址发信
mail user@[192.168.IP.Address]
只要用[]将IP地址括起来就行了
(2) 关于alias
sendmail在/etc下有两个文件 aliases和aliases.db, 后者是前者用newaliases 生成的别名数据库. 你可以手工编辑/etc/aliases, 然后运行newaliases更新数据 库(其实newaliases是个到sendmail的 symlink)
eg: nangshou : user@mydomain.com
alias-name: real-user-account
则以后mail nangshou就可以将信寄到user@mydomain.com处 而别人寄给alias-name@your.domain.name的信就会转给真正的用户real-user-account
(3) 关于forward
在你的$HOME目录下面编辑一个.forward文件, 里面写上你要forward的目的e-mail 地址或本机的用户名, 就可以自动将信 forward到相应地址
eg: .forward: user@mydomain.com
或 other-user-account
则给此人的e-mail会forward到mydoamin或other-user-account处
(4) 关于vacation
去找一个vacation包(如RedHat的contrib中有vacation的rpm), 装上后就一个 /usr/bin/vacation程序和一个man. 先运行vacation, 它会让你编辑$HOME/.vacation.msg文件, 就是要发回给对方 告诉他你现在不看信的东西啦. 然后编辑$HOME/.forward文件, 写这样一句 /username, "|/usr/bin/vacation username", username 要换回你自己的了 然后运行vacation -I建$HOME/.vacation.db就好了。
(5) 关于sendmail的一些文件
/var/log/maillog sendmail的log, 分析错误有用
/var/spool/mail/$USER 进来的信, 每个用户一个文件
/var/spool/mqueue mail queue, 可以用mailq看队列中待发的信
(mailq也是 sendmail的symlink了)
dfxxxxxx 这是信的内容
qfxxxxxx 这是信的subject和别的信息 (反正每信一个号了, 配对的)
/etc/sendmail.cf sendmail的配置文件, 改动它可要小心
/etc/sendmail.cw 假如你的机器有好多alias的话就把名字写在
这个文件中, 这样写哪个都能收到信
4.6 限制邮件的大小
vi /etc/sendmail.cf:
Mlocal, P=/bin/mail, F=lsDFMrmn, S=10, R=20/40,
Maxsize=1000000,
A=mail -d $u
Mprog, P=/usr/local/sendmail/smrsh, F=lsDFMeu, S=10, R=20/40, D=$z:/,
Maxsize=1000000,
其中maxsize=1000000即为限制数