📄 linux2.txt
字号:
***************************************************************** </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:0x300
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:0x320
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
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -