Linux配置汇总上(北大青鸟Linux课程学习总结)
一、基本网络配置 1.基本配置文件 /etc/hosts:是将IP地址和主机名联系起来的简单文本文件。 格式:IP地址 全限定主机名 别名 举例:192.168.0.2 wanghui.shuke.com wanghui 说明:将IP地址映射到wanghui.shuke.com,并且分配一个备用主机名wanghui。 /etc/services:将服务的名字转成端口号。 注意:没有必要修改,已经包含了常用服务的端口号。 格式:主机服务名 端口号/端口类型 别名 举例:smtp 25/utp mail 说明:smtp服务使用25端口,使用utp连接方式,服务别名是mail。 /etc/sysconfig/network:网络配置信息,系统启动时会引导这个文件。 内容: NETWORKING=YES|NO YES表示需要配置网络,NO表示不需要配置网络; HOSTNAME=homename 主机的全限定域名; GATEWAY=gw-ip 网络网关的IP地址; GATEWAYDEV=gw-dev 网络设备的名称(例如eth0或者IP地址); NISDOMAIN=dom-name 表示NIS域(如果有的话)。 2.可执行脚本和命令 /etc/rc.d/init.d/network {start|stop|restart|reload|status} 系统启动时的初始化脚本程序。 /etc/sysconfig/network-scripts/ifcfg-interface-name:网卡配置文件。 内容: DEVICE=物理设备名 IPADDR=IP地址 NETMASK=掩码值 NETWORK=网络地址 BROADCAST=广播地址 GATEWAY=网关地址 ONBOOT=[yes|no](引导时是否激活设备) USERCTL=[yes|no](非root用户是否可以控制该设备) BOOTPROTO=[none|static|bootp|dhcp](引导时不使用协议|静态分配|BOOTP协议|DHCP协议) ifconfig:命令用来在系统内核表中设置或读取网络设备参数 举例:ifconfig eth0 IP地址 netmask 子网掩码 说明:配置IP和子网 举例:ifconfig eth0 hw ether MAC地址 说明:配置mac地址 举例:ficonfig dynamic 说明:启动dhcp 举例:ifconfig eth0 [down|up] 说明:启动或关闭网卡 netconfig:通过通行界面配置网络。 3.DNS /etc/host.conf:指定如何解析主机名。 举例:order hosts,bind 说明:查询顺序,先静态还是先dhcp /etc/nsswitch.conf:用于管理系统中多个配置文件查找的顺序。 /etc/resolv.conf:网络用来确定主机解析的关键文件之一,最多标示三个。 格式:search lintec.edu.cn nameserver 202.106.196.152 nameserver 202.106.196.115 说明:nameserver表明dns服务器的IP地址;search指明域名查询顺序。 4.路由设置及管理命令 route:显示路由信息 内容: Destination:目标网络或主机 Gateway:该目标要经由哪个网关传送 Genmask:目标网络或主机的掩码 Flages:路由标志 Iface:该路由使用的网络接口 Metric:路由成本 Ref:此路由被使用的次数 添加路由命令: route add -net 192.192.192.0 netmask 255.255.255.0 dev eth0 删除路由命令: route del -net 192.192.192.0 netmask 255.255.255.0 traceroute:测试路由命令 举例:traceroute www.sina.com.cn 说明:测试从本地到远程主机的路由信息 二、邮件服务 1.MUA与NTA: MUA:邮件用户代理,常用的有:Foxmail, Outlook Express, Pine, mail等。 MTA:邮件传送带里,常用的有:Sendmail, Qmail, Postfix, Exim, Exchange等 2.sendmail安装包: sendmail-812.8-4:sendmail可执行文件 sendmail-cf-812.8-4:sendmail.cf生成器 sendmail-doc-812.8-4:sendmail.doc文档 3.sendmail的主要配置文件: /etc/mail/aliases 用来定义邮件的列表、转发、别名。 注意:每次修改了aliases文件后,要使用命令newaliases更新数据库。 举例:fox: shuke 说明:系统用户shuke具有fox的别名。 举例:maillist: shuke liu wang zhang 说明:发送给maillist的邮件,shuke,liu,wang,zhang用户都能收到。 举例:shuke: shuke.w@163.com 说明:发送给本地shuke的用户会被转发给shuke.w@163.com这个邮箱。 /etc/mail/sendmail.cf 用来限定sendmail守护进程的运行,在264行左右。 /etc/mail/sendmail.mc sendmail.cf中的文件太复杂,可以通过编辑sendmail.mc文件,然后生成sendmail.cf文件。 命令:m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf /etc/mail/local-host-names 定义本地主机名和域名的列表,判断收到的邮件是本地的还是远程的。 /etc/mail/access.db 用来定义要通过的邮件地址列表,是允许还是拒绝。 每次修改后,需要用makemap生成新的access数据库。 命令:makemap hash /etc/mail/access.db < /etc/mail/access /etc/mail/sendmail.cw 当一个主机有多个域名,并且希望每个域名都能用来接收电子邮件时,可以在该文件中加入这些域名,sendmail会接受这些域名的邮件,并把他们当作本地邮件处理。 举例:vi /etc/mail/sendmail.cw cuckoo.edu.cn napoleon.frh.org 说明:这两个域名的邮件都会被这台机器接收。 /etc/mail/virtusertable 建立虚拟邮件账户。 举例:shuke@mail.shuke.com shuke1 shuke@shuke.com shuke2 说明:shuke@mail.shuke.com的邮件被接收,并放在shuke1邮箱,shuke@shuke.com邮件被接收,放在shuke2邮箱。 注意:修改后必须生成新的数据库文件。 命令:makemap hash /etc/mail/virtusertable.db < /etc/mail/virtusertable 4.其他文件 /var/spool/mqueue:是邮件队列临时存放的目录。 内容: qf*:消息队列控制文件; df*:数据文件; tf*:临时文件; nf*:每个用户对应的消息队列; xf*:当前会话过程的transcript文件。 /var/mail:存放所有收到的邮件,每个本地用户会有一个目录。 var/log/maillog:用于分析错误的日志文件。 5.增加sendmail的认证功能 需要使用的安装包: cyrus-sasl-devel-2.1.10-4 cyrus-sasl-md5-2.1.10-4 cyrus-sasl-gssapi-2.1.10-4 cyrus-sasl-2.1.10-4 cyrus-sasl-plain-2.1.10-4 注意:在sendmail已经包括sasl验证库的情况下,默认不支持smtp认证,需要配置/etc/mail/sendmail.mc文件支持smtp认证。编辑文件/etc/mail/sendmail.mc文件,并去掉下面三个文件前面的注释: TRUST_AUTH_MECH (`EXTERNAL DIGEST-MD5 LOGIN PLAIN ') dnl define (`confAUTH_MECHANISMS', ` EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN ') dnl DAEMON_OPTIONS (`Port =submission, Name=MSA, M=Ea') dnl 并配置下面的地址为本机IP地址: DAEMON_OPTIONS (`Port =smtp,Addr=192.168.10.2,Name=MSA, M=Ea') dnl 使用m4工具生成sendmail.mc文件: m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf 6.安装配置POP3和IMAP服务器 使用的安装包:imap-2001a-28 编辑两个文件:/etc/xinetd.d/ipop3文件和/etc/xinetd.d/imap文件,修改disable设置为"no",然后使用启动进程命令:/etc/rc.d/init.d/xinetd restart即可。 三、APACHE服务器与APACHE+MYSQL+PHP协同服务 1.Apache的主要配置文件:httpd.conf /etc/httpd/conf/httpd.conf 或者 /usr/local/apache/conf/httpd.conf httpd.conf的内容: Serverroot:设置服务器存在的主目录; LockFile filename:httpd守护进程的加锁文件,一般不需要设置,如果Serverroot是NFS文件系统,就需要修改参数指定本地文件系统中的路径; ScoreBoardFile file-path:httpd使用ScoreBoardFile来维护进程的内部数据,因此除非要在一台计算机上运行几个Apache服务器,否则不需要修改; PidFile /var/run/httpd.pid:指定文件记录httpd的守护进程号; Timeout number:定义客户程序和服务器连接的超时间隔; KeepAlive on|off:用于支持http1.1版本的一次连接、多次传输功能,这样就可以在一次连接中传递多个http请求; MaxKeepAliveRequests number:一次连接可以进行的http请求最大数。如果数值为0,将支持在一次连接内进行无限制的传输请求; KeepAliveTimeout number:测试一次连接中的多次请求传输之间的时间,如果在完成了一次连接之后没有收到客户程序的下一次请求,超过这个间隔值后,就会断开; StartServers number:服务器启动时建立的进程数量; MinSpareServers/MinSpareThreads number:服务器最低维持的空进程数; MaxSpareServers/MaxSpareThreads number:服务器运行时维持的最大空进程数; MaxClients number:服务器运行时可以同时处理的客户端最大数量; MaxRequestsPerChil number:设置每个进程可处理的请求数,达到这个数值后,子进程自动销毁,如果设置为0,则永不销毁子进程; Listen [IP-address:]portnumber:设置apache监听的端口,默认为80; LoadModule module filename:在apahce安装过程中,被配置为--enable-module=shared的apache模块,会被独立的编译成*.so的动态共享对象。当服务器需要加载这个动态对象时,必须在httpd.conf中使用LoadModule指令,指定在服务器启动或重新启动时被加载; 举例:LoadModule foo_module modules/foo.so ExtendedStatus On|Off:apache服务器可以通过特殊的http请求,报告自身的运行状态,打开这个ExtendedStatus参数,可以让服务器报告更全面的运行状态信息; User unix-userid:服务器以root身分启动以后,改变为设置的用户身份运行; Group unix-grouprid:服务器以root身分启动以后,改变为设置的组身份进行运行; ServerName 完整的域名/IP地址[:端口号]:默认不需要修改,如果服务器名字解析有问题,在此修改; ServerAdmin 邮件地址:设置的在返回给客户端的错误信息中要包含的邮件地址; UseCanonicalName on|off|dns:on-使用ServerName值生成的默认web站点构造服务器的规范名称,off-使用由客户提供的主机头指令的主机名称和端口号为服务器构造默认的web站点,dns-使用dns执行客户连接IP地址搜索时确定的主机名构造服务器默认的web站点; DocumentRoot /usr/local/apache/htdocs:设置客户端访问服务器时,可允许访问的根目录; 举例:DocumentRoot /usr/web 注意:最后的目录不要加"/"符号。 <Directory 目录路径>...</Directory>:用于封装一组命令,使之仅对某个目录及其子目录生效; 举例: <Directory /usr/local/apache/htdocs/pics> Options Indexes FollowSymLinks AllowOverride None Order allow,deny Allow from all </Directory> Options [+|-]可选项[+|-]可选项...:设置在特定目录中将使用那些服务器特性,默认为ALL; AllowOverride All|None|指令类型[指令类型]...:当服务器发现了一个.htaccess文件(由AccessFileName指定)时,它需要知道在这个文件中声明的哪些指令; Order规则:控制缺省的访问状态和Allow,Deny指令被评估的顺序; 举例: <Directory /www> order Allow,Deny Allow from shuke.com Deny from no.shuke.com 说明:shuke.com域中的所有主机,除了no.shuke.com子域中包含的主机外都允许访问。所有不在shuke.com域中的主机都不允许访问。 Allow from all|host|env=env-variable [host|env=env-variable]...:哪些主机可以访问服务器的一个区域,可以用主机名,IP地址,IP地址范围或者其他环境变量中捕获的客户端请求特性来对访问进行控制; Deny from all|host|env=env-variable [host|env=env-variable]...:允许基于主机名,IP地址或者环境变量限制对服务器的访问; UserDir Directory:设定了用户宿主目录下的一个实际目录,存放了该用户提供访问的文档。apache允许系统的每个用户建立自己的网站,用户只需要在自己的主目录下建立一个目录,并以UserDir指令设置目录名(默认为public_html),把提供访问的文件存放在该目录下,则在客户端可以使用类似的地址访问; 举例:http://webserver/~用户名/guess.html 说明:服务器向客户端返回/home/用户名/guess.html页面。 DirectoryIndex filename:设置默认的网站访问页面; 举例:DirectoryIndex index.html 说明:必须在客户端方式index.html为站点的索引文件。 AccessFileName 文件名:指定所有发布目录中的配置文件名; 举例:AccessFileName .htaccess 说明:在返回文档/usr/local/web/index.html之前,服务器会为此指令读取/.htaccess, /usr/.htaccess, /usr/local/.htaccess和/usr/local/web/.Htaccess,除非此功能已为如下代码所禁用: <Directory /> AllowOverride None </Directory> HostnameLookups on|off|double:此指令起用了DNS查询,使得主机名能被记入日志; ServerSignature On|Off|Email:配置服务器生成文档的页脚,on-简单的增加一行关于服务器版本和正在伺服的虚拟主机的ServerName,off-没有错误行,Email-额外创建一个指向ServerAdmin的"mailto:"部分; Alias URL-path file-path|directory-path:使文档可以存储在DocumentRoot以外的本地文件系统中; 举例:Alias /image /ftp/pub/image 说明:对http://webserver/image/shuke.w的请求,服务器将返回/ftp/pub/image/shuke.w文件。 ScriptAlias URL-path file-path|directory-path:ScriptAlias指令的行为与Alias指令相同,但同时,他又表明此目录中含有应该由mod_cgi中cgi-script处理器的CGI脚本; 举例:ScriptAlias /cgi-bin /web/cgi-bin/ 说明:对http://myserver/cgi-bin/shuke的请求会引导服务器执行/web/cgi-bin/shuke脚本。 AddType MIME-type extension [extension]...:AddType指令在给定的文件扩展名与特定的内容类型间建立映射关系; AddHandler handler-name extension [extension]...:指定带extension扩展名的文件应被handler-name处理器来处理。这个映射关系会添加在所有有效的映射上,并覆盖所有相同的extension扩展名映射; 举例:AddHandler cgi-script .cgi 说明:把扩展名为.cgi的文件作为CGI脚本处理,一旦这个定义放在httpd.conf文件中,所有包含.cgi扩展名的文件,都会被当作CGI程序。 <VirtualHost 地址[:端口号][地址[:端口号]]...>...</VirtualHost>:用于封装一组仅作用于特定虚拟主机的指令; 2.基于IP地址的虚拟主机: 1) 需要服务器支持一个网卡绑定多个IP地址,在Red Hat Linux9的内核中已默认支持此功能。首先需要为虚拟主机申请域名和IP,假设为本地地址为www.shuke1.com:202.19.0.23,申请新的域名和IP为:www.shuke2.com:202.19.0.55; 2) 为网卡添加新IP地址; #/sbin/ifconfig eth0 add 202.19.0.35 netmask 255.255.255.0 3) 重新设置httpd.conf,在文件中加入; <VirtualHost 202.19.0.35> ServerAdmin webmaster@ shuke1.com DocumentRoot /home/httpd/www.shuke2.com ServerName www.shuke2.com ErrorLog /var/log/httpd/www.shuke2.com/error.log </VirtualHost> 4) 建立相应的目录; #mkdir /home/httpd/www.shuke2.com #mkdir /var/log/httpd/www.shuke2.com 5) 将相应的主业内容存放在DocumentRoot指定的目录中; 6) 重新启动httpd服务进程,即可提供两个web服务器的功能。 3.基于名字的虚拟主机服务:基于名字的虚拟主机服务是比较适合使用的一种方案。他不需要更多的IP地址,而且配置简单,无需什么特殊的软硬件支持。现代的浏览器大都支持这种虚拟主机地实现方法。 1) 在DNS登记新的域名www.shuke2.com指向本地IP地址; 2) 修改配置文件,增加下面内容: NameVirtualHost 202.19.0.23 <VirtualHost 202.19.0.23> ServerAdmin webmaster@yourdomain.com DocumentRoot /home/httpd/www.shuke1.com ServerName www.shuke1.com ErrorLog /var/log/httpd/www.shuke1.com/error.log </VirtualHost> <VirtualHost 202.19.0.23> ServerAdmain webmaster@yourdomain.com DocumentRoot /home/httpd/www.shuke2.com ServerName www.shuke2.com ErrorLog /var/log/httpd/www.shuke2.com/error.log </VirtualHost> 也就是在基于IP地址的配置基础上增加一句:NameVirtualHost 202.19.0.23,最后是建立相应的目录,将主页内容放到相应的目录中去。 4.Apache的日志配置: 同样需要在httpd.conf中使用配置命令完成。 ErrorLog 文件路径|syslog[:facility]:指定了当服务器遇到错误时记录错误日志的文件名,默认为logs/error_log。 LogLevel级别:设置写入错误日志中信息的详细程度。 注意:建立至少使用crit级别,默认warn级别。 内容: emerg:紧急-系统无法使用; 举例:Child cannot open lock file. Exiting alert:必须立即采取错误; 举例:getpwuid: couldn't determine user name from uid crit:致命情况; 举例:socket: Failed to get a socket, exiting child error:错误情况; 举例:Premature end of script headers warn:警告情况; 举例:chile process 1234 did not exit, sending another SIGHUP notice:一般重要情况; 举例:httpd: caught SIGBUS, attempting to dump core in... info:普通信息; 举例:Server seems busy, (you may need to increase StarServers, or Min/MaxSpareServers)... debug:出错级别信息; 举例:Opening config file... LogFormat format|nickname [nickname]:定义日志文件的记录格式。 CustomLog file|pipe format|nickname [env=[!]environment-variable]:对服务器的请求进行日志记录。 TransferLog file|pipe:不允许直接定义日志格式或根据条件进行日志记录外,与CustomLog指令有完全相同的参数和功能。 5.Apache的安装与验证 1) 安装源代码包httpd-2.0.48.tar.gz [root@shuke src]#tar -zxvf httpd-2.0.48.tar.gz [root@shuke src]#cd httpd-2.0.48 [root@shuke httpd-2.0.48]#./configure --prefix=/usr/local/apache --enable-so [root@shuke httpd-2.0.48]#make [root@shuke httpd-2.0.48]#make install [root@shuke httpd-2.0.48]#vi /usr/local/apache/conf/httpd.conf 配置ServerAdmin的值为服务器管理员的邮箱地址: ServerAdmin webmaster@mail.shuke.com 配置ServerName的值为本机域名: ServerName webserver.shuke.com:80 [root@shuke httpd-2.0.48]#/usr/local/apache/bin/apachectl start [root@shuke httpd-2.0.48]#ps -aux | grep httpd 验证apache进程已经启动,通过客户端在浏览器打开站点,看到apache欢迎页面。 2) apache的启动和停止的配置 复制/usr/local/apache/bin/apachectl文件到/etc/rc.d/init.d/目录: [root@shuke httpd-2.0.48]#cp /usr/local/apache/bin/apachectl /etc/rc.d/init.d/ 编辑启动文件: [root@shuke httpd-2.0.48]#vi /etc/rc.d/init.d/apachectl 修改文件,在文件中'#!/bin/sh'后面加入下面两条规则: #!/bin/sh # # chkconfig: 2345 85 15 # description: Apache is a World Wide Web Server # 使用chkconfig命令把apachectl命令加入到系统启动队列中: [root@shuke apache]#chkconfig --add apachectl 查看apachectl的状态: [root@shuke apache]#chkconfig --list apachectl [root@shuke apache]#reboot 重新启动系统,察看进程,确认apache进程已经伴随系统启动。 3) 查看日志 查看错误日志: [root@shuke apache]#less /usr/local/apache/logs/error_log 查看访问日志: [root@shuke apache]#less /usr/local/apache/logs/access_log 6.Apache+Mysql+Php协同服务(顺序:mysql,apache,php) mysql的安装步骤: 1) 建立一个mysql的组和用户 2) ./configure --prefix=/usr/local/mysql --sysconfdir=/etc --localstatedir=/var/lib/mysql 3) make 4) make install 5) /usr/local/mysql/bin/mysql_install_db 初始化数据库。 6) chown -R mysql /var/lib/mysql 设置mysql目录的权限。 7) cp /usr/local/mysql/share/mysql/my-medium.cnf /etc/my.cnf 复制配置文件。 8) /usr/local/mysql/bin/mysqld_safe --user=root & 使用root用户启动mysql服务。 9) /usr/local/mysql/bin/mysqladmin -u root -p password 1234 因为初始的root密码是空的,因此修改密码,注意(Enter Password:直接回车)。 php的安装步骤: 1) ./configure --with-mysql=/usr/local/mysql --with-apxs2=/usr/local/apache/bin/apxs 2) make 3) make install 4) cp php.ini-dist /usr/local/lib/php/php.ini 复制php配置文件到php目录。 5) vi /usr/local/apache/conf/httpd.conf 修改apache的配置文件,添加内容: AddType application/x-httpd-php .php AddType application/x-httpd-php-source .phps 安装一个论坛(zorum)的步骤:(用一个已经做好的config.php文件) 1) cp -dpR zorum_3_5/* /usr/local/apache/htdocs/zorum/ 将文件拷贝到位于apache下的zorum目录下,并赋予它可以被写被读的权限。 2) 启动mysql和apache服务。 通过客户端访问验证,论坛启动成功,则协同服务正常。 四、DNS服务 1.安装包以及模板包 安装包:bind-9.2.1-16 模板包:caching-nameserver-7.2-7.noarch 2.配置文件 1) /etc/named.conf 主配置文件 举例:shuke.com,IP:10.0.0.10 vi /etc/named.conf; 在(include "/etc/rndc.key";)下添加: zone "shuke.com" IN { type master; file "shuke.com.zone"; allow-update { none; }; }; zone "0.0.10.in-addr.arpa" IN { type master; file "0.0.10.local"; allow-update { none; }; }; 说明:指明了正反向解析文件的调用位置。 2) /var/named/named.ca 根域名服务器指向文件 3) /var/named/named.local 区资源文件,反向映射信息 举例1:使用模板文件拷贝原内容到shuke.com的反向解析文件配置文件"0.0.10.local",并修改如下: $TTL 86400 @ IN SOA nameserver.shuke.com. root.mail.shuke.com. ( 2004010101 : Serial 28800 : Refresh 14400 : Retry 3600000 : Expire 86400 : Minimum IN NS nameserver.shuke.com. 10 IN PTR nameserver.shuke.com. 11 IN PTR webserver.shuke.com. 12 IN PTR mail.shuke.com. 13 IN PTR slave.shuke.com. 说明:shuke.com的域名反向解析文件配置,指定了域名服务器:nameserver.shuke.com,指定了主机位10.11.12.13分别对应的域名。 举例2:使用模板文件拷贝原内容到shuke.com的正向解析文件配置文件"shuke.com.zone",并修改如下: $TTL 86400 @ IN SOA nameserver.shuke.com. root.mail.shuke.com. ( 2004010101 : Serial 28800 : Refresh 14400 : Retry 3600000 : Expire 86400 : Minimum IN NS nameserver.shuke.com. IN MX 10 mail.shuke.com. Localhost. IN A 127.0.0.1 nameserver IN A 10.0.0.10 webserver IN A 10.0.0.11 www IN CNAME webserver mail IN A 10.0.0.12 slave IN A 10.0.0.13 说明:shuke.com的域名正向解析文件配置,指定了域名服务器:nameserver.shuke.com,指定了主机头分别对应的IP地址。 4) DNS资源记录类型 SOA:标记区数据的开始,定义影响整个区的参数; NS:一个区的域名服务器; A:转换主机名到IP地址; PTR:转换IP地址到主机名; MX:该域的邮件服务器; CHANME:定义主机别名; HINFO:描述主机硬件和操作系统信息; TXT:文本描述信息。 3.纯缓存域名服务器 不对外提供本地域名解析服务,只通过向根域名服务器或其他的域名服务器发布查询,以解析本地网络客户发出的请求,并将查询结果保存在缓存中,如果下次收到同样域名的查询,就不再向外发出查询请求,直接从缓存中读取信息返回给客户。 1) 需要三个配置文件 vi /etc/named.conf,做如下编辑: options { directory "/var/named"; forwarder {202.106.0.20;213.32.9.67}; }; zone "." IN { type hint; file "named.ca"; }; zone "0.0.127.in-addr.arpa" IN { type master; file "named.local"; }; 说明:forwarder选项使纯缓存域名服务器接收到域名请求时,如果缓存中没有请求的域名信息,将不直接向根域名服务器查询,而是把请求交给forwarder指定的DNS服务器代为查询,并在从这台DNS获得查询后返回查询请求客户,同时在缓存中保留该信息。 2) /var/named/named.ca 不需要修改 3) /var/named/named.local 同主域名服务器的文件设置相同,提供本地回环接口的反向映射信息。 4) 完成以上三个工作,通过rndc命令启动服务器,就可以对内网用户提供域名解析工作了。 4.辅助域名服务器 辅助域名服务器平时可以分担主域名服务器的负载,当主域名服务器不能正常工作时,辅助域名服务器还可以接管主服务器的工作。辅助域名服务器通过接收网络上主域名服务器传来的数据保持与主域名服务器的同步。辅助域名服务器的配置文件不同于主服务器,需要建立三个文件: 1) vi /etc/named.conf并做如下修改: options { directory "/var/named"; }; zone "." IN { type hint; file "named.ca"; }; zone "0.0.127.in-addr.arpa" IN { type master; file "named.local"; allow-update { none; }; }; zone "shuke.com" IN { type slave; file "shuke.com.zone"; masters { 10.0.0.10; }; }; zone "0.0.10.in-addr.arpa" IN { type slave; file "0.0.10.local"; masters { 10.0.0.10; }; }; 说明:本地域祝基辛吸取和反向解析区设置为slave类型,即辅助域名服务器本身不具有本地域的授权信息,只能接受主域名服务器的设置信息,向外提供本地域名解析服务,主域名服务器由masters项决定。同时,本地服务器也不用建立这两个slave区的数据文件,而是由named进程启动时自动从主DNS服务器10.0.0.10拷贝数据内容到从DNS服务器上。自动创建这两个主要文件。 2) /var/named/named.ca 辅助域名服务器中,此配置文件不需要修改。 3) /var/named/named.local 同主域名服务器设置。 5.调试域名服务器 nslookup和dig命令 五、文件服务 1.FTP常用命令: ![cmd [args]]:在本地机中执行交互shell后退回到ftp环境,如!ls *.zip; account [password]:提供登陆远程系统成功后访问系统资源所需的密码; append local-file[remote-file]:将本地文件追加到远程系统主机,若未指定远程系统文件名,则使用本地文件名; ascii:使用ASCII类型的传输方式; bin:是用二进制传输方式; bye:推出FTP会话过程; case:在使用mget时,将远程主机文件名中的大写转为小写字母; cd remote-dir:进入远程主机目录; cdup:进入远程主机目录的父目录; close:中断与远程服务器的ftp会话,与open对应; delete remote-file:删除远程主机文件; dir [remote-dir][local-file]:显示远程主机目录,并将结果存入本地文件; get remote-file[local-file]:将远程主机的文件remote-file传至本地硬盘的local-file; hash:没传输1024字节,显示一个hash符号"#"; help[cmd]:显示ftp内部命令cmd的帮助信息,如help get; lcd [dir]:将本地工作目录切换至dir; ls [remote-dir][local-file]:显示远程目录remote-dir,并存入本地文件local-file; mdelete [remote-file]:删除远程主机文件; mget remote-files:传输多个远程文件; mkdir dir-name:在远程主机中创建目录; mput local-file:将多个文件传输至远程主机; newer file-name:如果远程主机中file-name的修改时间比本地硬盘同名文件的时间更近,则重传该文件; open host[port]:建立指定的ftp服务器连接,可指定连接端口; put local-file[remote-file]:将本地文件local-file传至远程主机; pwd:显示远程主机的当前工作目录; quit:同bye,退出ftp会话; reget remote-file[local-file]:类似于get,但若local-file存在,则从上次传输中断处续传; rhelp [cmd-name]:请求获得远程主机的帮助; rstatus [file-name]:若未指定文件名,则显示远程主机的状态,否则显示文件状态; rename [from][to]:更改远程主机的文件名; restart marker:从指定的标志marker处,重新开始get或者put,如restart 130; rmdir dir-name:删除远程主机目录; size file-name:显示远程主机文件大小,如size idle 7200; status:显示当前ftp状态; system:显示远程主机的操作系统类型; user user-name[password][account]:向远程主机表明自己的身份,需要密码时,必须输入密码,如useranonymous my@email。 2.vsftp基本配置 1) 使用安装包:vsftpd-1.1.3-8 2) 配置vsftpd服务 /etc/vsftpd/vsftpd.conf 内容: anonymous_enable=YES:是否允许匿名ftp,如否,则选择NO; local_enable=YES:是否允许本地用户登陆; local_umask=022:设置本地用户的文件掩码为缺省022,默认值为077; 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_username=username:是否改变上传文件的属主,如果需要,则输入一个系统用户名,可以把上传的文件都改成root属主; xferlog_file=/var/log/vsftpd.log:ftp传输日志的路径和名字缺省是/var/log/vsftpd.log; xferlog_std_format=YES:是否使用标准的ftp xferlog模式; idle_session_timeout=600:设置缺省的断开不活跃会话时间; data_connection_timeout=120:设置数据传输超时时间; nopriv_user=ftpsecure:运行vsftpd需要的非特权系统用户,缺省是nobody; ascii_upload_enable=YES:是否使用ASCII方式上传文件; ascii_download_enable=YES:是否使用ASCII方式下载文件; ftpd_banner=Welcome to shuke FTP service:定制欢迎信息; deny_email_enable=YES:是否禁止匿名用户使用某些邮件地址; banned_email_file=/etc/vsftpd.banned_emails:如果禁止匿名用户使用某些邮件地址,则输入禁止的邮件地址的路径和文件名; chroot_list_enable=YES:是否将系统用户限制在自己的home目录下; chroot_list_file=/etc/vsftpd.chroot_list:如果限制系统用户在home目录下,则在列表中写出被禁止的用户列表; max_clients=Number:如果以standalone模式启动,那么,只有$Number个用户可以连接,其他用户将得到错误信息,缺省是0,不限制用户数; message_file:设置访问一个目录时获得的目录信息文件的文件名,缺省是.message。 3) /etc/vsftpd.ftpusers 此文件记录簿允许访问ftp服务器的用户名单。 4) /etc/vsftpd.user_list 此文件中指定的用户缺省情况下不能访问FTP服务器,在/etc/vsftpd/vsftpd.conf中设置了userlist_enable=NO的时候,仅允许列表中的用户访问FTP服务器。 5) 启动ftp服务进程 /etc/rc.d/init.d/vsftpd start 6) 设置vsftpd服务开机自动启动 chkconfig --level 2345 vsftpd on 3.wu-ftp的设置 1) 安装包 wu-ftpd-2.6.2-13984cl 2) 安装之后,会在/bin目录下生成5个可执行文件: ftpd:FTP服务器程序; ftpshut:用于关闭ftp服务器程序; ftpcount:显示目前在线人数; ftpwho:查看目前ftp服务器的连接情况; ckconfig:检查ftp服务器的设置是否正确; 3) 在/etc下生成了5个配置文件: /etc/ftpusers:禁止登陆FTP服务器的用户名; /etc/ftpconversions:用户在通过FTP传输文件的同时,对文件进行压缩打包处理,使用默认即可; /etc/ftphosts:禁止指定机器登陆; /etc/ftpgroups:在access配置文件中开放SITE命令后,可以使用SITE GROUP命令来制定一个增强的访问组合相应的密码,若输入的密码有效,该用户将变为/etc/ftpgroups文件中设置的组的成员,具有该组的访问权限; /etc/ftpaccess:最重要的配置文件,关系到ftp服务器能否运行。 内容: loginfails[次数]:设置当用户登陆到ftp服务器时,允许用户数错密码的次数; class[类名][real/guest/anonymous][IP地址]:设置FTP服务器上用户的类别,并可对客户端的IP地址进行限制,允许某部分的IP地址或全部的IP地址访问; limit[类别][人数][时间][文件名]:设置指定的时间内指定的类别允许连接的指定人数上限,当达到人数上限的时候,显示指定文件的内容; message [文件名称][指令]:当用户执行所指定的指令时,系统将指定的文件内容显示出来; passwd-check[none/trivial/rfc822][enforce/warn]:设置对匿名用户anonymous的密码使用方式。none-不做密码验证,trival-只要输入的密码中含有字符"@"就可以登陆,rfc822-表示密码一定要符合RFC822中所规定的E-mail格式才能登陆,enfore-表示输入的密码不符合以上的指定格式就不允许登陆,warn-表示密码不符合规定只出现警告信息,可以登陆; logcommand [real/guest/anonymous]:设置哪些用户登陆后的操作记录在文件/usr/adm/xferlog中; delete [yes/no][real/guest/anonymous]:设置是否允许指定用户使用delete命令删除文件,允许缺省,例如:delete no anonymous,guest; overwrite [yes/no][real/anonymous/guest]:设置是否允许指定用户覆盖同名文件,缺省是允许,但一般不允许匿名用户覆盖文件; chmod [yes/no][real/anonymous/guest]:设置是否允许指定用户使用chmod命令更改文件权限,缺省是允许; alias [目录别名][目录名]:给指定目录设置一个别名,在切换目录时,就可以使用较短的目录别名; deny [IP地址/域名][说明文件]:允许用户根据对方的IP地址或主机名阻断别人对登陆FTP服务器的访问。 4) 启动wu-ftpd服务器 /etc/rc.d/init.d/xinetd restart 4.NFS网络文件系统 1) linux系统之间的访问 mount servername:/exported dir /dir to mount -t nfs 举例:主机shuke1运行了NFS,将自己的/pub目录共享了,那么,客户机shuke2就可以通过如下命令装载客户机shuke1的共享资源,并将其挂接到/home/inport目录下: [root@shuke2root]#mount shuke1:/pub /home/inport 客户机在mount服务器的时候,可以传递一些命令选项,如: [root@shuke2root]#mount -o r shuke1:/pub /home/inport 表示把shuke1主机上的/pub目录挂在本地的/home/inport目录下,只读。 其他选项如下: rw:可以读写; bg:后台安装; intr:出现问题时,可以中断; soft:允许经过retrans次尝试后,停止安装,返回失败信息。 卸载服务器文件系统: #umount /home/inport 2) linux与windows之间的访问 在windows客户端安装nfsxe.exe软件。 3) 配置NFS服务器 创建或修改配置文件/etc/exports: exports的每一行由导出路径、客户列表以及每个客户名后尾随的访问选项构成,访问选项是可选的,语法如下:directory hostname (options)... 举例:/usr ws1.shuke.com 说明:导出路径/usr提供给ws1.shuke.com访问。 举例:/usr ws1.shuke.com (rw) 说明:导出路径/usr提供给ws1.shuke.com访问,具备读写权限。 举例:/pub (ro,insecure.all_squash) 说明:只允许对该分区做只读操作,任何机器都可以访问,允许用大于1024的端口进行连接,并把所有的连接id映射到nobody。 选项说明如下: insecure:允许用户可以从大于1024的端口进行连接; secure:限制用户只能从小于1024的端口进行连接; ro:只读,在没指定ro的情况下,默认是可写的; noaccess:让导出路径的所有子目录对客户不可见,用户连接到这样的路径后,看到的是个空目录; root_squash:设置服务器应答在某个NFS挂装分区上的根用户发出的请求,可以把从客户机的根用户的设置映射成nobody; no_root_squash:设置服务器在缺省情况下不理会在某个NFS挂装分区上的根用户发出的请求; rw:可写,这是缺省的。 4) 启动和停止NFS服务 第一次启动NFS时,使用启动脚本:/etc/rc.d/init.d/nfs start,NFS会在内核建立一系列的NFS相关进程,在修改过/etc/exports后,需要高速NFS进程重新检查配置信息,重新启动NFS进程。 5.建立Samba服务器 完成一个实例,安装、配置和启动samba服务器,向外共享tmp,home,pub,printer资源,并使它们可以被指定的客户机访问,启动samba服务器后,首先在本地使用测试工具测试samba服务器提供的服务,然后互相进行远程测试和访问共享资源试验结果。以IP192.168.0.6,主机名shuke为例进行试验,本试验任务通过主机名或IP地址进行访问,因而对DNS解析不做要求。 1) 安装Samba安装包: samba-2.2.7a-7.9.0 redhat-config-samba-1.0.4-1 samba-common-2.2.7a-7.9.0 samba-client-2.2.7a-7.9.0 samba-swat-2.2.7a-7.9.0 2) 编辑lmhost配置文件 [root@shuke samba]#vi /etc/samba/lmhosts 127.0.0.1 localhost 192.168.0.1 xpserver 192.168.0.6 smbserver 192.168.0.2 host2 192.168.0.3 host3 ~ 3) 修改/etc/samba/smb.conf文件,按照如下修改: [global] workgroup=TEST GROUP server string=Samba Server hosts allow=192.168.0. load printers=yes printcap name=/etc/printcap guest account=guest log file=/usr/local/samba/var/log.%m max log size=50 encrypt passwords=yes security=user socketoptions=TCP_NODELAY [homes] comment=HomeDirectories browseable=yes writable=yes [printers] comment=AllPrinters path=/usr/spool/samba browseable=yes guestok=no writable=no printable=yes [tmp] comment=Temporaryfile path=/tmp readonly=no public=yes [public] comment=PublicZone path=/var/pub public=yes writable=yes 4) 新建一个pub共享资源的目录/var/pub,并修改权县为任意用户都可读写; [root@shuke samba]#mkdir /var/pub [root@shuke samba]#chmod 777 /var/pub 5) 建立一个访问samba服务器的账号,smbuser,首先它应该成为系统账号; [root@shuke samba]#useradd smbuser [root@shuke samba]#passwd smbuser 6) 将系统账号smbuser添加到samba账号数据库中,使其仅对应于Windows用户winuser; [root@shuke samba]#smbadduser smbuser:winuser 7) 启动samba服务器守护进程; [root@shuke samba]#/etc/rc.d/init.d/smb 8) 使用sambaclient命令,测试对方的samba服务器的共享资源; [root@shuke samba]#sambaclient -L smbserver -U smbuser added interface ip=192.168.0.6 bcast=192.168.0.255 namsk=255.255.255.0 9) 使用smbmount命令装载远程主机的samba共享资源,并列出资源内容; [root@shuke samba]#smbmount //smbserver/homes /mnt -o username=smbuser 10) 因为homes资源是可写的,可以在此建立目录,然后使用smbumount命令卸载资源; [root@shuke samba]#mkdir /mnt/newdir [root@shuke samba]#smbumount /mnt 11) 启动windows系统,以winuser的用户名登陆系统,打开网上邻居-整个网络-Microsoft Windows Network,可看到Test group 本文出自 51CTO.COM技术博客 |


dzh001
博客统计信息
热门文章
最新评论
友情链接
