刚才有空,找了几篇文章,没试过,大家作参考。
如果已贴过,帮忙删掉。
Linux各种服务器的架设1
服务器架设
第一章 架设WWW服务器
Internet下最热的是WWW服务, 最常用的软件是Apache软件,Apache的主要特征是:
¨ 可以运行上所有计算机平台;
¨ 支持最新的HTTP 1.1协议;
¨ 简单而强有力的基于文件的配置;
¨ 支持通用网关接口CGI;
¨ 支持虚拟主机;
¨ 支持HTTP认证;
¨ 集成Perl脚本编程语言;
¨ 集成的代理服务器;
¨ 具有可定制的服务器日志;
¨ 支持服务器端包含命令(SSI)
¨ 支持安全Socket层(SSL)
¨ 用户会话过程的跟踪能力;
¨ 支持FastCGI;
¨ 支持Java Servlets。
Orbita Linux 3.0(英文版)自带的Apache软件包采用最新版本:1.3.19-5。传统上Apache从三个文件中读取服务器运行配置,都存放在 /etc/httpd/conf 路径下,这三个文件是access.conf、httpd.conf和srm.conf。由于Orbita Linux 3.0(英文版)采用的是目前最稳定的Apache版本,服务器运行配置只存储在一个文件中----httpd.conf文件。其他文件仍然存在,但是只包含注释,告诉用户该文件只是由于历史原因而保留,所有的配置已放入httpd.conf文件。
首先,介绍一下 # 的用法。# 在配置文件中处于一行的开头,表示该行为注释,不参与执行。如果你希望使用某个被注释掉的参数,就必须将其行首的 # 去掉。
编辑文件httpd.conf,查看设置参数:
(1)以下参数定义了httpd服务器的一般属性、端口号(port)、执行者的身份等
ServerType:有standalone 和inetd两个值可供选择。这是要你选择你的Server是单独启动(standalone),还是借由互联网络伺服程序inetd来启动。一般我们默认使用单独启动就行了。如果你对 ARPA Berkeley Services 不是很了解的话,请不要随意更改。
Port:分配给你的服务器的端口号。ServerType为standalone时一般都设成80。当然,如果你需要也可以设置成其它的port,但必须小于1024。倘若你分配了一个大于1024的端口号给Web Server,你就必须在你的URL后面跟上端口号才能访问到你的页面。比如你分配给你的服务器的端口号是8080,那么你访问时需要输入http://yourdomain:8080。
ServerAdmin:服务器管理员的E-mail 地址,默认的是root@localhost,你可以改为你自己的E-mail地址。
ServerRoot:存放服务器的设置文件、出错文件和记录文件的目录。
BindAddress:允许连接到你的服务器上的虚拟主机的IP地址。你可以设置为一个IP地址或用 * 来表示网络上的所有虚拟主机。
ErrorLog:存放服务器出错信息的文件。
TransferLog:用来存放已传输过的文件(只包含文件名)的记录文件。
PidFile:指定存放httpd进程号的文件。
ScoreBoardFile :记录进程信息的文件。
ServerName:定义服务器的hostname,比如www.computer.swnu.edu.cn 。如果你的机子没有固定的IP,那就不用写了。
Timeout:传输或接收的延时。大于这个时间服务器会自动断开链接。
KeepAlive:是否让你的服务器支持断点续传功能,可以选 on 或者 off。
MaxKeepAliveRequests:设置续传功能的数目。内置设成最多100,如果设成0就是不支持续传功能。当然,数目设得越多就会浪费更多的硬盘空间。
KeepAliveTimeout:等待下一个请求的时间,如果使用者超过这个时间还没有向你的服务器发出要求,则它就不能再续传了。同样的,秒数设得越大硬盘中的垃圾就会越多。
MaxClients:允许的最大客户个数,默认的是150。你不必担心设得过高会浪费CPU、内存资源,因为Apache会周期性地检查目前Server的load状态,以调整目前应该运行几个process。
(2)以下参数主要是用来指定你的文档的位置
DocumentRoot:指定你(root)存放HTML文件的路径,一般用默认值就行了。比如,你设置的DocumentRoot是/home/httpd/html,服务器的地址是202.98.32.96,则在URL中输入http://202.202.98.96所看到的文件就?...械膇ndex.html。
UserDir:定义使用者存放html文件的路径。如果你有一个用户的主目录为 /home/wjq ,当在URL中输入http://yourdomain/~wjq时,系统就会...r所指定的目录。
DirectoryIndex:用来定义别人连入时所看到的第一个文件,一般都为index.html。
ScriptAlias:定义存放CGI的路径。比如你设置为 ScriptAlias /cgi-bin/ /home/httpd/cgi-bin/,那么当有人连到你的页面时,服务器就到/home/httpd/cgi-bin/路径下去找寻CGI然后执行,而其显示的路径却是Alias的路径/cgi-bin/。
AddHandler:用来定义CGI的格式,约定俗成以 .cgi 结尾的文件为CGI文件。
如果你想运行更多格式的HTML文件,那就可以按需要把下面几个参数前的#去掉。
AddType text/html .shtml AddHandler Server-parsed.shtml:允许使用Server-parsed HTML格式的文件的文件(.shtml)。
AddHandler imap-file map:允许页面有imagemap。
AddHandler type-map var:允许运行 map 格式的html语法。
(3)以下主要是设置目录的基本存取权限,以及规范远端机器是否能连接到你的WWW服务器的相关设置
Options Indexes IncludesNOEXEC FollowSymLinks
AllowOverride None
order allow,deny
allow from all
这部分是以开头,以结束的。其中开头的部分表示下面的设定是针对/home/httpd/html目录的。Options 用于定义在DocumentRoot里的文件所能执行的操作,这一命令有很多的参数,各参数的功能如下:
None:表示页面除了看之外不能做任何事。
All:允许进行除看动画、听音乐之外的任何操作。
ExecCGI:开启执行CGI程序的功能。
explicitly:允许看动画或是听音乐之类的操作。
FollowSymLinks:开启一个动态的链接,当有客户访问到该目录时会自动的链接到另一个相关的目录中去。
Indexes:如果在目录中没有找到index.html文件,就显示文件列表。
而后是AllowOverride参数,该参数是设定访问控制的,其后可跟Allow、None、FileInfo、AuthConfig、Limit等选项,不过一般都设为 None ,表示任何人都可以阅读DocumentRoot内的文件。
order allow,deny 就是定义有allow(允许)和deny(不允许)两种命令模式,其后的allow from all表示允许网络上的所有计算机连接到这台服务器。同样的,你也可以做以下定义:
order allow,deny
deny from all
allow from 202.98.32.96
这就表示只有202.98.32.96的计算机允许连接到你的服务器。
以此类推,我们还可以对其它目录进行设置。下面给出的就是对/home/httpd/cgi-bin 目录进行设置的范例:
AllowOverride None
Options ExecCGI
它表示不能对/home/httpd/cgi-bin 进行访问控制,但允许执行CGI程序,这就表明这是一个用来存放CGI程序的目录。
通常,这三个配置文件的参数的默认值是不用更改的,但是如果你同时在一台机子上开了几个Web Server时就要注意:你必须给每一个Web Server分配一个不同的port号并分别指定他们的errorlog文件和pidfile文件。
至此,我们已经配置完了Apache服务器,接下来就是要重新启动httpd了。
重新启动httpd,完成服务器的配置
进入Linux终端模式,执行/etc/rc.d/init.d/httpd stop终止httpd 进程,当然你也可以通过查看其pid号码将其kill;然后执行/etc/rc.d/init.d/httpd start重新启动刚才配置好的httpd,再进入X windows并启动Netscape,在URL中输入localhost或本机的IP地址,如果没有什么意外你应该看到一个关于Apache的页面。这时,你可以将自己的主页拷贝到/home/httpd/html/目录中,别人就可以通过浏览器访问到你的主页了。
这样,一个功能强大的服务器就算架设完成了。
第二章 架设FTP和 TELNET 服务器
Orbita Linux 3.0(英文版)和以往的版本有一个明显的区别,就是用xinetd.conf代替原来的inetd.conf,并且直接使用了 firewall服务。出于系统整体安全性增强的考虑,Orbita Linux 3.0(英文版)在默认安装时没有启动老版本中大家比较熟悉的ftp, telnet等服务。
xinetd与inetd的区别:
xinetd的默认配置文件是/etc/xinetd.conf,它看起来尽管和老版本的/etc/inetd.conf完全不同,其实只是 以一个脚本的形式将inetd中每一行指定的服务扩展为一个/etc/xinetd.d/下的配置文件。其格式为:
service service-name
{
Socket_type = xxx; //TCP/IP socket type,such as stream,dgram,raw,....
protocol = xxx; //服务使用的协议
Server = xxx; //服务daemon的完整路径
Server_args = xxx; //服务的参数
Port = xxx; //指定服务的端口号
Wait = xxx; //是否阻塞服务,即单线程或多线程
User = xxx; //服务进程的uid
Group = xxx; //gid
REUSE = xxx; //可重用标志
Disabled = yes/no; //是否禁用
......
}
下面说说怎样使FTP服务与TELNET服务起来:
其实很简单,找到/etc/xinetd.d/下与它们有关的文件,FTP是wu-ftpd文件,TELNET是telnet文件。编辑它们。把Disabled = yes,改为Disabled=no即可。
然后,重新启动服务
#/etc/rc.d/init.d/xinetd restart 或:#killall -HUP xinetd 。
这时候,telnet localhost和ftp localhost都应该没有问题了。
但是,从局域网内的其他机器仍然可能使用不了ftp和telnet服务。这是因为firewall在作祟。这次的firewall其实就是ipchains,配置文件在/etc/sysconfig/ipchains:
# Firewall configuration written by lokkit
# Manual customization of this file is not recommended.
# Note: ifup-post will punch the current nameservers through the
# firewall; such entries will *not* be listed here.
:input ACCEPT
:forward ACCEPT
utput ACCEPT
-A input -s 0/0 -d 0/0 -i lo -j ACCEPT
-A input -p tcp -s 0/0 -d 0/0 0:1023 -y -j REJECT //********
-A input -p tcp -s 0/0 -d 0/0 2049 -y -j REJECT
-A input -p udp -s 0/0 -d 0/0 0:1023 -j REJECT //********
-A input -p udp -s 0/0 -d 0/0 2049 -j REJECT
-A input -p tcp -s 0/0 -d 0/0 6000:6009 -y -j REJECT
-A input -p tcp -s 0/0 -d 0/0 7100 -y -j REJECT
出于安全,ipchains把0-1023端口的入口全部封闭了。所以必须将它们打开。
把上面尾部带********标记的行中的REJECT修改为ACCEPT,然后重新启动计算机就行。
(当然你也可以在防火墙的配置中设置--键入setup命令,选择firewall configuration 选项)
你可以在机器启动时就加入FTP服务与TELNET服务。(setup命令中修改)
ftp登录画面
telnet登录画面
Ftp服务是Internet上的标准服务之一,用来在网络上传输文件。Orbita Linux用wu-ftpd2.6来实现该服务. 提供三种ftp登录形式:
1、anonymous ftp
2、real ftp
3、guest ftp
FTP服务程序由/etc/inetd.conf文件进行控制,而且每当有人连接ftp端口时,它便自动调用(如,端口21和FTP相关联)。当检测到某个连接时,ftp守护程序(/usr/sbin/in.ftpd)便被调用,从而开始会话。默认的ftp配置已是比较安全,我们还可以通过编辑一些ftp 相关文件调整访问权限:
/etc/ftpaccess
/etc/ftpconversions
/etc/ftphosts
/var/log/xferlog
利用这些文件,可以控制哪些人、在什么时间、从什么地点可以连接到服务器,并且可以建立一个审查跟踪文件,对他们连接后所做的工作进行检查。
/etc/ftpaccess文件是这些文件中最重要的一个,因为它包括大部分的配置选项;然而,错误地配置其它文件中的任何一个,都可能导致服务被拒绝。
2 关于/etc/ftpaccess的设置
这个配置文件是FTP服务器上最重要的配置文件,它直接关系到你的FTP服务器能否正常工作,还有许多权限上的设置。下面是一个典型的配置实例。
loginfails 3
class local real *
class remote anonymous guest *
limit remote 100 Any /etc/ftpd/toomany.msg
message /etc/ftpd/welcome.msg login
compress yes local remote
tar yes local remote
private yes
passwd-check rfc822 warn
log commands real
log transfer anonymous guest inbound outbound
log transfer real inbound
shutdown /etc/ftpd/shut.msg
delete no anonymous,guest
overwrite no anonymous,guest
rename no anonymous
chmod no anonymous,guest
umask no anonymous
upload /home/ftpd * no
upload /home/ftpd /bin no
upload /home/ftpd /etc no
upload /home/ftpd /pub yes real 0644 dirs
upload /home/ftpd /incoming yes real guest anonymous 0644 dirs
alias in /incoming
email guest@xxx.net
email guest@yyy.net
deny *.com.tw /etc/ftpd/deny.msg
下面我们逐句进行讲解,并给出每条设置的含义,以便大家触类旁通,以便根据自己FTP服务器的具体情况进行合理的设置。
1. 格式:loginfails [次数]
功能:设定当用户登录到FTP服务器时,允许用户输错密码的次数。
实例:loginfails 3:密码输入错误三次就切断连接。
2. 格式:class [类名] [real/guest/anonymous] [IP地址]
功能:这个指令的功能设定FTP服务器上用户的类别。并可对客户端的IP地址进行限制,允许某部分的 IP地址或全部的IP地址访问。而在FTP服务器上的用户基本上可以分为以下三类:
real 在该FTP服务器有合法帐号的用户;
guest 有记录的匿名用户;
anonymous 权限最低的匿名用户
实例:class local real *:定义一个名为local的类,它包含了在任何地方登录(*代表所有IP地址)的real用户。 class remote anonymous guest *:定义一个名为remote的类,它包含了在任何地方登录的anonymous 用户和guest用户。
3. 格式:limit [类别] [人数] [时间] [文件名]
功能:这个指令的功能为设置指定的时间内指定的类别允许连接的指定人数上限。当达到人数上限的时候,显示指定文件的内容。
实例:limit remote 100 Any /etc/ftpd/toomany.msg:在任何时间内,remote类的访问用户达到100人时,将不再允许无法产生新的连接,当第101位客户要连接时,连接将失败,并象用户出示文件/etc/ftpd/toomany.msg的内容。
4. 格式:message [文件名称] [指令]
功能:当用户执行所指定的指令时,系统将指定的文件内容显示出来。
实例:message /etc/ftpd/welcome.msg login:当用户执行login命令时,也就是登录到FTP服务器上的时候,系统将显示文件/etc/ftpd/welcome.msg的内容。
5. 格式:compress [yes/no] [类别]
功能:设置哪一个类别的用户可以使用compress(压缩)功能。
实例:compress yes local remote:允许local和remote两个类别的用户都能使用 compress(压缩)功能。
6. 格式:tar [yes/no] [类别]
功能:设置哪一个类别的用户可以使用tar(归档)功能。
实例:tar yes local remote:允许local和remote两类的用户都能使用tar功能。
7. 格式:private [yes/no]
功能:设定是否支持群组对文件的取用。
实例:private yes:支持群组对文件的取用。
8. 格式:passwd-check [none/trivial/rfc822] [enforce/warn]
功能:设定对匿名用户anonymous的密码使用方式。
none 表示不做密码验证,任何密码都可以登录;
trival 表示只要输入的密码中含有字?quot;@"就可以登录;
rfc822 表示密码一定要符合RFC822中所规定的E-Mail格式才能登录;
enfore 表示输入的密码不符合以上指定的格式就不让登录;
warn 表示密码不符合规定时只出现警告信息,仍然能够登录。
实例:passwd-check rfc822 warn:希望能够得到符合规定的E-Mail作为密码,但如果不是,也允许登录。
9. 格式:log command [real/guest/anonymous]
功能:设置哪些用户登录后的操作记录在文件/usr/adm/xferlog中。
实例:log command real:当real用户登录后,将他的操作记录下来。由于其它用户权限较低,所以操作不会引起太大的安全隐患,所以一般只需记下real用
户的操作就可以了。
10. 格式:log transfers [real/guest/anonymous] [inbound/outbound]
功能:设置哪些用户的上载(inbound)和下载(outbound)操作做日志。
实例:log transfer anonymous guest inbound outbound:对于匿名用户要更加的关注它们的文件操作,
所以无论上载、下载都进行记录。
log transfer real inbound:对于合法用户则只记录他的上载记录。
11. 格式:shutdown [文件名]
功能:FTP服务器关闭的时间可以设置在后面所指定的文件中,当设置的时间一到,便无法登录FTP服务器了,
要恢复的话只有将这个文件删掉。而这个文件必 须由指令/bin/ftpshut来生成。
实例:shutdown /etc/ftpd/shut.msg
12. 格式:delete [yes/no] [real/anonymous/guest]
功能:设置是否允许指定用户使用delete命令删除文件。默认是允许。
实例:delete no anonymous,guest:为了更好地管理FTP服务器,一般情况下,我们不允许匿名用户执行delete命令。
13. 格式:overwrite [yes/no] [real/anonymous/guest]
功能:设置是否允许指定用户覆盖同名文件。默认是允许。
实例:overwrite no anonymous,guest:为了更好地管理FTP服务器,一般情况下,我们不允许匿名用户覆盖同名文件。
14. 格式:rename [yes/no] [real/anonymous/guest]
功能:设置是否允许指定用户使用rename命令来为文件改名。默认是允许。
实例:delete no anonymous:为了更好地管理FTP服务器,一般情况下,我们不允许匿名用户执行rename命令改变文件名。而对有记录的匿名用户则适当的放宽,允许他们使用改名命令。
15. 格式:chmod [yes/no] [real/anonymous/guest]
功能:设置是否允许指定用户使用chmod命令更改文件权限。默认是允许。
实例:delete no anonymous,guest:为了更好地管理FTP服务器,一般情况下,我们不允许匿名用户执行chmod命令更改文件权限。
16. 格式:umask [yes/no] [real/anonymous/guest]
功能:设置是否允许指定用户使用umask命令。默认是允许。
实例:delete no anonymous:为了更好地管理FTP服务器,一般情况下,我们不允许匿名用户执行umask命令。
17. 格式:upload [根目录] [上载目录] [yes/no] [用户] [权限] [dirs/nodirs]
功能:对可以上载的目录进行更加详细的设置。
实例:upload /home/ftpd * no:表示在子目录/home/ftpd下不允许上载;
upload /home/ftpd /bin no:表示在子目录/home/ftpd/bin下不允许上载;
upload /home/ftpd /etc no:表示在子目录/home/ftpd/etc下不允许上载;
upload /home/ftpd /pub yes real 0644 dirs:允许用服务器上的合法用户在子目录/home/ftpd/pub目录
下能上载权限为0644(也就是-rw-r--r--)的文件,而且在这个目录下可以新建子目录。
upload /home/ftpd /incoming yes real guest anonymous 0644 dirs:允许所有的用户在子目录
/home/ftpd/incoming下能上载权限为0644的文件,而且在这个目录下可以新建子目录。
18. 格式:alias [目录别名] [目录名]
功能:给指定目录设置一个别名,在切换目录时就可以使用较短的目录别名。
实例:alias inc: /incoming:为子目录incoming设置一个别名inc:。
19. 格式:email [guest的E-Mail地址]
功能:只要将某些E-Mail地址设置在这个地方,那么这些用户登录到FTP服务器时,他的身份将为guest,一般权限比real低一些,比anonymous高。
实例:email guest@xxx.net email guest@yyy.net:这里仅是一个示例,实际上可 以包含多个符合规范的E-Mail地址。
20. 格式:deny [IP地址/域名] [说明文件]
功能:这个设置可以限制哪一些IP地址或域名的用户无法登入FTP服务器。
实例:deny *.com.tw /etc/ftpd/deny.msg:设置凡是域名是以".com.tw"结束的域名,都禁止其访问。
而将/etc/ftpd/deny.msg的内容显示给用户看。
2 设置/etc/ftpuser , 禁止某些用户登录
有时我们需要禁止一些用户使用FTP服务。其实这个设置是十分简单的,只需要将要禁止的用户帐号写入文件/etc/ftpuser中。由于从系统的安全考虑,一般我们是不希望权限过大的用户和一些与命令名相同的用户进入FTP服务器。所以在缺省的配置中,一般以下用户已经被列入了"黑名单"。
root
uucp
news
bin
adm
nobody
lp
sync
shutdown
halt
2 设置/etc/ftphosts
禁止某些来自指定机器上的登录如果你需要拒绝来自某些主机的登录,一种方法就是在
/etc/ftpaccess中设置deny命令,另一种更加简单的方法就是在/etc/ftphosts中写入你要禁止的主机的IP地址或域名。
2 使新的配置生效
到此为止,我们已经能够根据自己的需要对FTP服务器配置进行必要的修改和调整。而让我们重新配置后,就必须使其生效。一般的,对/etc/ftpaccess的配置是直接作用于设置后的下一次FTP服务进程。而其它的则要对inetd进程重新启动。
第三章 架设E-mail服务器
Sendmail是由Eric Allman编写的程序,后来经过很多人的贡献,才成为现在的版本。目前几乎所有的Unix/Linux系统都使用sendmail。sendmail的功能非常强大,Orbita Linux 3.0(英文版)安装了Sendmail软件包版本为目前最新的8.11.2-14。Sendmail的强大在于它的灵活性,这种灵活性来源于它的配置文件sendmail.cf。
Sendmail.cf文件具有三方面的功能。
第一、它可以为sendmail设置环境,从而把用户想要设置的选项以及sendmail需要使用的文件和数据库的位置通知给sendmail。
第二、配置文件可以定义sendmail用来确定把邮件发送到哪里的邮件发送器。
第三、配置文件可以指定用来改写寄件人和收件人的地址以及选择邮件发送器的规则集。例如,0号规则集用来选择邮件发送器。
配置说明
sendmail.cf是Sendmail的配置文件,它全权决定了Sendmail的属性。这个文件定义邮件服务器为哪个域工作。其中的内容为特定宏,大多数人对它都抱有恐惧心理,因为文件中的宏代码实在是太多。sendmail.cf通常是由一个以mc结尾的文件编译产生。如Redhat自带一个 redhat.mc,用户可以自己修改其中的一些设置,使之适合自己。sendmail.mc 文件内容如下:
divert(-1)
dnl This is the macro config file used to generate the /etc/sendmail.cf
dnl file. If you modify thei file you will have to regenerate the
dnl /etc/sendmail.cf by running this macro config through the m4
dnl preprocessor:
dnl m4 /etc/sendmail.mc > /etc/sendmail.cf
dnl You will need to have the Sendmail-cf package installed for this to work.
include(`/usr/lib/Sendmail-cf/m4/cf.m4')
define(`confDEF_USER_ID',``8:12'')
OSTYPE(`Linux')
undefine(`UUCP_RELAY')
undefine(`BITNET_RELAY')
define(`confAUTO_REBUILD')
define(`confTO_CONNECT', `1m')
define(`confTRY_NULL_MX_LIST',true)
define(`confDONT_PROBE_INTERFACES',true)
define(`PROCMAIL_MAILER_PATH',`/usr/bin/procmail')
FEATURE(`smrsh',`/usr/sbin/smrsh')
FEATURE(`mailertable',`hash -o /etc/mail/mailertable')
FEATURE(`virtusertable',`hash -o /etc/mail/virtusertable')
FEATURE(redirect)
FEATURE(always_add_domain)
FEATURE(use_cw_file)
FEATURE(local_procmail)
MAILER(smtp)
MAILER(procmail)
FEATURE(`access_db')
FEATURE(`blacklist_recipients')
dnl We strongly recommend to comment this one out if you want to protect
dnl yourself from spam. However, the laptop and users on computers that do
dnl not hav 24x7 DNS do need this.
FEATURE(`accept_unresolvable_domains')
dnl FEATURE(`relay_based_on_MX')
其中注释或删除DAEMON_OPTIONS('Port=smtp,Addr=127.0.0.1, Name=MTA')行。
编译sendmail.mc以产生需要的sendmail.cf文件:# m4 /etc/sendmail.mc > /etc/mail/sendmail.cf。
生成sendmail.cf以后,编辑sendmail.cf。在文件中,查找DS,在其后加入邮件服务器名、域名,这样可以保证当你以username@mail.domain.com或username@domain.com发信时,用户都可以收到,如下所示:
# Alias for this host
Cw mail.domain.com domain.com
然后,就可以启动Sendmail了:# /usr/sbin/Sendmail -bd -q20m。
Sendmail 8.9.x以后的版本,在缺省情况下,都默认不对未验证的计算机进行转发(Relay),所以如果要为本机以外的其他计算机进行邮件转发,这时,应该在相应的配置文件中明确告诉Sendmail要对哪几个主机进行转发。如果不考虑验证,对任何主机都进行转发的话,可以在sedmail.mc文件中加入一行:FEATURE(promiscuous_relay)。
不过,如果你的计算机是放在公网上的话,建议你不要这样做,因为这样做了以后,任何人都可以使用你的计算机进行转发邮件了,特别是一些别有用心的人或一些兜售客(spammer,垃圾邮件制造者)会利用你的邮件服务器的转发功能乱发大量的垃圾邮件。
通常情况下,Sendmail不会为邮件服务Relay信息,这样可以防止一些有恶意的人利用别人的邮件服务器乱发邮件。缺省情况下,Sendmail关闭了Relay功能。如果你要为别的服务器Relay邮件,可以进行如下设置--在access文件中加入要为其Relay信件的机器,格式为:
hostname RELAY
ipaddress RELAY
如果要为一个域内多个机器Relay信件,则可以在/etc/mail/access文件中直接加入其子网IP或域名,如下所示:
# Check the /usr/share/doc/sendmail-8.11.2/README.cf file for a description
# of the format of this file. (search for access_db in that file)
# The /usr/share/doc/sendmail-8.11.2/README.cf is part of the sendmail-doc
# package.
#
# by default we allow relaying from localhost...
localhost.localdomain RELAY
localhost RELAY
127.0.0.1 RELAY
10.1.8.2 RELAY
orbita.com RELAY
dns.orbita.com RELAY
此文件惟一决定了哪些机器、哪个域可以使用邮件服务器转发邮件。完成后需要进行编译:#makemap hash access.db < access。
其他配置的文件关系不是很大,可以暂时使用缺省安装的内容。
命令:/etc/rc.d/init.d/sendmail start|restar
至此,Sendmail应该可以正常工作了。
接下来是测试邮件服务器的邮件发送功能,测试时,首先对本地用户进行测试,这一步主要测试邮件与名称查询服务,如:域为orbita.com,测试时,邮件服务器上发送邮件给user1@orbita.com用户,再以该用户接收发送邮件。如果正常,我们再从局域网上的另一台机器使用Outlook等邮件客户端对服务器进行测试。主要是测试smtp功能。我们在windows客户机上启动Outlook软件,设置帐号,
下一步,添加新邮件
下一步,输入电子邮件地址,
下一步,输入pop3和smtp服务器,
下一步,输入帐号和密码,
下一步,电击"完成"按钮就可以了。
下面我们就可以使用Outlook接收发送邮件了
至此,Sendmail设置以及测试基本完成。
第四章 架设DNS服务器
DNS就是Domain Name System,它的功用是把计算机的名称转换为IP 地址。DNS的使用简化了系统管理员及客户对主机文件的配置,它能够把形如www.orbita.com这样的域名转换为10.1....S服务器。Orbita Linux 3.0(英文版)采用最新稳定的bind9.1.0-10软件,在服务端由named这个守护进程来监听端口,提供响应。在默认的设置中,加入了SSL支持。
当bind软件安装后,会产生几个固定文件,分为两类,一类是配置文件在/etc目录下,一类是dns记录文件在/var/named目录下。如, /etc/named.conf文件内容来决定要维护的域名资料,定义好/etc/named.conf设置文件后,接下来必须在系统上建立file命令所指定的数据库文档,在数据库文档中设置SOA记录,NS记录,MX项目,A记录和CNAME记录等等,加上其他的相关文件,共同设置DNS服务器。
下面是配置说明:
服务器机器是一台Orbita Linux 3.0(英文版)的电脑,IP是10.1.8.21,主机名是dns.orbita.com,负责解析orbita.com这个域。
配置文件如下:
***************************************************************************
FILE Name: /etc/hosts
AUTHOR: Smith Pan
BUILD Time:8/9/2001
***************************************************************************
# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1 localhost.localdomain localhost
10.1.8.21 dns.orbita.com dns
***************************************************************************
FILE Name: /etc/resolv.conf
AUTHOR: Smith Pan
BUILD Time:8/9/2001
***************************************************************************
search
nameserver 127.0.0.1
nameserver 10.1.8.21
nameserver 202.96.128.68
***************************************************************************
FILE Name: /etc/named.conf
AUTHOR: Smith Pan
BUILD Time:8/9/2001
***************************************************************************
// 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
//
zone "." IN {
type hint;
file "named.ca";
};
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; };
};
zone "8.1.10.in-addr.arpa" {
type master;
file "8.1.10.in-addr.arpa.zone";
};
zone "orbita.com" {
type master;
file "orbita.com.zone";
};
key "key" {
algorithm hmac-md5;
secret "rMLOqq0nztmLZQnvRAKyMyZPfOK0yTSvGQofyUDOK0jGzbjEOUHoNwEaCvzn";
};
***************************************************************************
FILE Name: /var/named/orbita.com.zone
AUTHOR: Smith Pan
BUILD Time:8/9/2001
***************************************************************************
$TTL 8640
@ IN SOA orbita.com. master.dns.orbita.com. (
6;serial
2880;refresh
720;retry
60480;expire
8640;ttl
)
@ IN NS dns.orbita.com.
dns IN MX 15 dns.orbita.com.
@ IN MX 10 orbita.com.
www IN A 10.1.8.21
dns IN A 10.1.8.21
@ IN A 10.1.8.21
***************************************************************************
FILE Name: /var/named/8.1.10.in-addr.arpa.zone
AUTHOR: Smith Pan
BUILD Time:8/9/2001
***************************************************************************
$TTL 8640
@ IN SOA orbita.com. root.localhost (
6;serial
2880;refresh
720;retry
60480;expire
8640;ttk
)
@ IN NS dns.orbita.com.
dns IN MX 15 dns.orbita.com.
***************************************************************************
配置完以上文件后,使用如下命令重启DNS服务:
/etc/rc.d/init.d/named restart
我们在局域网内使用浏览器查看这台机器,就不用再敲10.1.8.21了,只要输入名字就可以了。
Linux各种服务器的架设2
第五章 架设Squid服务器
1、代理服务器简介
代理服务器能够让多台没有IP地址的电脑使用其代理功能高速、安全地访问互联网资源。当代理服务器客户端发出一个对外的资源访问请求,该请求先被代理服务器识别并由代理服务器代为向外请求资源。由于一般代理服务器拥有较大的带宽,较高的性能,并且能够智能地缓存已浏览或未浏览的网站内容,因此,在一定情况下,客户端通过代理服务器能更快速地访问网络资源。代理服务器应用的常见例子:拥有上百台电脑的局域网通过一台能够访问外部网络资源的代理服务器而也能访问外部互联网。OrbitaLinux使用squid软件来架设代理服务器,版本为2.3.STABLE4-10,支持FTP、gopher和HTTP协议。和一般的代理缓存软件不同,Squid用一个单独的、非模块化的、I/O驱动的进程来处理所有的客户端请求。
Squid将数据元缓存在内存中,同时也缓存DNS查询的结果,除此之外,它还支持非模块化的DNS查询,对失败的请求进行消极缓存。Squid支持 SSL,支持访问控制。由于使用了ICP(轻量Internet缓存协议),Squid能够实现层叠的代理阵列,从而最大限度地节约带宽。
Squid由一个主要的服务程序squid,一个DNS查询程序dnsserver,几个重写请求和执行认证的程序,以及几个管理工具组成。当Squid 启动以后,它可以派生出预先指定数目的dnsserver进程,而每一个dnsserver进程都可以执行单独的DNS查询,这样一来就大大减少了服务器等待DNS查询的时间。
2、安装Squid Proxy Server
1、获取软件
你可以通过以下途径获取该文件:
从Squi官方站点http://www.squid-cache.org下载该软件。
从你的linux发行版中获取该软件:
RPM包的安装
进入/mnt/cdrom/orbita/RPMS目录并执行以下命令:
#rpm -ivh squid-2.2.STABLE4-8.i386.rpm。
当然,我们也可以在开始安装系统的过程中安装该软件。
源代包的安装
从http://www.squid-cache.org下载squid...E2-src.tar.gz。
将该文件拷贝到/usr/local目录。
解开该文件tar xvzf squid-2.3.STABLE2-src.tar.gz。
解开后,在/usr/local生成一个新的目录squid-2.3.STABLE2,为了方便用命令mv将目重命名为squid : mv squid-2.3.STABLE2 squid 。
进入squid目录,执行 ./configure
可以用 /configure -prefix = /directory/you/want 指定安装目录默认安装目录为/usr/local/squid。
执行make all命令,执行make install命令。
安装结束后,Squid的可执行文件在安装目录的bin子目录下,配置文件在etc子目录下。
3、配置Squid
Orbita Linux 3.0(英文版)中squid的配置文件是/etc/squid/squid.conf,在服务器端修改以下文件内容:
http_port 3128
# 默认代理服务器的端口
cache_mem 24 MB
# 在内存中开辟出缓冲区
cache_dir /var/spool/squid 2048 16 256
# 开辟硬盘缓冲区
# 各种LOG文件(可以只要access.log)
cache_access_log /var/log/squid/access.log
cache_log /var/log/squid/cache.log
cache_store_log /var/log/squid/store.log
pid_filename /var/run/squid.pid # 也可以不要这个进程文件
#自己的DNS服务器
dns_nameservers 10.1.8.2
# 这些都是系统缺省的,核对就行了。如果要设置其他可以看注释,很简单的
acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl allowed_hosts src 10.1.0.0/255.255.255.0
acl SSL_ports port 443 563
acl Safe_ports port 80 21 443 563 70 210 1025-65535
acl CONNECT method CONNECT
http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost
http_access deny all # 改为 http_access allow all 允许所有机器存取
icp_access allow all
miss_access allow all
设置好以后记得启动SQUID让设置生效
/etc/rc.d/init.d/squid start # 可以用的参数 start|stop|restart
4、以下是针对浏览器的基本配置:
Netscape:
从Edit菜单项中选择Preferences项。在Advanced中Proxies页,点击按钮进入Proxy配置手册,然后再点击View按钮。对每项你的Squid服务器支持的协议项(默认有HTTP,FTP和gopher等)中填入Squid服务器的主机名或IP地址,同时在Port栏中填入 Squid服务器的HTTP端口号(默认为3128)。对你的Squid不支持的协议,可以让这些栏空着。
接下来
设置完成后,就可以在linux客户端通过linux代理服务器上网了。
IE:
在工具菜单项中选择Internet选项,然后点击连接页,再按局域网设置按钮选择使用代理服务器选项,进入高级项目编辑。然后可以看到与Netscape代理服务器设置类似的界面,按照前面所述的方法分别填入相应项即可。
单击局域网设置:
接下来,就可以用windows通过linux代理服务器上网了。
第六章 架设Samba服务器
1、何谓samba服务器
Linux如何跟windows95/98/NT相连呢?我们能在网络邻居上访问到linux主机吗?linux下的Samba为我们做了一切,它在windows和linux 之间起到了一个连接的作用。你可以很方便的通过网上邻居来访问到linux的文件和打印机服务。Samba实际上是一组程序,它们让你的linux机器懂得SMB的通讯协议
如果你知道Windows网络如何工作的话,那么也就比较容易理解Samba的工作原理。Windows客户机通过一个NetBIOS对话传送 Server Messages Block来使用服务器的文件和打印机。Samba工具能将UNIX机器和DOS/Windows机器连接起来,它利用Netbios (Windows9X"网上邻居"的通讯协定)和SMB(Server Message Block)这两种协定运作在TCP/IP的通讯协定上,可以提供文件系统、打印机或是其他资讯的共享服务。OrbirtaLinux系统自带Samba 版本为2.0.7-36。主配置文件smb.conf在Orbita Linux 3.0(英文版)的/etc目录下,在默认的配置文件中支持SSL。Samba服务器软件(smbd)使用该文件决定目录和打印机,以及这些目录和打印机的安全选项,为Windows客户机提供文件共享和打印服务。Smb.conf文件由三个特殊的段组成。特殊的段为[global]、[homes]、 [printers]。
2、samba服务器的配置
下面是我们在服务器(IP:10.1.8.2,hostname:Orbita,group:MYGROUP)端对其进行修改后的配置文件:
***************************************************************************# File Name: /etc/samba/smb.conf
# This is the main Samba configuration file. You should read the
# smb.conf(5) manual page in order to understand the options listed
# here. Samba has a huge number of configurable options (perhaps too
# many!) most of which are not shown in this example
#
# Any line which starts with a ; (semi-colon) or a # (hash)
# is a comment and is ignored. In this example we will use a #
# for commentry and a ; for parts of the config file that you
# may wish to enable
#
# modify by Smith Pan
# NOTE: Whenever you modify this file you should run the command "testparm"
# to check that you have not many any basic syntactic errors.
#
#======================= Global Settings=================================
[global]
# workgroup = NT-Domain-Name or Workgroup-Name
workgroup = MYGROUP --- 局域网所在的工作组
# server string is the equivalent of the NT Description field
server string = Samba Server
# This option is important for security. It allows you to restrict
# connections to machines which are on your local network. The
# following example restricts access to two C class networks and
# the "loopback" interface. For more examples of the syntax see
# the smb.conf man page
; hosts allow = 192.168.1. 192.168.2. 127. --- 局域网的网段
# if you want to automatically load your printer list rather
# than setting them up individually then you'll need this
printcap name = /etc/printcap
load printers = yes --- 服务器允许打印
# It should not be necessary to spell out the print system type unless
# yours is non-standard. Currently supported print systems include:
# bsd, sysv, plp, lprng, aix, hpux, qnx
printing = lprng
# Uncomment this if you want a guest account, you must add this to /etc/passwd
# otherwise the user "nobody" is used
; guest account = pcguest
# this tells Samba to use a separate log file for each machine
# that connects
log file = /var/log/samba/%m.log
# Put a capping on the size of the log files (in Kb).
max log size = 0
# Security mode. Most people will want user level security. See
# security_level.txt for details.
security = user --- 安全级别的参数
# Use password server option only with security = server or
# security = domain
; password server = <NT-Server-Name>
# Password Level allows matching of _n_ characters of the password for
# all combinations of upper and lower case.
; password level = 8
; username level = 8
# You may wish to use password encryption. Please read
# ENCRYPTION.txt, Win95.txt and WinNT.txt in the Samba documentation.
# Do not enable this option unless you have read those documents
; encrypt passwords = yes
; smb passwd file = /etc/samba/smbpasswd
# The following is needed to keep smbclient from spouting spurious errors
# when Samba is built with support for SSL.
ssl CA certFile = /usr/share/ssl/certs/ca-bundle.crt
# The following are needed to allow password changing from Windows to
# update the Linux sytsem password also.
# NOTE: Use these with 'encrypt passwords' and 'smb passwd file' above.
# NOTE2: You do NOT need these to allow workstations to change only
# the encrypted SMB passwords. They allow the Unix password
# to be kept in sync with the SMB password.
; unix password sync = Yes
; passwd program = /usr/bin/passwd %u
; passwd chat = *New*UNIX*password* %n\n *ReType*new*UNIX*password* %n\n *passwd:*all*authentication*tokens*updated*successfully*
# Unix users can map to different SMB User names
; username map = /etc/samba/smbusers
# Using the following line enables you to customise your configuration
# on a per machine basis. The %m gets replaced with the netbios name
# of the machine that is connecting
; include = /etc/samba/smb.conf.%m
# Most people will find that this option gives better performance.
# See speed.txt and the manual pages for details
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
# Configure Samba to use multiple interfaces
# If you have multiple network interfaces then you must list them
# here. See the man page for details.
; interfaces = 192.168.12.2/24 192.168.13.2/24
# Configure remote browse list synchronisation here
# request announcement to, or browse list sync from:
# a specific host or from / to a whole subnet (see below)
; remote browse sync = 192.168.3.25 192.168.5.255
# Cause this host to announce itself to local subnets here
; remote announce = 192.168.1.255 192.168.2.44
# Browser Control Options:
# set local master to no if you don't want Samba to become a master
# browser on your network. Otherwise the normal election rules apply
; local master = no
# OS Level determines the precedence of this server in master browser
# elections. The default value should be reasonable
; os level = 33 --- 浏览器优先级
# Domain Master specifies Samba to be the Domain Master Browser. This
# allows Samba to collate browse lists between subnets. Don't use this
# if you already have a Windows NT domain controller doing this job
; domain master = yes
# Preferred Master causes Samba to force a local browser election on startup
# and gives it a slightly higher chance of winning the election
; preferred master = yes
# Enable this if you want Samba to be a domain logon server for
# Windows95 workstations.
; domain logons = yes
# if you enable domain logons then you may want a per-machine or
# per user logon script
# run a specific logon batch file per workstation (machine)
; logon script = %m.bat
# run a specific logon batch file per username
; logon script = %U.bat
# All NetBIOS names must be resolved to IP Addresses
# 'Name Resolve Order' allows the named resolution mechanism to be specified
# the default order is "host lmhosts wins bcast". "host" means use the unix
# system gethostbyname() function call that will use either /etc/hosts OR
# DNS or NIS depending on the settings of /etc/host.config, /etc/nsswitch.conf
# and the /etc/resolv.conf file. "host" therefore is system configuration
# dependant. This parameter is most often of use to prevent DNS lookups
# in order to resolve NetBIOS names to IP Addresses. Use with care!
# The example below excludes use of name resolution for machines that are NOT
# on the local network segment
# - OR - are not deliberately to be known via lmhosts or via WINS.
; name resolve order = wins lmhosts bcast
# Windows Internet Name Serving Support Section:
# WINS Support - Tells the NMBD component of Samba to enable it's WINS Server
; wins support = yes
# WINS Server - Tells the NMBD components of Samba to be a WINS Client
# Note: Samba can be either a WINS Server, or a WINS Client, but NOT both
; wins server = w.x.y.z
# WINS Proxy - Tells Samba to answer name resolution queries on
# behalf of a non WINS capable client, for this to work there must be
# at least one WINS Server on the network. The default is NO.
; wins proxy = yes
# DNS Proxy - tells Samba whether or not to try to resolve NetBIOS names
# via DNS nslookups. The built-in default for versions 1.9.17 is yes,
# this has been changed in version 1.9.18 to no.
dns proxy = no
# Case Preservation can be handy - system default is _no_
# NOTE: These can be set on a per share basis
; preserve case = no
; short preserve case = no
# Default case is normally upper case for all DOS files
; default case = lower
# Be very careful with case sensitivity - it can break things!
; case sensitive = no
#============================ Share Definitions ==========================
[homes]
comment = Home Directories --- 共享资源的描述
browseable = no --- 共享是否浏览
writable = yes --- 共享是否可写
# Un-comment the following and create the netlogon directory for Domain Logons
; [netlogon]
; comment = Network Logon Service
; path = /home/netlogon
; guest ok = yes
; writable = no
; share modes = no
# Un-comment the following to provide a specific roving profile share
# the default is to use the user's home directory
;[Profiles]
; path = /home/profiles
; browseable = no
; guest ok = yes
# NOTE: If you have a BSD-style print system there is no need to
# specifically define each individual printer
[printers]
comment = All Printers
path = /var/spool/samba --- 打印路径
browseable = no
# Set public = yes to allow user 'guest account' to print
guest ok = no
printable = yes --- 是否打印
# This one is useful for people to share files
;[tmp]
; comment = Temporary file space
; path = /tmp
; read only = no
; public = yes
# A publicly accessible directory, but read only, except for people in
# the "staff" group
[public]
comment = Public Stuff
path = /home/samba
public = yes
writable = yes
printable = no
write list = @staff
# Other examples.
#
# A private printer, usable only by fred. Spool data will be placed in fred's
# home directory. Note that fred must have write access to the spool directory,
# wherever it is.
;[fredsprn]
; comment = Fred's Printer
; valid users = fred
; path = /homes/fred
; printer = freds_printer
; public = no
; printable = yes
# A private directory, usable only by fred. Note that fred requires write
# access to the directory.
;[fredsdir]
; comment = Fred's Service
; path = /usr/somewhere/private
; valid users = fred
; public = no
; writable = yes
; printable = no
# a service which has a different directory for each machine that connects
# this allows you to tailor configurations to incoming machines. You could
# also use the %u option to tailor it by user name.
# The %m gets replaced with the machine name that is connecting.
;[pchome]
; comment = PC Directories
; path = /usr/pc/%m
; public = no
; writable = yes
# A publicly accessible directory, read/write to all users. Note that all files
# created in the directory by users will be owned by the default user, so
# any user with access can delete any other user's files. Obviously this
# directory must be writable by the default user. Another user could of course
# be specified, in which case all files would be owned by that user instead.
;[public]
; path = /usr/somewhere/else/public
; public = yes
; only guest = yes
; writable = yes
; printable = no
# The following two entries demonstrate how to share a directory so that two
# users can place files there that will be owned by the specific users. In this
# setup, the directory should be writable by both users and should have the
# sticky bit set on it to prevent abuse. Obviously this could be extended to
# as many users as required.
;[myshare]
; comment = Mary's and Fred's stuff
; path = /usr/somewhere/shared
; valid users = mary fred
; public = no
; writable = yes
; printable = no
; create mask = 0765
***************************************************************************
修改完配置文档smb.conf之后,然后用以下命令重启该项服务:
/etc/rc.d/init.d/smb restart
接下来就是客户机的配置和测试了。我们在linux客户机使用命令:smbclient -L 10.1.8.2,出现要求输入密码确认后,出现结果
如果客户端是使用Windows 作业系统的话,一般就不需要作特别的设置了。
3、拨号用户如何使用局域网上的Linux Samba 服务器
目的:公司局域网上有一台Samba server,并设置为PPP服务器,拨号用户拨入后可以把Samba服务器上的共享资源映射为一个盘符来访问。
前提:假设局域网上一台Samba server正常工作,并设为共享级安全模式(security=share), workgroup设置为ISD,同时也设置为PPP服务器可供windows拨号用户成功拨入。
实现方法:
1.假设Samba server的IP address为192.168.11.3,主机名为sh3 , 其中一共享名为pub,工作组为:ISD.
2.假设Windows默认安装目录为c:windows ,编辑c:windowslmhosts为:192.168.11.3 sh3 #PRE #DOM:isd
然后在DOS提示符下执行命令:nbtstat -R去enable it.(不需要重新启动windows)
3.你的windows PC必须登录,可以以一个新的用户名进行windows logon,提示密码时键入两次回车即可。
4.登录后在DOS窗口提示符下键入 net use m: \sh3pub即可。
第七章 架设PPP接入服务器
Linux继承了所有UNIX的性能和优点,Linux比windows稳定和安全,而且网络功能更强。使用Linux作PPP接入服务器,网络安全性更高。Orbita Linux 3.0(英文版)提供Kppp和minicom等拨号软件。
下面简单介绍一下在Orbita Linux 3.0(英文版)系统上构建PPP服务器。
1. PPP简介
PPP是一种点对点协议,确定了端到端之间数据的传送与控制的规则。提供在串行线上传送和接受IP数据包的能力,由此可使TCP/IP网络应用程序在串行线上使用。PPP常用于将家中或小型办公室的PC连到另一工作地点的计算机或连到Interent服务的计算机上,以便进行文件传输、远程注册、访问 WWW及其它的TCP/IP或Internet功能。
2. 配置MODEM
使用Orbita Linux 3.0(英文版)图形界面下的相应工具(如minicom等)来测试Modem。
输入"minicom -s"命令设置Modem相关参数,查看缺省串行口,缺省为/dev/modem,根据所用的串行口改为/dev/ttyS0或/dev/ttyS1等,其次设置通信速率。如果minicom与Modem连接成功,进入会话状态输入:
ATS0=1
如果紧接着的一行出现OK,且Modem的AA灯亮起,Modem进入自动应答状态,表明minicom与Modem通讯正常,Modem可正常工作了,否则修改串行设置,重复上述步骤。
3. 配置ppp软件包
3.1 修改inittab文件
在/etc/inittab文件中,寻找"getty"一节,在这一节尾部为每个MODEM端口增加一行。下面以ttyS0和ttyS1为例:
######################################################
s0:345:respawn:/sbin/mgetty -D -x 3 ttyS0
s1:345:respawn:/sbin/mgetty -D -x 3 ttyS1
######################################################
连接MODEM到串口上,打开开关到ON,用命令初始化"mgetty":
init q
改动生效。
3.2 配置mgetty的配置文件
在/etc/mgetty+sendfax/login.config文件中,更改文中如下行:
#/AutoPPP/ - a_ppp /usr/sbin/pppd auth -chap +pap login debug
为:
#######################################################
#My addtion for PPP server
/AutoPPP/ - - /etc/ppp/ppplogin
#######################################################
3.3 修改/etc/ppp/options文件
编辑/etc/ppp/options文件,如下:
#######################################################
#FileName: /etc/ppp/options
#Descrition:F This file is for the ppp.
######################################################
-detach
/dev/ttyS0
lock
crtscts
asyncmap 0
netmask 255.255.255.0
proxyarp
#######################################################
注: ① Netmask可以根据具体子网划分,可修改为相应的子网掩码值。
② 没有使用任何递送设定-特别是没有defaultroute选项,因为PPP服务器所要做的是将封包从PPP客户端送到你的局域网或互联网并且将封包由局域网递送到客户端,所需要的只是到客户机的递送,使用pppd的'proxyarp'选项完成。
3.4 建立拨号用户账号,创建登录Shell。
在/etc/shells文件中,加入:
#########################################################
/etc/ppp/ppplogin
#########################################################
然后存盘退出。
用户通过电话拨号进入后,以特定的身份和权限进入网络,要为拨入用户建立相应的账号核登录Shell.,使用命令:
adduser
选择Shell文件时,不选/bin/bash,而是填入/etc/ppp/ppplogin,ppplogin为拨入用户的登录Shell文件,为拨号用户初始化登录环境。
3.5 添加和修改ppplogin文件
/etc/ppp/ppplogin是登录以后自动运行的脚本(script)文件,用vi创建文件,并编辑如下:
########################################################
#Filename: /etc/ppp/ppplogin
#Describtion: This file is for PPP Server.
########################################################
#!bin/sh
/usr/sbin/pppd auth -chap +pap login debug
########################################################
注: ① 第二行的参数"+pap login"表示客户端和服务器端采用PAP的验证方式而不是普通的/etc/passwd口令文件。
② 如果不需要在拨入后做用户名和密码验证,只要去掉参数'auth'即可。
保存文件,且给它执行权限:
chmod +x /etc/ppp/ppplogin
pppd默认只能由root用户执行,为使普通用户能够执行pppd,加入运行命令:
chmod u+s /usr/sbin/pppd
3.6 创建/etc/ppp/option.ttyXX文件
为每个连接到MODEM的串口,创建一个相应的/etc/ppp/options.ttyXX文件,这里的XX是ttyS0端口的"S0",ttyS1端口的"S1",等等。在这些文件中添加以下行,以ttyS1为例:
#######################################################
#FileName: /etc/ppp/options.ttyS1
#Describtion: This file is for ttyS1.
#######################################################
#more options.ttyS1
-detach
debug
crtscts
/dev/ttyS1
lock
asyncmap 0
netmask 255.255.255.0
proxyarp
10.1.8.18:10.1.8.232
########################################################
Local IP为PPP服务器的IP地址,Remote IP分配给客户机的IP地址。
3.7 编辑/etc/ppp/pap-secrets文件
添加如下行:
#Secrets for authentication using PAP
#client server secret IP addresses
* * "" 10.1.8.203
* * "" 10.1.8.204
4. 启动pppd软件包
只要成功地安装与设置了PPP包,要启动pppd只要在任意时刻键入pppd就可以了,通常是在机器启动时启动pppd。
用户拨入成功建立PPP连接后,如果需要访问LAN上其它服务器,那么必须打开PPP服务器的IP转发功能,修改/etc/sysctl.conf文件如下:
将net.ipv4.ip_forward=0 ,
改为net.ipv4.ip_forward=1 。
保存退出,重起服务器。
如果需要在空闲一段时间后自动解除连接,如10分钟,那么在/etc/ppp/options文件中添加如下行:
idle 600
5. PPP身份鉴别
PPP身份鉴别是指在建立PPP链接之前,一台主机要求另一台主机用两台主机都知的安全数据标示自己。有两种协议形式:PAP协议与CHAP协议。
PPP链接在默认情况下不需对远程主机做身份鉴别。如果PPP链接要求身份鉴别,那么在/etc/ppphosts文件中的链接配置项必须包括一个或多个身份鉴别参数。以下列出的是常用的提示信息,括号内为相应的/etc/ppphosts参数:
Authentication Protocol (auth) 必须设为pap或chap,确定远程系统必须使用的协议。
Timeout (minutes) (authtmount) 本地主机的PPP等待远程主机确认身份的时间量(以分钟为单位),为可选参数,默认值为1分钟。
ID(name)指出查找本地主机标号要用到的/etc/pppauth文件登记项。如果/etc/pppauth文件中有默认登记项,这些参数为可选参数。
6. 客户端的安装
在客户机上,安装拨号网络。例在Windows98上,新建一连接项, 在电话号码项填入PPP服务器的接入电话号码,
注:电话号码中'9'为拨打外线,','为停顿一下,'8313523'为PPP服务器的接入号码。
选择相应的拨号配置,进入拨号状态,当终端窗口出现登录提示,输入用户名及相应密码,再点击"继续"按钮,则一个快速、稳定的PPP连接就建立了。
7. 测试PPP服务器
测试用户是否拨进PPP服务器,可以在PPP服务器的控制台终端输入:
who
上面pppguest即为通过ttyS0终端登录的ppp客户。或输入命令:
ifconfig
除了以太网卡eth0,本地环路lo外,还多一个ppp0项。表明客户已成功拨入。
第八章 架设NIS服务器
NIS(网络信息服务)也称YP(Yellow Pages)协议,是一个提供目录服务的RPC(远程过程调用)应用服务。通过它,就可以在网络上共享一个集中式的口令文件,从而大大简化客户端用户对帐户和口令的维护工作。Orbita Linux 3.0(英文版)自带目前最新的yp-tools2.4-7,ypbind1.7-6,ypserv1.3.11-13三个软件包,用来安装NIS服务器。
配置NIS服务器
NIS服务器必需两个软件包,ypserv包及yptools包。系统有了它们,就可以开始配置NIS服务器了。
在配置服务器软件之前,须确定是否要创建一些从服务器。如果要创建,需要知道它们的主机名。(主从服务器的概念与DNS类似)除确定NIS服务器的名字之外,还需要确定一个NIS域名。该域名不是DNS域名。这个域名必须在/etc/hosts文件中。
开始配置主NIS服务器(若要配置从服务器请参照有关文档)
首先,需要设置域名,通过命令domainname来完成。
#domainname zsf.orbita.com
修改启动配置脚本/etc/sysconfig/network
加入NIS_DOMAIN=zsf.orbita.com
编辑/var/yp/Makefile文件,在all: 后加入ypservers 。
初始化NIS数据库
#/usr/lib/yp/ypinit -m
键入CTRL+D即可。(提示键入从服务器)此时,系统会在/var/yp/目录下生成一个zsf.orbita.com子目录。里面包含许多映像文件。(passwd.byname、passwd.byuid、group.byname 、group.bygid等等)
然后运行服务程序:
#/etc/rc.d/init.d/ypserv start
#/etc/rc.d/init.d/yppasswdd start
配置NIS客户机
必需ypbind软件包。保证系统有此软件包。
首先编辑/etc/yp.conf文件
加入:domain zsf.orbita.com
ypserver zsf.orbita.com
然后在/etc/hosts文件中加入zsf.orbita.com对应的ip地址。
修改/etc/sysconfig/network文件,
加入NISDOMAIN=zsf.orbita.com
最后修改/etc/nsswitch.conf文件,格式如下:
passwd: files nisplus nis
shadow:
files nisplus nis
group:
files nisplus nis
hosts: files nisplus nis dns
这是设置文件读取的顺序,files指本地文件,nisplus指nis+,nis指nis服务器,dns指dns服务器。
设置domainname
#domainname zsf.orbita.com
最后启动NIS 客户机程序:
#/etc/rc.d/init.d/ypbind start
此时,你可以测试一下是否成功
#/ypcat passwd
如果显示NIS服务器的passwd文件的一部分(普通用户部分),则成功。你可以用这些用户在你的客户机上登录了。
passwd 画面
不管是NIS服务器还是NIS客户机,如想要机器启动时自动执行服务,可以在setup程序中设定。
解决问题
如果NIS软件不正常工作,则可以检查如下几项内容:
确认进程正在进行。使用ps auxw命令列出所有正在运行的进程,确认该进程正在运行。
检查系统日志(/var/log)文件,查看是否有消息指明影响配置的外设问题。
如果进程看上去在运行但是没有响应,杀死它们并重新启动。在某些情况,守护程序工作不正常,需要重新启动。
确认/etc/nsswitch.conf配置文件正确。通常问题都出现在这里。
如果试图手动启动守护程序,确保以root登录。
第九章 架设NFS服务器
NFS(网络文件系统)是系统之间互相共享磁盘资源的一种方法,它允许在远程主机上使用与一个用户访问 任何的本地文件相同的方法来访问文件。这通过在客户端(它使用的是远程文件系统)和在服务端上的一个 NFS服务(它提供的是文件数据)的核心功能的混合来实现。这个文件访对于客户来说是完全透明的,并且在各种服务器和主机的结构中交叉工作。
NFS的优势:
可以被所有用户访问的数据可以被保存在中心主机上,客户在启动的时候会登录到这个路径上。例如,你可以在一个主机上保留所有的用户帐户,并且从这个主机上登录你的网络上的所有的主机。如果同NIS一起安装,用户就会马上登录到任何的系统中,并且可以继续在一些文件的工作。
所有消耗大量磁盘空间的数据都可以保存在一个单一的主机上。例如,所有的与LaTeX 和 METAFONT有关的文件和程序都可以保存在同一个地方。管理性文件可以保存在一个单一的主机上。不再需要使用rcp安装同样的傻文件到20个不同的机器上。
配置NFS服务器和客户
NFS的两个主要文件是/etc/exports和/etc/fstab文件。
Exports文件在服务器端配置,这一文件用来指定要与哪些客户机共享哪些目录,以及每个客户机的访问权限,fstab文件在客户机端被配置,它用来指定对于某些目录应该连接哪些服务器,以及将它们放置在目录树中的哪一位置。
建立/etc/exports文件
文件格式:/directory/to/expert host1(permission) host2 (permissions)……
/directory/to/expert host1(permission) host2 (permissions)……
permission中包含rw(可读/可写)、ro(只读)、no_root_squash(证实并信任客户机的root帐号)……
启动NFS服务:
#/etc/rc.d/init.d/nfs start
在客户机上键入:
mount server:/exported/dir /dir/to/mount
如果成功就可以编辑/etc/fstab文件,让系统automount。
/etc/fstab文件格式:
server:/exported/dir /dir/to/mount nfs rsize=8192, wsize=8192, timeo=14,intr
NFS状态
通过运行以下命令可以获得NFS状态:
#/etc/rc.d/init.d/nfs status
状态的输出
nfs 状态
安全问题与稳定性
在安全方面,NFS的不安全性主要体现于以下4个方面:
1、新手对NFS的访问控制机制难于做到得心应手,控制目标的精确性难以实现
2、NFS没有真正的用户验证机制,而只有对RPC/Mount请求的过程验证机制
3、较早的NFS可以使未授权用户获得有效的文件句柄
4、在RPC远程调用中,一个SUID的程序就具有超级用户权限.
所以 NFS服务的配置必须非常小心,只有充分信任的机器才能给予权限。
稳定性方面,NFS是一个无状态协议,意思是说在客户和服务器之间产生的每个请求本身是完整的,而不需要知道以前的执行情况。由于这个原因,当NFS服务器被关闭并重新启动时,并不需要对客户机进行重新引导,这对用户来说是一件非常好的事。