accept_unresolvable_domains)的注释将对垃圾邮件产生如何的影响?
5. m4有什么特征允许sendmail发送邮件作为整个域(例如,“example.com”)而不是完全的符合标准的主机名称(例如,“mail.example.com”)?
6. 在postfix中mynetworks_style如何影响转发? 请您查看文件/etc/postfix/main.cf。
7. 在文件/etc/postfix/access中需要如何的活跃的变化?
试验5 HTTP服务 估计时间: 1个小时 目标: 建立基本的拥有CGI的具有虚拟主机的Web服务器 试验的起点: 标准的Red Hat Linux安装
在整个试验中,主机和域名取决于您的机器的IP地址。如果下面的试验出现了X字样的名称,您应该把X字样的名称替换成您的工作站的号码(您的IP地址的最后一个部分)。例如,如果您的工作站的IP的地址是192.168.0.3,您应该将stationX.domainX.example.com转换成station3.domain3.example.com。
将数据包过滤设定为无效状态。在本次试验开始之前,请您确保您的主机上的所有包过滤已被关闭。缺省的安装将会有一个文件叫做“/etc/sysconfig/iptables”,该文件配置了iptable的功能。运行“chkconfig iptables off”。为了去除空间中所有的规则,运行“service iptables stop”
步骤1:服务的安装和基本的配置
场景/故事
您的组织需在一个小时内要一个Web服务器,拥有充足的CGI的能力比国内且具有为不同的虚拟主机提供不同的内容服务。
任务:
1. 需要如下的软件包:httpd和httpd-manual。如果需要的话,从CD或者ftp://server1/pub/RedHat/RPMS安装并...。使用chkconfig 来启动服务。 2. 启动httpd服务使用缺省的配置:service httpd restart 3. 检查在文件/etc/httpd/conf/httpd.conf中的DocumentRoot项目和下面的一样 DocumentRoot /var/www/html 4. 开启一个Web浏览器并且设定URL到: http://stationX.example.com
如果您的浏览器在工作,您将看到缺省的服务器的索引页面。注意该文件并不是所存储的HTML文件,而是服务器在这些目录中没有缺省的index.html文件的时候自动生成的。
5.建立一个新的目录层次和一些新的内容
mkdir –p /var/www/virtual/wwwX.example.com/html cd /var/www/virtual/wwwX.example.com/html cat > index.html <<EOF <b>wwwX.example.com</b> EOF
(这建立一个只有一行的HTML文件)
6.在/etc/httpd/conf/httpd.conf尾部加入以下几行:
NameVirtualHost 192.168.0.X<VirtualHost 192.168.0.X> ServerName wwwX.example.com ServerAdmin webmaster@wwwX.example.com DocumentRoot /var/www/virtual/wwwX.example.com/html ErrorLog logs/wwwX.example.com-error_logCustomLog logs/wwwX.example.com-access_log combined<Directory /var/www/ virtual/wwwX.example.com/html> Options Indexes Includes</Directory></VirtualHost>
7.确保您的DNS系统哦功能能够解析您的虚拟主机的名称。 dig wwwX.example.com
8. 重新启动httpd: service httpd reload
9.在您的Web浏览器并且设定URL到新的虚拟主机: http://wwwX.example.com 您看到您自己定义的页面了么?
步骤2:使用CGI
任务
1. 在步骤1设定的 <VirtualHost> 块中增加一行: ScriptAlias /cgi-bin/ /var/www/virtual/wwwX.example.com/cgi-bin/ 以上仅为一行并且在httpd.conf中不换行,注意给上面的两个元素之间留出空格。
2. 建立目录,然后在里面建立文件叫做test.sh 包含以下内容: /var/www/virtual/wwwX.example.com/cgi-bin/test.sh #!/bin/bashecho Content-Type: text/html;echo echo “<pre>”echo My username is:whoamiechoecho My id is:idechoecho My shell setting are:setechoecho My environment variable are:envechoecho Here is /etc/passwdcat /etc/passwdecho “</pre>”
3.通过把您的浏览器指向下面的地址尝试执行该CGI脚本 http://wwwX.example.com/cgi-bin/test.sh
为什么这个脚本不执行?检查日志文件/avr/log/httpd/获得信息来帮助你找到答案。(您是否计的重新启动或者重新载入服务器?)
4. 使得该脚本对于用户,组和其他可读并且可执行:
chmod 555 test.sh
现在脚本能够执行麽?
挑战1:为您的Web站点的文档提供安全访问 任务:
在wwwX.example.com的文档的根目录建立一个文件叫做.htaccess,并采用以下内容: /var/www/virtual/wwwX.example.com/html/.htaccess Authname “restricted stuff”AuthType BasicAuthUserFile /etc/httpd/conf/wwwXX.htpasswdrequire valid-user 2.建立您的域的密码文件。该文件必须被apache组可读。
htpasswd –mc /etc/httpd/conf/wwwX.htpasswd user_name chgrp apache /etc/httpd/conf/wwwX.htpasswd chmod g+r /etc/httpd/conf/wwwX.htpasswd
3.访问http://wwwX.example.com页面,您是否...httpd获得线索。
4.添加下列行到服务器的配置文件httpd.conf,在wwwX.example.com虚拟主机的<Directory> 块中增加一行:
AllowOverride AuthConfig
5.再次尝试访问http://wwwX.example.com页面,您是否...室趁娴娜ㄏ廾矗?/a>
步骤3:Squid的基本配置
1. 在您的系统上安装squid
rpm –Uvh ftp://server1.example.com/pub/RedHat/RPMS/squid*
2.开始服务(service squid start),然后配置您的浏览器使用您的localhost作为您的Proxy并且把端口设定为3128。
3.尝试访问一些主页。如果教师里面没有Internet可以访问,那么试图访问http://server1.example.com,将会返回服务器的测试页面。
4. 现在使用您的邻居来吧您的主机当作Proxy。这样子应该不能工作。
squid返回的页面在/var/log/squid/access.log文件的底部有所解释。
5.使用您喜欢的文本编辑器打开/etc/squid/squid.conf文件。正如您所看到的,大部分是文档和注释。您也该注意到squid是非常易于调校的。对于本实验,我们仅作简单的配置,熟悉了以后您将会适应更加复杂的配置。
6.在文件中查找第二次出现Recommend minimum configuration的地方。您将会会看到缺省的存取控制列表(acl)。在CONNECT method CONNECT 行的下面添加一个对于本地网络的存取访问列表项目:
acl example src 192.168.0.0/24
对于这个配置您可以把它作为参考以应用到其他的任何地方。src是该acl的源IP地址。 7.在文件中查找INSERT YOUR RULE(S) HERE,在localhost acl的上面增加如下的内容:
http_access allow example
重新启动squid。 您的邻居将能够访问您的Web缓存了。
8.一些URL最好能够避免。返回到acl的部分,在您新添加行的下面(使用example.com如果您在教师里面没有Internet访问权限的话)
acl otherguys dstdomain .yahoo.com acl otherguys dstdomain .hotmail.com
这里有一些要提及的东西。首先,注意到acl的附加属性。第二注意到dstdomain的acl类型,指明了关心的目的域。第三、注意到在域名前的点表示符号,确保加上点。
9.增加一条拒绝访问规则应用到这些存在问题的域。返回到您刚在添加allow的地方,在其下面增加如下行:
http_access deny otherguys
再次重新启动squid,再次检查这些相关的域,非常不幸,访问没有被拒绝。
10.再次打开配置文件,将您添加的拒绝规则放在example的允许规则之前。也就是说,在otherguys拒绝规则之前的example允许规则使得访问被允许,但是拒绝没有被生效。在移动规则以后,重新启动squid。这回它将禁止访问在任何上面禁止访问的域内的站点了。
复习的问题
1.根据/var/www/manual提及的服务器的手册。ServerAlias是起到什么作用?
2.根据/var/www/manual/suexec.html, suEXE对于CGI进程拥有什么特性?
3.下列命令起什么作用,何时使用它?
httpd –t
4. 您是否对您的用户能够通过CGI脚本看到您的/etc/passwd而感到不安?是否有方法阻止显示系统的密码文件?
试验6 NFS 和 FTP 估计时间: 1个小时 目标: 管理和配置vsftpd和NFS 试验的起点: 标准的Red Hat Linux安装
关掉包过滤:在着手试验之前需要确认包过滤没有被激活,默认情况下iptables会调用 /etc/sysconfig/iptables这个配置文件,删除或重命名这个文件,iptables就会在下次启动时失效。或者使用命令 chkconfig iptables off也行。如果想让iptables立刻失效可以用命令 service iptables stop.
步骤1:使用vsftpd允许匿名用户上传 1. 需要以下包:vsftpd 。如果没有安装,从CD或者ftp://server1/pub/RedHat/RPMS安装。激活vsftpd服务
2. Vsftpd包提供了/var/ftp作为匿名ftp用户的下载文件的目录。但是默认没有匿名上传的文件夹。要配置vsftpd来允许匿名上传,首先要准备一个上传目录:
cd /var/ftp mkdir incoming chown root.ftp incoming chmod 730 incoming
现在检验一下新目录的权限: ls –ld /var/ftp/incoming
3. 配置/etc/vsftpd/vsftpd.conf文件中如下各行:
anon_upload_enable = YES chown_uploads = YES chown_username = daemon anon_umask = 077 另外, 默认情况下anonymous_enable = YES(允许匿名访问)已经被配置了 重启vsftpd服务
4. 刚才配置的结果是使匿名用户可以上传文件到 /var/ftp/incoming中,但是不能从这个文件夹中下载文件或者列出文件(使用ls命令),这样可以防止“warez”之类的组织用我们的上传目录作为“drop box”来放盗版软件或数据。如果希望匿名用户上传文件,应该让 /var/ftp/incoming 文件夹的所有者为 daemon 所有组为 ftp,并且权限为600(只允许deamon用户读写)。
步骤2:NFS 任务:
5. 需要如下的软件包:nfs-utils。如果需要安装的话,请从CD或者ftp://server1/pub/RedHat/RPMS安装并...及nfslock服务。
6. 创建一个用户并且配置NFS共享他的主目录,共享给example.com读写权限。 a) 在配置NFS服务器之前,查看一下RPC服务是否在运行
rpcinfo –p showmount –e localhost
b) 创建一个测试用户
useradd nfstest
c) 编辑 /etc/exports 来共享 /home/nfstest给example.com。如果你不知道这个文件的格式,请查看exports的man page。
d) 安装NFS的软件包,配置init运行级别3到5启用NFS服务,但是因为启动时如果/etc/exports 文件丢失或者它的大小为零, NFS服务不会启动。所以,你现在要来手动启动它,下一次启动时NFS就会自动启动了。
e) 观察RPC服务是否启动,看一看是否将/home/nfstest用nfs共享出来了:
rpcinfo –p showmount –e localhost
f) 与一个或两个搭档相互mount对方的共享,然后再读取里面的内容,尝试用root和nfstest向其中写文件(如果你机器上的nfstest用户的UID和GID与搭档机器上该用户的不同,则把它们改成一样的)。看一下会怎样?为什么会这样?
试验8 身份验证服务 估计时间: 45分钟 目标: 培养有关身份验证的技巧 试验的起点: 标准的Red Hat Linux安装
关掉包过滤:在着手试验之前需要确认包过滤没有被激活,默认情况下iptables会调用 /etc/sysconfig/iptables这个配置文件,删除或重命名这个文件,iptables就会在下次启动时失效。或者使用命令 chkconfig iptables off也行。如果想让iptables立刻失效可以用命令 service iptables stop.
步骤1:使用PAM限制登陆的位置
场景/故事
您的系统中有高安全的内容。为了保证数据不被泄漏,你需要限制用户的访问,除了本地控制台,禁止任何其他方式访问系统。
任务: 1. 创建用户bill,他是user组的成员,再创建一个用户biff,他是finance组的成员 2. 编辑 /etc/security/access.conf 限定finance组的用户只能在第二个虚拟控制台登陆。为了达到这个目的,在这个文件的最后一行添加:
- : finance : ALL EXCEPT tty2
3. 通过编辑 /etc/pam.d/system-auth来限制所有服务,把以下这行添加到以auth开头的所有行后:
account required /lib/security/$ISA/pam_access.so
4. 如果你的限定起了作用,bill和root可以登陆到任何控制台,而biff只能在第二个虚拟控制台登陆
5. 清理:你如果运行authconfig工具,以上的操作将会被删除,你怎样确认你的设置有没有变化呢?
步骤2:使用NIS做身份验证
任务: 你应该与你旁边的人合作,然后决定谁做NIS的服务器端,谁做NIS的客户端,通过这个实验,你和你的同伴一起配置NIS的服务器端和客户端。你们要确定NIS的域名,还要注意每一个工作站的名字和IP地址,在开始以下的步骤之前,请确认以上内容。 1. 配置NIS服务器
a) 从ftp://server1/pub/RedHat/RPMS 、光盘安装ypserv,ypbind,和yptools的RPM包或者将server1的NFS共享mount到/mnt/server1上,从那里安装也可以。
b) 编辑 /etc/sysconfig/network ,添加这样一行:
NISDOMAIN = <你们的NIS域名>
下次启动时才会起作用,设置了NIS域名之后不要重新启动,运行命令:
domainname <你们的NIS域名>
c) 先将 /var/yp/Makefile 文件copy一份作为备份,编辑all部分只包含passwd和group:
all: passwd group
d) 打开portmap服务和ypserv服务
service portmap start service ypserv start
e) 确保make包在你的系统中安装,(以下的命令是在 server1:/var/ftp/pub 已经被mount到/mnt/server1后才能使用)
rpm –Uvh /mnt/server1/RedHat/RPMS/make*
f) 使用ypinit产生NIS数据库(maps),注意可能出现的错误信息
/usr/lib/yp/ypinit -m
(注意:你不用在列表中添加任何主机,只要按 < CTRL - D > )
g) 启动NIS password升级进程
service yppasswdd start
h) 如果ypinit在第六步时没有错误,重新启动ypserv服务:
service ypserv restart
i) 使用ps auxf | grep yp确定ypserv服务运行,如果有错误的话查看日志 /var/log/messages 完成:正在正常工作的NIS服务器
2. 配置NIS客户端
到现在,任务只完成一半,你和你的同伴需要再配置这个NIS服务器的客户端。
a) 在客户端,确认已经安装以下几个包:portmap,ypbind,yp-tools和authconfig
b) 确认客户端可以看到服务器上的portmap服务
rpcinfo –p 你们的NIS服务器
c) 使用authconfig工具配置你的客户端使用NIS进行身份验证,选定“Use NIS”,在“Domain:”后指定你的NIS域,在“Server:”后指定你的NIS服务器。
d) 确认authconfig正确工作,当authconfig完成后,它会自动开启ypbind服务,是否有出错信息出现在控制台上或者 /var/log/messages中?
e) 测试你的NIS客户端,使用root用户登陆你的客户端,root用户是客户端上的root还是NIS服务器上的?测试 客户端----服务器的连接,使用:
ypcat passwd
这样会显示出NIS服务器上的password数据,上一页 [1] [2] [3] [4] [5] [6] 下一页 |