环创工作室 lyj 2004-2-17 编辑
Vi /etc/dhcpd.conf
subnet 10.10.0.0 netmask 255.255.0.0{
range dynamic-bootp 10.10.2.0 10.10.2.100; #IP地址分配范围
option routers 10.10.1.1; #默认网关
option subnet-mask 255.255.0.0; #默认子网掩码
option domain-name ”cx.com”; #默认域名
option domain-name-servers 10.10.1.1,202.96.134.133;
}
#最后一行:DNS服务器设置,之所以把10.10.1.1放在前面是想让客户机在作域名解析的时候优先选择内部dns服务器,若域名不能解析, 则用下一个 dns服务器解析,202.96.134.133是深圳地区ADSL上网用户主DNS服务器.用下一个dns服务器解析, 202.96.134.133是深圳地区ADSL上网用户主DNS服务器。 </P><P>3]启动服务: /etc/rc.d/init.d/dhcpd start </P><P>4]使用:不论Win9x还是 2K都使用自动获取IP地址,其它什么都不用设。 </P><P>六、 ADSL及防火墙配置 </P><P>1]下载软件:http://www.roaringpenguin.com/pppoe/rp-pppoe- 3.5.tar.gz </P><P>2]安装软件:
tar zxvf rp-pppoe-3.5.tar.gz
cd rp-pppoe-3.5
./go #开始安装软件 </P><P>3]软件安装好后,会运行设置程序adsl-setup
USER NAME
>>> Enter your PPPoE user name (XXX):________ #此处填写ADSL用户帐号 </P><P> INTERFACE
(default eth0):_____ #以太接口,eth0或者eth1 </P> <P> >>> Enter the demand value (default no): #可以不填 </P><P> DNS
>>> Enter the DNS information here: 202.96.134.133 #本地电信提供的主域名服务器
>>> Enter the secondary DNS server address here: #本地电信提供的辅助域名服务器 </P><P> PASSWORD
>>> Please enter your PPPoE password:
>>> Please re-enter your PPPoE password: #密码 </P><P> FIREWALLING
0 - NONE: This script will not set any firewall rules. You are responsible
for ensuring the security of your machine. You are STRONGLY
recommended to use some kind of firewall rules.
1 - STANDALONE: Appropriate for a basic stand-alone web-surfing workstation
2 - MASQUERADE: Appropriate for a machine acting as an Internet gateway
for a LAN
>>> Choose a type of firewall (0-2): 0
防火墙设置,选择2可使主机设成局域网的internet网关,将客户机网关设为本机IP,DNS设为电信提供的DNS服务器IP即可上网了,它 是由 ipchains之ip伪装实现的,而rh7.2中的ipchains已经没有了ip_masq_ftp模块,所以客户机无法使用FTP 服务,因此我们在这里不用防火墙,选择0。在rh72中已经有了iptables,它是ipchains的替代品,功能也更为强大了,呆会儿我们写一个脚 本,用它来实现 ADSL共享。 </P><P>>>> Accept these settings and adjust configuration files (y/n)? y #保存设置 </P><P>4]接下来,我们编写一个 脚本/etc/rc.d/firewall
vi /etc/rc.d/firewall
#!/bin/sh
echo ”Start iptables rules…” /etc/rc.d/init.d/iptables stop
echo 1 > /proc/sys/net/ipv4/ip_forward
modprobe ip_tables
modprobe ip_nat_ftp
modprobe ip_conntrack
modprobe ip_conntrack_ftp </P><P>iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE </P><P>iptables -N mine
iptables -A mine -m state –state ESTABLISHED,RELATED -j ACCEPT
iptables -A mine -m state –state NEW -i ! ppp0 -j ACCEPT
//允许外部访问我的www服务器
iptables -A mine -p tcp –dport 80 -i ppp0 -j ACCEPT
//允许外部使用openssh服务,openssh相当于telnet,但是它的数据传输是加密的,
//所以更安全,强烈推荐使用。
iptables -A mine -p tcp –dport 22 -i ppp0 -j ACCEPT
//允许外部访问我的ftp服务器
iptables -A mine -p tcp –dport ftp -i ppp0 -j ACCEPT
iptables -A mine -p tcp –dport ftp-data -i ppp0 -j ACCEPT
//禁止外部ping我
iptables -A mine -p icmp –icmp-type echo-request -i ppp0 -j DROP
//
iptables -A mine -i ppp0 -m limit -j LOG –log-prefix ”Bad packet from ppp0:” iptables -A mine -i ! ppp0 -m limit -j LOG –log-prefix ”Bad packet not from ppp0:” iptables -A mine -j DROP </P><P>iptables -A INPUT -j mine
iptables -A FORWARD -j mine </P><P> //iptables功能十分强大,这里不作详解,使用方法请参考相关资料。 </P><P>5]将这个脚加入到 /etc/rc.d/rc.local里去,让它开机时自动运行。
chmod 700 /etc/rc.d/firewall #将firewall设为可执行文件
echo firewall >> /etc/rc.d/rc.local
当然也可以用vi编辑/etc/rc.d/rc.local文件,在尾部加入一行firewall即可。 </P> <P>6]chkconfig –level 3 iptables on #开机时启 动iptables </P><P>7]好,重启,用root登录系统
用adsl-start命令连接网络,几秒以后出现. Connected,OK,网络已经连通,好!我们来测试:前提:前面写的 防火墙脚本已经运行,内部局域网已经连通,DHCP服务已经运行,将客户端 tcp/ip设置为自动获取IP地址,其它的什么都不用填,重启登 录以后,试试www/ftp/qq等服务吧,速度奇快,爽死你,哈哈。 </P><P>8]存在的问题:
ping一下前面我们设置的域名服务器吧,ping [urlwww.cx.com[/url],你会发现ping不通,为什么呢? 你应该还记得我们在安装设置adsl的时候,填入了本地电信dns服务器地址,哈,就是它惹的祸。我们在运行adsl-start的时候,会调用adsl -connect脚本,而它会重写/etc/resolv.conf文件:
原来的:cat /etc/resolv.conf
domain cx.com
nameserver 10.10.1.0
现在的:cat /etc/resolv.conf
nameserver 202.96.134.133
在这种情况下DNS服务器要是运行起来了,那才稀奇了,呵呵。
解决方法:
修改/etc/resolv.conf文件:
vi /etc/resolv.conf
domain cx.com
nameserver 10.10.1.1
nameserver 202.96.134.133
修改/usr/sbin/adsl-connect脚本文件:
vi /usr/sbin/adsl-connect
找到下面几行,并将其注释掉:
—————————————————————————
if test ”$DNSTYPE” = ”SERVER” ; then
# Sorry, dude…
rm -f /etc/resolv.conf
ln -s /etc/ppp/resolv.conf /etc/resolv.conf
elif test ”$DNSTYPE” = ”SPECIFY” ; then
# Sorry, dude…
rm -f /etc/resolv.conf
echo ”nameserver $DNS1″ > /etc/resolv.conf
if test -n ”$DNS2″ ; then
echo ”nameserver $DNS2″ >> /etc/resolv.conf
fi
fi
——————————————————————— ——– </P><P>9]重启,ADSL连接成功,DNS服务器正常,OK,继续前进吧! </P><P>七、文件(打印)服务器、模拟NT域的实现。 </P><P>1]编辑 /etc/samba/smb.conf文件
vi /etc/samba/smb.conf
[global]
workgroup = CX #把它当成NT登录域吧
server string = Samba Server
netbios name = cxserver #服务器的netbios名字
hosts allow = 10.10.1. 10.10.2. 127. #只允许10.10.1.0、10.10.2.0网段访问
printcap name = /etc/printcap
load printers = yes
printing = lprng
log file = /var/log/samba/%m.log
max log size = 0
security = user #安全等级为user级,访问资源需要身份验证
encrypt passwords = yes
smb passwd file = /etc/samba/smbpasswd
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
domain master = yes
preferred master = yes
domain logons = yes #可以登录
dns proxy = no </P><P> [homes] #登录后可以看到用户home目录
comment = Home Directories
browseable = no
writable = yes
valid users = %S
create mode = 0664
directory mode = 0775
[printers] #若有打印机,在\\mineserver中可看到打印机,右键安装
comment = All Printers
path = /var/spool/samba
browseable = no
guest ok = no
writable = no
printable = yes </P><P> [public] #共享/mnt/data/public文件夹,共享名为public,admin组有写权限
comment = software
path = /mnt/data/public
public = yes
wirte list = @admin </P><P>2]用 testparm测试/etc/samba/smb.conf文件中语法是否正确 </P><P>3] /etc/rc.d/init.d/smb start启动服务,并用smbclient –L localhost测试 服务器是否正常,若是提示输入密码,回车以后看到服务器信息,则服务器正常。 </P><P>4]添加用户和组
useradd test
groupadd admin
gpasswd –a test admin </P><P>5]设置smb用户密码
smbpasswd –a test
输入密码并验证 </P><P>6]用setup之Printer configuration配 置一本地打印机,其过程请参考相关资料,这里不过多赘述。 </P><P>7]测试:
请设置windows机器的网络属性,登录方式为网络用户登录,直接登录到NT域,NT域为cx,重启后用前面添加的test帐号登录,密码 为smbpasswd –a test时设置的密码,进行系统后用控制面板之”用户及密码”可修改登录密码。
打开网上邻居,看是否能浏览到cxserver,亦可用\\cxserver访问。
最后设置:chkconfig –level 3 smb on #让smb开机自动运行 </P><P>八、磁盘配额 </P><P>前面我们在配置文件共享的时候,有 一个共享资源为homes,如aa登录,在\\cxserver中有一个aa文件夹,aa用户对这个文件夹具读写权限, </P> <P>如若我们不限制aa的话,他有可能会将硬盘塞满,任何一个管理员都不希望看到这种事情,下面我们用quota来实现对用户使用磁盘空间 的限制。 </P><P>1]首先明白一个概念,quota是针对分区的,所以我们在前面安装linux的时候单独分 了一个/home区。 </P><P>2]而所有的用户home目录都在/home下,现在开始在home目录下建立 两个文件:
cd /home
touch quota.user
touch quota.group
chmod 600 quota.user //只允许root对这两个文件读写
chmod 600 quota.group </P><P>3]在/etc/rc.d/rc.local文件尾部加入quota启动脚本:
if [ -x /sbin/quotacheck ]
then
echo ”Checking quotas. This may take some time…” /sbin/quotacheck -avug
echo ”Done” fi
if [ -x /sbin/quotaon ]
then
echo ”Turning on quota” /sbin/quotaon -avug
echo ”OK” fi </P><P>4]修改/etc/fstab文件中定义/home分区的那一行:
原内容: /dev/hda3 /home ext3 defaults 1 2
新内容: /dev/hda3 /home ext3 defaults,usrquota,grpquota 1 2
看得出来只是在defaults后面加了usrquota,grpquota而已。
注意啊,是usrquota而不是userquota,若是错了,后果难以预料。 </P><P>5]重启, 在启动过程中会出错,主要是因为quota在/home目录下打不到aquota.user和 aquota.group两个文件,没关系,咱 们进了系统以再慢慢收拾它。 </P><P>6]用root登录,然后我们生成aquota.user和 aquota.group两个文件:
convertquota -u /home
convertquota –g /home
若以上步骤不出错的话,我们用ls /home –al就会看到aquota.user,aquota.group两
个文件了 </P><P>7]再重启,注意观察,不会再出错了。进入系统后就可以对用户home目录进行限制了。比如现在有一个test用户,我们对他进行限制:
edquota –u test #此命令将进入一个vi编辑模式,其内容如下:
Filesystem blocks soft hard inodes soft hard
/dev/hda3 0 0 0 0 0 0
注解标识: A B C D E F
在讲解各参数之前先说说限制的两种方式:soft,hard
soft:又称软限制,当用户到达这个限制以后,系统会给予警告,但仍可写入。
hard:又称硬限制,到达这个限制,就完全禁止任何写入啦。
ABC为磁盘空间的限制设置,而DEF为总文件个数的限制
A:已使用空间,无需要设置
B:用户空间使用限制,为软限制,需要设置。
C:用户空间使用限制,为硬限制,需要设置。
D:已有文件总数,无需要设置。
E:文件总数限制,为软限制,需要设置。
F:文件总数限制,为硬限制,需要设置。 </P><P>我们要限制test用户使用空间100M,最多不能超过120M,文件总数为2000个,
最多不能超过2500个,设置如下:
Filesystem blocks soft hard inodes soft hard
/dev/hda3 0 102400 122880 0 2000 2500
注:空间限制是以k为单位的。 </P><P>8]测试:进入自己的home目录,然后拷贝文件,若是超过120M,就不允许再写入了。 </P><P>9]其它命令的使用:
复制相同调协至其它用户:
edquota –p test –u username1 username2 username3 username4……
显示某个用户当前磁盘使用情况:
quota –v username
显示所有用户当前磁盘使用情况:
repquota –a
其它的一些命令请参考相关资料。 </P><P>九、FTP服务器: </P> <P>Rh72自带了wu_ftp,但是由于其毛病不少,所以我们不用它,我们用性能及安全性能均优于它的 proftpd来代替 它。 </P><P>1]下载软件:ftp: //ftp.proftpd.org/distrib/source/proftpd- 1.2.5.tar.gz </P> <P>2]安装:
tar zxvf proftpd-1.2.5.tar.gz
cd proftpd-1.2.5
./configure –prefix=/usr/local/proftpd //指定安装在/usr/local/proftpd目录下
make
make install
cp contrib/dist/rpm/proftpd.init.d /etc/rc.d/init.d/proftpd
chmod 700 /etc/rc.d/init.d/proftpd
chkconfig –level 3 proftpd on //设置为系统自启动服务
cp /usr/local/proftpd/sbin/proftpd /usr/sbin //将proftpd拷至/usr/sbin目录下,让系
统能自动搜索到,也免得再去加一个搜索路径 </P><P>3]配置/usr/local/proftpd/etc/proftpd.conf文件:
vi /usr/local/proftpd.conf
ServerName ”Xchen FTP server” //服务器登录提示
ServerType standalone
DefaultServer on
Port 21
Umask 022
MaxInstances 30
User nobody
Group nobody //原来为nogroup,请改成nobody
RequireValidShell off //手动添加此名,重要
//限定test组用户只能访问自己的home目录,而不能向上浏览
DefaultRoot ~ test
//限定test组用户只能访问自己的/home/ftp目录,不能向上浏览
DefaultRoot ~/ftp test
//限定music组用户只能访问/home/music目录,不能向上浏览
DefaultRoot /home/ftp music
//除music组中bb用户外都能访问/home/music目录,不能向上浏览
DefaultRoot /home/ftp music,!bb
//上面组需要自己建立:groupadd test,gpasswd –a username test
ServerIdent off //登录时不显示版本信息
<Directory /*> AllowOverwrite on
</Directory> <Anonymous /home/ftp> // /home/ftp为匿名用户登录目录
User ftp
Group ftp
UserAlias anonymous ftp
MaxClients 10
DisplayLogin welcome.msg
DisplayFirstChdir .message
<Limit WRITE> DenyAll
</Limit> </Anonymous> </P><P>4]启动服 务:/etc/rc.d/init.d/proftpd start </P><P>5]测试,在客户端用 FTP软件或命令行FTP程序进行访问ftp.cx.com。 </P><P>6]proftpd技岂只此,还有很多 高级应用,请参考相关资料,这里就不多赘述。 </P><P>十、WWW服务 </P> <P>www服务用apache来实现,步骤极其简单,当然,这里说的是初级应用。因为我们要实现的是简单的www服务,所以只需更改下面几 个参数即可: </P><P>1]Vi /etc/httpd/conf/httpd.conf
ServerName www.cx.com
DocumentRoot ”/var/www” </P><P>2]拷贝网页文件到 /var/www目录 </P><P>3]启动服务:/etc/rc.d/init.d/httpd start
将 httpd设置为系统自启动服务:chkconfig –level 3 httpd on </P><P>4]测试:在ie中用http://www.cx.com测试。 </P><P>为什么把www服务讲得这么简单呢,主要是因为这种单一类型的网页文件服务用得较少,现在大多数都要 用cgi, asp,php,还有数据库等,关于这方面配置还请参考相关资料,这里不作详解。 </P>< P>十一、动态域名服务
动态域名这个叫法不大妥当,应该叫动态ip for 域名才对。到现在为止,ftp和www服务我们都实现了,在局域网 内可以用www.cx.com来访问,但是我们已经用ADSL连通了internet,我们怎样让外部访问我们的ftp,www服务器呢,总不成每都通知 对方服务器的IP吧,所以就要用到动态域名服务,大致原理是每次ADSL拔号时将自身 IP更新到外部DNS服务器数据库中所对应的那个域名, 所以我们每次访问这个域名就可以了,在这里讨论一下www.3322.org提供的动态服务的实现。
1]登录www.3322.org网站,注册一个用户,并申请一个动态域名xxxx.3322.org。
2]下载linux客户端软件:
http://www.3322.org/dyndnspage/ez-ipupdate-3.0.10-linux-i386.tgz
3]安装软件:
tar zxvf ez-ipupdate-3.0.10-linux-i386.tgz
mv ez-ipupdate-3.0.10-linux-i386 /usr/local/ezip
4]编辑/usr/local/ezip/qdns.conf文件:
vi /usr/local/qdns.conf
service-type=qdns
user=username:password //用户名及密码,用冒号隔开
host=xxxxx.3322.org //你申请的域名
interface=ppp0 //接口为ppp0
max-interval=2073600
cache-file=/tmp/ez-ipupdate.cache </P><P>5]将当前ip现新到我们申请的域名:
cd /usr/local/ezip
ez-ipupdate –c qdns.conf
系统会提示数据更新成功,好,我们来ping一下xxxx.3322.org,哈,果然是ppp0
的 IP,再用http://xxx.3322.org试一下,一切OK,爽。 </P><P> 6]问题又来了,难道我们每次启动ADSL都要用手动更新一次吗,你可能会想到用crontab让它每隔几分钟更新一次,建议不错,不过为了ip更新而启 用crond服务
似乎有点小题大做,我的方法,修改/usr/sbin/adsl-start脚本:
vi /usr/sbin/adsl-start
找到倒数25行”tty –s && $ECHO “ Connected ! “,在其下增加一行:
/usr/local/ezip/ez-ipupdate –c /usr/local/ezip/qdns.conf
存盘退出,OK,我们让ADSL拔号完成以后自动更新,爽吧! </P><P>7]测试一下:
adsl-start
. Connected!
ez-ipupdate Version 3.0.10
Copyright (C) 1999-2000 Angus Mackay.
connected to members.3322.org (202.108.36.139) on port 80.
request successful
OK,数据更新成功。 </P><P>好,现在你随时随地都可以用xxxx.3322.org访问你的服务了,不错吧。 </P><P> 十二、openssh的设置
如果你在家里或者其它地方,怎样控制你的服务器,你可能会想到用telnet,本来是可以的,但是由于telnet用的是明码传输,容易给那些不 怀好意者可乘之机,所以我们用openssh来代替telnet。 </P><P>1]卸载原来的2.9x版, 2.9x版有bug,不安全:
rpm –e openssh </P><P>2]最新软件包下载: </P><P>ftp://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh -3.4p1.tar.gz </P><P>3]安装软件:
tar zxvf openssh-3.4p1.tar.gz
cd openssh-3.41
./configure –prefix=/usr/local/ssh \
–sysconfdir=/etc/ssh \
–with-tcp-wrappers \
–with-ipv4-default \
–with-md5-passwords
make
make install
注:安装完成以后,会自动生成主机密钥,还会提示需要sshd用户帐号,可用useradd加一个sshd用户。
install /contrib/redhat/sshd.pam /etc/pam.d/sshd
cp contrib/redhat/sshd.init /etc/rc.d/init.d/sshd
chkconfig –level 3 sshd on ;配置成系统服务 </P><P>4]配置openssh之/etc/ssh/ssh_config文件
vi /etc/ssh/ssh_config
Host *
ForwardAgent no
ForwardX11 no
RhostsAuthentication no
RhostsRSAAuthentication no
RSAAuthentication yes
PasswordAuthentication yes
BatchMode no
CheckHostIP yes
StrictHostKeyChecking ask
IdentityFile ~/.ssh/identity
Port 22
Cipher 3des
EscapeChar ~ </P><P>5]配置openssh之/etc/ssh/sshd_config文件
vi /etc/ssh/sshd_config
Port 22
ListenAddress 0.0.0.0
ListenAddress ::
HostKey /etc/ssh/ssh_host_key
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_dsa_key
KeyRegenerationInterval 3600
ServerKeyBits 768
SyslogFacility AUTH
LogLevel INFO
LoginGraceTime 600
#PermitRootLogin yes #还是不要让root直接登录为妙!
StrictModes yes
RSAAuthentication yes
PubkeyAuthentication yes
RhostsAuthentication no
IgnoreRhosts yes
RhostsRSAAuthentication no
HostbasedAuthentication no
IgnoreUserKnownHosts no
PasswordAuthentication yes
PermitEmptyPasswords no
Subsystem sftp /usr/local/ssh/libexec/sftp-server </P><P>6]配置用户的加密密钥
useradd test
passwd test
su test
ssh-keygen -d
出现提示请回车并输入passwd,再次输入passwd。
注:这个密码是系统加密运算时用到的,登录时还用原来密码。 </P><P>7]启动服务
/etc/rc.d/init.d/sshd start </P><P>8]在客户端用test 帐号进行测试。 </P><P> Q:关于smb服务的文章 </P>< P>samba的有关配置
安装篇(只讲rpm的安装):
首先用rpm -q samba
如果有提示安装了
就不用装了.如果没装就用
rpm -ivh samba*.rpm
把smb装上
samba-2.2.3a-6.i386.rpm
samba-client-2.2.3a-6.i386.rpm
samba-common-2.2.3a-6.i386.rpm
samba-swat-2.2.3a-6.i386.rpm
其中samba-swat-2.2.3a-6.i386.rpm可装可不装
设置篇:
要启动smb需要设置/etc/samba/smb.conf
设置一些简单的
(你可以把原有的smb.conf内容全删了.然后用vi新建一个smb.conf.写入以下内容)
[global]
workgroup=samba
security=share
# the first share dir
[test]
guest ok =yes
path=/home/test
writable=no
写完后用下面的命令重启smb(启动前可以用testparm来测试一下smb.conf文件也行)
testparm </P><P>然后再:
/etc/rc.d/init.d/smb start </P><P>这样就完成了第一个目录的共享.想要此目录能让别人写入.还需要键入一个命令
chmod 777 /home/test/ </P><P>要让此smb服务开机就运行.键入:
chkconfig –level 3 smb on
或是用ntsysv进入把smb这项服务选中.让它开机直接运行. </P><P>进一步设置smb.conf </P><P>[global]
workgroup=samba
security=share
server string = samba server
log file =/var/log/samba/log.%m
max log size=1000
encrypt passwords=yes
smb passwd file = /etc/samba/smbpasswd
# 开始设置个人共享目录
[first]
guest ok =yes
path=/home/test/
writable=yes </P><P>[zq]
#注解此目录由谁访问
comment=dir for zq
#路径
path=/home/zq
#是否可写
writable=yes
只允许zq这个用户使用
valid users=zq </P><P>[zzm]
comment=dir for zzm
path=/home/zzm
writable=yes
valid users=zzm </P><P>然后要建立一个samba的密码文件 </P><P>[root@linuxsmb samba]# cat /etc/passwd | mksmbpasswd.sh > /etc/samba/smbpasswd
[root@linuxsmb samba]# chmod 600 /etc/samba/smbpasswd (此步是为了不让别人取得这个密码) </P><P>重启smb
/etc/rc.d/init.d/smb start </P><P>再建立smb用户的密码
[root@linuxsmb samba]# smbpasswd zq
[root@linuxsmb samba]# smbpasswd zzm
(当然.前提需要系统里有这两个用户.)
好了.到此为止share级的SMB就做好了 </P><P>再讲user安全级的smb </P><P>只需要把
security=share
改为security=user
然后重启smb
这时要访问samba就要密码了
(这步我没有试) </P><P>再讲server安全级的smb
security=server
然后再加一句
password server = servername #此句的意思是设定要验证密码的主机名是 servername </P><P>smb passwd file=/etc/remotesmbpasswd #指定passwd server存放密码文件的位置
如果是NT主机验证密码就不用这行 </P><P> 再讲domain安全级的smb </P><P>要装smb服务器加入到win2000域中
执行:
smbpasswd -j samba -r dc_machine
这里的samba指要加入的主机名,dc指域控制器的主机名
然后修改smb.conf
workgroup=samba #要加入的工作组名
security=doman
password server=dc_machine
Q: Linux服务器的一些基本应用 </P><P><font color= red>声明:本文由xchen兄[cdcxx@etang.com]所有,任何人转帖必须注明原创作者Xchen兄的大名及电子信箱,其次也要注 明来源于www.linuxsir.com。我原来说过“如果你不认同本站对您有什么帮助,您可以不注明来源”,可以不注明来源于本站,但现在看起来还有 点问题,因为我在别的网站上看到来源于本论坛的原创作品,并没有把作者的大名说上。所以从今天开始,为了表达LinuxSir对原创作者的敬意,也为了防 止类似情况的发生,我觉得还是有必要把我原来说过的话收回来。这样有利于通过来源,真正知道谁才是真正原创作者。
尊重他人就是尊重自己!!!!!
</font> </P><P>致谢:多谢xchen兄[cdcxx@etang.com]为弟 兄们传道,授业,解惑! </P><P> ***************************************************************** < /P><P> Linux 服务器的一些基本应用 作者:Xchen [cdcxx@etang.com] 2002.8 </P><P> *****************************************************************
玩linux也有有一段时间了,作为一个初学者,遇到的麻烦实在不少。所幸这是个网络时代,在众多好心大哥帮助下,我跛子般一关一关闯了过来, 其间酸甜苦辣实在让人回味。向这世界上千千万万伟大的linux程序员致敬,是他们让我们能有这么优秀的操作系统可用。这篇东西主要是给刚接触linux 的而又急切想配一个服务器的朋友看的,由于鄙人水平有限,错误有所难免,欢迎大家指证。
现就以本公司的网络架构为例,来说一下linux服务器的配置。在正式配置之前先说一下这个服务器所要实现的功能: </P><P>1. 数据共享
2. 打印共享
3. 模拟NT域
4. ADSL共享
5. 内部DNS服务
6. DHCP服务
7. FTP服务
8. WWW服务
9. OPENSSH
10. 磁盘配额
11. 动态域名 </P><P>网络架构如下:[如下图] </P> <P>http://www.linuxsir.org/photo/Xchen.gif </P><P> Network:10.10.0.0
Server IP:10.10.1.1
Server Subnet-mask:255.255.0.0
Client IP:10.10.1.10-10.10.1.100
Client Subnet-mask:255.255.0.0
Client getway:10.10.1.1
Client DNS:10.10.1.2,202.96.134.133 </P><P>一、准 备工作: </P><P>1. RedHat linux 7.2光盘一套
2. 以太ADSL拔号器及您的ADSL接入帐号
3. 两张网卡,最好是即插即用的,免跳线的请察明irq和io。
4. 当然啦,除本机以外的其它机器 </P><P>二、 RedHat linux 7.2安装: </P><P>1.初学者建议用图形界面,请用定制安装。 < /P><P>2系统分区如下(10G):
swap:500M
/:2G
/var:1G
/home:2G
/tools:500M
/data:4G
分区的合理化请参考相关文章。 </P><P>3.若是即插用网卡,系统能检测到,请设置好ip地址,子网掩 码等,请分别设为10.10.1.1和 10.10.1.2,subnet-mask为255.255.0.0;若是免跳线网卡,那就等装好系 统再设置吧。 </P><P>4.软件包选择,要全选上也没关系,只要你有空间,若是空间有限有话,不妨定制一下软件 包,下面是我的选择,仅供参考:
Printing Support
Network Support
Dialup Support
SMB:windows file server
WWW:web server
DNSNS name server
Software Development </P><P>5.好了,现在就next一路安装下去 吧,最后不要忘了做一张启动盘。 </P><P>三、linux网络环境配置 </P> <P>1]重启机器进入系统以后,去掉一些不必要的服务吧,留着它们启动速度慢,而且也不安全,下面是我机器刚安装好以后所保留的一些服务:
gpm/iptables/netfs/network/nfs/nfslock/portmap/syslog/xfs/xinetd
至其它的服务,等我们配置好再加载吧。 </P><P>2]安装linuxconf,配置网络。
放入光盘1
mount /dev/cdrom /mnt/cdrom
cd /mnt/cdrom/RedHat/RPMS
rpm –ivh linuxconf-1.25r7-3.i386.rpm
请用setup/system services或是chkconfig –levlel 3 linuxconf on将linuxconf设置为系统自启动服务。
netconf选择Host name and IP network devices进行主机名及网络设置:
Host name + domain:cxserver
——第一张网卡———-
config mode:Manual
primary name + domain:abc
Ip address:10.10.1.2
Netmask:255.255.0.0
Net device:eth0
Kernel Module:ne
I/O port:0×300
Irq:3
——第二张网卡———-
config mode:Manual
primary name + domain:cxserver
Ip address:10.10.1.1
Netmask:255.255.0.0
Net device:eth0
Kernel Module:ne
I/O port:0×320
Irq:5
选择Accept退出,重新启动就会看到eth0和eth1两网卡启动成功,进入系统后可用ifconfig命令查看状态,用ping命令测试其 连通性,比如ping一部windows机器。 </P><P>四、DNS服务器配置 < /P><P>为了让局域网内部用户访问服务器方便一点,配置一个DNS服务器是十分有必要的,毕竟一个名字总比一串数字好记,下面我将 服务器10.10.1.1配一个域名www.cx.com,ftp.cx.com,好,开始行动:
需要配置的文件:
/etc/named.conf
/etc/resolv.conf
/var/named/named.hosts
/var/named/named.local
/var/named/named.10.10 </P><P>1]配置/etc/named.conf文件。此文件是dns引导文件,named进程在启动时要读取它。
vi /etc/named.conf
// generated by named-bootconf.pl
options {
directory ”/var/named”;
// query-source address * port 53;
}; </P><P> zone ”.” IN {
type hint;
file ”named.ca”;
};
//———————-手工添加如下两节——————————
zone ”cx.com” IN {
type master;
file ”named.hosts”;
}; </P><P> zone ”10.10.in-addr.arpa” IN {
type master;
file ”named.10.10″;
};
//——————————————————————————
zone ”0.0.127.in-addr.arpa” IN {
type master;
file ”named.local”;
}; </P><P>// include ”/etc/rndc.key”; </P><P>以下的三个文件是DNS数据库文件,具体参数不作详解,请参考相关资料。 </P> <P>2]vi /var/named/named.local </P><P>$TTL 86400
@ IN SOA ns.cx.com. root.ns.cx.com. (
1997022700 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400 ) ; Minimum
IN NS ns.cx.com. </P><P> 1 IN PTR localhost. </P><P>3]vi /var/named/named.hosts
@ IN SOA ns.cx.com. root.ns.cx.com. (
2002042302; serial
28800; refresh
14400; retry
3600000; expire
86400; minimu
)
IN NS ns.cx.com.
cx IN A 10.10.1.1
cx1 IN A 10.10.1.223
www IN CNAME ns.cx.com.
ftp IN CNAME cx </P><P>4]vi /var/named/named.10.10
@ IN SOA ns.cx.com. root.ns.cx.com. (
2002042302; serial
28800; refresh
14400; retry
3600000; expire
86400; minimu
)
IN NS ns.cx.com.
1 IN PTR ns.cx.com.
2 IN PTR ns1.cx.com. </P><P>5]编辑/etc/resolv.conf文件
vi /etc/resolv.conf
domain cx.com
nameserver 10.10.1.1 </P><P>好,让我们来启动服务吧:
/etc/rc.d/init.d/named start
chkconfig –level 3 named on #将dns服务设置成系统服务,开机自启动
测试:ping cx.cx.com
ping www.cx.com
ping ftp.cx.com
或用nslookup,用法请参考nslookup –help。 </P><P>五、 DHCP服务器配置 </P><P>1]安装dhcp。
放入光盘1或是光盘2
mount /dev/cdrom /mnt/cdrom
cd /mnt/cdrom/RedHat/RPMS
rpm –ivh dhcp-2.0p15-8.i386.rpm
请用setup/system services或是chkconfig –levlel 3 linuxconf on将linuxconf设置为系统自启动服务。 </P><P>2]配置 dhcpd.conf文件。
Vi /etc/dhcpd.conf
subnet 10.10.0.0 netmask 255.255.0.0{
range dynamic-bootp 10.10.2.0 10.10.2.100; #IP地址分配范围
option routers 10.10.1.1; #默认网关
option subnet-mask 255.255.0.0; #默认子网掩码
option domain-name ”cx.com”; #默认域名
option domain-name-servers 10.10.1.1,202.96.134.133;
}
#最后一行:DNS服务器设置,之所以把10.10.1.1放在前面是想让客户机在作域名解析的时候优先选择内部dns服务器,若域名不能解析, 则用下一个 dns服务器解析,202.96.134.133是深圳地区ADSL上网用户主DNS服务器.用下一个dns服务器解析, 202.96.134.133是深圳地区ADSL上网用户主DNS服务器。 </P><P>3]启动服务: /etc/rc.d/init.d/dhcpd start </P><P>4]使用:不论Win9x还是 2K都使用自动获取IP地址,其它什么都不用设。 </P><P>六、 ADSL及防火墙配置 </P><P>1]下载软件:http://www.roaringpenguin.com/pppoe/rp-pppoe- 3.5.tar.gz </P><P>2]安装软件:
tar zxvf rp-pppoe-3.5.tar.gz
cd rp-pppoe-3.5
./go #开始安装软件 </P><P>3]软件安装好后,会运行设置程序adsl-setup
USER NAME
>>> Enter your PPPoE user name (XXX):________ #此处填写ADSL用户帐号 </P><P> INTERFACE
(default eth0):_____ #以太接口,eth0或者eth1 </P> <P> >>> Enter the demand value (default no): #可以不填 </P><P> DNS
>>> Enter the DNS information here: 202.96.134.133 #本地电信提供的主域名服务器
>>> Enter the secondary DNS server address here: #本地电信提供的辅助域名服务器 </P><P> PASSWORD
>>> Please enter your PPPoE password:
>>> Please re-enter your PPPoE password: #密码 </P><P> FIREWALLING
0 - NONE: This script will not set any firewall rules. You are responsible
for ensuring the security of your machine. You are STRONGLY
recommended to use some kind of firewall rules.
1 - STANDALONE: Appropriate for a basic stand-alone web-surfing workstation
2 - MASQUERADE: Appropriate for a machine acting as an Internet gateway
for a LAN
>>> Choose a type of firewall (0-2): 0
防火墙设置,选择2可使主机设成局域网的internet网关,将客户机网关设为本机IP,DNS设为电信提供的DNS服务器IP即可上网了,它 是由 ipchains之ip伪装实现的,而rh7.2中的ipchains已经没有了ip_masq_ftp模块,所以客户机无法使用FTP 服务,因此我们在这里不用防火墙,选择0。在rh72中已经有了iptables,它是ipchains的替代品,功能也更为强大了,呆会儿我们写一个脚 本,用它来实现 ADSL共享。 </P><P>>>> Accept these settings and adjust configuration files (y/n)? y #保存设置 </P><P>4]接下来,我们编写一个 脚本/etc/rc.d/firewall
vi /etc/rc.d/firewall
#!/bin/sh
echo ”Start iptables rules…” /etc/rc.d/init.d/iptables stop
echo 1 > /proc/sys/net/ipv4/ip_forward
modprobe ip_tables
modprobe ip_nat_ftp
modprobe ip_conntrack
modprobe ip_conntrack_ftp </P><P>iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE </P><P>iptables -N mine
iptables -A mine -m state –state ESTABLISHED,RELATED -j ACCEPT
iptables -A mine -m state –state NEW -i ! ppp0 -j ACCEPT
//允许外部访问我的www服务器
iptables -A mine -p tcp –dport 80 -i ppp0 -j ACCEPT
//允许外部使用openssh服务,openssh相当于telnet,但是它的数据传输是加密的,
//所以更安全,强烈推荐使用。
iptables -A mine -p tcp –dport 22 -i ppp0 -j ACCEPT
//允许外部访问我的ftp服务器
iptables -A mine -p tcp –dport ftp -i ppp0 -j ACCEPT
iptables -A mine -p tcp –dport ftp-data -i ppp0 -j ACCEPT
//禁止外部ping我
iptables -A mine -p icmp –icmp-type echo-request -i ppp0 -j DROP
//
iptables -A mine -i ppp0 -m limit -j LOG –log-prefix ”Bad packet from ppp0:” iptables -A mine -i ! ppp0 -m limit -j LOG –log-prefix ”Bad packet not from ppp0:” iptables -A mine -j DROP </P><P>iptables -A INPUT -j mine
iptables -A FORWARD -j mine </P><P> //iptables功能十分强大,这里不作详解,使用方法请参考相关资料。 </P><P>5]将这个脚加入到 /etc/rc.d/rc.local里去,让它开机时自动运行。
chmod 700 /etc/rc.d/firewall #将firewall设为可执行文件
echo firewall >> /etc/rc.d/rc.local
当然也可以用vi编辑/etc/rc.d/rc.local文件,在尾部加入一行firewall即可。 </P> <P>6]chkconfig –level 3 iptables on #开机时启 动iptables </P><P>7]好,重启,用root登录系统
用adsl-start命令连接网络,几秒以后出现. Connected,OK,网络已经连通,好!我们来测试:前提:前面写的 防火墙脚本已经运行,内部局域网已经连通,DHCP服务已经运行,将客户端 tcp/ip设置为自动获取IP地址,其它的什么都不用填,重启登 录以后,试试www/ftp/qq等服务吧,速度奇快,爽死你,哈哈。 </P><P>8]存在的问题:
ping一下前面我们设置的域名服务器吧,ping [urlwww.cx.com[/url],你会发现ping不通,为什么呢? 你应该还记得我们在安装设置adsl的时候,填入了本地电信dns服务器地址,哈,就是它惹的祸。我们在运行adsl-start的时候,会调用adsl -connect脚本,而它会重写/etc/resolv.conf文件:
原来的:cat /etc/resolv.conf
domain cx.com
nameserver 10.10.1.0
现在的:cat /etc/resolv.conf
nameserver 202.96.134.133
在这种情况下DNS服务器要是运行起来了,那才稀奇了,呵呵。
解决方法:
修改/etc/resolv.conf文件:
vi /etc/resolv.conf
domain cx.com
nameserver 10.10.1.1
nameserver 202.96.134.133
修改/usr/sbin/adsl-connect脚本文件:
vi /usr/sbin/adsl-connect
找到下面几行,并将其注释掉:
—————————————————————————
if test ”$DNSTYPE” = ”SERVER” ; then
# Sorry, dude…
rm -f /etc/resolv.conf
ln -s /etc/ppp/resolv.conf /etc/resolv.conf
elif test ”$DNSTYPE” = ”SPECIFY” ; then
# Sorry, dude…
rm -f /etc/resolv.conf
echo ”nameserver $DNS1″ > /etc/resolv.conf
if test -n ”$DNS2″ ; then
echo ”nameserver $DNS2″ >> /etc/resolv.conf
fi
fi
——————————————————————— ——– </P><P>9]重启,ADSL连接成功,DNS服务器正常,OK,继续前进吧! </P><P>七、文件(打印)服务器、模拟NT域的实现。 </P><P>1]编辑 /etc/samba/smb.conf文件
vi /etc/samba/smb.conf
[global]
workgroup = CX #把它当成NT登录域吧
server string = Samba Server
netbios name = cxserver #服务器的netbios名字
hosts allow = 10.10.1. 10.10.2. 127. #只允许10.10.1.0、10.10.2.0网段访问
printcap name = /etc/printcap
load printers = yes
printing = lprng
log file = /var/log/samba/%m.log
max log size = 0
security = user #安全等级为user级,访问资源需要身份验证
encrypt passwords = yes
smb passwd file = /etc/samba/smbpasswd
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
domain master = yes
preferred master = yes
domain logons = yes #可以登录
dns proxy = no </P><P> [homes] #登录后可以看到用户home目录
comment = Home Directories
browseable = no
writable = yes
valid users = %S
create mode = 0664
directory mode = 0775
[printers] #若有打印机,在\\mineserver中可看到打印机,右键安装
comment = All Printers
path = /var/spool/samba
browseable = no
guest ok = no
writable = no
printable = yes </P><P> [public] #共享/mnt/data/public文件夹,共享名为public,admin组有写权限
comment = software
path = /mnt/data/public
public = yes
wirte list = @admin </P><P>2]用 testparm测试/etc/samba/smb.conf文件中语法是否正确 </P><P>3] /etc/rc.d/init.d/smb start启动服务,并用smbclient –L localhost测试 服务器是否正常,若是提示输入密码,回车以后看到服务器信息,则服务器正常。 </P><P>4]添加用户和组
useradd test
groupadd admin
gpasswd –a test admin </P><P>5]设置smb用户密码
smbpasswd –a test
输入密码并验证 </P><P>6]用setup之Printer configuration配 置一本地打印机,其过程请参考相关资料,这里不过多赘述。 </P><P>7]测试:
请设置windows机器的网络属性,登录方式为网络用户登录,直接登录到NT域,NT域为cx,重启后用前面添加的test帐号登录,密码 为smbpasswd –a test时设置的密码,进行系统后用控制面板之”用户及密码”可修改登录密码。
打开网上邻居,看是否能浏览到cxserver,亦可用\\cxserver访问。
最后设置:chkconfig –level 3 smb on #让smb开机自动运行 </P><P>八、磁盘配额 </P><P>前面我们在配置文件共享的时候,有 一个共享资源为homes,如aa登录,在\\cxserver中有一个aa文件夹,aa用户对这个文件夹具读写权限, </P> <P>如若我们不限制aa的话,他有可能会将硬盘塞满,任何一个管理员都不希望看到这种事情,下面我们用quota来实现对用户使用磁盘空间 的限制。 </P><P>1]首先明白一个概念,quota是针对分区的,所以我们在前面安装linux的时候单独分 了一个/home区。 </P><P>2]而所有的用户home目录都在/home下,现在开始在home目录下建立 两个文件:
cd /home
touch quota.user
touch quota.group
chmod 600 quota.user //只允许root对这两个文件读写
chmod 600 quota.group </P><P>3]在/etc/rc.d/rc.local文件尾部加入quota启动脚本:
if [ -x /sbin/quotacheck ]
then
echo ”Checking quotas. This may take some time…” /sbin/quotacheck -avug
echo ”Done” fi
if [ -x /sbin/quotaon ]
then
echo ”Turning on quota” /sbin/quotaon -avug
echo ”OK” fi </P><P>4]修改/etc/fstab文件中定义/home分区的那一行:
原内容: /dev/hda3 /home ext3 defaults 1 2
新内容: /dev/hda3 /home ext3 defaults,usrquota,grpquota 1 2
看得出来只是在defaults后面加了usrquota,grpquota而已。
注意啊,是usrquota而不是userquota,若是错了,后果难以预料。 </P><P>5]重启, 在启动过程中会出错,主要是因为quota在/home目录下打不到aquota.user和 aquota.group两个文件,没关系,咱 们进了系统以再慢慢收拾它。 </P><P>6]用root登录,然后我们生成aquota.user和 aquota.group两个文件:
convertquota -u /home
convertquota –g /home
若以上步骤不出错的话,我们用ls /home –al就会看到aquota.user,aquota.group两
个文件了 </P><P>7]再重启,注意观察,不会再出错了。进入系统后就可以对用户home目录进行限制了。比如现在有一个test用户,我们对他进行限制:
edquota –u test #此命令将进入一个vi编辑模式,其内容如下:
Filesystem blocks soft hard inodes soft hard
/dev/hda3 0 0 0 0 0 0
注解标识: A B C D E F
在讲解各参数之前先说说限制的两种方式:soft,hard
soft:又称软限制,当用户到达这个限制以后,系统会给予警告,但仍可写入。
hard:又称硬限制,到达这个限制,就完全禁止任何写入啦。
ABC为磁盘空间的限制设置,而DEF为总文件个数的限制
A:已使用空间,无需要设置
B:用户空间使用限制,为软限制,需要设置。
C:用户空间使用限制,为硬限制,需要设置。
D:已有文件总数,无需要设置。
E:文件总数限制,为软限制,需要设置。
F:文件总数限制,为硬限制,需要设置。 </P><P>我们要限制test用户使用空间100M,最多不能超过120M,文件总数为2000个,
最多不能超过2500个,设置如下:
Filesystem blocks soft hard inodes soft hard
/dev/hda3 0 102400 122880 0 2000 2500
注:空间限制是以k为单位的。 </P><P>8]测试:进入自己的home目录,然后拷贝文件,若是超过120M,就不允许再写入了。 </P><P>9]其它命令的使用:
复制相同调协至其它用户:
edquota –p test –u username1 username2 username3 username4……
显示某个用户当前磁盘使用情况:
quota –v username
显示所有用户当前磁盘使用情况:
repquota –a
其它的一些命令请参考相关资料。 </P><P>九、FTP服务器: </P> <P>Rh72自带了wu_ftp,但是由于其毛病不少,所以我们不用它,我们用性能及安全性能均优于它的 proftpd来代替 它。 </P><P>1]下载软件:ftp: //ftp.proftpd.org/distrib/source/proftpd- 1.2.5.tar.gz </P> <P>2]安装:
tar zxvf proftpd-1.2.5.tar.gz
cd proftpd-1.2.5 ./configure –prefix=/usr/local/proftpd //指定安装在/usr/local/proftpd目录下
make
make install
cp contrib/dist/rpm/proftpd.init.d /etc/rc.d/init.d/proftpd
chmod 700 /etc/rc.d/init.d/proftpd
chkconfig –level 3 proftpd on //设置为系统自启动服务
cp /usr/local/proftpd/sbin/proftpd /usr/sbin //将proftpd拷至/usr/sbin目录下,让系
统能自动搜索到,也免得再去加一个搜索路径 </P><P>3]配置/usr/local/proftpd/etc/proftpd.conf文件:
vi /usr/local/proftpd.conf
ServerName ”Xchen FTP server” //服务器登录提示
ServerType standalone
DefaultServer on
Port 21
Umask 022
MaxInstances 30
User nobody
Group nobody //原来为nogroup,请改成nobody
RequireValidShell off //手动添加此名,重要
//限定test组用户只能访问自己的home目录,而不能向上浏览
DefaultRoot ~ test
//限定test组用户只能访问自己的/home/ftp目录,不能向上浏览
DefaultRoot ~/ftp test
//限定music组用户只能访问/home/music目录,不能向上浏览
DefaultRoot /home/ftp music
//除music组中bb用户外都能访问/home/music目录,不能向上浏览
DefaultRoot /home/ftp music,!bb
//上面组需要自己建立:groupadd test,gpasswd –a username test
ServerIdent off //登录时不显示版本信息
<Directory /*> AllowOverwrite on
</Directory> <Anonymous /home/ftp> // /home/ftp为匿名用户登录目录
User ftp
Group ftp
UserAlias anonymous ftp
MaxClients 10
DisplayLogin welcome.msg
DisplayFirstChdir .message
<Limit WRITE> DenyAll
</Limit> </Anonymous> </P><P>4]启动服 务:/etc/rc.d/init.d/proftpd start </P><P>5]测试,在客户端用 FTP软件或命令行FTP程序进行访问ftp.cx.com。 </P><P>6]proftpd技岂只此,还有很多 高级应用,请参考相关资料,这里就不多赘述。 </P><P>十、WWW服务 </P> <P>www服务用apache来实现,步骤极其简单,当然,这里说的是初级应用。因为我们要实现的是简单的www服务,所以只需更改下面几 个参数即可: </P><P>1]Vi /etc/httpd/conf/httpd.conf
ServerName www.cx.com
DocumentRoot ”/var/www” </P><P>2]拷贝网页文件到 /var/www目录 </P><P>3]启动服务:/etc/rc.d/init.d/httpd start
将 httpd设置为系统自启动服务:chkconfig –level 3 httpd on </P><P>4]测试:在ie中用http://www.cx.com测试。 </P><P>为什么把www服务讲得这么简单呢,主要是因为这种单一类型的网页文件服务用得较少,现在大多数都要 用cgi, asp,php,还有数据库等,关于这方面配置还请参考相关资料,这里不作详解。 </P>< P>十一、动态域名服务
动态域名这个叫法不大妥当,应该叫动态ip for 域名才对。到现在为止,ftp和www服务我们都实现了,在局域网 内可以用www.cx.com来访问,但是我们已经用ADSL连通了internet,我们怎样让外部访问我们的ftp,www服务器呢,总不成每都通知 对方服务器的IP吧,所以就要用到动态域名服务,大致原理是每次ADSL拔号时将自身 IP更新到外部DNS服务器数据库中所对应的那个域名, 所以我们每次访问这个域名就可以了,在这里讨论一下www.3322.org提供的动态服务的实现。
1]登录www.3322.org网站,注册一个用户,并申请一个动态域名xxxx.3322.org。
2]下载linux客户端软件:
http://www.3322.org/dyndnspage/ez-ipupdate-3.0.10-linux-i386.tgz
3]安装软件:
tar zxvf ez-ipupdate-3.0.10-linux-i386.tgz
mv ez-ipupdate-3.0.10-linux-i386 /usr/local/ezip
4]编辑/usr/local/ezip/qdns.conf文件:
vi /usr/local/qdns.conf
service-type=qdns
user=username:password //用户名及密码,用冒号隔开
host=xxxxx.3322.org //你申请的域名
interface=ppp0 //接口为ppp0
max-interval=2073600
cache-file=/tmp/ez-ipupdate.cache </P><P>5]将当前ip现新到我们申请的域名:
cd /usr/local/ezip
ez-ipupdate –c qdns.conf
系统会提示数据更新成功,好,我们来ping一下xxxx.3322.org,哈,果然是ppp0
的 IP,再用http://xxx.3322.org试一下,一切OK,爽。 </P><P> 6]问题又来了,难道我们每次启动ADSL都要用手动更新一次吗,你可能会想到用crontab让它每隔几分钟更新一次,建议不错,不过为了ip更新而启 用crond服务
似乎有点小题大做,我的方法,修改/usr/sbin/adsl-start脚本:
vi /usr/sbin/adsl-start
找到倒数25行”tty –s && $ECHO “ Connected ! “,在其下增加一行:
/usr/local/ezip/ez-ipupdate –c /usr/local/ezip/qdns.conf
存盘退出,OK,我们让ADSL拔号完成以后自动更新,爽吧! </P><P>7]测试一下:
adsl-start
. Connected!
ez-ipupdate Version 3.0.10
Copyright (C) 1999-2000 Angus Mackay.
connected to members.3322.org (202.108.36.139) on port 80.
request successful
OK,数据更新成功。 </P><P>好,现在你随时随地都可以用xxxx.3322.org访问你的服务了,不错吧。 </P><P> 十二、openssh的设置
如果你在家里或者其它地方,怎样控制你的服务器,你可能会想到用telnet,本来是可以的,但是由于telnet用的是明码传输,容易给那些不 怀好意者可乘之机,所以我们用openssh来代替telnet。 </P><P>1]卸载原来的2.9x版, 2.9x版有bug,不安全:
rpm –e openssh </P><P>2]最新软件包下载: </P><P>ftp://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh -3.4p1.tar.gz </P><P>3]安装软件:
tar zxvf openssh-3.4p1.tar.gz
cd openssh-3.41
./configure –prefix=/usr/local/ssh \
–sysconfdir=/etc/ssh \
–with-tcp-wrappers \
–with-ipv4-default \
–with-md5-passwords
make
make install
注:安装完成以后,会自动生成主机密钥,还会提示需要sshd用户帐号,可用useradd加一个sshd用户。
install /contrib/redhat/sshd.pam /etc/pam.d/sshd
cp contrib/redhat/sshd.init /etc/rc.d/init.d/sshd
chkconfig –level 3 sshd on ;配置成系统服务 </P><P>4]配置openssh之/etc/ssh/ssh_config文件
vi /etc/ssh/ssh_config
Host *
ForwardAgent no
ForwardX11 no
RhostsAuthentication no
RhostsRSAAuthentication no
RSAAuthentication yes
PasswordAuthentication yes
BatchMode no
CheckHostIP yes
StrictHostKeyChecking ask
IdentityFile ~/.ssh/identity
Port 22
Cipher 3des
EscapeChar ~ </P><P>5]配置openssh之/etc/ssh/sshd_config文件
vi /etc/ssh/sshd_config
Port 22
ListenAddress 0.0.0.0
ListenAddress ::
HostKey /etc/ssh/ssh_host_key
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_dsa_key
KeyRegenerationInterval 3600
ServerKeyBits 768
SyslogFacility AUTH
LogLevel INFO
LoginGraceTime 600
#PermitRootLogin yes #还是不要让root直接登录为妙!
StrictModes yes
RSAAuthentication yes
PubkeyAuthentication yes
RhostsAuthentication no
IgnoreRhosts yes
RhostsRSAAuthentication no
HostbasedAuthentication no
IgnoreUserKnownHosts no
PasswordAuthentication yes
PermitEmptyPasswords no
Subsystem sftp /usr/local/ssh/libexec/sftp-server </P><P>6]配置用户的加密密钥
useradd test
passwd test
su test
ssh-keygen -d
出现提示请回车并输入passwd,再次输入passwd。
注:这个密码是系统加密运算时用到的,登录时还用原来密码。 </P><P>7]启动服务
/etc/rc.d/init.d/sshd start </P><P>8]在客户端用test 帐号进行测试。 </P><P> Q:关于smb服务的文章 </P>< P>samba的有关配置
安装篇(只讲rpm的安装):
首先用rpm -q samba
如果有提示安装了
就不用装了.如果没装就用
rpm -ivh samba*.rpm
把smb装上
samba-2.2.3a-6.i386.rpm
samba-client-2.2.3a-6.i386.rpm
samba-common-2.2.3a-6.i386.rpm
samba-swat-2.2.3a-6.i386.rpm
其中samba-swat-2.2.3a-6.i386.rpm可装可不装
设置篇:
要启动smb需要设置/etc/samba/smb.conf
设置一些简单的
(你可以把原有的smb.conf内容全删了.然后用vi新建一个smb.conf.写入以下内容)
[global]
workgroup=samba
security=share
# the first share dir
[test]
guest ok =yes
path=/home/test
writable=no
写完后用下面的命令重启smb(启动前可以用testparm来测试一下smb.conf文件也行)
testparm </P><P>然后再:
/etc/rc.d/init.d/smb start </P><P>这样就完成了第一个目录的共享.想要此目录能让别人写入.还需要键入一个命令
chmod 777 /home/test/ </P><P>要让此smb服务开机就运行.键入:
chkconfig –level 3 smb on
或是用ntsysv进入把smb这项服务选中.让它开机直接运行. </P><P>进一步设置smb.conf </P><P>[global]
workgroup=samba
security=share
server string = samba server
log file =/var/log/samba/log.%m
max log size=1000
encrypt passwords=yes
smb passwd file = /etc/samba/smbpasswd
# 开始设置个人共享目录
[first]
guest ok =yes
path=/home/test/
writable=yes </P><P>[zq]
#注解此目录由谁访问
comment=dir for zq
#路径
path=/home/zq
#是否可写
writable=yes
只允许zq这个用户使用
valid users=zq </P><P>[zzm]
comment=dir for zzm
path=/home/zzm
writable=yes
valid users=zzm </P><P>然后要建立一个samba的密码文件 </P><P>[root@linuxsmb samba]# cat /etc/passwd | mksmbpasswd.sh > /etc/samba/smbpasswd
[root@linuxsmb samba]# chmod 600 /etc/samba/smbpasswd (此步是为了不让别人取得这个密码) </P><P>重启smb
/etc/rc.d/init.d/smb start </P><P>再建立smb用户的密码
[root@linuxsmb samba]# smbpasswd zq
[root@linuxsmb samba]# smbpasswd zzm
(当然.前提需要系统里有这两个用户.)
好了.到此为止share级的SMB就做好了 </P><P>再讲user安全级的smb </P><P>只需要把
security=share
改为security=user
然后重启smb
这时要访问samba就要密码了
(这步我没有试) </P><P>再讲server安全级的smb
security=server
然后再加一句
password server = servername #此句的意思是设定要验证密码的主机名是 servername </P><P>smb passwd file=/etc/remotesmbpasswd #指定passwd server存放密码文件的位置
如果是NT主机验证密码就不用这行 </P><P> 再讲domain安全级的smb </P><P>要装smb服务器加入到win2000域中
执行:
smbpasswd -j samba -r dc_machine
这里的samba指要加入的主机名,dc指域控制器的主机名
然后修改smb.conf
workgroup=samba #要加入的工作组名
security=doman
password server=dc_machine
Q:怎么设置在LINUX下设置你的乙太猫或路由猫 </P><P>如果你想通过你的乙太猫和路由猫上网[什 么是乙太猫和路由猫,简单的说就是ADSL的接口是直接接在网卡上面的,但路由猫能让每台电脑不通过主机就能上网,乙太猫必须设置一台主机,其它的计算机 都通过主机上网]。
现在我主要说乙太ADSL。因为路由猫通过设置应用[DHCP]就可以上网了,是最简单的。不过乙太猫还得设置一下:PLEASE SEE!
乙太ADSL猫的设置:
一、在KDE桌面下点[系统]-[Internet Configuration Wizard]-[XDSL Connection]
二、在[provider Name]中填上你想用的名字,不妨你填上电信给你的用户名;
三、在[Login Name]中填上:电信给你的用户名
四、在[Password]中填上:你的密码;
五、[OK]
六、点[系统]-[Network Configuration],再点[Device],然后我们就能看到我们刚才加入的ADSL链 接了,然后选中它,点击[Edit],我们再点[Genernal],然后我们就把那两项选中就是了。一个是开机就激活连接,把它选上。
[另外]如果你有多台机器,你想把WINDOWS当主机,那么你就得建一个共享连接,并且你的网卡也得设置如下:
WINDOWS主机网卡的TCP/IP设置:
IP地址:192.168.0.1
子掩码:255.255.255.0
默认网关:[不设置最好]
DNS:也就是你的ISP提供商给你的,每个地区可能都不一样,我这儿的是202.101.103.54,这个也可以用,不过因为地区间相差太远,有时可能效果不太好!
LINUX机器的网卡设置:
IP地址:192.168.0.X[X可以随便设置,但不要和你的WINDOWS主机相同。如果你有两台机器,那可以设置成为2,以此类推。]
子掩码:255.255.255.0
默认网关:192.168.0.1
DNS:和WINDOWS的主机设置一样!
这样LINUX机器就通过WINDOWS主机上网了!
路由ADSL猫的设置:
点[系统]-[Network Configuration],再点[Device],我们就能看到[eh0]这个网卡设备了,然后选 中它,点击[Edit],我们再点[Protoclos],然后我们就选中[Automationcally obtain IP address settings with DHCP,就可以了!!!
**************************************
在用乙太口的ADSL的条件下,本人多次试着用LINUX当主机,WINDOWS当客户机,WINDOWS机器通过LINUX上网,但总不能实 现。现在请高手指点! </P><P> Q:linux单机上网的设置 </P> <P>网卡的设置[eh0]
[系统]-[Network Configuration],再点[Device]-》eh0,把eh0,设置成如下的。 </P><P>IP地址:192.168.0.1
子掩码:255.255.255.0
默认网关:不要设置
DNS:设置成你本地的。如果找不到本地的,用下面的也行。不过速度有点慢 </P><P>202.96.134.133
202.101.103.54
202.96.168.68 </P><P>乙太ADSL猫的设置:
一、在KDE桌面下点[系统]-[Internet Configuration Wizard]-[XDSL Connection]
二、在[provider Name]中填上你想用的名字,不妨你填上电信给你的用户名;
三、在[Login Name]中填上:电信给你的用户名
四、在[Password]中填上:你的密码;
五、[OK]
六、点[系统]-[Network Configuration],再点[Device],然后我们就能看到我们刚才加入的ADSL链 接了,然后选中它,点击[Edit],我们再点[Genernal],然后我们就把那两项选中就是了。一个是开机就激活连接,把它选上。
Q:如何在Linux上建立DNS服务器 </P><P>作者:四通立方网友 OpenView
E-mail:ws_sh@hotmail.com
一、 假定
本文假定你已对域名服务器 DNS 有基本的了解,如果不是,请参看相关的文裆。 </P>< P>许多DNS的文章都是从DNS原理开始介绍,本人则从使用的角度出发,为Linux的管理员提供一些简单实用的应用实例。 < /P><P>下面假定我们需要建立一台企业网的DNS主服务器,应用条件如下: </P><P> (1) 一个C类网段地址 (本例中假定是192.22.33) </P><P>(2)企业域名 为 my.com,并已注册 (主域名服务器地址 192.22.33.20,主机名为 linux.my.com) </P><P>(3)企业网通过路由器与Internet连接 < /P><P>假如你的应用环境与上述条件不同,也请往下看,本文会在上述例子的基础上针对以下情况作修正: < /P><P>(1) 多个网段 </P><P>(2) 封闭的内部网 </P><P>(3) 只能访问局部公共网的情况(如169网、上海热线等)
二、named、/etc/named.boot 和 ndc
DNS 服务器的主体是域名服务器进程 named ,named 启动后向DNS客户机提供域名解析 服务,把域名转换成IP地址。 </P><P>named 启动时需要读取一个初始化文件,缺省情况下是 /etc/named.boot,所以/etc/named.boot 是 named 的基本配置文件。 </P><P>虽然启动 named 可直接执行 named,在Linux上我们 可以使用一个控制 named 的工具 ndc。ndc 可以用于启动、中止、重启动、刷新DNS数据、输出 DNS数据等多种调试功能,我在这里推荐大家用这个工具来帮助 DNS 服务器的调试。 </P>< P>有关 ndc 的详细用法,请参看 Linux 有关文档。
三、建立 named 配置文件 /etc/named.boot
/etc/named.boot 是基本的配置文件,但不包含任何 DNS 数据,针对我们前面的假定,我们先建 立以下 /etc/named.boot,其内容如下: </P><P>;
; boot file for name server
;
directory /var/named </P><P>primary my.com db.my
primary 0.0.127.IN-ADDR.ARPA db.127.0.0
primary 33.22.192.IN-ADDR.ARPA db.192.22.33
cache . db.cache </P><P>其中以“;”开头的行是注释行,其他 各行含义是 </P><P>(1)diretory /var/named < /P><P>指定 named 从 /var/named 目录下读取 DNS 数据文件。这个目录用户可自行指定并创建,指定后所有的DNS 数据文件都存放在此目录下。 < /P><P>(2)primary my.com db.my </P>< P>指定 named 作为 my.com 域的主域名服务器,db.my 文件中包含所有 *.my.com 形式的域名转换数据。 </P><P>(3)primary 0.0.127.IN-ADDR.ARPA db.127.0.0 </P><P>指定 named 作为127.0.0网段地址转换主服务器,db.127.0.0 文件中包含了 127.0.0.* 形式的地址到域名的转换数据。(127.0.0网段地址是局域网接口的内部 loopback 地 址) </P><P>(4)primary 33.22.192.IN-ADDR.ARPA db.192.22.33 </P><P>指定 named 作为 192.22.33 网段地址转换主服务器,db.192.22.33 文件中包含了所有 192.22.33.* 形式的地址到域名的转换数据。 </P><P>(5) cache . db.cache </P><P>指定 named 从 db.cache 文件中获得 Internet 的顶层“根”服务器地址 </P> <P>要注意(3)(4)两行中的网段地址是倒写的,另外,各个文件名也是可以自行决定的。
四、建立各个 DNS 数据文件
下一步,要按 /etc/named.boot 中的定义,建立各个 DNS 数据文件。 </P><P>(1)建立正向域名转换数据文件 db.my </P><P>根据 /etc/named.boot 的定义,我们在 /var/named 目录下建立 db.my,其中应该包括所有在 my.com 域内的主机节点。但在机器数量较多时,为了调试方便,建议一开始只把几台节点的数据 放入文件,待 named 正常工作后再把其他节点的数据补充进去。下面是 db.my的例子: < /P><P>@ IN SOA linux.my.com. root.linux.my.com. (
199511301 ; serial, todays date + todays serial #
28800 ; refresh, seconds
7200 ; retry, seconds
3600000 ; expire, seconds
86400 ) ; minimum, seconds
NS linux.my.com.
MX 10 support.my.com. </P><P>localhost A 127.0.0.1
linux A 192.22.33.20
support2 A 192.22.33.102
hp712 A 192.22.33.160
support A 192.22.33.100
mail MX 10 support.my.com.
MX 20 support2.my.com.
www CNAME hp712.my.com.
ftp CNAME hp712.my.com.
ns CNAME linux.my.com. </P><P>其中第一行是 SOA 记录,定义了域名数据的基本信息,依次是 DNS 服务器名、DNS 管理员邮件地址,括 号内的第一个数字是文件版本号,每次本文件内容修改后,必须更改此号。其余数字与DNS服务器直接的数据交换有关,在这里我们不需要改动。 </P><P>括号后面有一条 NS 记录和一条 MX 记录,定义了域名服务器本身 的域名和 username@my.com 形式邮件地址所对应的邮件服务器名字。 </P>< P>在此以下是各种域名/地址转换数据,其中 A 记录是 DNS 域名到 IP 地址的记录,是必须有的,以 hp712.my.com 为例,在 A 记录中域 my.com 被省略,只写成 hp712,named 在处理时会根据 named.boot 中 的定义自动加上 my.com,而其对应 IP 地址为 192.22.33.160。 < /P><P>另一种记录是 MX 记录。MX 是邮件地址转换记录,本例中定义了将 username@mail.my.com 的邮件地址转换成 username@support.my.com 或 username@support2.my.com,即实际上真正的邮件服务器是 support.my.com 和 support2.my.com,其中 support.my.com 的优先数为 10, support2.my.com 的优先数为 20,所以通常邮件首先被发往优先数小的主机 support.my.com。 </P><P>还有一些是为方便提供的 CNAME 记录。 CNAME 定义了一些主机的别名,比如我们将 hp712.my.com 作为公司的 www 和 ftp 服务器,所以我们提供了 www.my.com 和 ftp.my.com 作 为 hp712.my.com 的别名,用户只需要根据习惯就可以访问公司的 www、ftp 服务器了,如果 将来我们换用别的主机作 www 和 ftp 服务器,只需要修改 CNAME 记录就 可,对用户没有影响。 </P><P>注意:MX 和 CNAME 记录最后的带域名 的主机名后必须带一个“.” </P><P>(2)建立反向 DNS 数据文件 db.127.0.0 和 db.192.22.33 </P><P>反向 DNS 数据文件用来提供根据 IP 地址查询相应 DNS 主机名,每个网段分别有一个数据文件。 </P><P>对于内部网段 127.0.0 通常只有一个地址,即 127.0.0.1 loopback 地址,db.127.0.0 内容如下: </P> <P>@ IN SOA linux.my.com root.linux.my.com. (
1997022700 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400 ) ; Minimum
IN NS linux.my.com. </P><P>1 IN PTR localhost. </P><P>而外部网段的数据文件 db.192.22.33 中包含所有主机 IP 地址到 DNS 主机名的转换数据。 db.192.22.33 内容如下: </P><P>@ IN SOA linux.my.com. root.pc590.my.com. (
199609206 ; Serial
28800 ; Refresh
7200 ; Retry
604800 ; Expire
86400) ; Minimum TTL
NS linux.my.com.
;
; All hosts
;
20 PTR linux.my.com.
102 PTR support2.my.com.
100 PTR support.my.com.
160 PTR hp712.my.com. </P><P>反向 DNS 数据文件中的主要部分是 PTR 记录,PTR 记录中的 IP 地址都只有主机 号,named 会根据 named.boot 的定义自动加上前面的网络号,注意后面的主机名要附加一个“.” </P><P>(3)获得 db.cache 文件 </P>< P>在 Linux 系统上通常在 /var/named 下已经提供了一个 named.ca,该文件文件中包含了 Internet 的顶层域名服务器,但这个文件通常会发生变化,所以建议最好从 Internic 下载最新的版本。该文件可通过匿名 ftp 从 ftp.rs.internic.net 下载,在 domain 目录下,文件名为 named.root。 注意该文件下载后要拷贝到 named 的工作目录并重命名成 named.boot 中指定的文件名,本文中 为 db.cache。
五、启动和测试 named
首先,根据先前推荐的方法,用 ndc 启动 named: </P><P> ndc start </P><P>然后,为了使用和测试 named,要把 Linux 设置在使用 DNS 状态。方法是在 /etc 目录下,创建 resolv.conf 文件。以我们的例子,/etc/resolv.conf 内容为: </P> <P>search my.com
nameserver 192.22.33.20 </P><P>然后,我们就可以测试 named 了。 </P><P>Linux 和其他 Unix 系统均提供了 nslookup 工具,在命令行状态下输入: </P>< P>nslookup </P><P>就进入交换式 nslookup 环境,如果 named 正常启动,nslookup 会显示当前 DNS 服务器的地址和域名,否则表示 named 没能正常启动。下面简单介绍一些基本的 DNS 诊断: </P> <P>(1)检查正向 DNS 解析 </P><P>在 nslookup 提示符下输入带域名的主机名,如 hp712.my.com,nslookup 应能显示该主机名对应 的 IP 地址,如果只输入 hp712,nslookup 会根据 /etc/resolv.conf 的定义,自动添加 my.com 域名并回答对应的 IP 地 址。 </P><P>(2)检查反向 DNS 解析 </P>< P>在 nslookup 提示符下输入某个 IP 地址,如 192.22.33.20, nslookup 应能回答该 IP 地址所对应的主机名。 </P><P>(3)检 查 MX 邮件地址记录 </P><P>在 nslookup 提示符下输 入: </P><P>set q=mx </P><P>然后输入某个域 名,以本文的例子,输入 my.com 或 mail.my.com,nslookup 应能够回答对应的邮件 服务器地址,即 support.my.com 和 support2.my.com。 </P> <P>(4)检查 CNAME 别名记录 </P><P>在 nslookup 提示符下输入: </P><P>set q=cname < /P><P>然后输入某个别名,如 www.my.com,nslookup 应能回答对应的真实主机名,即 hp712.my.com。 </P><P>如要退出 nslookup,可输入 exit。
六、修改 DNS 数据
如果要在网络中增加主机,例如要增加一台叫做 pc01.my.com 的 PC 机,管理员要在 db.my 中增加该主机对应的 A 记录,并且要在 db.192.22.33 中增 加对应的 PTR 记录,然后用 ndc 更新 named 的数据: </P><P>ndc reload </P><P>要注意必须同时更改 A 记录和 PTR 记录,许多管理员往往只增加 A 记录而忽略了逆向查询用的 PTR 记录,结果会使许多应用程序不能正常运行。 </P><P>特别注意,一旦修改了 DNS 数据文件的内容,请务必改动数据文件的版本号( Serial )
七、使网络中的其他系统(客户机)使用 DNS 服务器
一旦 DNS 服务器开始工作,就可以配置所有企业网内的主机使用 DNS 服务。 </P><P>Unix 主机配置的方法,已经在前面说明过,即创建 /etc/resolv.conf 文件,内容见前面第五节。 </P><P>Windows 95 的配置则是在网卡的 TCP/IP 配置中,选择使用 DNS (enable),然后在配置 窗口中分别填入各项参数。以本文的例子,如果运行 Windows95 的主机被命名为 pc01.my.com,则在主 机名(Host)一栏中填 pc01,在域名(Domain)一栏中填 my.com,然后把域名服务器 (DNS Server)加入搜索列表中。 </P><P>Windows NT 节 点的配置大致相同。
八、几种不同环境下的修正
(1)如果 IP 网段多于一个 </P><P>假定现在在 my.com 域中增加一个 IP 网段 192.22.37,则 /etc/named.boot 的内容中就增加一个网段的定义,具体如下: </P><P>;
; boot file for name server
;
directory /var/named </P><P>primary my.com db.my
primary 0.0.127.IN-ADDR.ARPA db.127.0.0
primary 33.22.192.IN-ADDR.ARPA db.192.22.33
primary 37.22.192.IN-ADDR.ARPA db.192.22.37
cache . db.cache </P><P>而反向 DNS 数据文件则增加一个定义 192.22.37 网段的文件 db.192.22.37,其中包括了所有 处于 192.22.37 网段中的节点,其格式与 db.192.22.33 类似。 < /P><P>(2)如果企业网是封闭的 </P><P>如果企业网络不与外界 Internet 直接互连,DNS 服务器就不必关心本企业域以外的域名,所以配置 named 的时候可以 不理会 db.cache,我们可以将 /etc/named.boot 中的 cache 行去 除。 </P><P>(3)如果你联入的公共网不能访问 Internet < /P><P>如果你的内部网接入的公共网只能访问有限的范围,如免费的169网、上海热线等,那么你的 DNS 服务器就不能通过 Internet 的顶层服务器(root server)进行地址解析,所以你必须用你直接能访问到 的 DNS 服务器来替代。具体办法是用 forwarders 选项来指定上级 DNS 服务器,以本文为例,named.boot 的内容为: </P><P>;
; boot file for name server
;
directory /var/named </P><P>primary my.com db.my
primary 0.0.127.IN-ADDR.ARPA db.127.0.0
primary 33.22.192.IN-ADDR.ARPA db.192.22.33
primary 37.22.192.IN-ADDR.ARPA db.192.22.37
forwarders …
options forward-only </P><P>其中、等是你能直接访问到的 DNS 服务器的地址,通常就是你的 ISP (169、上海热线等)的 DNS 服务 器的地址,至少要有一个。 </P><P>通过 forwarders 和 options forward-only 参数的指定,你的企业 DNS 服务器就工作在 forward-only 模式下,所有本地不能解决的名字都被传送到 ISP 的 DNS 服务器 上去解析。
九、建立后备 DNS 服务器 (Secondary DNS Server)
通常有一台 DNS 主服务器,网络即可正常工作,但根据 Internic 对域名的管理规范,一个 独立的域名必须至少有两台 DNS 服务器,即一台 DNS 主服务器 ( Primary Server )和一台后备 DNS 服务器 ( Secondary Server ),这主要是为 DNS 服务的可靠性考虑,能使 Internet 的性能更为可靠。 </P><P>现在仍以前面的例子,现在要加入一台运行 Linux 的机器 nspc.my.com,IP 地址为 192.22.33.60。 < /P><P>(1)主服务器上的修改 </P><P>首先确认 DNS 主服 务器工作正常,然后,在主服务器上的正向 DNS 数据文件 db.my 中,加入 nspc.my.com 的有关记录,并增加一个NS记录,使主服务器上的 db.my 成为下列内容: </P><P>@ IN SOA linux.my.com. root.linux.my.com. (
199511301 ; serial, todays date + todays serial #
28800 ; refresh, seconds
7200 ; retry, seconds
3600000 ; expire, seconds
86400 ) ; minimum, seconds
NS linux.my.com.
NS nspc.my.com. ; 必须增加的记录
MX 10 support.my.com. </P><P>localhost A 127.0.0.1
linux A 192.22.33.20
support2 A 192.22.33.102
hp712 A 192.22.33.160
support A 192.22.33.100
nspc A 192.22.33.60 ; 增加的记录
mail MX 10 support.my.com.
MX 20 support2.my.com.
www CNAME hp712.my.com.
ftp CNAME hp712.my.com.
ns2 CNAME nspc.my.com. ; 增加的记录
ns CNAME linux.my.com. </P><P>然后对主服务器上的各个 反向 DNS 数据文件做类似的修改,增加有关后备服务器的 NS 记录,然后重新起动 named。 </P><P>可见,其实在主 DNS 服务器上的改动主要是增加了一条 NS 记录,其余的改动和增加一台普通节点一样,如果是用现有的节点做后备 DNS 服务器,则增加 NS 记录是唯一必须的步骤。 </P><P>(2)后备 DNS 服务 器(secondary server)的配置 </P><P>需要在后备 DNS 服务器上创建的配置文件只有 named.boot 和 db.cache,格式与主服务器相似, named.boot 内容为: </P><P>;
; boot file for secondary name server
;
directory /var/named </P><P>secondary my.com 192.22.33.20 db.my
secondary 0.0.127.IN-ADDR.ARPA 192.22.33.20 db.127.0.0
secondary 33.22.192.IN-ADDR.ARPA 192.22.33.20 db.192.22.33
cache . db.cache </P><P>其中的三行 secondary 定义,使得 named 从 192.22.33.20,即主服务器上获得各种 DNS 数据,并存在本地的各个数据文件中。本地的数据文件由 named 从主 DNS 服务器的 named 下载后生成,通常与主服务器上的数据文件完全一样,万一后备服务器与主服务器失去连接而不 能下载 DNS 数据,后备服务器可利用本地的数据文件工作。 </P><P>而后备 DNS 服务器的 db.cache 通常由系统管理员从主服务器上拷贝过来即可。 < /P><P>通常,后备 DNS 服务器可以建立在企业网内,也可利用外部的 DNS 服务 器充当,如让 ISP 的服务器作为企业的后备 DNS 服务器,这样可以提高 DNS 服务的可靠性。注意,同一台 DNS 服务器可以同时成为多个 DNS 域的服务器,而且可以既作某些域的主服 务器,同时又是另一些域的后备服务器。 </P><P>(3)DNS 客户机端的改动 < /P><P>对于内部网上的 Unix 主机,应该在 /etc/resolv.conf 中增加一行 nameserver 说明,使得系统能够搜索后备 DNS 服务器,以本文的例子, /etc/resolv.conf 的内容为: </P><P>search my.com
nameserver 192.22.33.20
nameserver 192.22.33.60 </P><P>注意,我们可以根据需要决定 /etc/resolv.conf 中所列出的 DNS 服务器的顺序,通常选择访问速度快的服务器在前。 </P><P>对于 Windows95 和 NT,则是在 DNS 服务器的列表中把后备 DNS 服务器添加进去即可,添加的顺序同样可以决定访问各 DNS 服务器的优先级。 </P><P>欢迎各位网友对本文提出修正和改进意见,本人 E- mail:ws_sh@hotmail.com </P><P>嗯,nsswitch.conf的配置以及把DNS配 置成cache only的方式没有讲,不过那比较简单,很多书上都有. </P><P> Q: 用Linux建立局域网服务器 </P><P>Linux系统作为网络服务器的优点数不胜数,但它的缺点也不少,特别 是繁琐的配置让不少人望而却步。本文以 TurboLinux 4.0为例,介绍配置局域网Linux服务器时的一些经验,希望对读 者有一些帮助,也希望能起到抛砖引玉的作用。 </P><P>一、TCP/IP网络配置 < /P><P> TurboLinux对网卡的支持还是比较好的,大部分网卡在安装时就可以自动检测出来。如果你的运气不好, Linux找不到你的网卡,可以进入X Windows,以root身分运行linuxconf命令。这是一个图形界面的配置工 具,大部分Linux设置可以通过点点鼠标简单完成。首先在其中找到Basic Host Setting一项,在这一项中设置网卡 的类型、I/O port和IRQ,一般没有列出的ISA卡可以用ne,PCI可以用ne或ne2k-pci,接着设置IP地址和子网掩码,只 要和局域网中的其他机器设在同一个子网中就可以了。如果要连接外部网络还要设置网关。关于这方面的问题还可以参看TurboLinux的帮助文件。 </P><P>二、Samba服务器的配置 </P><P> Samba是一 个文件和打印服务器,它最重要的特点就是可以和Win98/NT共享文件,还可以为其提供打印服务。简而言之,就是可以在Win98的网上邻居中看到 Linux服务器,并能存取其中的文件。
关于Samba的配置都存放在/etc/smb.conf中,其中多数可用它的默认设置,我就不再多说了,但有几处是非改不可的:
smb.conf文件中采用类似于Windows ini 文件的方式,以[]为一段的开始,每一行为一个等号表达式, 注释以打头。其中每一个[]都表示一个共享目录(global和printer)除外 [global]中是一些通用的配置,其中对Win98 机器比较重要的一个就是guestaccount,表示不用密码的用户名,如果在Win98中以这个用户名登录,访问public=yes的目录就不用密 码,但不能访问public=no的目录。
[global]
guest account = guest
Workgroup要改为Win98网络配置中所设的名字,不然网上邻居中就找不到这台机器
workgroup = Samba Server
[homes]
因为Win98不区分大小写,而Linux却区分大小写,所以要加入以下两行
preserve case = yes
short preserve case = yes
[myshare]
如果要设置一个目录只对几个用户有读写权限,只要加入以下一行每两个用户名中间以空格分开
valid users = user1 user2 user3
设置完smb.conf文件后,运行turboservice,把samba服务设置为开机自动启动。
以后Linux开机后,就可以在Win98的网上邻居中找到它了。
以上只是用Win98共享Linux资源,那么如何用Linux共享Win98中的文件呢?其实更简单,只要用命令smbmount。例如: 要共享另一台主机ntserver中sharefile目录,用户名是student,密码是1234,只要打入命令:
smbmount ′\\ntserver\sharefile′ -U student -P 1234 /mnt/sharefile
以后/mnt/sharefile就成了ntserver中的sharefile目录,如果没有用户名和密码-P 和 -U 参数就可以省掉了。
三、Apache服务器的配置
你是不是也想在局域网上发布主页呢?那就选择Apache吧。
用Apache安装Http Server是最简单不过的了,只要用turboservice命令把Web Server服务启动即可。它的默认主页是/home/httpd/index.html,把它替换成自已的主页,然后在浏览器中输入Linux主机的 IP地址看看有什么反应。
只用IP地址实在太单调了,想不想试试用www.ld60.com这样Cool的域名,那就看看下面的介绍吧。假设Linux主机的局域 网中的IP地址是192.1.1.1,打开/etc/hosts文件,找到192.1.1.1对应的那一行,把主机的别名改为 www.ld60.com。然后把局域网中另一台Win98机器设置为通过局域网连接,并在局域网代理服务器设置一栏中填入Linux主机的IP地址。最 后打开IE,输入www.ld60.com,享受一下你的劳动成果吧!

