鸟哥私房菜 习题答案(服务篇)4

20章、简易Mail Server架设――Sendmail设定

1. 我在使用Sendmail寄信时,却发生下面这个问题,请问可能的原因为何?

可能的原因有两个:
         你的 Client 端计算机的 IP 或网域地址被 /etc/mail/access 挡住,或 /etc/mail/access 没有打开你的 RELAY 权力;
         你进行了 SMTP 邮件认证的设定,但是忘记在 MUA 中设定账号与密码项!
如果不是这两个原因,那么可能的问题就多了,请详细检查你的网络配置。

2. 请列出4Mail Server的相关组件及其功能为何?

         Mail Client :邮件客户端,其实就是使用邮件的那位用户所在的计算机;
         Mail User Agent :为一个应用软件,主要的功能就是收受邮件主机的电子邮件,以及提供用户浏览与编写邮件的功能;
         Mail Transfer Agent :为在计算机与本地端 Mail server Internet 上的 Mail server 传送信息与邮件的主机;
         Mail Dilivery Agent :主要的功能就是将 MTA 收受的本机信件放置到本机账户下的收件箱中( Mailbox )。

3. POP3SMTP的功能为何?

         SMTP 为用于 MUA MTA MTA 之间的传输协议,通常使用端口 25 ,只要主机支持 SMTP ,并且其他 relay 的条件能配合,就可以进行邮件传递!
         POP3 可以支持用户经由 MUA MTA 下载邮件,同时可将邮件从主机上删除!

4. 请简单说明DNSMX标志与Mail的关系?

MX recode 可以让邮件服务器经由 MX A address )这个记录进行 mail gateway mail route 的功能,能够完成的功能相当多。

5. 今天我突然兴起,想修改我的sendmail,请问,sendmail的配置文件在哪里?而我要以什么程序修改sendmail

Sendmail 的配置文件为 sendmail.cf ,这个文件通常放置在 /etc/sendmail.cf /etc/mail/sendmail.cf 中。你可以手动编辑这个文件,不过不建议这样做,可以使用 m4 这个程序进行 macro 动作,进一步完成 sendmail.cf 的修改。使用 m4 时,需要先建立 m4 脚本,再以 m4 转换才能形成 sendmail.cf

6. 什么是mailling list?在sendmail下有什么方法可以不藉由其他软件实现mailling list的功能?

Mailling list 就是在用户向一个账号寄邮件时,该账号会主动将该邮件传送到所有的用户!有点类似目前的电子报。在 sendmail 下,我们可以通过 aliases (需配合 newaliases )以及 ~/.forward 来实现。

7. 如何查看邮件队列的内容,以及邮件队列内容放置在何方?

使用 mailq 即可知道当前邮件队列的内容,而邮件队列虽然可以通过 sendmail.cf 来修改,不过,默认情况下,都是以 /var/spool/mqueue 为邮件队列目录。

8. 若我的sendmail主机有很多名称,我想让这些名称都可以接收邮件,应该修改什么文件?

可以修改 /etc/mail/local-host-names

9. 什么是Open Relay

所谓的 Open Relay 就是,不论发信端来自何处,你的 Open Relay 主机均可以帮发信端将信件发送出去,这个称为 Open Relay 。如果你的 mail server 具有 open relay 功能,那么很容易遭到垃圾邮件的填充,不但造成网络频宽耗损,也容易让你的主机列入黑名单!

21章、简易Mail Server架设――Postfix 设定

1. 请问Cyrus SASL 1.5.xx2.xx 版本中,用来作为SMTP的认证机制有何不同?并请说明不同的版本与Postfix的搭配情况。

一般而言, SASL 1.5 适用于 postfix 1.xx 版本,至于 SASL 2.x 版则适用于 postfix 2.xx 版。由于 SASL 2.x 主要使用 saslauthd 这个 daemon 做为身份认证方式,而 SASL 1.5 则使用的是 pam pwcheck 这两个机制,两个版本的认证机制并不相同。所以使用 Postfix 来设定 SMTP 的身份认证时,请务必记得版本的差异!

2. 如果要让Postfix可以收发来自非本机的外部信件,你可以修改main.cf里面的什么参数?

需要在 main.cf 里修改的变量主要有:
1.   Client 来自信任网域,也就是 IP 符合 $mynetworks 的设定值时;
2.   Client 来自信任的机器,也就是主机名称符合 $relay_domains 的设定项时;
3.   Client 来自不信任的网域,但是目的主机端符合 $relay_domains 的设定时。

3. 如何查看你的当前Postfix 服务器的所有设定参数?使用什么指令?

利用 postconf -n 可以查看当前 main.cf 里设定的参数,而如果要看所有的参数,则直接使用 postconf

4. Postfix中,由于已经具有邮件过滤机制,所以不需要使用procmail。请问,我该如何启用信件的Header 过滤机制?同时,如何设定规则,使得192.168.100.100这个主机的来信及只要邮件的标头为Your account的信件就予以丢弃?

要启用信件的 Header 过滤机制,可以在 main.cf 里启用这个设定值:
header_checks = regexp:/ 完整路径 / 文件名
body_checks = regexp:/ 完整路径 / 文件名
至于文件内容,可以这样做(注:因为要查阅的是标头,所以需要 header_checks 后所接的文件名):
/^Subject.*your\ account/ REJECT

22章、简易FTP Server 架设――Wu FTP 设定

1. FTP在建立联机及数据传输时,会建立哪些联机?

需建立两种联机,分别是 command data transfer 的联机,就是命令信道与数据传输信道。一般来说,就是端口 21 ftp )与端口 20 ftp-data )。

2. FTP主动式与被动式联机有何不同?

主动式联机时, command 联机是由 Client 端主动连接到主机端,但是 ftp-data 则是由主机端主动联机到 Client 端。至于被动式联机,则不论 command 还是 ftp-data 的联机,主机端都是监听客户端的请求。

3. 有哪些动作可以让你的FTP主机更安全?

有很多方法,在设定上有这些方法:
         guest anonymous 的根目录限制在固定目录中( chroot restricted );
         使用 TCP_Wrappers 启动 FTP ,并以它来控制可联机的 IP
         拒绝 guest anonymous 使用 change delete rename 等指令;
         拒绝 root 登入或其他系统账号登入;
         拒绝大部分的上传行为。

4. 我们知道ftp 会启用两个端口,请问这两个端口在哪里规范?而且,一般正规的端口是几号?

是在 /etc/services 里规范,此外,正规的端口在 command 21 data 20

5. Wu FTP的主要配置文件在哪里?

/etc/ftpaccess

6. Wu FTP的配置文件中,log transfer是做什么用的?

在用户进行数据传输时, log transfer 可以将传输的文件大小、内容等记录到 /var/log/xferlog 里。

7. Wu FTP的配置文件中,被动端口是做什么用的?

我们知道 FTP 有主动联机与被动联机两种方式,如果 FTP 主机允许被动联机,那么 Client 端联机时,主机端将会随机取大于 1024 的端口进行 data transfer ,为了避免随机取端口的问题,被动端口可以指定固定的几个小范围的端口,这样比较安全。

8. 哪个文件可以用来抵挡类似root这种系统账号的登入FTP

/etc/ftpusers !(其实是利用 pam 模块来实现)

9. FTPServerClient端进行数据传输时,有哪两种模式?为何这两种模式影响数据的传输?

数据的传输有 ASCII Binary 两种方式,在进行 ASCII 传送方式时,被传送的文件将会以文字模式进行传送行为,因此,文件的属性会被修改,可能造成执行文件最后却无法执行等问题!一般来说, ASCII 通常仅用在文本文件与一些源代码文件的传送。

23章、简易FTP Server 架设――Pro FTPD

1. 如何建立一个用户,它可以使用FTP功能,但是无法以telnetSSH登入系统?请使用proftpd的设定项来设定。

因为无法使用 telnet/SSH ,这表示它可能不具有正常的 shell ,因此你可以将该用户在 /etc/passwd 里最后一个 shell 参数改成 /bin/false ,然后在 proftpd.conf 里设定 RequireValidShell off 即可。

2. 我明明在台湾,我的主机时区(/etc/sysconfig/clock)明明在台湾,为何登入proftpd之后,显示的系统时间就是慢了8小时?请问为什么?如何解决?

这是由于 proftpd 默认使用 GMT 时间,因此,你必须重新设定 proftpd ,使得时间使用本地时间!修改 proftpd.conf 里的参数为 TimesGMT off

3. 如果出现无法登入,或与proftpdFTP 功能相关的错误时,要如何排错?

         最先应该查询是否被防火墙挡住了(同时观察 Server/Client 端);
         克服防火墙问题后,再查询 FTP 端口是否启动;
         再检阅 /var/log/messages 里的错误信息;
         最后据以修订 proftpd.conf 的设定参数。

25章、简易Proxy Server 架设

1. 请说明为何Proxy 可以提升网络的WWW 浏览速度?

这不但由于 Proxy 可以通过上层 Proxy 达到分流功能,使得网络传输更具效率,还由于 Proxy 会将数据快速缓存在自己的硬盘内,以方便下次的查询,因此对于局域网的浏览速度是有帮助的!

2. 万一squid 发生了问题,请问我该如何找出问题所在?

最主要还是在于找出问题,所以需要由 suqid 的登录文件查起,当然,硬盘的优劣以及 squid 所取得 PID owner group 都是需要注意的!

3. 请说明Proxy 服务器的功能为何?

Proxy 服务器的功能在于代理来自 Client 的上网请求,并向目的端主机送出 Client 端的请求,以协助 Client 端取得所需的浏览网页。此外,并可将网页数据进行缓存功能。

4. 试说明为何Proxy 服务器可以提升网域内的网络安全性?

由于 Proxy 服务器架设之后,会让网域仅有一个 Proxy 主机的出口,即单点对外的服务器,这可以强化网络的管理。

26章、简易NIS Server 架设

1. 请简单说明NIS Server的功能与工作流程。

当你有多台具有相同账号的 Linux 主机时,即可利用 NIS 提供的服务,利用一台 NIS 主机掌控所有的 Linux 主机登入时所需查阅的账号与密码验证。流程如下:
         NIS Server 将自己系统内的 /etc/passwd /etc/group /etc/hosts 等制作为 DBM 的数据库格式文件。
         NIS Client 若有用户的登入请求时,会前往 NIS Server 搜寻数据库里的数据做为验证之用。
         每次更动 NIS Server 上的用户数据时,则 NIS Server 需要重新制作 DBM 数据库文件。

2. 请简单说明NIS Server/Client的架构。

NIS master/client 的特色为:
         NIS Server master 先将自己的账号、密码相关文件制作为数据库文件;
         NIS Server master 将自己的数据库文件传送到 slave 上;
         NIS Server slave 接收来自信任 NIS Server master 主机的数据后,更新自己的数据库,使自己的数据库与 master 主机的数据同步;
         网域中的所有 NIS Client 查询 NIS Server 时,会找寻最先响应的那台 NIS 主机的数据库内容。
也就是说,架设 slave NIS server 可以分担区域内 NIS 的工作!

3. NIS启动之前需要先启动哪个服务,否则就无法启动成功?

因为 NIS RPC Server 的一种,所以必须启动 portmap 这个 daemon

4. 我的NIS网域名称为bird,另外,我主机的IP与主机名称为192.168.5.1/ bird.nis.org,请问这些信息需要设定在NIS Server的哪些文件之内?

网域名称可以直接手动输入 nisdomainname bird ,也可以写入 /etc/sysconfig/ network 里“ NISDOMAIN=bird ”;
IP 与主机名称需要写入 /etc/hosts 里。

5. /etc/nsswitch.conf的功能为何?如果我想先查询本地的密码文件,再查询NIS,需要如何设定?

该文件的功能很多,在 DNS 方面,可以用来决定正、反解的顺序,至于密码则可以用来判断何者为先!如果需要先查本机再查 NIS 的密码,需要的参数:
passwd: files nis nisplus
shadow: files nis nisplus

6. NIS Server 将密码等文件做成数据库以供NIS client查询,那么请问使用什么动作后,可以将密码文件转成NIS的数据库格式文件?

/usr/lib/yp/ypinit -m

7. 如果我想增加网域中一个新的账号newaccount,并且这个newaccount可以让NIS Client查询到它的账号与密码,需要进行哪些步骤?

1. 先登入 NIS Server useradd newaccount passwd newaccount 新增账号;
2. 制作密码数据库: /usr/lib/yp/ypinit �Cm
3. 重新启动: /etc/rc.d/init.d/ypserv restart ; /etc/rc.d/init.d/yppasswdd restart

8. 实例题: 下面是我的网域参数特征。利用以下参数来设定NIS架构,请一步一步写下你的设定。

network/netmask:192.168.1.0/255.255.255.0
NIS server : 192.168.1.100 hostname: server.nis.test
NIS cient: 192.168.1.200 hostname: client1.nis.test
NIS domain name: nis.test
请自行参考本章内容设定。

9. 承上题:如果我的网域太大,所以有一台NIS slave主机,这台主机的IP192.168.1.50,请问该如何设定这台主机?

请参考 http://www.linux-nis.org/nis-howto/HOWTO/index.html

27章、简易NTP 服务器设定

1. 什么是GMT(格林威治)时间与UTC时间?

由于地球是圆的,所以在同一时间点上,地球共可分为 24 个时区,其中,我们以欧洲的格林威治时间为一个对照依据,这个即是 GMT 时间。台湾时间比 GMT 时间快了 8 小时。至于 UTC 时间则是由原子钟计算的时间,这个时间相当准确,主要仍以格林威治时间为时区。

2. Linux系统的所有时区文件放置哪一个目录下?

所有的时区文件放置于 /usr/share/zoneinfo 下,至于系统时区的设定文件则在 /etc/sysconfig/clock /etc/localtime

3. 我的Linux主机本来放置在日本东京,现在想将它拿到台湾,不过因为日本与台湾有一个小时的时差,所以我的时间需要经过调整。不过,因为我的BIOS Time主要是依据UTC时间来设定的,所以似乎只要更动时区参数即可。请问我该如何设定时区,好让我的Linux主机能够显示正确的时间?

/usr/share/zoneinfo/Asia/Taipei 这个文件复制为 /etc/localtime

4. 当前Linux系统上的时间服务器主要是以NTP为主,请问这个daemon的主要配置文件放在哪里,而在该配置文件中,针对上层time server的设定参数为何?而那个driftfile 参数是做什么用的?

/etc/ntp.conf 个文件中,上层 time server 设定参数为 server 那个 driftfile 则是用来作为时间差额的计算,该参数后接的是一个完整路径的文件名,该文件里的数值单位为百万分之一( ppm )。

5. 请问ntptrace的功能为何?

可以用来追踪上层 time server 的联机时间与当前时间!

6. 我以date 更新了我Linux上的时间后,该如何将时间数据写入BIOS内?

必须利用 hwclock 程序来写入,利用 hwclock -w 写入 BIOS

7. Linux上如何进行网络校时?

最简单的方法即是使用 ntpdate time.servers.ip; hwclock �Cw

你可能感兴趣的:(sendmail,休闲,答案,习题,鸟公私房菜)