要做的工作那麼多,時間又那麼少!儘管有許多工作要完成,但我們還是先從這一節開始。 這一節主要與網路有關。 網路聯網涉及的問題佷多,無法在此全部概括。首先應參考NET-3 HOWTO,此外,多數 Linux 版本也提供了如何設定網路功能的資料。此處只預備討論其中几項要點。
假設在 Linux 上預備安裝calendar或reminder、Http、Samba、telnet/ssh登錄、匿名 ftp(anonymous ftp)、POP/IMAP服務器和NFS等功能。
設定 Linux 各種版本網路功能的方法可能相當複雜,但下述腳本足夠啟動網路:
#!/bin/sh
# net-up.sh: set up network access --設定聯網
DEVICE=eth0 #-- 網卡
IPADDR=192.168.1.100
NETMASK=255.255.255.0
NETWORK=192.168.1.0
GATEWAY=192.168.1.1
ifconfig $DEVICE $IPADDR netmask $NETMASK up
route add -net $NETWORK netmask $NETMASK $DEVICE
route add default gw $GATEWAY
這個腳本在使用解救磁片連接網路時非常有用。當然,它只能使機器通過 ping,ftp 和 telnet 與外界聯絡。
Linux 服務器的一項最有用的功能就是分享網際網路。目前,大多數現成可用的內核都已附有 IP firewalling、masquerading 和 forwarding 的功能。如要知道詳細功能,可參看 IP-Masquerade mini-HOWTO。然後安裝 ipfwadm(內核 2.0.x; http://www.xos.nl/ Linux /ipfwadm/)或 ipchains(內核2.2.x; http://www.adelaide.net.au/)。
注意:對需要的功能,啟動相應的內核模組。例如,如需要ftp,則應將下行加入 /etc/rc.d/rc.sysconfig:
/sbin/modprobe ip_masq_ftp
其他模組通常都放在/lib/modules/KERNEL-VERSION/ipv4檔中。
為本地網路的其他機器啟動IP masquerading功能的程序非常簡單。首先檢查網路初始化腳本/etc/sysconfig/network
(應在應該放置的位置)是否有內容為FORWARD_IPV4=true
的一行。通常在網路啟動時
/proc/sys/net/ipv4/ip_forward均設為 1。
在/etc/rc.d/rc.sysinit中增加以下數行:
# default: packets cannot go reach the outside
# 預設為數據包無法發送到網際網路
/sbin/ipfwadm -F -p deny
# allow all machines on the local network to reach the Internet
# 使本地網路上的所有機器均可連接網際網路
/sbin/ipfwadm -F -a m -S 192.168.1.0/24 -D 0.0.0.0/0
# alternatively, allow only these two machines
# 或只讓下面兩台電腦連到網際網路
# /sbin/ipfwadm -F -a m -S 192.168.1.100/24 -D 0.0.0.0/0
# /sbin/ipfwadm -F -a m -S 192.168.1.101/24 -D 0.0.0.0/0
如 Linux 已使用 2.2.x 系列內核,以ipfwadm-wrapper
代替ipfwadm
可加快啟動速度。
現在應使用戶端機器撥接ISP;可試用Mserver( http://cpwright.villagenet.com/mserver/)。修改etc/mserver.conf; 只需改動“checkhost”、“shadow”和“cname”三項。然後設定聯網參數。
假定電腦通過PPP連到網際網路。任何機器連到網際網路就有可能遭到外界的入侵。在 /etc/hosts.allow中列入以下內容:
# only allow access to localhost
# 只允許連到localhost
ALL: 127.
並在/etc/hosts.deny中列入:
# deny access to everyone
# 不讓任何人進入
ALL: ALL
如果電腦所屬的網路直接與網際網路連接,由于安全的理由,最好取消finger、telnet等功能;
利用ssh
替代telnet。此處只要修改/etc/inet.conf檔即可。同時,
也可在/etc/hosts.allow中增加下列內容限制網路連接:
in.telnetd: 192.168.1., .另一個.可信的.網路地址
in.ftpd: 192.168.1., .另一個.可信的.網路地址
並在/etc/hosts.deny中增加下列內容:
in.telnetd: ALL
in.ftpd: ALL
這種方式用于服務器用戶目錄的輸出;但如果用戶的 UID 和 GID 在各台機器上各不相同,就會發生問題。如果用戶 guido 在server
上的 UID/GID 為 500,在client
上的 UID/GID 為 512,則可設置如下:
# /etc/exports
/tmp my.client.machine(rw)
/home/guido my.client.machine(rw,map_static=/etc/nfs/client.map)
在/etc/nfs/client.map檔中填入:
# /etc/nfs/client.map
# NFS mapping for client
# remote local
uid 512 500
gid 512 500
有待編寫 (譯註:作者顯然忘了編寫這部分內容)