要做的工作那么多,时间又那么少!尽管有许多工作要完成,但我们还是先从这一节开始。 这一节主要与网路有关。 网路联网涉及的问题佷多,无法在此全部概括。首先应参考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
有待编写 (译注:作者显然忘了编写这部分内容)