Linux服务器配置

【目录】

一、Linux 网络服务配置基础
二、NFS服务器配
三、FTP服务器配置
四、web服务器配置
五、Samba服务器配置
六、Telnet服务器配置
七、TFTP服务器配置
八、DHCP服务器配置
九、vsftpd服务器
【参考资料】

一、 Linux 网络服务配置基础
要建立一个安全Linux服务器就首先要了解Linux环境下和网络服务相关的配置文件的含义及如何进行安全的配置。在Linux系统中,TCP/IP网络是通过若干个文本文件进行配置的,也许你需要编辑这些文件来完成联网工作,但是这些配置文件大都可以通过配置命令linuxconf(其中网络部分的配置可以通过netconf命令来实现)命令来实现。下面介绍基本的 TCP/IP网络配置文件。
 
* /etc/conf.modules 文件
该配置文件定义了各种需要在启动时加载的模块的参数信息。这里主要着重讨论关于网卡的配置。在使用Linux做网关的情况下,Linux服务器至少需要配置两块网卡。为了减少启动时可能出现的问题,Linux内核不会自动检测多个网卡。
对于没有将网卡的驱动编译到内核而是作为模块动态载入的系统若需要安装多块网卡,应该在“conf.modules”文件中进行相应的配置。
若设备驱动被编译为模块(内核的模块):对于PCI设备,模块将自动检测到所有已经安装到系统上的设备;对于ISA卡,则需要向模块提供IO地址,以使模块知道在何处寻找该卡,这些信息在“/etc/conf.modules”中提供。
例如,我们有两块ISA总线的3c509卡,一个IO地址是0x300,另一个是0x320。编辑“conf.modules”文件如下:
这是说明3c509的驱动程序应当分别以eth0或eth1的名称被加载(alias eth0,eth1),并且它们应该以参数io=0x300,0x320被装载,来通知驱动程序到哪里去寻找网卡,其中0x是不可缺少的。
对于PCI卡,仅仅需要alias命令来使ethN和适当的驱动模块名关联,PCI卡的IO地址将会被自动的检测到。对于PCI卡,编辑“conf.modules”文件如下:
若驱动已经被编译进了内核:系统启动时的PCI检测程序将会自动找到所有相关的网卡。ISA卡一般也能够被自动检测到,但是在某些情况下,ISA卡仍然需要做下面的配置工作:
在“/etc/lilo.conf”中增加配置信息,其方法是通过LILO程序将启动参数信息传递给内核。对于ISA卡,编辑“lilo.conf”文件,增加如下内容:
注:先不要在“lilo.conf”中加入启动参数,测试一下你的ISA卡,若失败再使用启动参数。
如果用传递启动参数的方法,eth0和eth1将按照启动时被发现的顺序来设置。

* /etc/HOSTNAME 文件
该文件包含了系统的主机名称,包括完全的域名,如:deep.openarch.com。

*/etc/sysconfig/network-scripts/ifcfg-ethN 文件
在RedHat中,系统网络设备的配置文件保存在“/etc/sysconfig/network-scripts”目录下,ifcfg-eth0包含第一块网卡的配置信息,ifcfg-eth1包含第二块网卡的配置信息。
下面是“/etc/sysconfig/network-scripts/ifcfg-eth0”文件的示例:
若希望手工修改网络地址或在新的接口上增加新的网络界面,可以通过修改对应的文件(ifcfg-ethN)或创建新的文件来实现。
DEVICE=name    
name表示物理设备的名字
IPADDR=addr    
addr表示赋给该卡的IP地址
NETMASK=mask    
mask表示网络掩码
NETWORK=addr    
addr表示网络地址
BROADCAST=addr  
addr表示广播地址
ONBOOT=yes/no  
启动时是否激活该卡
none:
无须启动协议
bootp:
使用bootp协议
dhcp:
使用dhcp协议
USERCTL=yes/no      
是否允许非root用户控制该设备

*/etc/resolv.conf 文件
该文件是由域名解析器(resolver,一个根据主机名解析IP地址的库)使用的配置文件,示例如下:
表示当提供了一个不包括完全域名的主机名时,在该主机名后添加domainname.com的后缀;“nameserver”表示解析域名时使用该地址指定的主机为域名服务器。其中域名服务器是按照文件中出现的顺序来查询的。

*/etc/host.conf 文件
该文件指定如何解析主机名。Linux通过解析器库来获得主机名对应的IP地址。下面是一个“/etc/host.conf”的示例:
指定主机名查询顺序,这里规定先使用DNS来解析域名,然后再查询“/etc/hosts”文件(也可以相反)。
“multi on”指定是否“/etc/hosts”文件中指定的主机可以有多个地址,拥有多个IP地址的主机一般称为多穴主机。
“nospoof on”指不允许对该服务器进行IP地址欺骗。IP欺骗是一种攻击系统安全的手段,通过把IP地址伪装成别的计算机,来取得其它计算机的信任。

*/etc/sysconfig/network 文件
该文件用来指定服务器上的网络配置信息,下面是一个示例:
NETWORK=yes
RORWARD_IPV4=yes
HOSTNAME=deep.openarch.com
GAREWAY=0.0.0.0
GATEWAYDEV=
NETWORK=yes/no    
网络是否被配置;
FORWARD_IPV4=yes/no    
是否开启IP转发功能
HOSTNAME=hostname hostname
表示服务器的主机名
GAREWAY=gw-ip    
gw-ip表示网络网关的IP地址
GAREWAYDEV=gw-dev  
gw-dw表示网关的设备名,如:etho等
注意:为了和老的软件相兼容,“/etc/HOSTNAME”文件应该用和HOSTNAME=hostname相同的主机名。

*/etc/hosts 文件
当机器启动时,在可以查询DNS以前,机器需要查询一些主机名到IP地址的匹配。这些匹配信息存放在/etc/hosts文件中。在没有域名服务器情况下,系统上的所有网络程序都通过查询该文件来解析对应于某个主机名的IP地址。
下面是一个“/etc/hosts”文件的示例:
最左边一列是主机IP信息,中间一列是主机名。任何后面的列都是该主机的别名。一旦配置完机器的网络配置文件,应该重新启动网络以使修改生效。使用下面的命令来重新启动网络:

* /etc/inetd.conf 文件
众所周知,作为服务器来说,服务端口开放越多,系统安全稳定性越难以保证。所以提供特定服务的服务器应该尽可能开放提供服务必不可少的端口,而将与服务器服务无关的服务关闭,比如:一台作为www和ftp服务器的机器,应该只开放80和25端口,而将其他无关的服务如:finger auth等服务关掉,以减少系统漏洞。
而inetd,也叫作“超级服务器”,就是监视一些网络请求的守护进程,其根据网络请求来调用相应的服务进程来处理连接请求。inetd.conf则是inetd的配置文件。inetd.conf文件告诉inetd监听哪些网络端口,为每个端口启动哪个服务。
在任何的网络环境中使用Linux系统,第一件要做的事就是了解一下服务器到底要提供哪些服务。不需要的那些服务应该被禁止掉,最好卸载掉,这样黑客就少了一些攻击系统的机会。
查看“/etc/inetd.conf”文件,了解一下inetd提供哪些服务。用加上注释的方法(在一行的开头加上#号),禁止任何不需要的服务,再给inetd进程发一个SIGHUP信号。
第一步:把文件的许可权限改成600。
第二步:确信文件的所有者是root。
第三步:编辑“inetd.conf”文件(vi /etc/inetd.conf),禁止所有不需要的服务,如:ftp、 telnet、 shell、 login、 exec、talk、ntalk、 imap、 pop-2、pop-3、finger、auth,等等。
如果你觉得某些服务有用,可以不禁止这些服务。但是,把这些服务禁止掉,系统受攻击的可能性就会小很多。改变后的“inetd.conf”文件的内容如下面所示:
注意:改变了“inetd.conf”文件之后,别忘了给inetd进程发一个SIGHUP信号(killall –HUP inetd)。
第四步:
为了保证“inetd.conf”文件的安全,可以用chattr命令把它设成不可改变。把文件设成不可改变的只要用下面的命令:
这样可以避免“inetd.conf”文件的任何改变(意外或是别的原因)。一个有“i”属性的文件是不能被改动的:不能删除或重命名,不能创建这个文件 的链接,不能往这个文件里写数据。只有系统管理员才能设置和清除这个属性。如果要改变inetd.conf文件,你必须先清除这个不允许改变的标志:
但是对于诸如sendmail,named,www等服务,由于它们不象finger,telnet等服务,在请求到来时由inet守护进程启动相应的进程提供服务,而是在系统启动时,作为守护进程运行的。
而对于redhat linux,提供了一个linuxconfig命令,可以通过它在图形界面下交互式地设置是否在启动时运行相关服务。也可以通过命令来设置是否启动时启动某个服务,如:[root@deep]# chkconfig –level 35 named off。

二、NFS服务器配置
10.0.0.1 - NFS Server
10.0.0.2 - NFS Client
在NFS Server上:
===============
共享目录:/nfspool
NFS 运行用户:nfsnobody
# mkdir /nfspool
# vi /etc/exports
/nfspool 10.0.0.2(rw,async,anonuid=65534,anongid=65534)
# mkdir -p /nfspool
# chown nfsnobody:nfsnobody /nfspool
# chown -R nfsnobody:nfsnobody /nfspool/.
# service portmap start
# service nfslock start
# service nfs start
在NFS Client上:
===============
远程 NFS 共享目录挂载点:/usr/local/nfs
# service portmap start
# mkdir /usr/local/nfs
# chown nfsnobody:nfsnobody /usr/local/nfs
# chmod 777 /usr/local/nfs
# mount -t nfs -o soft,intr,bg,timeo=50 10.0.0.1:/nfspool /usr/local/nfs
# vi /etc/fstab
10.0.0.1:/nfspool  /usr/local/nfs  nfs  soft,intr,bg,timeo=50  0 0
说明 & 注意
===========
1、exports参数说明
rw: 读写模式;
async: 异步磁盘读写;
anonu(g)id: 指定NFS在进行操作时所使用的匿名用户uid/gid
这个文件的内容非常简单,每一行由抛出路径,客户名列表以及每个客户名后紧跟的访问选项构成:
[共享的目录] [主机名或IP(参数,参数)]
其中参数是可选的,当不指定参数时,nfs将使用默认选项。默认的共享选项是 sync,ro,root_squash,no_delay。
当主机名或IP地址为空时,则代表共享给任意客户机提供服务。
当将同一目录共享给多个客户机,但对每个客户机提供的权限不同时,可以这样:
[共享的目录] [主机名1或IP1(参数1,参数2)] [主机名2或IP2(参数3,参数4)]
下面是一些NFS共享的常用参数:
ro  只读访问
rw  读写访问
sync所有数据在请求时写入共享
async   NFS在写入数据前可以相应请求
secure  NFS通过1024以下的安全TCP/IP端口发送
insecureNFS通过1024以上的端口发送
wdelay  如果多个用户要写入NFS目录,则归组写入(默认)
no_wdelay   如果多个用户要写入NFS目录,则立即写入,当使用async时,无需此设置。
hide在NFS共享目录中不共享其子目录
no_hide 共享NFS目录的子目录
subtree_check   如果共享/usr/bin之类的子目录时,强制NFS检查父目录的权限(默认)
no_subtree_check和上面相对,不检查父目录权限
all_squash  共享文件的UID和GID映射匿名用户anonymous,适合公用目录。
no_all_squash   保留共享文件的UID和GID(默认)
root_squash root用户的所有请求映射成如anonymous用户一样的权限(默认)
no_root_squas   root用户具有根目录的完全管理访问权限
anonuid=xxx 指定NFS服务器/etc/passwd文件中匿名用户的UID
anongid=xxx 指定NFS服务器/etc/passwd文件中匿名用户的GID
配置文件/etc/exports内容如下:
$ cat /etc/exports
/home/share 192.168.102.15(rw,sync) *(ro)
配置说明: 对192.168.102.15赋予读写权限,其他机器仅有只读权限。
4.3 重启NFS服务
# /etc/init.d/nfs-kernel-server restart
4.4 在客户机上查看NFS的资源共享情况
# showmount -e 192.168.102.47
Export list for 192.168.102.47:
/home/share (everyone)
2、NFS 管理命令
showmount -e 在NFS Server上执行此命令显示NFS Server上所有的共享卷;
showmount -e 10.0.0.1 在NFS Client上执行此命令显示NFS Server上所有共享卷;
export -av 根据/etc/exports导出所有卷;
export -rv 重新导出所有卷,增加/etc/exports中的新项目、删除不存在的项目、更新改变的项目;
3、NFS 相关文件
/etc/exports
是NFS Server最基本的配置文件之一,文件中列出了共享的文件系统和允许访问这些文件系统的主机。
/proc/fs/nfs/exports
导出文件列表的内核视图,包括导出的参数。
/var/lib/nfs/etab
状态文件,其中列出了当前的高级列表。此文件包含了/etc/exports中相同格式的所有项目,同时包含了由exportfs -i手工导入的项目。
/var/lib/nfs/rmtab
状态文件,列出了挂接导出文件的远程客户机清单。
/var/lib/nfs/xtab
状态文件,当前底层导出清单。
4、/etc/exports 中client的书写规则
 (1) 单个主机
可以用短名及完全限定名,或者用IP地址,例如student01、student01.flying.com.cn或者192.168.10.1都是合法的主机名。
(2) Net-Group
可以列出/etc/netgroup文件中或NFS网组映射中定义的整组主机。网组名以@开头。
(3) 通配符主机
*.discuz.net *.*.comsenz.com
(4) 掩码
192.168.1.0/255.255.255.0
是不是我们每次修改了配置文件都需要重启nfs服务呢? 这个时候我们就可以用exportfs命令重新扫描/etc/exports文件,来使改动立刻生效。
比如:
# exportfs -au 卸载所有共享目录
# exportfs -rv 重新共享所有目录并输出详细信息
exportfs 命令有软件包 nfs-kernel-server 提供,详细的 exportfs 命令说明请查看:
man exportfs
中文的手册说明可以查看:exportfs联机手册
http://cmpp.linuxforum.net/cman-html/man8/exportfs.8.html
当完成资源共享, 我们如何知道发布了哪些权限呢?这时我们可以查看 /var/lib/nfs/etab 文件,它是有 exportfs 命令根据 /etc/exports 生成的。
# cat /var/lib/nfs/etab
/home/share 192.168.102.15(rw,sync,wdelay,hide,nocrossmnt,secure,root_squash,no_all_squash,subtree_check,secure_locks,acl,mapping=identity,anonuid=65534,anongid=65534)
/home/share *(ro,sync,wdelay,hide,nocrossmnt,secure,root_squash,no_all_squash,subtree_check,secure_locks,acl,mapping=identity,anonuid=65534,anongid=65534)
现在我们来查看服务器上有关NFS服务器启动了哪些端口:
tonybox:/home/share# lsof -i|grep rpc
portmap   1931 daemon3u  IPv4   4289   UDP *:sunrpc
portmap   1931 daemon4u  IPv4   4290   TCP *:sunrpc (LISTEN)
rpc.statd 3206  statd3u  IPv4   7081   UDP *:1029
rpc.statd 3206  statd6u  IPv4   7072   UDP *:838
rpc.statd 3206  statd7u  IPv4   7085   TCP *:1031 (LISTEN)
rpc.mount 3483   root6u  IPv4   7934   UDP *:691
rpc.mount 3483   root7u  IPv4   7937   TCP *:694 (LISTEN)
5、起停顺序
启动:
portmap
nfslock
nfs
停止:
nfslock
nfs
portmap
6、安全性
portmap: 111
NFS: 2049
防止使用IP欺骗和RPC重定向技术通过lo回环进行攻击以及限定授权主机:
iptables -A INPUT -p udp -d 127.0.0.1 --dport 111 -j DROP
iptables -A INPUT -p udp -d 127.0.0.1 --dport 2049 -j DROP
iptables -A INPUT -p udp -s 10.0.0.2 --dport 111 -j ACCEPT
iptables -A INPUT -p udp -s 10.0.0.2 --dport 2049 -j ACCEPT

三、FTP服务器配置
为了实现Linux环境下的FTP服务器配置,绝大多数的Linux发行套装中都选用的是Washington University FTP(Wu-Ftpd),这是一个性能优秀的服务器软件,由于它具有众多强大功能和超大的吞吐量,Internet上的FTP服务器有60%以上采用了它。
安装与运行
以下我们以RedHat Linux为例。

1、安装
根据服务对象的不同,FTP服务可以分为两类:一类是系统FTP服务器,它只允许系统上的合法用户使用;另一类是匿名FTP服务器,它允许任何人登录到FTP服务器,和服务器连接后,在登录提示中输入Anonymous,即可访问服务器。针对这两种服务,可以通过RedHat的第一张光盘安装Wu-Ftpd的RPM包,只需以Root身份进入系统并运行下面的命令即可:
Rpm - ivh anonftp -x.x-x.i386.rpm
Rpm - ivh wu-ftpd-x.x.x-x.i386.rpm
其中-x.x-x和-x.x.x-x是版本号。

2、启动
和Apache一样,Wu-Ftpd也可以配置为自动启动:执行RedHat附带的Setup程序,在“System Service”选项中选中Wu-Ftpd,按下[OK]按钮确定退出即可。
自动启动固然方便,但是,当我们更改了Wu-Ftpd配置文件,需要用到手工启动:
启动:/usr/sbin/ftprestart
关闭:/usr/sbin/ftpshut

FTP服务器的配置
为了确保FTP服务器安全,必须设置一些重要的配置文件,以更好地控制用户的访问权限。这些配置文件是:/etc/ftpusers、/etc/ftpconversions、/etc/ftp-groups、/etc/ftpphosts、/etc/ftpaccess。利用这些文件,能够非常精确地控制哪些人、在什么时间、从什么地点可以连接服务器,并且可以对他们连接后所做的工作进行检查跟踪。
/etc/ftpusers:该文件夹中包含的用户不能通过FTP登录服务器,有时将需要禁止的用户账号写入文件/etc/ftpuser中,这样就可以禁止一些用户使用FTP服务。
/etc/ftpconversions:用来配置压缩/解压缩程序。
/etc/ftpgroups:创建用户组,这个组中的成员预先定义可以访问FTP服务器。
/etc/ftpphosts:用来根据禁止或允许远程主机对特定账户的访问,例如:
allow czc 192.168.0.0/24
deny cdd 10.0.0.0/8 表示允许czc用户从192.168.0这个网段连线访问,拒绝cdd从10.这个网段连线访问。
/etc/ftpaccess:是非常重要的一个配置文件,用来控制存取权限,文件中的每一行定义一个属性,并对属性的值进行设置。下面对它的一些常用配置做一点介绍:
1、定义用户类别
格式:class [类名] [real/guest/anonymous][IP地址]
功能:这个指令的功能设定FTP服务器上用户的类别。并可对客户端的IP地址进行限制,允许特定或者全部的IP地址访问FTP服务器。
2、登录重试次数
在命令行中输入:loginfails 10,这表明如果10次还没有登录成功就切断连线。
3、密码检查
格式:passwd-check 〈strictness〉 warn
是对匿名用户的密码使用方式的检查,其中〈strictness〉是三个可能的字符串之一:None、Trivial、RFC822。若选None,表示将不对口令做任何检查;若选Trivial,表示对口令有一定的要求,它需要在口令中至少要有一个@符号;若选RFC822,则表示最严格,要求E-mail地址必须遵守RFC822报文标题标准(如: [email protected] )。
例如:passwd-check rfc822 warn,表明密码的要求很严格,当密码不符合规定时出现警告信息。
4、登录人数的限制
格式:limit [类别] [人数] [时间] [文件名]
设置指定类别在约定时间内可以登录FTP的人数。例如:limit remote Any/etc/many.msg,说明类别Remote类别在任何时间内登录人数不超过20个人,否则会显示Many.msg警告信息。
合理运用这些配置,可以有效地保护好我们的服务器。
验证
安装、配置好FTP服务器后,就可以进行验证,用图形工具和命令行均可访问FTP服务器。在Linux里最常用的命令为FTP,它提供了一个并不复杂的FTP服务器接口。与FTP服务器连接,只需要在命令提示符后输入:FTP Servername,用主机名或希望连接的FTP服务器的IP地址代替Servername,按照提示输入用户名和口令,然后用标准的Linux上移或下移FTP服务器目录结构。另外,也可以采用图形化FTP程序,包括窗口式gFTP,可以借助Web浏览器去访问FTP服务器。

四、web服务器配置
只需对/etc/httpd/conf/httpd.conf进行部分修改即可
ServerTokens OS
ServerRoot "/etc/httpd" 注:指定守护进程httpd的运行目录
PidFile run/httpd.pid
Timeout 300 注:定义客户程序和服务器连接的超时间隔
KeepAlive Off 注:定义是否支持一次连接,多次传输功能
MaxKeepAliveRequests 100 注:一次连接可以进行的HTTP请求的最大请求次数
KeepAliveTimeout 15 注:一次连接中的多次请求传输之间的时间
MaxRequestsPerChild 0 注:每个子进程处理服务请求次数 0为无限次
Listen 80
User apache 注:指定用户和组
Group apache
ServerAdmin [email protected] 注:服务器管理员的E_MAIL地址
#ServerName 192.168.1.50:80 注:服务器域名,通常没有dns才需要
UseCanonicalName Off
DocumentRoot "/var/www/html" 注:指定网页文件存放位置
<IfModule mod_userdir.c>
UserDir user_www 注:用于个人主页,一般为/home/user/网页文件目录
</IfModule>
DirectoryIndex index.html index.htm index.php 注:指定网站首页名
AccessFileName .htaccess
Alias /manual "/var/www/manual"
<Directory "/var/www/manual">
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>
注:以上是设置针对目录进行文件的访问控制
ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
<IfModule mod_cgid.c>
Scriptsock run/httpd.cgid
</IfModule>
<Directory "/var/www/cgi-bin">
AllowOverride None
Options None
Order allow,deny
Allow from all
</Directory>
AddDefaultCharset GB2312 注:网站支持的字符编码
注:以下是设置虚拟主机服务所需配置的地方
#NameVirtualHost 202.101.2.1 注:基于名字的虚拟主机必须,如基于IP地址则不需要
#
# VirtualHost example:
# Almost any Apache directive may go into a VirtualHost container.
# The first VirtualHost section is used for requests without a known
# server name.
#注:如果是基于IP地址的虚拟主机只需下面的设置即可
#<VirtualHost 202.101.2.1>
# ServerAdmin [email protected]
# DocumentRoot /www/docs/dummy-host.example.com
# ServerName dummy-host.example.com
# ErrorLog logs/dummy-host.example.com-error_log
# CustomLog logs/dummy-host.example.com-access_log common
#</VirtualHost>
注:基于名字即一个IP地址对应多个域名
基于IP地址即每一个域名均有与之对应的IP

五、Samba服务器配置
#rpm -q samba //查看SAMBA是否安装,如未安装,则执行下列安装
#rpm -ivh squid-2.5.STABLE1-2.i386.rpm
#vi /etc/services //查看以netbios开头的服务是否可用,必须要全部可用
//linux防火墙要关闭
#ls /etc/samba //无smbpasswd文件
#smbpasswd -a tom //创建tom用户
#ls /var/log/samba //smb服务器的日志文件
#vi /etc/samba/smb.conf //编辑smb服务器的主配置文件
Workgroup = WORKGROUP //windows工作组名
server string = samba server //samba服务器简要说明
hosts allow = 192.168.1. 192.168.0. 127. //设置允许访问的子网,默认都允许,可不设置
hosts allwo = client1,alarm.com,192.168.16. EXCEPT 192.168.16.4 //举例说明
security = user //设置安全级,默认为user。五个级别分别为"share,user,server,domain,ads"
interfaces = eth0 //多网卡SAMBA服务器设置监听的网卡
interfaces = 192.168.16.177/24 //举例说明
wins support = yes //设置将samba服务器作为wins服务器,默认不使用
//wins服务器由微软开发,功能是将NetBIOS名称转换为对应的ip地址
username map = /etc/samba/smbusers //去掉前面的;号,用于用户映射
然后编辑文件/etc/samba/smbusers,将需要映射的用户添加进去,格式为
单独的linux用户 = 要映射的windows用户列表
例: test = alarm back //test用户对应windows下的alarm和back两个用户
encrypt password = yes 或 no //yes表示采用加密方式发送密码,no为不采用
若此项为no,则windows系统必须响应的修改注册表项,注册表文件存放在/usr/share/doc/samba-2.2.7a/docs/Registry下
[homes] //设置共享目录
comment = Home Directories //简要说明
browseable = no //是否允许用户浏览所有人的主目录
writable = yes //是否允许用户写入自己的主目录
[share] //设置一个共享目录
comment = Samba's share Directory //简要说明
read list = test //只读用户或组
write list = @share //可写用户或组
path = /home/share //共享文件夹目录路径
//设置共享目录后需要做以下操作
1.root登录,使用命令groupadd share 建立share组,并用usermod -g share abc命令将abc用户添加到share组
2.mkdir /home/share在/home下建立目录share
3.chown :share /home/share设置share目录所属组为share组,chmod 777 /home/share 设置share组对该目录有最大权限
:wq //保存退出
#testparm //测试smb.conf文件是否有语法错误
#su - //切换root用户
#service smb start|restart|stop //启动|重启|停止samba服务器
#ntsysv //设置samba服务器开机启动

六、Telnet服务器配置
(一)Telnet服务器的工作原理
  当你用Telnet登录进入远程计算机系统时,你事实上启动了两个程序,一个 叫Telnet客户程序,它运行在你的本地机上;另一个叫Telnet服务器程序,它运 行在你要登录的远程计算机上。本地机上的客户程序要完成如下功能:
1 、建立与服务器的TCP 联接;
2 、从键盘上接收你输入的字符;
3 、把你输入的字符串变成标准格式并送给远程服务器;
4 、从远程服务器接收输出的信息;
5 、把该信息显示在你的屏幕上。
远程计算机的“服务”程序通常被称为“精灵”,它平时不声不响地候在远程计算机上,一接到你的请求,就马上活跃起来,并完成如下功能:
1 、通知你的计算机,远程计算机已经准备好了;
2 、等候你输入命令;
3 、对你的命令作出反应(如显示目录内容,或执行某个程序等);
4 、把执行命令的结果送回给你的计算机;
5 、重新等候你的命令。
在Internet中,很多服务都采取这样一种客户/ 服务器结构。对Internet的使用者来讲,通常只要了解客户端的程序就够了。
 
(二) telnet服务器每个配置文件及重要选项的作用
要进行telnet服务器的文件配置就要开启telnet的参数,很简单有两种方式:
1. 使用ntsysv或chkconfig
2. 使用Vi修改/etc/xinetd.d/telnet文件
   其文件里的主要参数如下:
 disable =yes  #这是停用的意思
  Flage  =REUSE
  socket_type=stream
  wait   =no   #不等待
  user   =root #用户所有者是ROOT用户
  server =/usr/sbin/in.telnetd #服务所在目录
  log_on_failure +=USERID
   看上面的配置文件可知:只要将disable(停用的意思)变成no,也就是不取消,即是开启了!
 
(三) Telnet服务器的配置过程以及每一步的作用
1. 确认是否已经安装telnet
 # rpm -qa | grep telnet
2.如果没有安装,则要进行软件包的安装,通常要安装两个RPM
   一个是telnet-client,这个包提供的是telnet客户端连接程序
   另一个是telnet-server包,这是真正的Telnet服务器软件
 3.软件包装上之后,修改参数文件,再就是要启动服务了
 把 /etc/xinetd.d/telnet里面的disable=yes改为
 disable=no 就可以了。然后启动服务即可。
 # service xinetd restart
4. 查看有没有启动服务
 # netstat -tl
 
(四) 服务器完整的测试方案,测试服务器的可用性,可靠性
1. 先在服务器主机上进行登录测试,成功说明测试通过
  # telnet 服务器主机IP
2. 首先要测试客户端telnet的可用性
  # telnet 客户端IP
3. 如果客户端测试通过,再进行远程登录测试,登录telnet服务器主机
  # telnet 服务器主机IP
 如通过则提示登录成功
 不通过则提示登录失败
 
(五) telnet服务器运行过程中如何进行有效管理
1. Telnet服务器的有效管理方式主要就是进行IP限制,其过程 也要对配置文件进行修改
在/etc/xinetd.d/telnet配置文件中,增加以下两条命令:
only_from = 202.196.201.145/152  #仅允许这个IP段可以访问
no_access = 202.196.201.{151,152}  #限制这两个IP访问
2. 加设防火墙iptables
若是设置了自己的防火墙,那么想要针对202.196.201.0/24这个网段及24.xxx.xxx.xxx这个IP进行telnet的开放,可以增加下面几行iptable规则
 /sbin/iptables -A INPUT -P tcp -i eth0 -s 202.196.201.0/24 –dport 23 -j ACCEPT
  /sbin/iptables -A INPUT -p tcp -i eth0 -s 24.xxx.xxx.xxx –dport 23 -j ACCEPT
/sbin/iptables -A INPUT -p tcp -i eth0 --dport 23 -j DROP
 上面的规则中,第一、二行是针对来源IP开放端口23(即telnet协议),而最后一行则是将其它所有来源的,想要接入telnet的连接数据包都丢弃。
3. 建议事项
1 非必要时,不要启动telnet,如果真的要启动,也请在使用完毕后,立即将它关掉。
2 如果确定真的要启动telnet,请确定连接的限制范围,使用iptables来设置连接的限制区域。
3 在TCP_Wrappers的辅助下,加强防火墙的功能。
4 随时注意日志文件里关于登录的事项,并且禁止让 root以telnet登入 Linux主机。

六、DNS服务器配置
1. 编辑/etc/named.conf
// generated by named-bootconf.pl
options {
directory "/var/named";
/*
* If there is a firewall between you and nameservers you want
* to talk to, you might need to uncomment the query-source
* directive below. Previous versions of BIND always asked
* questions using port 53, but BIND 8.1 uses an unprivileged
* port by default.
*/
// query-source address * port 53;
};
//
// a caching only nameserver config
//
controls {
inet 127.0.0.1 allow { localhost; } keys { rndckey; };
};
zone "." IN {
type hint;
file "named.ca";
};
zone "mydomain.com" IN {
type master;
file "named.mydomain.com";
allow-update { none; };
};
zone "1.168.192.in-addr.arpa" IN {
type master;
file "named.mydomain.com.rev";
allow-update { none; };
};
zone "localhost" IN {
type master;
file "localhost.zone";
allow-update { none; };
};
zone "0.0.127.in-addr.arpa" IN {
type master;
file "named.local";
allow-update { none; };
};
include "/etc/rndc.key";
2. 编辑正向解析文件/var/named/named.mydomain.com
$TTL 86400
@ IN SOA my.mydomain.com. root.my.mydomain.com. (
1997022700 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400 ) ; Minimum
IN NS my.mydomain.com.
IN MX 10 my.mydomain.com.
my IN A 192.168.1.50
www IN CNAME my.mydomain.com.
ftp IN CNAME my.mydomain.com.
smtp IN CNAME my.mydomain.com.
pop3 IN CNAME my.mydomain.com.
3. 编辑反向解析文件/var/named/named.mydomain.com.rev
$TTL 86400
@ IN SOA my.mydomain.com. root.ns.mydomain.com. (
1997022700 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400 ) ; Minimum
IN NS my.mydomain.com.
50 IN PTR my.mydomain.com.
4. 编辑/var/named/named.local文件
$TTL 86400
@ IN SOA my.mydomain.com. root.my.mydomain.com. (
1997022700 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400 ) ; Minimum
IN NS my.mydomain.com.
1 IN PTR localhost.
5. 编辑/etc/resolv.conf
# MADE-BY-RP-PPPOE
domain mydomain.com
nameserver 192.168.1.50
search localdomain

七、TFTP服务器配置
1. 确保系统中已经安装了 tftp server 应用包,例如执行下面命令:
rpm -qa | grep tftp-server
tftp-server-0.32-4<=== 表示已安装 tftp-server 应用
否则用以下命令进行安装:
yum install tftp-server
2. 编辑 /etc/xinetd.d/tftp 文件,确保其 disable 选项设为 no,如下为示例配置:
service tftp
{
socket_type= dgram
protocol   = udp
wait   = yes
user   = root
server = /usr/sbin/in.tftpd
server_args= -s /tftpboot
disable= no
per_source = 11
cps= 100 2
flags  = IPv4
}
此外,确保/tftpboot目录存在,而且有访问权限(至少应该"dr-xr-xr-x")。
3.将需要下载的文件拷贝到/tftpboot下:
4. 重新启动 xinetd 服务:
/etc/init.d/xinetd restart

八、DHCP服务器配置
DHCP服务是通过程序/usr/sbin/dhcpd提供的。在DHCP服务器启动时,dhcpd要读取dhcpd.conf文件的内容(dhcpd.conf保存的是DHCP服务器的配置信息)。dhcpd将客户端租用的信息保存在dhcpd.lease文件中。在DHCP服务器为客户提供IP地址之前,将在这个文件中记录租用的信息。新的租用信息会添加到dhcpd.leases的尾部。为了向一个子网提供DHCP服务,dhcpd需要知道子网的网络号码和子网掩码。还有地址范围等等。
DHCP服务器配置文件内容:
文件名: /etc/dhcpd.conf
内容:
subnet 192.168.0.0 netmask 255.255.255.0{
range 192.168.0.10 192.168.0.30;
default-lease-time 86400;
max-lease-time 604800;
option subnet-mask 255.255.255.0;
option routers 192.168.0.2;
option domain-name "cy.com";
option broadcast-address 192.168.0.255;
option domain-name-servers 192.168.0.3; }
其中subnet x.x.x.x netmask x.x.x.x 说明IP地址是否属于该子网上,提供子网的一些参数;range x.x.x.x x.x.x.x 是DHCP服务器可以分配的IP地址范围; default-lease-time 设置缺省的IP租用时间,常用的是86400秒(一天);max-lease-time 最大租用时间。常用的是604800(一周);option subnet-mask 设置IP地址的子网掩码;option routers 设置在DHCP发布IP地址的同时,把网关发布出去,这一项是用来指明网关的;option domain-name-servers 设置在DHCP发布IP地址的同时,把DNS发布出去,这一项用来指明DNS服务器的IP地址;option broadcast-address 设置该子网的广播地址;option doamin-name 设置DNS域名。
DHCP还可以把主机的MAC地址和IP捆绑在一起,防止IP地址的乱用。具体方法是,在/etc/dhcpd.conf中输入:
host pc1{
hardware ethernet xx:xx:xx:xx:xx:xx
fixed-address 192.168.0.9;
}
host pc1中的pc1是指定主机的名字;hardware ethernet 指定要捆绑IP地址主机的MAC地址;fixed-address 指定捆绑后的IP地址。
现在配置文件已经有了,但还是不能启动dhcpd,为什么呢?因为我们还没有创建关于dhcpd的租用文件。
现在我们创建dhcpd.leases文件:
#toouch /var/state/dhcp/dhcpd.leases
然后就可以启动DHCP了:
#/etc/rc.d/init.d/dhcpd start
如果希望在每次启动系统的时候也启动DHCPD,请执行命令:
#/sbin/chkconfig --level 3 dhcpd on
chkconfig 命令是检查、设置系统的各种服务。参数 —level <等级代号>指定该系统服务要在哪一个执行等级中开启或关闭,范围是0-7。然后,在Linux客户端的设置netconf在网络设置中把IP地址的获得设置为DHCP。 这样,我们DHCP服务器的配置就完成了。
 
九、vsftpd服务器
(一) vsftpd服务器的工作原理
   vsftpd 是“very secure FTP damon”的缩写,安全性是它的一个最大的特点。Vsftpd是一个UNIX类操作系统上运行的服务器的名字,它可以运行在诸如linux,BSD,Solaris,HP-UNIX 等系统上面,是一个完全免费的,开发源码的FTP服务器软件,支持很多其他的FTP服务器所不支持的特征。比如所不支持的特征。比如:非常高的安全性需求,带宽,良好的可伸缩性,可创建虚拟用户,支持IPv6 ,速率高等。
(二) vsftpd服务器每个配置文件及重要选项的作用
1.相关配置文件/etc目录下的vsftpd.conf,vsftpd.ftpuser,vsftpd.user_list,/etc/xinetd.d/vsftpd
2.配置vsftp
主要是修改/etc/vsftpd.conf,相关参数如下:
anonymous_enable=YES 是否允许匿名ftp,如否则选择NO
local_enable=YES 是否允许本地用户登录
local_umask=022 默认的umask码
anon_upload_enable=YES 是否允许匿名ftp用户访问
anon_upload_enable=YES 是否允许匿名上传文件
anon_mkdir_write_enable=YES 是否允许匿名用户有创建目录的权利
dirmessage_enable=YES 是否显示目录说明文件,默认是YES但需要收工创建.message文件
xferlog_enable=YES 是否记录ftp传输过程
connect_from_port_20=YES 是否确信端口传输来自20(ftp-data)
chown_upload=YES
chown_username=username 是否改变上传文件的属主,如果是需要输入一个系统用户名,你可以把上传的文件都改成root属主
xferlog_file=/var/log/vsftpd.log ftp传输日志的路径和名字默认是/var/log/vsftpd.log
xferlog_std_format=YES 是否使用标准的ftp xferlog模式
idle_session_timeout=600 设置默认的断开不活跃session的时间
data_connection_timeout=120 设置数据传输超时时间
nopriv_user=ftpsecure 运行vsftpd需要的非特权系统用户默认是nobody
async_abor_enable=YES 是否允许运行特殊的ftp命令async ABOR.这里我
ascii_upload_enable=YES
ascii_download_enable=YES 是否使用ascii码方式上传和下载文件
ftpd_banner=Welcome to chenlf FTP service. 定制欢迎信息
deny_email_enable=YES
banned_email_file=/etc/vsftpd.banned_emails 是否允许禁止匿名用户使用某些邮件地址,如果是输入禁止的邮件地址的路径和文件名
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list 是否将系统用户限止在自己的home目录下,如果选择了yes那么chroot_list_file=/etc/vsftpd.chroot_list中列出的是不chroot的用户的列表
max_clients=Number 如果以standalone模式起动,那么只有$Number个用户可以连接,其他的用户将得到错误信息,默认是0不限止
message_file 设置访问一个目录时获得的目录信息文件的文件名,默认是.message
详细的帮助说明man vsftpd.conf查看。
(三) vsftpd服务器的配置过程以及每一步的作用
1安装vsftpd
源代码安装
详细参阅: http://www.vsftpdrocks.org/source/
下载源代码
wget ftp://vsftpd.beasts.org/users/cevans/vsftpd-1.2.1.tar.gz
解压 tar zxvf vsftpd-1.2.1.tar.gz
进入源代码目录cd vsftpd-1.2.1
编译  ./configure
 make
创建用户,如果不存在 nobody用户,请创建  useradd nobody
创建目录vsftpd 需要 /usr/share/empty 目录
如果不存在,请创建:mkdir /usr/share/empty
安装   make install
复制配置文件到/etc目录cp vsftpd.conf
2 /etc/etc/vsftpd.conf配置
以下是我的配置文件.允许匿名FTP,允许上传,chroot用户目录,上传文件属主改为root1.3.2 /etc/etc/vsftpd.conf配置
anonymous_enable=YES
local_enable=YES
write_enable=YES
local_umask=022
anon_upload_enable=YES
anon_mkdir_write_enable=YES
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
chown_uploads=YES
chown_username=root
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
pam_service_name=vsftpd
chroot_local_user=YES
vsftpd和wu-ftpd不能同时起动,所以修改/etc/xinetd.d/wu-ftpd将disable设置为yes,然后修改/etc/vsftpd将disable设置为NO
执行/etc/initd.d/xinetd restart
3启动vsftpd
(1)启动vsftpd服务: service vsftpd start
(2)要求建立两个用户user01,user02,且两用户对应同一目录
   首先用vi 打开/etc/vsftpd/vsftpd.conf确定
   write_enable=yes
(3)进入到/var/ftp下:  cd /var/ftp
   建一个文件夹: mkdir aa
   进入到aa 下 : cd aa
   创建两个用户:useradd u1
useradd u2
 并为他们设置密码: passwd u1
passwd u2
  回到上一层目录:cd ..
  设置aa的所有者为u1: chown u1 aa
  设置aa的权限:chmod -R 755 aa
  重启vsftpd服务:service vsftpd restart 
 (4)对某些IP 进行限制
用vi 编辑 /etc/hosts.deny : vi /etc/hosts.deny
若对202.196.201.153进行限制:vsftpd: 202.196.201.153
 保存并退出
刷新服务:service vsftpd restart
 
(四)服务器完整的测试方案,测试服务器的可用性,可靠性
1.在浏览器上访问vsftpd服务器
 本机的IP地址为:202.196.201.154
 在其他机子的浏览器上地址栏办输入: ftp://202.196.201.154
 若不能正常出现/var/ftp 文件夹内内容,需重新调试。
2.在其它机器的浏览器上访问vsftpd服务器
   输入: ftp://202.196.201.154 检测是否连接
  在其他机器上,打开gFTP程序,在 应用程序|internet|gFTP
  首先用u1 登陆,输入格式如下:
  主机:202.196.201.154 端口:21 用户名:u1 密码:123456
  如果成功登陆:则可选中本地文件可进行上传,
选中服务器文件进行下载
   再用u2登陆,输入格式如下:
  主机:202.196.201.154 端口:21 用户名:u2 密码:123456
  如果成功登陆:则可选中本地文件进行上传,将不成功
   选中服务器文件进行下载
(1) 测试被限IP对服务器的访问
在IP 为202.196.201.153机器的浏览器上输入: ftp://202.196.201.154
则不能访问FTP服务器,如果还能访问,则需重新调试。
 
(五) vsftpd服务器运行过程中如何进行有效管理
Vsftpd在运行过程中,可能会遇到很多问题,也会提出很多要求,这些都是要解决的。
首先在配置好vsftpd服务器后,已经进行了测试,保证了基本的运行状态。这个时候,如果要增加新的要求,比如设置最大链接数,如最大链接数为100,每个IP,最多能支持5个链接,所以就要修改配置文件vsftpd.conf中增加两行:max_clients=100  
max_per_ip=5
保存并退出后,再重启服务:service vsftpd restart 就解决了。又如需要限置下载速度,还是修改配置文件,与上面差不多,
anon_max_rate=数字
 local_max_rate=数字 单位为字节 增加这两行就了 …….
或者要对一IP限制,只要打开/etc/hosts.deny文件,增加
 Vsftpd: 202.196.201.153
保存并退出后,刷新服务就行了:service vsftpd restart
 
【参考资料】
1. LINUX 服务器配置大全 nangshou 03-05-02 16:40
2. NFS服务器配置 http://hi.baidu.com/zhengnei/blog/item/801809082367f330e92488f3.html
3. Linux下的FTP服务器配置 2004-4-8 作者:戴爱铭
4. samba服务器配置详细教程 《还没找到最初来源,谁知道告诉我》
5. Linux vsftpd telnet服务器配置 http://guodongshi.blog.bokee.net 2007-6-21

猜你喜欢

转载自sxl-xd-163-com.iteye.com/blog/835970