服务器架设作业题答案

PART I 架站前进修篇


  • 第一章、架站之前所需的技能分析
  • 请简述进行网站架设前,应该具备何种基本技能?
    1. Linux 系统操作上,至少需要了解帐号管理、文件属性与权限、程序与资源管理、硬件如硬盘之挂载与软件软件包之安装如RPM软件包管理器等等,而 vi 与 Shell 也是不可忽略之基本技能,更重要者,日志的管理以及系统服务的原理(如 stand alone 与 super deamon 服务启动的方式差异等)亦需同时厘清,以方便未来架设网站时除错的技巧;
    2. 在网络的基础知识上,TCP/IP 的观念以及路由的概念相当的重要,此外,DNS 的概念也很重要。
    3. 在心态的调整上面,系统管理员需要的道德感以及使命感需要较高的标准。
  • 基本的技能需要有:
  • 如果我有一颗硬盘在 A 主机上面安装了 Linux 之后,拿到另一台配置相同的 B 主机上面去进行开机,结果竟然无法顺利开机,您认为可能的原因是什么?
  • 由于配置相同,所以排除硬件的问题,不过,考虑到 IDE 数据线与 partition 的代号,以及 /etc/fstab 的对应,所以应该是由于 IDE 接口放置错误所致(Linux 系统下,每个 IDE 接口对应的 partition 名称皆不相同!)。此外,上次不正常关机也可能造成硬盘损害而无法开机成功!
  • 一般来说,在 Linux 系统上,用户预设的家目录在那个目录下?另外,新增一个用户时,该用户预设的家目录内容来自那个目录下?
  • 在 /etc/default/useradd 这个文件里面会规范用户的预设家目录以及预设家目录的内容,一般来说,用户预设家目录在 /home ,至于家目录内的文件则复制来源在 /etc/skel 里面。
  • 磁盘配额 ( quota ) 能否针对某个特定的目录进行限制?Quota 有什么较为特殊的使用限制?
  • Quota 目前仅能针对整个 partition 进行限额配置,如果该特定目录是一个 partition 那就可以进行 quota 设置,否则无法针对特定目录!此外, Quota 除了特定目录以及需要 ext2, ext3 等磁盘格式才支援之外,也需要核心的支援!
  • 在 Linux 系统下,要寻找一个文件名为 vbird.document 的文件,可以使用什么命令进行查找?又,如果要寻找在一天内更动过的文件,又该如何进行?
  • 如果是可执行文件可以使用 which command 来查找,如果是文件,就必须要使用 locate vbird.document 或 whereis vbird.document 或 find / -name vbird.document 。如果要找到一天内更动过的文件,可以使用 find 配合参数,如:『 find / -ctime 1』。
  • 在 Linux 系统中,常见的软件包管理器有 RPM 与 Tarball ,请分别说明这两个软件包管理器的优缺点。
    • RPM 软件包管理器在安装软件包的时候,会将该软件包的文件名称、软件包功能与信息等等信息记录于 /var/lib/rpm 目录内,由于有这些软件包的资本信息,因此在系统内很容易进行 RPM 的升级、安装、卸载等动作。不过,由于 RPM 文件之间的依赖性相当的强,因此常常会有版本不同或者是欠缺某样前驱软件包的问题发生。
    • 至 于 Tarball 则是源码,用户可以自行设置软件包的编译参数,以符合自己的 Linux 平台。此外,由于 Tarball 是源码,因此需要在您的系统上面进行编译,编译的过程中需要 gcc, make, 以及 kernel source 等软件包,还有您所想要安装的软件包所需要的前驱软件包也同时需要先安装后,才能进行 Tarball 的安装。注意,几乎每个 Tarball 以 tar 程序解开后,在新增的目录下均会有 README 以及 INSTALL 文件,请务必先查看过后才进行编译工作。
  • 如果我下载了一个文件名为 httpd-2.0.52.tar.gz 的文件,一般来说,这个文件代表的意义是什么?我该如何让这个文件能够在我的 Linux 系统上面安装?
    1. 系统上面务必具有 tar, make, gcc 等相关的编译软件包;
    2. 使用 tar 解开 httpd-2.0.52.tar.gz 之后,务必进入该目录内读取 REAME 或/与 INSTALL 文件,以了解是否还需要其他的相关软件包的搭配安装;
    3. 以 ./configure --help 查看一下是否有相关可以加入或者取消的编译内容;
    4. 使用 make 读取 Makefile 来编译程序;
    5. 使用 make install 来安装程序!
  • 由于附文件名是 .tar.gz 或者是 .tgz 的文件,所以可以认定该文件为一个 Tarball 的文件。至于文件名的配置方面,httpd 为软件包名称,2.0.52 则通常为该软件包的版本名称了!那如何安装?由于该文件为 httpd 这个软件包,且格式为 Tarball ,所以您必须要:
  • 我以源码的方式进行一个软件包的安装,但是在分析系统的时候,分析程序一直告诉我找不到 cc 这个命令,请问这是什么问题?是什么需要 cc ?又,我该如何解决这个问题,好让软件包可以顺利的被安装在我的 Linux 上面?
  • 如前面几个题目所说的,因为是源码,所以还需要编译程序来将该源码编译成为可以在您的 Linux 系统上面跑的 binary 文件,在 Linux 上头预设的编译程序就是 gcc 这个编译器(compiler)。如果您在安装 Linux 的时候,使用 Linux Installer 预设的软件包选择,那通常会没有安装 gcc 以及 make 等软件包,此时,请拿出您的原版光碟,以 mount 命令挂载后,使用 RPM 将一个一个相关的软件包安装即可(过程会蛮复杂的!)^_^  
  • 我发现我的 Linux 系统怪怪的,似乎有什么不知名的程序在内存当中跑,我该如何将这个不知名的程序捉出来,并且将他卸载?
  • 如果要捉出程序(process)的话,可以使用 ps -aux 或者是直接输入 top 来查询 process 的 ID (PID),找到 PID 号码后,再以 kill -9 PID 来删除该程序即可。
  • 我总是无法编辑某个文件,您认为应该是什么问题造成的?那又要怎么解决?
  • 无法编辑某个文件,可以先使用 file 这个命令来查询一下该文件的格式,例如想查看 /etc/shadow 的格式,可以下达:『file /etc/shadow』,如果是文本文件,却还是无法编辑,那么最可能发生的原因就是『权限』的问题了。可以使用 ls -l filename 查看文件权限,再以 chmod 或 chown 来编辑该文件的权限。此外,该文件也可能含有隐藏属性,可以使用 lsattr filename 查看,再以 chattr 来编辑隐藏属性。
  • 什么是 UID 与 GID ?UID 有哪些等级?
  • 在 Linux 系统下,用户与群组其实都是以『ID(数字)』的格式来设置的,所以用户与群组其实都是 UID 或 GID (User ID 与 Group ID),Linux 对于文件权限也都是使用 UID/GID 来分辨。不过人类习惯使用文字来记忆,所以才会有 /etc/passwd 与 /etc/group 来转译 ID 与 User 及 Group 之间,这也才会发生是什么在 Internet 上面捉下来的 Tarball 解开之后,往往会有文件拥有人与群组为数字的形式,因为您 Linux 系统上面的 /etc/passwd 与 /etc/group 没有相关的对应文字说。至于 UID 的等级主要有两种,分别是超级管理员(root),其 UID 为 0,其他非为 0 的 UID 基本上身份是相同的!不过 Linux 通常会将小于 500 的 UID 保留给系统使用。
  • 用户的家目录参数、UID、GID以及其他相关参数,还有密码文件,放置在哪些文件里面?
  • 放置在 /etc/passwd 与 /etc/shadow 当中。当然还有 /etc/login.defs !
  • 你认为一个称职的网管人员应该具备什么能力?
  • 能力需求相当高,如了(1)操作系统的基础知识(不论是 Linux/Unix/MAC/MS);(2)网络基础的知识;(3)个别 Internet Services 的运行知识之外,还需要(4)身心保持在备战状态,以及(5)具有相当高程度的道德感、责任感与使命感。
  • 我要启动一个系统预设的 Service,请问我可能可以由执行或修改哪些目录底下的文件来启动?
  • 如果是 stand alone 的服务,可以经由 /etc/rc.d/init.d/* 里面的文件,如 /etc/rc.d/init.d/syslog start; 如果是 Super daemon 的服务,就必须(1)先到 /etc/xinetd.d 或者是 /etc/inetd.conf 修改相关文件或参数;(2)以 /etc/rc.d/init.d/xinetd restart 来启动。
  • 我要关掉 cron 这个服务,应该怎么关掉他?如果正常的方法无法关闭这个服务,可以使用什么方法来关闭?
  • 因为 cron 是一个 stand alone 的服务,所以可以使用 /etc/rc.d/init.d/cron stop 来关闭;如果还是无法正常关闭,可以使用 ps -aux | grep cron 捉出该程序的 PID ,然后以 kill -9 PID 来关闭。
  • 如果一开机就要执行某个程序,应该要将该程序写入那个文件里面?
  • 可以直接在 /etc/rc.d/rc[run-level].d 里面加入 S 开头的文件,不过,更简单的作法是直接将该程序写入 /etc/rc.d/rc.local ,不过,请注意该程序必须要具有可执行的权限,且 rc.local 也必须要是可执行!  
    第二章、简易网络基础架构
  • 请简述 OSI 网络七层协定每一层的功能;
  • OSI 网络七层协定主要又分为两大部分,网络层与用户应用层两部份。至于每一层的相关功能请参考本章节的表一 所示。
  • 在 ISP 提供的网络服务中,他们提到传输速度为 1.5M/382K ,请问这个数据的单位是什么?
  • 由于电子信号的基本单位为 bits ,所以一般 ISP 提供的传输速度单位均为 bits/second ,并非我们常用的文件计数单位 Bytes !
  • 什么是 MAC ( Media Access Control ) ,MAC 主要的功能是什么?
  • 在网络媒体上面,资料要传输时,必须知道下一个节点的位址才能顺利传送,这个节点的位址如网卡的硬件位址就 是 MAC 了。硬件位址是在网卡出厂时就已经焊死在上面了(某些笔记型电脑的 MAC 则可以经由特殊软件修改),而软件位址,则是我们常说的 IP ,这两个并不相同!其中,MAC 与 IP 互相的对应则是以 ARP Table 来进行转译的!
  • 请解释什么是物理广播 ( Physical Broadcast ) ,他与逻辑广播 ( Logical Broadcast ) 有什么不同?
  • 物理广播主要与网络媒体有关,在同一个网络媒体上面同一时间仅能有一部主机来使用这个网络共享媒体,而要判断目前有没有其他主机在使用这个网络媒体时,就是利用Physical Broadcast 咯! 至于逻辑广播呢?呵呵!就是在查询到底网段上面有没有我们这部主机想要连接的相关协定或者同一网段内的其他主机了!他则主要与 MAC, ARP 以及软件位址(通称的 IP)有关啦!
  • 什么是数据包碰撞?为什么会发生数据包碰撞?
  • 当两部主机同时在一个网络媒体上面进行资料传输时,两个资料数据包就会发生碰撞的情况,这就是数据包碰撞了。在网络媒体流量很高、网络媒体的连接长度过长都会容易发生资料数据包碰撞的情况。
  • ARP Table 的作用是什么?如何在我的 Linux 查看我的 ARP 表格?
  • ARP Tables 主要在对应 IP 与 MAC ,当主机要将资料数据包送出到下个节点时,必须要知道下个节点的 MAC 才能传送,而如果不知道 MAC 时,就得需要使用逻辑广播来查询 IP 与 MAC 的对应才行。不过,当您的主机内部的 ARP table 已经记录了 IP 对应的 MAC 之后,那么该资料数据包则可以立即传送到下个节点去,而不需要再次的进行逻辑广播了。要知道目前的 arp table 内有多少纪录,可以使用 『  arp -a 』来查询。
  • 简略说明 Netmask 的作用与优点;
  • Netmask 可以有效的增加网络的效率,这是因为 Netmask 可以定义出一个网段的大小,那么 broadcast 的时间就可以降低很多!一般来说,我们如果要将一个大网段再细分为小网段,也需要藉由 Netmask 来进行 subnet 的切割。
  • 我有一组网段为: 192.168.0.0/28 ,请问这个网段的 Network, Netmask, Broadcast 各为多少?而可以使用的 IP 数量与范围各是多少?
  • 因为共有 28 个 bits 是不可动的,所以 Netmask 位址的最后一个数字为 11110000,也就是 (128+64+32+16=240) ,所以: Network:192.168.0.0 Netmask:255.255.255.240 Broadcast:192.168.0.15 IP:由 192.168.0.1 ~ 192.168.0.14 共 14 个可用 IP !
  • 承上题,如果网段是 192.168.0.128/29 呢?
  • 因为是 29 个 bits 不可动,所以最后一个 Netmask 的位址为: 11111000 也就是 (128+64+32+16+8=248),所以: Network:192.168.0.128 Netmask:255.255.255.248 Broadcast:192.168.0.135 IP:由 192.168.0.129 ~ 192.168.0.134 共 6 个可用的 IP !
  • 我要将 192.168.100.0/24 这个 C Class 的网段分为 4 个子网段,请问这四个子网段要如何表示?
  • 既然要分为四个网段,也就是还需要藉助 Netmask 的两个 bits (2的2次方为4啊!),所以 Netmask 会变成 255.255.255.192 ,每个子网段会有 256/4=64 个 IP ,而必须要扣除 Network 与 Broadcast ,所以每个子网段会有 62 个可用 IP !因此,四个子网段的表示方法为: 192.168.100.0/26, 192.168.100.64/26, 192.168.100.128/26, 192.168.100.192/26。
  • 如何观察 Linux 主机上面的路由信息 ( route table )?
  • 路由信息的观察可以下达 route 来直接查看!或者是下达 route -n 亦可!
  • TCP 数据包上面的 SYN 与 ACK 标志代表的意义是什么?
  • SYN 代表该数据包为该系列连接的第一个数据包,也是主动连接的意思; ACK 则代表该数据包为确认数据包,也是回应数据包!
  • 什么是三次握手?在哪一种数据包格式上面才会有三次握手?
  • 使用 TCP 数据包才会有三次握手。TCP 数据包的三次握手是一个确认数据包正确性的重要步骤,通过 SYN, SYN/ACK, ACK 三个数据包的确认无误后,才能够建立连接。至于 UDP 数据包则没有三次握手!  
    第三章、区域网络架构简介
  • 幻想自己是一个私人公司的老板,员工有 20 人,如果我想要让公司的员工都可以连上 Internet ,并且控管每个员工的对外连接,请问我的硬件连接应该怎么配置比较好?另外,应该申请的线路频宽应该多大较佳?而我的内部网段 ( IP, Netmask, ....) 又该如何设置比较好?
  • 因为只有 20 个员工,事实上,人员并不多,所以并不需要在内部加设 router 来隔开不同的网段。不过,由于想要管理员工的上网功能,因此最好以第三章图三 的 架构,以一部主机内含两块网卡隔开 Intranet 与 Internet 两个网段,便于管理;至于对外连接的频宽方面,如果 Linux 主机需要进行网络服务的功能,那么最好能够有 512/512 的频宽,因为可能会有 Client 端下载的问题,至于如果单纯的仅下载时(公司没有额外的网络服务),可以考虑使用 T1/384 之类的频宽,比较省钱;而在内部网段设置上,如同本章节使用的网段 192.168.0.0/24 来设置即可,如果公司内部还有移动装置(NoteBook),则可以在 Linux 上加装 DHCP (参考十六章)服务器。  
  • 承上题,假如我的私有网段内有较大的网络流量,那么我的网络媒体应该怎么选择较佳?
  • 如果私有网段内的流量较大,那么网络媒体需要选择 Switch 而不要使用 Hub !另外,整体包括网络线也都需要使用能够负载 10/100 Mbps 的流量才好。  
    第四章、连上 Internet
  • 我要如何确定我在 Linux 系统上面的网卡已经被 Linux 发现并且驱动了?
  • 网卡能不能被发现可以使用『 dmesg|grep eth 』来判断,有没有驱动则可以使用 lsmod 看看模块有没有载入核心!最后,以 ifconfig eth0 192.168.0.10 测试看看!  
  • 假设我的网络参数为:IP 192.168.100.100, Netmask 255.255.255.0, 请问我要如何在 Linux 上面设置好这些网络参数 (未提及的网络参数请自行定义!)?请使用手动与文件设置方法分别说明。
    • 手动设置为:『 ifconfig eth0 192.168.100.100 netmask 255.255.255.0 up
    • 文件设置为:vi /etc/sysconfig/network-scripts/ifcfg-eth0 ,内容为:
      • DEVICE=eth0 ONBOOT=yes BOOTPROTO=static IPADDR=192.168.100.100 NETMASK=255.255.255.0 NETWORK=192.168.100.0 BROADCAST=192.168.100.255
    • 要启动则使用 ifup eth0 即可!
  •  
  • 我要将我的 Linux 主机名称改名字,步骤应该如何(更改那个文件?如何启用?)?
  • Linux 主机名称在 /etc/sysconfig/network 这个文件里面的『HOSTNAME=主机名称』来设置,先以 vi 来修改,改完后可以使用 /etc/rc.d/init.d/network restart 或者直接 reboot 启动主机名称!  
  • /etc/resolv.conf 与 /etc/hosts 的功能是什么?
  • 以主机名称寻找 IP 的方法, /etc/resolv.conf 内填写 DNS 主机名称,至于 /etc/hosts 则直接填写主机名称对应的 IP 即可!  
  • 我使用 ADSL 拨号连上 Internet ,请问拨号成功之后,我的 Linux 上面会有几个网络接口 (假设我只有一个网卡)?
  • 因为拨号是使用 PPP (点对点)协定,所以拨号成功后会多出一个 ppp0 的接口,此外,系统原本即有 eth0 及 lo 这两个接口,所以共有三个接口。  
  • 在 Linux 上面进行 ADSL 拨号应该使用什么软件?
  • 请使用 rp-pppoe ,官方网站: http://www.roaringpenguin.com/pppoe/  
  • 一般来说,如果我拨号成功,也取得了 ppp0 这个接口,但是却无法对外连接成功,您认为应该是哪里出了问题?该如何解决?
  • 因为拨号成功了,表示网卡对外连接没有问题,那么可能的问题应该是发生在 Gateway 上面了!确认的方法请使用 route -n 查看路由信息,然后编辑 /etc/sysconfig/network-scripts/ifcfg-eth0 吧!

     


    第五章、 Linux 常用网络命令介绍
  • 我要增加一个路由规则,以 eth0 连接 192.168.100.0/24 这个网段,应该如何下达命令?
  • 以手动的方法为:『route add -net 192.l68.100.0 netmask 255.255.255.0 dev eth0 』即可!
  • 我的网络停顿的很厉害,尤其是连接到 tw.yahoo.com 的时候,那么我应该如何检查那个环节出了问题?
  • 使用 traceroute 寻找到底那个环节出问题:『traceroute tw.yahoo.com 』即可!
  • 我发现我的 Linux 主机上面有个连接很怪异,想要将他断线,应该如何进行?
  • 以 root 的身份进行『netstat -anp |more 』查出该连接的 PID,然后以『 kill -9 PID 』踢掉该连接。
  • 您如何知道 green.ev.ncku.edu.tw 这部主机的 IP ?
  • 方法很多,可以利用 host green.ev.ncku.edu.twdig green.ev.ncku.edu.tw nslookup green.ev.ncku.edu.tw 等方法找出!  
  • 请找出您的机器上面最适当的 MTU 应该是多少?
  • 请利用『ping -c 3 -M do -s MTU yourIP 』找出您的 IP 的 MTU 数值。  
  • 如何在终端机接口上面进行 WWW 浏览?又该如何下载 WWW 上面提供的文件?
  • 要浏览可以使用 lynx ,至于要下载则使用 wget 这个软件。如果想要在终端机上面看到中文,还可以安装 JCMME 。
  • 在终端机接口中,如何连接 bbs.sayya.org 这个 BBS ?
  • 利用 telnet bbs.sayya.org 即可连接上,同样的,要看到中文,还是得安装 JCMME 。

PART II、 主机的简易防火措施篇


  • 第七章、限制 Linux 对外连接的端口
  • 如何观察您 Linux 主机上面已经有多少 port 被打开了?
  • 如果仅想单纯了解正在 LISTEN 当中的端口,可以使用『netstat -tul 』,如果还想知道有多少连接已经建立,可以使用『netstat -an 』来查看。
  • 如何观察程序?
  • 利用『ps -aux』,或者是 top 来查看均可。
  • 请问 LISTEN 的 port 与 daemon 的关系是什么?
  • 正在 LISTEN 当中的端口都是由某些服务(daemons)所启动的,所以要启动端口就得启用某个服务,要了解某个端口是由那个 daemon 所启动的,就利用 netstat -tulp 来查看。
  • 请解释三次握手的原理与数据包传输的方向。
  • 三次握手为较为可靠的数据包传输的一种确认方式,因此只有 TCP 数据包才能具有三次握手。他利用(1) client 对 Server 主动连接时带有的 SYN 标志,(2)Server 回应时的 SYN/ACK 及(3)最终 Client 确认的 ACK 标志来确认数据包的可靠性。更详细说明请参考第二章 TCP 与三次握手 。
  • 请问 stand alone 与 super daemon 各是什么?
  • Linux 系统的服务有独立启动(stand alone)及超级服务员(super daemon)两种启动的方式。挂在 super daemon 底下的服务可以经由 super daemon 的控管,以加强一些安全功能,不过由于还要经过 super daemon 的管理,所以服务的连接速度上会比 stand alone 慢一点。详细的说明请参考『鸟哥的 Linux 私房菜 -- 基础学习篇 』第二十一章『认识系统服务 』内的相关说明吧!
  • 请问您的 Linux 主机 (不论是那个 distributions ) 有关 daemon 启动与关闭的 scripts 与文件放置在那个目录下?
  • 各个 daemons 的启动与关闭的 scripts 是放置在 /etc/rc.d/init.d 里面,至于 super daemon 的控管参数文件则在 /etc/xinetd.d 里面!
  • 请将您的 linux 主机对外的连接端口全部关闭!
  • 请参考本章节的作法!利用 ntsysv 或者 chkconfig 等功能加上 reboot ,或者 netstat 配合 kill 的方式!  
    第八章、 Linux 网络软件包升级
  • 请依照您的 Linux 系统进行适合的网络软件包升级程序(一个步骤一个步骤写下来),并说明是什么您需要选择这样的网络升级程序?
  • 这题请参考本章节的内容,选择 APT 或者是其他 Linux distributions 网站提供的线上升级方式来进行您的软件包升级。  
    第九章、多 IP Router 的架设
  • 请问您如何将您的 eth0 这个接口修改成为 192.168.100.2 在网段 192.168.100.0/25 之内的网络参数内容?
    • DEVICE=eth0 ONBOOT=yes BOOTPROTO=static IPADDR=192.168.100.2 NETMASK=255.255.255.128 NETWORK=192.168.100.0 BROADCAST=192.168.100.127
  • 因为 192.168.100.0/25 的 netmask 为 255.255.255.128 ,所以可以这样做:『ifconfig eth0 192.168.100.2 netmask 255.255.255.128 up 』这样即可!如果还需其他的参数,则需要以文件形式来下达,如 vi /etc/sysconfig/network-scripts/ifcfg-eth0,并修改为:
  • 请手动设置 eth0:1 这个虚拟接口,使成为网络参数: 192.168.200.2, 网段在 192.168.200.0/24。
  • ifconfig eth0:1 192.168.200.2 up
  • 如何观察路由表?
  • route -n 即可查看!注意到 0.0.0.0 那个目标(default gateway)。
  • 如何启动 Linux 的 IP Forward 功能?
  • 直接以『 echo "1" > /proc/sys/net/ipv4/ip_forward 』即可!
  • 假设您是一个学校单位的信息管理员,学校内有 200 部电脑,奉上面大头的旨意,必须要将 200 部电脑分为 4 个 Subnet ,请问您应该如何布线(请画出示意图)?而这 4 个 Subnet 的网络参数如何选择(请自行选择)?而是否需要 Router ?如果需要的话,假设每个 Router 仅能有两个网络物理接口,那么该如何布线?(注:不要使用虚拟接口)
  • 我的布线如同下图所示: 每个 Router 都具有两个接口,且四个 Router 的右边接口都在同一个网段内!那么 Router 1 怎么跟 Router 2 的内部网段进行沟通?利用:『route add -net 192.168.2.0 netmask 255.255.255.0 gw 192.168.5.2』即可!
  • 万一您的网络有点停顿,发现可能是网络上某个节点出现问题,您应该如何确认是哪一部 Router 出问题?
  • 使用第五章Linux 常用网络命令当中提到的 traceroute 来查询!  
    第十章、认识网络安全
  • 我老是发现我的系统怪怪的,似乎有点停顿的模样,怀疑可能是 CPU 负荷太大,所以要去检查一下系统相关的信息。请问,我该以什么命令去检查我的系统相关的信息?
  • 可以使用 top, sar, free, ps -aux, uptime, last 等功能去查询系统的相关信息!
  • 我怀疑我的系统上面有过多的具有 SUID 的文件存在,导致一般用户可以随意的取得 root 的权限,请问,我要如何找出这些具有 SUID 权限的文件?
  • 因为 SUID 是 4000 这个权限的模样,所以我可以这样做: find / -perm +4000
  • 我由国内一些 ftp 网站上下载了 Red Hat 公司释出的软件包,我想安装他,但又不知道该软件包文件是否被修改过!请问我该如何确定这个软件包的可用性?
  • 利用最简易的 MD5 编码来测试一下,例如『 md5sum 软件包名称』,再比对与原始软件包释出的 MD5 数据是否相同!?
  • 良好的密码规划是防备主机的第一要务,请问 Linux 系统当中,关于密码相关的文件与规则设置在哪些文件里面?
  • 密码的设置规则在 /etc/login.defs 里面!至于密码文件在 /etc/shadow 内!
  • 简易说明,当一部主机被入侵之后,应该如何处理?
  • 找出问题、重新安装、漏洞修补、资料还原!请参考本章最后面的『修补工 0240network-secure-1.php#repaire 作』内容!  
    第十一章、简易 Firewall 架设
  • 为什么我架设了防火墙,我的主机还是可能中毒?
  • 防火墙不是万灵丹,他还是可能被病毒或者是木马程序所入侵的!此外,如果您的主机本身就已经提供了多个网络服务,则当该网络服务的软件包有漏洞时,防火墙仍然无法克服该服务的漏洞的!因此仍然需要持续的进行主机的监视工作!
  • 请说明是什么架设了防火墙,我的主机还是可能被入侵?入侵的依据可能是什么方法?
  • 因为防火墙仅是抵挡某些不受欢迎的数据包,如果您有开放 WWW 的服务时,则要求您主机 port 80 的数据包将可直接进入您的主机,万一 WWW 软件包有漏洞时,那么就可能被入侵了!所以软件包的更新很重要!
  • 我们知道核心为 2.4 的 Linux 使用的防火墙机制为 iptables ,请问,如何知道我的 Linux 核心版本?
  • 利用 uname -r 可以查得!
  • 请列出 iptables 预设的两个 table ,以及各个 table 里面的 chains 与各个 chains 所代表的意义;
    • INPUT:为来自外部,想要进入主机的数据包;
    • OUTPUT:为来自主机,想要离开主机的数据包;
    • FORWARD:为主机内部网段与外部网段的数据包(不论进或者出),但该数据包不会进入主机。
    • PREROUTING:进行路由之前的数据包传送过程
    • OUTPUT:离开主机的数据包传送过程;
    • POSTROUTING:已经经过路由了,然后才进行的过滤规则。
  • filter 为预设的 Table,里头预设的链有: 还有 nat 这个 table:  
  • 什么是 iptables 的预设政策 (Policy)?
  • 当数据包的所有属性都不在防火墙的规则当中时,那么这个数据包能否顺利的通过防火墙,则以 Policy 作为这个数据包的最终动作了!
  • 假设今天我的 Linux 仅是作为 Client 之用,并没有对 Internet 进行任何服务,那么您的防火墙规划应该如何设置比较好?!
  • 既然没有对 Internet 提供任何服务,那么(1)请将所有的对外端口先关闭吧!(2)防火墙规则当中,最重要的是 INPUT 的 Policy 一定要 DROP ,然后将『 iptables -A INPUT -m state --state RELATED -j ACCEPT 』即可!
  • 我要将来自 192.168.1.50 这个 IP 来源的数据包,只要是向我的 21~23 端口要求的数据包,就将他抵挡,应该如何下达 iptables 命令?
  • iptables -A INPUT -p tcp -s 192.168.1.50 --dport 21:23 -j DROP
  • 我要将我自己主机 ping 的回应功能取消,应该如何下达 iptables 的命令?
  • 因为 ping 能否回应用的是 icmp 的 type 8 (请参考第二章 网络基础 内的 ICMP 相关内容 ),所以我可以这样做: iptables -I INPUT -p icmp --icmp-type 8 -j DROP
  • 请说明是什么这个命令是错误的?『iptables -A INPUT -p udp --syn -s 192.168.0.20 -j DROP 』?
  • 因为只有 TCP 数据包才会具有 SYN 的标志, UDP 并没有 SYN 的标志啊!所以上面的命令是错误的!
  • DNS 的要求是必须的,那么我该如何设置我的主机可以接受要求 DNS 的回应呢?
  • 因为 DNS 的来源是 port 53 ,因此要接受来自 port 53 的数据包就成为了: iptables -A INPUT -p udp --sport 53 -j ACCEPT iptables -A INPUT -p tcp --sport 53 -j ACCEPT
  • 如何取消 iptables 在我的系统上面?
  • 先要清除规则后,才能够将 iptables 卸载!不过,我们主要将规则清除即可! iptables -F; iptables -X; iptables -Z iptables -t nat -F; iptables -t nat -X; iptables -t nat -Z
  • 如何储存目前的防火墙机制,以及如何将上次储存下来的机制回复到目前的系统中?
  • 请利用 iptables-save 以及 iptables-restore 这两个命令,配合命令重导向即可!  
    第十二章、申请合法的主机名称
  • 请简易说明 /etc/hosts 的用途;
  • 这个文件是早期用在进行主机名称与 IP 的解析的,目前比较常用在内部网段的名称解析上,可以加快内部网段的反查!
  • 请说明『合法授权』的主机名称需要做什么?
  • 如果想要合法授权,就需要向上层 DNS 主机『注册』才行!而且还要上层 DNS 主机管理员愿意将领域名称的解析权限授权给您啊!
  • 什么是动态 DNS 系统?(仅说明 client 端)
  • 因为我们的 Client 拨号时,得到的 IP 都不是固定的,所以无法以 DNS 系统进行固定 IP 对应主机名称的工作!此时就需要动态 DNS 系统了!以 DNS 主机提供的动态更新主机名称对应 IP 的机制,可以让我们的不同 IP 对应到同一个主机名称呐!
  • 如果您使用 adsl 拨号来上网设置服务器,那么该申请哪一类型的主机名称?为什么?
  • 因为我是以 ADSL 上网拨号,所以 IP 是不固定的,此时需要申请动态 DNS 主机的主机名称,例如 adsldns.org 以及 no-ip.org 等等!  

PART III、 各类服务器架设篇


  • 第十三章、简易 Telnet SSH 主机设置
  • Telnet 与 SSH 都是远程连接服务器,是什么我们都会推荐使用 SSH 而避免使用 Telnet 呢?原因何在?
  • 因为 Telnet 除了使用『明码』传送资料外,本身 telnet 就是很容易被入侵的一个服务器,所以当然也就比较危险了。至于 ssh 其实也不是很安全的!由台湾电脑危机处理小组的文件可以明显的发现 openssl + openssh 也是常常有漏洞在发布!不过,比起 telnet 来说,确实是稍微安全一些!
  • 请尝试说明 SSH 在 Server 与 Client 端连接时的数据包加密机制;
  • 利用 key pair 来达到加密的机制:Server 提供 Public Key 给 Client 端演算 Private key ,以提供数据包传送时的加密、解密!
  • 请问 SSH 的配置文件是哪一个?如果我要修改让 root 无法使用 SSH 连接进入我的 SSH 主机,应该如何设置?又,如果要让 badbird 这个用户无法登入 SSH 主机,该如何设置?
  • SSH 配置文件文件名为 sshd_config ,通常放置在 /etc/ssh/sshd_config 内;如果不想让 root 登入,可以修改 sshd_config 内的参数成为:『PermitRootLogin no 』,并重新启动 ssh 来设置!如果要让 badbird 用户无法登入,同样在 sshd_config 里面设置为:『DenyUsers badbird 』即可!
  • 在 Linux 上,预设的 Telnet 与 SSH 服务器使用的端口(port number)各为多少?
  • telnet 与 ssh 的端口分别是:23 与 22!请参考 /etc/services !
  • 如果发现我无法在 Client 端使用 ssh 程序登入我的 Linux 主机,但是 Linux 主机却一切正常,可能的原因是什么?(防火墙、known_hosts...)
    1. 被防火墙挡住了,请以 iptables -L -n 来查看,当然也要查看 /etc/hosts.deny;
    2. 可能由于主机重新开机过, public key 改变了,请修改您的 ~/ssh/known_hosts 里面的主机 IP ;
    3. 可能由于 /etc/ssh/sshd_config 里面的设置问题,导致您这个用户无法使用;
    4. 在 /etc/passwd 里面,您的 user 不具有可以登入的 shell ;
    5. 其他因素(如帐号密码过期等等)
  • 无法登入的原因可能有很多,最好先查询一下 /var/log/messages 里面的错误信息来判断,当然,还有其他可能的原因为:
  • 既然 ssh 是比较安全的资料数据包传送方式,那么我就可以在 Internet 上面开放我的 Linux 主机的 SSH 服务了吗?!请说明您选择的答案的原因!
  • 最好不要对 Internet 开放您的 SSH 服务,因为 SSH 的加密函式库使用的是 openssl ,一般 Linux distribution 使用的 SSH 则是 openssh ,这两个软件包事实上仍有不少的漏洞被发布过,因此,最好不要对 Internet 开放,毕竟 SSH 对于主机的使用权限是很高的!  
    第十四章、简易 NAT 服务器
  • 请简单的说明 NAT 主机的用途与运行原理。
  • NAT 主机的最大用途在于『数据包伪装』,可以做为内部 Client 主机对外的连接之用(类似 IP 共享器),当然,也可以做为区域内主机 (DMZ) 的设置!至于其运行原理则主要以 iptables 的过滤机制有关,利用 iptables 来将通过的数据包进行 Source IP 或 destination IP 的伪装!
  • 假设我是您公司的上层主管,我知道我们单位内共有 100 部电脑 (Windows 操作系统),其中共分为两大部门,这两大部门的资料是互相独立的,并且两大部门各自拥有一部 Linux 主机在负责文件共享的工作(就是未来会谈到的 SAMBA 主机)。不过,我们公司仅有一条对外的 ADSL 双向 512 的专线而已。现在,我命令您规划全公司 100 部电脑都可以连上 Internet ,而且只多给您一部 Linux 主机,并且原有的 Linux 主机功能 ( 就是 SAMBA 啦 ) 还是存在。请问:
    1. 公司的网络规划的示意图如下所示:
    2. 两边的 LAN 并没有互相物理连接,此外,微型电脑为本来的 Linux 主机,而新增一部 Linux 主机则是『服务器』那一部!
    3. 多出来的那一部 Linux 主机用途为 ADSL 连接与内部私有网络的连接,该 Linux 的网络参数:『IP为192.168.0.254(对内),对外为拨号所产生的接口!启动 NAT 功能』!
    4. 两 部 Linux SAMBA 主机的网络参数为:『部门A:IP为192.168.1.254(对内卡)以及192.168.0.1(对外卡),新增 route add -net 192.168.2.0 netmask 255.255.255.0 gw 192.168.0.2』,『部门B:IP为192.168.2.254(对内卡)以及192.168.0.2(对外卡),新增route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.0.1』,两部主机的 Gateway 都是192.168.0.254。
    5. 两个部门的网络参数:『部门A,Network:192.168.1.0/24,Gateway:192.168.1.254』、『部门B,Network:192.168.2.0/24,Gateway:192.168.2.254』。

  • 第十五章、简易 NFS 服务器设置
  • NFS 的主要配置文件是什么?而在该文件内主要设置项目是什么?
    1. 共享的目录
    2. 针对此共享目录开放的主机或 IP或网段
    3. 针对这部主机所开放的权限参数!
  • 主要的配置文件为 /etc/exports 而至于其设置的内容项目在每一行当中则为:  
  • 在 NFS 主要的配置文件当中仅有少许的参数说明,至于预设的参数说明则没有在该文件当中出现,请问,如果要查看更详细的共享出来的文件的属性,要看那个文件?
  • 要查看 /var/lib/nfs/xtab 这个文件才行!  
  • 如果已经启动了 nfs 这个服务器,但是却又修改过主要配置文件,请问可以使用那个命令来重新挂载共享出来的目录与 client 端权限的设置值?
  • 透过使用 exportfs ,可以加上 -a 或者是 -rv 这两个参数来重新挂载!如 exportfs -rv  
  • 在 client 端如果要挂载 NFS 所提供共享的文件,可以使用那个命令?
  • 那自然就是 mount 啦!还有卸载是 umount !  
  • 在 NFS 主要配置文件当中,可以透过那个参数来控制不让 client 端以 root 的身份使用您所共享出来的目录与文件?
  • 可以在 /etc/exports 当中的参数项目,设置『 root_squash 』来控制压缩 root 的身份!  
  • 我 在 client 端挂载了 NFS Server 的某个目录在我的 /home/data 底下,当我执行其中某个程序时,却发现我的系统被破坏了?您认为可能的原因是什么?该如何克服这样的问题,尤其是当我的 Client 端主机其实是多人共用的环境,怕其他的用户也同样发生类似的问题呢?!
  • 可能由于您挂载进来的 NFS Server 的 partition 当中具有 SUID 的文件属性,而您不小心使用了该可执行文件,因此就可能会发生系统被破坏的问题了! 可以将挂载进来的 NFS 目录的 SUID 功能取消!例如: mount -t nfs -o nosuid,ro server:/directory /your/directory  
    第十六章、简易 DHCP 服务器设置
  • DHCP 的主要用途是什么
  • DHCP 主机的主要用途就是在于自动分配网络参数给 Client 端的电脑,以降低网段当中可能发生的 IP 冲突问题,以及减少网管人员到处检查错误的伤脑筋!  
  • DHCP 主要的两种 IP 分配模式是什么?
  • 主要的两种分配模式分别为 Dynamic IP 与 Static IP , Static IP 透过 MAC 的比对,至于 Dynamic IP 则是直接取用网段中尚未被使用到的 IP 来进行 Client 端的分配。  
  • 在有 DHCP 主机存在的网段当中,且 client 端亦使用 DHCP 来规划用户端的网络参数,那么请问,在该网段当中,Client 端是如何取得 IP 的呢??
    1. 首先, Client 端会发出一个 DHCP 要求数据包;
    2. Server 端接收到要求后,会主动的回应信息给 Client ;
    3. Client 若接受该 DHCP 主机所提供的参数,则主机会记录下租约信息,至于 client 端则开始以主机提供的参数设置其网络;
  •  
  • DHCP 是如何发送 Static IP 的?可以使用何种命令取得该信息?
  • DHCP 主要利用网卡的硬件位址,也俗称的『网卡卡号』,也就是 MAC 来进行 Client 端的比对的,至于主动取得 Client 端的方式,可以透过 ping 以及 arp 来获得。  
  • 在 DHCP 的租约档,也 /var/lib/dhcp/dhcpd.leases 当中,记录了什么信息?
    •  
  • 这个文件主要记录了 Client 端连上 Server 端的纪录资料,他会被 DHCP 主机用来判定与 Client 端的租约行为!
  • DHCP 的登录档放置于何处?
  • 就是最重要的 /var/log/messages 这个文件啦(预设状况下!)  
    第十七章、简易 DNS 服务器设置
  • 是什么要有 DNS 系统:
  • 最主要的功能其实在于 Hostname 对应 IP 的查询,可以让我们人类以电脑主机名称连上 Internet ,而不必背诵 IP 哩!  
  • 那么请教 Unix Like 系统当中,主要使用那个软件包做为 DNS 主机的架设,同时,他又是使用那个 daemon 来启动 DNS 系统?
    •  
  • 在 Unix Like 系统当中,使用 BIND 这个软件包做为 DNS 的架设,至于 daemon 则是使用 named 这个 daemon !
  • 最早的 Internet 其实是为了政府人员可以连上网络以进行资源的共享,另外,则是电子邮件的使用。而在早期使用的重要文件只有 /etc/hosts 这个,请教这个 hosts 文件的内容含有什么项目?
  • 这个文件的『格式』为『 <主机名称> <主机别名(aliase)>』,而,这个文件里面放置了至少一行,也就是: 127.0.0.1 localhost localhost.localdomain 另外,也可以将经常连接的主机 IP 与 HOSTNAME 的对应给他写进来!  
  • 请说明 DNS 的三种类型与相关的内容:
  • DNS 主机主要分为: master, slave 与 cache-only 三种类型!在 master 当中,master 主机里面即有设置 DNS 资料文件,例如在 /var/named 里面的正反解文件。至于 slave 的 DNS 主机则主要在进行 master 主机的资料备份,同时也提供 Internet 上面的查询功能。使用 master/slave 的最大优点在于「单点维护」的能力!利用修改 master 即可让 slave 的资料同时更新,减少人力的浪费。至于 cache-only 仅进行快取的纪录,本身并无资料库文件!  
  • 正解文件(forward)反解文件(reverse)与内部回圈使用的文件(loopback)主要的纪录功能为:
  • 正解档在设置 hostname 对应到 IP 的纪录,主要的纪录有 A, NS, SOA, MX, CNAME 等等; 反解档主要设置 IP 对应到 Hostname 的纪录,主要的纪录为 SOA, NS 与 PTR 等。 内部回圈则是 localhost 与 127.0.0.1 的对应啦!  
  • 在主要的 DNS 配置文件 /etc/named.conf 当中,有一个较为特殊的文件,他的类型为 hint ,请问这个文件的功能是什么?
    •  
  • 这个文件主要是由 rs.internic.net 所下载下来的,主要记录了 root (.) 这个 zone 的 IP !可以让我们的 DNS Server 在找不到资料库时,可以到这个 root 去查询资料!
  • 在 client 端查找 HOSTNAME 对应到 IP 的查询时,最重要的文件,以及该文件的主要用途是什么?
    •  
  • /etc/nsswitch.conf :可以用来设置查询主机名称的顺序!例如先查询 /etc/hosts 再查询 DNS 系统; /etc/hosts :最早的名称解析器; /etc/resolv.conf:这就是 DNS 系统的 resolver (解析器)了。
  • 一般来说,在 Client 端使用的查询 HOSTNAME 的命令大多使用什么?
  • nslookup :可以用来收集一部主机的相关信息; dig:可以用来收集详细的主机信息; whois :可以用来收集详细的 DNS 主机信息。 host 则较为简单!  
  • 请问 named 重要的信息登录在在那个文件中?
  • 在 /var/log/messages 当中。  
    第十八章、简易 WWW 服务器设置
  • 请问 LAMP 这个服务器代表什么意思?
  • 这个名词代表了 Linux + Apache + MySQL + PHP 这个 WWW 服务器的组成!
  • Apache 的配置文件文件名一般是什么?
  • Apache 的配置文件文件名为 httpd.conf ,不过,由于 httpd.conf 内容参数可以使用『 include "额外设置文件名"』,所以也可能具有其他的额外配置文件!
  • 在 Apache 的配置文件当中,哪一个参数是用来设置『主页』的?
  • 设置主页的参数为:DocumentRoot !后面接的是主页放置的『目录』!
  • 哪一个命令用来重新启动与关闭 Apache ?(请以 Tarball 安装的方法来说明)
  • 其实不论是 RPM 还是 Tarball 都是使用 apachectl 这个文件来启动 apache 的,不过 RPM 已经将该文件整合到 /etc/rc.d/init.d/httpd 里面去而已!
  • 当我使用 ps -aux 的时候,发现好多的 httpd... 的程序,这是正常的吗?!最多可以有几个程序是在那个文件的那个参数所设置的?!
    • MinSpareServers
    • MaxSpareServers
  • 这是正常的,主要由 httpd.conf 里面设置的底下两个参数:  
  • 又,呈上题,这些程序 (process) 的 owner 与 group 是谁?该查看那个配置文件的那个参数?
  • 同样查看 httpd.conf 里面的 User 与 Group 这两个设置值!
  • 如果今天我以 http://your.ip 结果却发现浏览器出现类似 FTP 的画面(会列出该目录下的所有文件),这是什么原因造成的?该如何避免?
  • 这是由于在 httpd.conf 里面,针对该目录的设置参数『 Options 』当中,设置了 Indexes 这个设置值,导致当找不到主页时(通常是 index.html),就会将该目录下的所有文件秀出来!解决的方法就是拿到 Options 里面的 Indexes 设置值即可!
  • 在 Apache 里面, .htaccess 这个文件的功能是什么?
  • 可以用来取代 httpd.conf 里面的设置参数!创造属于用户自己的 Apache 风格!  
    第十九章、简易 SAMBA 服务器设置
  • 一般来说, SAMBA 使用的配置文件放置在哪里?文件名是什么?
  • 使用的文件名为 smb.conf ,通常会放置在 /etc/samba/smb.conf 里面,不过,最好可以使用 rpm -qc packagename 来查询!
  • 哪一个命令可以用来判断 smb.conf 这个配置文件的正确性?
  • 当我们修改完 smb.conf 之后,记得要以 testparm 来进行 samba 的确认!
  • 哪一个命令可以用来查看 SAMBA 主机共享出什么目录?
  • 利用 smbclient 即可:『smbclient -L NetBiosName -U username 』!
  • smbmount 的功能是什么?
  • 在 Linux 系统上面,将 Windows 的网络上的芳邻,或者是 Linux 的 SAMBA 所提供共享的资源挂载到自己的系统下!
  • 我今天使用 smbpasswd 去新增一位用户 badbird,让他可以登入我的 Linux SAMBA 主机,但是无论如何就是无法新增。您认为原因可能是什么?
  • 由于 Samba 用户的信息必须要存在于 /etc/passwd 里面,既然无法新增,应该先确认 badbird 这个用户已经存在于 Linux 系统当中了!如果还是无法新增,则需要查看 smb.conf 的设置,看看是否 /etc/samba/smbpasswd 这个密码文件不存在?!  
    第二十章、简易 Mail Server 架设 -- Sendmail 设置
  • 我在使用 Sendmail 寄信时,却发生底下这个问题,请问可能的发生原因是什么?
    • 你的 Client 端电脑的 IP 或者是网段位址被 /etc/mail/access 所挡住,或者是 /etc/mail/access 没有打开你的 RELAY 权力;
    • 你有进行 SMTP 邮件认证的设置,但是忘记在 MUA 当中设置帐号与密码的项目了!
    •  
  • 可能的问题有两个: 如果不是这两个原因,那么可能的问题就多了!请详细的检查您的网络设置!
  • 请列出四个 Mail Server 的相关的元件,以及其功用是什么?
    1. Mail Client :邮件用户端,其实就是使用 mail 的那位用户所在的电脑即可称为 mail client ;
    2. Mail User Agent :为一个应用软件,主要的功能就是收受邮件主机的电子邮件,以及提供用户浏览与编写邮件的功能;
    3. Mail Transfer Agent :为在电脑与本地端 Mail server 或 Internet 上面的 Mail server 传送信息与邮件的主机;
    4. Mail Dilivery Agent :主要的功能就是将 MTA 所收受的本机信件,放置到本机帐户下的邮件文件中 ( Mailbox )!
  •  
  • POP3 与 SMTP 的功能是什么?
    • SMTP 为使用于 MUA 或 MTA 与 MTA 之间的传输协定,通常使用 port 25 ,只要主机支援 SMTP ,并且其他 relay 的条件能配合,就可以进行邮件传递!
    • POP3 可以提供用户经由 MUA 到 MTA 下载邮件,同时并可将邮件从主机上面删除!
  •  
  • 请简单的说明 DNS 里面 MX 标志与 Mail 的关系是什么?
  • MX recode 可以可以让 mail server 经由 MX 以及 A ( address ) 这个记录来进行 mail gateway 与 mail route 的功能!能够达到的作用相当的多!  
  • 今天我突然兴起,想要修改我的 sendmail ,请问, sendmail 的配置文件在哪里?而我要以什么程序修改 sendmail 呢?
  • Sendmail 的配置文件为 sendmail.cf ,这个文件通常放置在 /etc/sendmail.cf 或者 /etc/mail/sendmail.cf !您可以手动的编辑这个文件,不过不建议如此,取得代之的,可以使用 m4 这个程序来进行 macro 的动作,进一步的完成 sendmail.cf 的修改!至于使用 m4 时,需要先建立 m4 scripts ,再以 m4 转换才能形成 sendmail.cf !  
  • 什么是 mailling list ?在 sendmail 底下有什么方法可以不藉由其他的软件达到 mailling list 的功能?
  • Mailling list 就是将用户寄给一个帐号邮件时,该帐号会主动的将该邮件传送到所有的用户去!有点类似目前的电子报!在 sendmail 底下,我们可以透过 aliases (需配合 newaliases) 以及 ~/.forward 来达成!  
  • 如何查看邮件伫列的内容,以及邮件伫列内容放置在何方?
  • 使用 mailq 即可知道目前邮件伫列的内容,而邮件伫列虽然可以透过 sendmail.cf 来修改,不过,预设情况下,都是以 /var/spool/mqueue 为邮件伫列目录。  
  • 若我的 sendmail 主机有很多名称,我想让这些名称都可以进行 mail 的接收,应该修改什么文件?
  • 可以修改 /etc/mail/local-host-names 来达成!  
  • 什么是 Open Relay?
  • 所谓的 Open Relay 就是,不论发信端来自何处,您的 Open Relay 的主机均可以帮发信端将信件发送出去,这个称为 Open Relay 。如果您的 mail server 具有 open relay 的情况,那么很容易遭受到垃圾邮件的填充,不但造成网络频宽的耗损,也容易让您的主机被列入黑名单当中!  
    第二十一章、简易 Mail Server 架设 -- Postfix 设置
  • 请问 Cyrus SASL 在 1.5.xx 以及 2.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 的身份认证时,请务必记得版本的差异!
  • 如果要让 Postfix 可以收发来自非本机的外部信件,您可以修改 main.cf 里面的什么参数?
    1. 当 Client 来自信任的网段,也就是 IP 符合 $mynetworks 的设置值时;
    2. 当 Client 来自信任的机器,也就是主机名称符合 $relay_domains 的设置项目时;
    3. 当 Client 来自不信任的网段,但是去的目的地主机端符合 $relay_domains 的设置时。
  • 需要在 main.cf 里面修改的变数主要有:
  • 如何查看您目前的 Postfix 服务器的所有设置参数?(使用什么命令?)
  • 利用 postconf -n 可以查看『目前 main.cf 里面设置的参数』,而如果要看所有的参数,则直接使用 postconf 即可!
  • 在 Postfix 当中,由于已经具有过滤邮件的机制,所以不太需要使用 procmail 了!请问,我该如何启用信件的 Header 过滤机制?同时,如何设置规则,使得 192.168.100.100 这个主机的来信,以及只要邮件的标头为『 Your account 』的信件就予以丢弃?
  • 启用的方式可以在 main.cf 里面启用这个设置值: header_checks = regexp:/完整路径/文件名 body_checks = regexp:/完整路径/文件名 至于文件内容可以这样做:(注:因为要查看的是标头,所以需要 header_checks 后面所接的文件名呐!) /^Subject.*your/ account/ REJECT  
    第二十二章、简易 FTP Server 架设 -- Wu FTP 设置
  • FTP 在建立连接以及资料传输时,会建立哪些连接?
  • 需建立两种连接,分别是 command 与 data transfer 的连接,就是命令通道与资料传输通道。一般来说,就是 port 21(ftp) 与 port 20(ftp-data)。  
  • FTP 主动式与被动式连接有何不同?
  • 主动式连接的时候, command 连接是由 client 端主动连接到主机端,但是 ftp-data 则是由主机端主动的连接到 client 端。至于被动式连接的时候,则不论 command 还是 ftp-data 的连接,主机端都是 Listen 客户端的要求的!  
  • 有哪些动作可以让您的 FTP 主机更为安全 ( secure ) ?
    • 让 guest 与 anonymous 的家目录限制在固定的目录中(chroot 或是 restricted);
    • 使用 TCP_Wrappers 启动 FTP ,并以他来控制可连接的 IP;
    • 拒绝 guest 与 anonymous 使用 change, delete, rename 等等命令;
    • 拒绝 root 的登入或者其他系统帐号的登入;
    • 拒绝大部分的 upload 行为!
  • 有很多的方法,在设置上面有这些方法:  
  • 我们知道 ftp 会启用两个 ports ,请问这两个 port 在哪里规范的?而且,一般正规的 port 是几号?
  • 是在 /etc/services 里面规范的,此外,正规的 ports 在 command 是 21 而 data 是 20 。  
  • Wu FTP 的主要配置文件在哪里?
    •  
  • /etc/ftpaccess
  • 在 Wu FTP 的配置文件当中,那个 log transfer 是干嘛用的?
  • log transfer 可以将用户进行资料传输的时候,将传输的文件大小、内容等等记录到 /var/log/xferlog 里面去!
  • 在 Wu FTP 的配置文件当中,那个 passive ports 是干嘛用的?
  • 我们知道 FTP 有主动与被动连接两种方式,如果 FTP 主机允许被动连接,那么 Client 端连接时,主机端将会随机取大于 1024 的 port 来进行 data transfer ,为了避免随机取 port 的问题,所以 passive ports 可以指定固定的几个小范围的 ports ,比较安全。  
  • 那一个文件可以用来抵挡类似 root 这种系统帐号的登入 FTP?
  • /etc/ftpusers!(其实是利用 pam 模块来达成的功能!)
  • 在 FTP 的 server 与 client 端进行资料传输时,有哪两种模式?是什么这两种模式影响资料的传输很重要?
  • 资料的传输有 ASCII 与 Binary 两种方式,在进行 ascii 传送方式时,被传送的文件将会以文字模式来进行传送的行为,因此,文件的属性会被修改过,可能造成可执行文件最后却无法执行等的问题!一般来 说,ASCII 通常仅用在文字文件与一些源码文件的传送。  
    第二十三章、简易 FTP Server 架设 -- Pro FTPD
  • 如何建立一个用户,他可以使用 FTP 的功能,但是无法以 telnet 或 ssh 登入系统?!请使用 proftpd 的设置项目来设置!
  • 因为无法使用 telnet/SSH ,这表示他可能不具有正常的 shell ,因此您可以将该用户在 /etc/passwd 里面,最后一个 shell 参数改成 /bin/false ,然后在 proftpd.conf 里面设置『RequireValidShell off 』即可!
  • 我明明在台湾,我的主机时区 (/etc/sysconfig/clock) 明明在台湾,是什么登入 proftpd 之后,显示的系统时间就是慢了 8 小时?请问为什么?如何解决?
  • 这是由于 proftpd 预设使用 GMT 时间,因此,您必须要重新设置 proftpd ,使得时间使用 localtime 才成!修改 proftpd.conf 里面的参数成为:『TimesGMT  off
  • 如果发生了无法登入,或者是与 proftpd 的 FTP 功能相关的错误时,要如何 debug 呢?
  • 最先应该查询是否被防火墙挡住了(同时观察 Server/Client 端); 克服防火墙问题后,再查询 FTP port 是否有启动; 再检阅 /var/log/messages 里面的错误信息, 最后据以编辑 proftpd.conf 的设置参数!  
    第二十五章、简易 Proxy Server 架设
  • 请说明是什么 Proxy 可以提升网络的 WWW 浏览速度?
  • 这不但由于 Proxy 可以透过上层 Proxy 达到分流的功能,使得网络传输更具效率之外,还由于 Proxy 会将资料快取(cache)在自己的硬盘内,以方便下次的查询,因此对于区域网络的浏览速度是有帮助的!
  • 万一 squid 发生了问题,请问我该如何找出问题点?
  • 最主要还是在于找出问题,所以需要由 suqid 的登录档查询起,当然,硬盘的优劣以及 squid 所取得 PID 的 owner 与 group 都是需要注意的!
  • 请说明 Proxy 服务器的功能是什么?
  • Proxy 服务器的功能在于代理来自 client 的上网需求,并向目地端主机送出 client 端的要求,以协助 client 端取得所需要的浏览网页。此外,并可将网页资料进行 cache 的功能。  
  • 试说明是什么 Proxy 服务器可以提升网段之内的网络安全性?
  • 由于 Proxy 服务器通常架设之后,会让网段仅有一个 Proxy 主机的出口,也单点对外的服务器,可以强化网络的管理!  
    第二十六章、简易 Network Information Service, NIS Server 架设
  • 请简单说明 NIS server 的功能与工作流程
    1. NIS Server 将自己系统内的 /etc/passwd, /etc/group, /etc/hosts 等制作成为 DBM 的资料库格式文件;
    2. NIS Client 若有用户登入的要求时,会前往 NIS Server 查找资料库里面的资料做为验证之用。
    3. 每次更动 NIS Server 上面的用户资料时,则 NIS Server 需要重新制作 DBM 资料库文件才行!
  • 当您有多部具有相同帐号的 Linux 主机时,即可利用 NIS 所提供的服务,来利用一部 NIS 主机掌控所有的 linux 主机的登入时所需查看的帐号与密码验证。流程如下:  
  • 请简单说明 NIS Server/client 的架构
    1. NIS Server 的 master 先将自己的帐号、密码相关文件制作成为资料库文件(database file);
    2. NIS Server 的 master 将自己的资料库文件传送到 slave 上面;
    3. NIS Server 的 slave 接收来自『信任的 NIS Server master 主机』的资料后,更新自己的资料库,使自己的资料库与 master 主机的资料同步;
    4. 网段当中的所有 NIS Client 查寻 NIS Server 时,会找寻『最先回应的那一部 NIS 主机的资料库内容』。
  • NIS master/client 的特色为: 也就是说,架设 slave NIS server 可以分担区域内 NIS 的工作!  
  • NIS 启动之前需要先启动那个服务,否则就无法启动成功
  • 因为 NIS 是 RPC Server 的一种,所以必须要启动 portmap 这个 daemon 才行!  
  • 我的 NIS 网段名称为 bird ,另外,我主机的 IP 与主机名称为 192.168.5.1/bird.nis.org ,请问要这些信息需要设置在 NIS Server 的哪些文件之内?
  • 网段名称可以直接手动下达『 nisdomainname bird 』也可以写入 /etc/sysconfig/network 里面『NISDOMAIN=bird』; IP 与 主机名称 需要写入在 /etc/hosts 里面。  
  • /etc/nsswitch.conf 的功能是什么?如果我想要让密码查寻先本地的密码档,再查寻 NIS ,需要如何设置?
  • 该文件的功能很多,在 DNS 方面,可以用来决定正、反解的顺序,至于密码则可以用来判断何者为先!如果需要先查本机再查 NIS 的密码时,需要的参数: passwd:     files nis nisplus shadow:     files nis nisplus  
  • NIS Server 将密码等文件做成资料库以提供 NIS client 来查寻,那么请问使用什么动作后,可以将密码文件转成 NIS 的资料库格式文件?
  • /usr/lib/yp/ypinit -m  
  • 如果我想要增加网段当中一个新的帐号:newaccount,并且这个 newaccount 可以让 NIS Client 查寻到他的帐号与密码,需要进行哪些步骤?
    1. 先登入 NIS Server 以 useradd newaccount 以及 passwd newaccount 来新增帐号;
    2. 制作密码资料库:『/usr/lib/yp/ypinit -m』
    3. 重新启动:『/etc/rc.d/init.d/ypserv restart ; /etc/rc.d/init.d/yppasswdd restart』。
  •  
  • 实验范例题:底下是我的网段参数特征:
  • 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 利用上面的参数来设置 NIS 架构,请一步一步的写下你的设置。 请自行参考本章节内容设置!  
  • 承上题:如果我的网段太大了,所以有一部 NIS slave 主机,这部主机的 IP 为 192.168.1.50 ,请问这部主机该如何设置?
  • 请参考:http://www.linux-nis.org/nis-howto/HOWTO/index.html  
    第二十七章、简易 NTP 服务器设置
  • 什么是 GMT (格林威治) 时间与 UTC 时间?
  • 由于地球是圆的,所以同一时间点上,在地球共可分为 24 个时区,其中,我们以欧洲的格林威治时间为一个对照的依据,这个即是 GMT 时间。台湾时间比 GMT 时间快了 8 小时。至于 UTC 时间则是由原子钟所计算的时间,这个时间是相当的准确的,主要仍以格林威治时间为时区!
  • Linux 系统的所有时区文件放置哪一个目录底下?
  • 所有的时区文件放置于:/usr/share/zoneinfo 底下!至于系统时区的配置文件则在 /etc/sysconfig/clock 与 /etc/localtime !
  • 我的 Linux 主机本来放置在日本东京,现在想将他拿到台湾来运行,不过因为日本与台湾有一个小时的时差,所以我的时间应该需要经过调整才行。不过,因为我的 BIOS Time 主要是依据 UTC 时间来设置的,所以似乎只要更动时区参数即可。请问我该如何设置时区,好让我的 Linux 主机能够显示正确的时间?
  • 将 /usr/share/zoneinfo/Asia/Taipei 这个文件复制成为 /etc/localtime 即可!
  • 目前 Linux 系统上面的时间服务器主要是以 NTP 为主,请问这个 daemon 的主要配置文件放在哪里,而该配置文件中,针对上层 time server 的设置参数是什么?而那个 driftfile 参数是干嘛用的?
  • 在 /etc/ntp.conf 这个文件当中,至于上层 time server 的设置参数为 server 啊!那个 driftfile 则是用来做为『时间差额』的计算的!该参数后面接的是一个完整路径的文件名,该文件里面的数值单位为百万分之一(ppm)。
  • 请问 ntptrace 的功能是什么?
  • 可以用来追踪上层 time server 的连接时间与目前时间!
  • 我以 date 更新了我 Linux 上面的时间后,该如何将时间数据写入 BIOS 内?
  • 必须利用 hwclock 这个程序来写入,利用 hwclock -w 写入 BIOS 。
  • 在 Linux 上面如何进行网络校时?
  • 最简单的方法即是使用『 ntpdate time.servers.ip; hwclock -w 』即可!

你可能感兴趣的:(Linux/Unix,服务器,作业,linux,server,网络,internet)