linux实验web服务器和FTP服务器配置.doc
实验1 配置WEB服务器(2) 一创建基于IP地址的虚拟主机这种方式需要在机器上设置IP别名,也就是在一台机器的网卡上绑定多个IP地址来为多个虚拟主机服务。步骤:1、创建虚拟接口2、在两个文件夹中分别建立测试页3、打开WEBMIN 设置虚拟WEB服务器4、打开浏览器测试二创建基于域名的虚拟主机1、卸掉一个虚拟接口192.168.1.62、删除192.168.1.4和192.168.1.6 的WEB虚拟服务器3、基于192.168.1.4分别创建两个新的虚拟服务器4、设置XP的本地域名解析服务:使用记事本打开c:windowssystem32driversetchosts文件,添加内容5、打开浏览器分别测试:三、首先在httpd.conf配置文件中使用别名和设置访问控制,然后通过IE及这个配置文件的相关设置来访问LINUX 文件夹1、打开WEBMIN 的WEB服务器中的【编辑配置文件】选项,如下:2、添加蓝色背景的内容,含义是:允许别名使用(不在主页缺省的根目录(/var/www/html)中),无索引文件则显示目录,并允许所有人访问。3、打开浏览器访问:LINUX的/boot目录四、使用.htaccess作目录认证保护网站的.htaccess 目录认证保护模式弹性很大,不用写程序就可限制进入目录的账号和密码,比较安全。假设要限制连接http:/主机名称/exam时出现账号认证窗口,配置的步骤如下: (.htaccess是一个文件,访问的用户及权限是根据该文件来设定,而不是httpd.conf)1、制作一个保护的目录2、修改配置文件httpd.conf打开【服务器】【Apache服务器】【编辑配置文件】,文件结尾处加入:在未配置保护的情況下,键入http:/Linux Ip地址/u 可直接看到网页内容。3、 对该目录使用.htaccess文件进行设定访问,首先,说明可允许使用.htaccess文件的配置: 在【编辑配置文件】,文件结尾处加入: <Directory /uu> Allowoverride authconfig</Directory> 4、 建立.htaccess 文件: 在/uu 目录下产生.htaccess 文件内容如下: AuthName "this is about .htaccess test" /这是显示在窗口上面的提示信息AuthType Basic /认证的类型,选Basic 即可 AuthUserFile /uu/wwwpasswd /密码文件放置的地方require valid-user5、 建立有效用户和密码文件 建立密码文件及配置可进入此目录的账号及密码。步骤如下:rootmylinux uu# htpasswd c /uu/wwwpasswd stu1New password:Re-type new password: Adding password for user stu1rootmylinux uu#htpasswd /uu/wwwpasswd stu2New password: Re-type new password: Adding password for user stu2rootmylinux uu# htpasswd /uu/wwwpasswd stu3New password: Re-type new password: Adding password for user stu3查看用户密码文件wwwpasswd加密后的密码: rootmylinux uu# cat wwwpasswd Stu1:.Sh5qm7pleM4I Stu2:V9siE7LEJix2A Stu3:nZ1uH1S981B3M 6、修改密码文件的权限(该用户的属主是 root,因此,需要修改其他人的访问权限) rootmylinux uu#chmod o+r /uu/wwwpasswd 7、在浏览器的地址栏输入:http:/localhost/u 时就会出现目录认证。实验2配置vsftpd服务器1、FTP 基本原理v FTP服务的具体工作过程如下: 当FTP客户端发出请求时,系统将动态分配一个端口(如1032)。 若FTP服务器在端口21侦听到该请求,则在FTP客户端的端口1032和FTP服务器的端口21之间建立起一个FTP会话连接。 当需要传输数据时,FTP客户端再动态打开一个连接到FTP服务器的端口20的第2个端口(如1033),这样就可在这两个端口之间进行数据的传输。当数据传输完毕后,这两个端口会自动关闭。 当FTP客户端断开与FTP服务器的连接时,客户端上动态分配的端口将自动释放掉。 2、配置vsftpd服务器Webmin中没有vsftpd模块,先要安装vsftpd模块(主要是通过webmin便于管理)所需模块文件:vsftpd.tar.tar ; 打开webmin:选择webmin配置:选择 webmin模块,安装v vsftpd 是在 chroot 模式下工作chroot 模式就是要为vsftpd单独指定一个新的目录,vsftpd也就不能访问那个目录之外的程序和文件了这也称为“被锁上的” 。一个可能被潜在的攻击者破坏的FTP 服务器将被从系统的其他部分独立开来,从而避免了更大的损失。v vsFTP的运行模式a) 一种是独立(standalone)运行模式b) 一种是xinetd(eXtended Internet Services Daemon,即:扩展的Internet服务守护进程)模式。独立运行模式适合专业的FTP服务器,且FTP总是一直有人访问,占用资源比较大,如果FTP服务器总是有人访问和登入建议采用这种模式。如果FTP服务器访问人数比较少,建议用xinetd模式。 xinetd模式的运行方式一直监听端口,当客户端有FTP连接请求时,首先会将连接传至xinetd,xinetd再将此要求传至vsftpd,启动相应的vsftp服务进程(即:vsftpd)。v vsftpd的文件结构vsftpd的文件结构是很简洁的,主要包括: /usr/sbin/vsftpd vsftpd的主程序 /etc/rc.d/init.d/vsftpd 启动脚本 /etc/vsftpd/vsftpd.conf 主配置文件 /etc/pam.d/vsftpd PAM认证文件 /etc/vsftpd.ftpusers 禁止使用vsftpd的用户列表文件 /etc/vsftpd.user_list 禁止或允许使用vsftpd的用户列表文件 /var/ftp 匿名用户主目录 /var/ftp/pub 匿名用户的下载目录 此外,还有一些说明文档和手册文件。 vsftpd的日志文件位于:/etc/logrotate.d/vsftpd.log。 主配置文件 /etc/vsftpd/vsftpd.conf中,设置vsftpd.user_list用户是否可登陆FTP的选项:userlist_enable=YES|NO 若是启用此功能,vsFTPD将读取/etc/userlist_file参数所指定的文件中的用户列表。当列表中的用户登录FTP服务器时,该用户在提示输入密码之前就被禁止了。即该用户名输入后,vsFTPD查到该用户名在列表,vsFTPD就直接禁止该用户登录,不会再进行询问密码等后续步聚,这可避免明文(Clear Text)在网络上传输。默认值为NO。 userlist_file=/etc/vsftpd.user_list 指出userlist_enable选项生效后,被读取的包含用户列表的文件。默认值是/etc/vsftpd.user_list。 userlist_deny=YES|NO 此选项在userlist_enable 选项启动后才生效。决定禁止还是只允许由/etc/userlist_file指定文件中的用户登录FTP服务器。YES,默认值,禁止文件中的用户登录,同时也不向这些用户发出输入口令的提示。若设为停用(即为NO),则只允许在文件中的用户登录FTP服务器。 v 测试ftp的运行默认情况下,安装好vsftp服务器后就可以使用匿名用户anonymous(或ftp)下载文件了。例如,使用匿名用户下载文件,操作步骤如下: 1)生成一个用于测试的文件welcome.txt。 默认情况下,匿名用户下载目录/var/ftp/pub下没有任何内容,为了进行测试,可以先生成一个测试文件welcome.txt。 rootCandy root#echo “Welcome to my vsFTP Server” >/var/ftp/pub/welcome.txt2)使用匿名用户(ftp或anonymous)登录ftp:rootCandy root#ftp 127.0.0.1Connected to 127.0.0.1 (127.0.0.1).220 (vsFTPd 2.0.5)Name (127.0.0.1:root): anonymous 331 Please specify the password.Password:123 /输入Email地址或任意字符串作为anonymous匿名账号的口令230 Login successful. Remote system type is UNIX. Using binary mode to transfer files. 3) 列表显示匿名FTP服务器目录并进入pub目录。ftp> ls 227 Entering Passive Mode (127,0,0,1,126,111) 150 Here comes the directory listing. drwxr-xr-x 2 0 0 4096 Oct 03 19:09 pub 226 Directory send OK. ftp> cd pub 250 Directory successfully changed. 4) 显示/var/ftp/pub目录下的内容并下载welcome.txt文件。ftp> ls 227 Entering Passive Mode (127,0,0,1,44,205) 150 Here comes the directory listing. -r-xr-xr-x 1 0 1 31 Oct 03 19:09 welcome.txt226 Directory send OK. ftp> get welcome.txt227 Entering Passive Mode (127,0,0,1,99,247) 150 Opening BINARY mode data connection for welcome.txt (31bytes). 226 File send OK. 31 bytes received in 0.000188 secs (1.6e+02 Kbytes/sec) 5) 测试是否能上传文件到/var/ftp/pub目录。ftp> put install.log local: install.log remote: install.log 227 Entering Passive Mode(127,0,0,1,233,16)550 Permission Denied.从上面信息可以看出上传文件失败6) 退出FTP ftp> bye 221 Goodbye. v 主动模式和被动模式 FTP 有PORT FTP和PASV FTP两种模式。它们的区别在于数据传输端口(ftp-data)的使用方式。PORT FTP是一般的FTP,由FTP服务器指定数据传输使用的端口,默认值为20。PASVFTP由FTP客户端决定数据传输的端口。PORT FTP:在主动模式中,FTP客户端随机开启一个大于1024的端口X向服务器的21号端口发起控制连接请求,然后开放X+1号端口进行监听;FTP服务器接受请求并建立控制连接会话。如果客户端在控制会话中发送数据连接请求,那么服务器在接收到命令后,会用其本地的FTP数据端口(通常是20)来连接客户端指定的端口X+1进行数据传输 。PASVFTP:被动模式的控制连接和数据连接都是由FTP客户端发起的。首先FTP客户端随机开启一个大于1024的端口X向服务器的21端口发起连接,同时会开启X+1端口。然后向服务器发送PASV命令,通知服务器自己处于被动模式。服务器收到命令后,会开放一个大于1024的端口Y进行监听,然后用PORT Y命令通知客户端,自己的数据端口是Y。客户端收到命令后,会通过X+1号端口连接服务器的端口Y,然后在两个端口之间进行数据传输。这样就能使防火墙知道用于数据连接的端口号,而使数据连接得以建立。 v VSFTPD用户分为:匿名用户、本地用户、虚拟用户匿名用户:a)配置匿名用户,使之可以上传/下载文件。操作步骤如下:(1)在/var/ftp/创建一个上传目录,并修改权限。rootCandy root cd /var/ftp /首先进入/var/ftp目录。rootCandy ftp# mkdir /var/ftp/incoming /创建incoming目录。rootCandy ftp# chmod o+w /var/ftp/incoming /由于匿名用户(ftp)上传文件,需要对incoming目录进行操作,而incoming为root所有,匿名用户(ftp)对于incoming来说是其他用户,所以要加入其他用户(o)的写权限。 (2)编辑/etc/vsftpd/vsftpd.conf文件 rootCandy root vi /etc/vsftpd/vsftpd.conf 确保 anonymous_enabled=YES有效。 找到“# anon_upload_enable=YES”行,去掉前面的注释 符号“#”,并在下面添加如下行: chown_uploads=YES anon_umask=077 anon_mkdir_write_enable=YES anon_world_readable_only=YES /只让匿名用户浏览可阅读的文件,不可以浏览整个系统 (3)存盘退出。 通过前面的配置后,匿名用户ftp(或anonymous)既可下载文件,又可上传文件到incoming目录,也能在incoming目录下创建新的目录。本地用户在使用FTP服务的用户中,除了匿名用户外,还有一类在FTP服务器所属主机上拥有账号的用户。vsftpd中称此类用户为本地用户(local users),等同于其他FTP服务器中的real用户。b) 配置本地用户user1具有上传/下载、user2具有下载功能,其中user1和user2同属于students组。 操作步骤如下:(1)创建用户组 students和FTP的主目录 rootCandy root groupadd students rootCandy root mkdir /var/ftproot rootCandy root useradd -G students d /var/ftproot M user1注:-G:用户所在的组;-d:表示创建用户主目录的位置;-M:不建立默认的用户主目录,也即在/home下不创建用户主目录。rootCandy root useradd G students d /var/ftproot M user2(2)改变目录的属主和权限rootCandy root chown user1.students /var/ftproot /把/var/ftproot的属主定为user1。rootCandy root chmod 750 /var/ ftproot即自己具有所有权限,同组成员只具有读和执行权限,而其他人不具有任何权限。(3)修改配置文件/etc/vsftpd/vsftpd.conf 设置:local_enable=yes write_enable=yes chroot_local_user=yes 三个选项即可。c) 限制某些本地用户在属主目录,其他本地用户没有限制。步骤如下:chroot_list_enable=YES|NO 锁定某些用户在自家目录中。即当这些用户登录后,不可以转到系统的其他目录,只能在自家目录(及其子目录)下。具体的用户在chroot_list_file参数所指定的文件中列出。默认值为NO。 chroot_list_file=/etc/vsftpd/chroot_list 指出被锁定在自家目录中的用户的列表文件。文件格式为一行一用户。通常该文件是/etc/vsftpd/chroot_list。此选项默认不设置。 chroot_local_users=YES|NO 将本地用户锁定在自家目录中。当此项被激活时,chroot_list_enable和chroot_local_users参数的作用将发生变化,chroot_list_file所指定文件中的用户将不被锁定在自家目录。本参数被激活后,可能带来安全上的冲突,特别是当用户拥有上传、shell访问等权限时。因此,只有在确实了解的情况下,才可以打开此参数。默认值为NO。 虚拟用户vsftpd的本地用户本身是系统的用户,除了可以登录FTP服务器外,还可以登录系统使用其他系统资源,而vsftpd的虚拟用户则是FTP服务的专用用户,虚拟用户只能访问FTP服务器资源。对于只需要通过FTP对系统有读写权限,而不需要其他系统资源的用户或情况来说,采用虚拟用户方式是很适合的。 特点:v vsftpd的虚拟用户采用单独的用户名/口令保存方式,与系统账号(passwd/shadow)分离,这大大增强了系统的安全性。v vsftpd可以采用数据库文件来保存用户/口令,如hash;也可以将用户/口令保存在数据库服务器中,如MySQL,DB等。v vsftpd验证虚拟用户则采用PAM方式。v 由于虚拟用户的用户名/口令被单独保存,因此在验证时,vsftpd需要用一个系统用户的身份来读取数据库文件或数据库服务器以完成验证,这就是guest用户,guest用户也认为是用于映射虚拟用户的。配置虚拟用户分为几部分:(a) guest用户的创建(b) 用户/口令的保存(c) PAM认证配置(d) vsftpd.conf文件设置等。注:quick linux 的db_load需要升级才能使用:相关文件是:db4-4.3.27-3.i386.rpmdb4-devel-4.3.27-3.i386.rpmdb4-utils-4.3.27-3.i386.rpmlibcrypto.so.5libssl.so.5将其拷贝到linux 的根目录 / 下。进入webmin:选择软件包选项依次安装三个软件包(.rpm)(a) guest用户的创建useradd user3 /创建一个本地用户 passwd user3 /创建密码 (可进入/home/user3的家目录,使用touch 或vi ,mkdir命令建立子目录或文件,以便登陆测试时能浏览内容)(b) 用户/口令的保存 1、编辑一个文本文件logins.txt内容如下:按wq 保存退出编辑虚拟用户(user1,user2)各自的登陆配置文件:按wq保存2、把该文件转换为一个加密的数据库文件(db 数据库)设置数据库login.db的访问权限(c) PAM认证配置按wq 保存(d) vsftpd.conf文件设置等。 关闭vsftpd服务:service vsftpd stop1、打开webmin 的vsftpd模块2、选择manual entries 选项3、编辑vsftpd.conf4、重启vsftpd 服务Service vsftpd start5、IE浏览器登陆测试