linux 跟我一起学6
zy66289214
|
1#
zy66289214 发表于 2007-07-24 12:11
linux 跟我一起学6
linux 大家一起学第五课
1.前面第四课已经把vsftpd服务器,http://www.linuxdiyf.com/bbs/viewthread.php?tid=53105架设起来了,我们最好从新启动下服务器,看看是否开机会自动启vsftp 2.前面装好的服务器会默认在[root@zy root]#ls /usr/local/sbin/ 下创建vsftpd守护进程,同时也在 [root@zy root]#ls /etc/xinetd.d/vsftpd 也放了一个vsftpd的启动脚本 所以服务器可以用两种方式启动,但我们希望它独立运行,所以我们要关闭这个启动,[root@zy root]#chkconfig --list vsftpd [root@zy root]#chkconfig vsftpd off [root@zy root]#chkconfig --list vsftpd [root@zy root]#netstat -tnl 查看21端口是否被占用着,如果被占用就要杀死该进程 [root@zy root]#ps -aux |grep ftp [root@zy root]#kill -9 进程pid号 [root@zy root]#/etc/rc.local 执行rc.local下的sbin命令 [root@zy root]#netstat -tnl 再次查看端口 3.[root@zy root]#vi /etc/vsftpd.conf 修改服务器的配置文件 我们首先来解释下vsftpd.conf配置下的几个常见命令 anonymous_enable=YES 允许匿名用户登录 注释掉即去掉# local_enable=YES 允许本地用户登录 去掉# write_enable=YES 允许本地用户写入 去掉# local_umask=022 本地用户新文件的umask值 去掉# abon_upload_enable=YES 允许匿名用户上传文件 去掉# anon_mkdir_write_enable=YES 允许匿名用户创建目录 不要管它 dirmessage_enable=YES 允许使用目录信息 去掉# ftpd_banner=welcome to zy ftp server 登录欢迎词 去掉# ls_recurse_enable=YES 允许客户端使用ls-r 命令 不管 listen=YES 监听模式 在结尾加入此句 wq保存退出 [root@zy root]#killall -9 vsftpd 现在我们的服务器是独立运行的我们需要把它杀死掉 [root@zy root]# /usr/local/sbin/vsftpd & 从新启动vsftpd [root@zy root]#useradd redhat 创建一个用户 [root@zy root]#passwd redhat 为它设上密码 [root@zy root]#ftp 192.168.1.144 登录自己的ftp服务器 输入用户名redhat 密码 ftp>pwd 查看当前的目录/home/redhat ftp>help 查看所有可使用的命令 ftp>put /etc/services ftpservices 将/etc/services 上传到ftp服务器上 ftp>ls 查看ftp服务器的目录 ftp>quit 退出ftp服务器 然后我们仿照上面用匿名用户上传文章试一下,结果我们会发现不成功的关键原因就是匿名用户的目录是/var/ftp ,而这个目录不属于匿名用户 [root@zy root]#cd /var/ftp/ [root@zy ftp]#mkdir /var/ftp/shangchuan 创建一个新的目录 [root@zy ftp]#chmod g+w shangchuan/ 让组可写 [root@zy root]#chgrp ftp shangchuan/ 把目录交给组ftp 这样我们就可以用匿名用户创建目录了 ftp>cd shangchuan 进入上传目录 然后就可以上传文章了 然后我们来体验下vsftp的另一个安全性,锁定用户目录 首先我们用redhat用户登录ftp ftp>pwd 当前的目录/home/redhat ftp>cd /etc 将会显示更改成功目录 ok 退出ftp quit 然后修改[root@zy root]#vi /etc/vsftpd.conf 将chroot_list_enable=YES chroot_list_file=/etc/vsftpd.chroot_list 将这两行注释掉 [root@zy root]#vi /etc/vsftpd.chroot_list redhat 将这个用户名写入进去,wq 然后我们再次登录ftp服务器 这次用redhat用户登录 ftp>pwd 这次将显示的是 / 目录其实是用户已经被锁定目录了 ftp>cd /etc 将会显示更改目录失败的提示了 4.如果我们要控制用户访问ftp服务器 [root@zy root]#vi /etc/ftpuesrs redhat zy wq 保存退出 这样默认情况下这两个用户 redhat和zy就不能访问ftp服务器,etc/ftpuesrs 是一个ftp服务器的黑名单 刚刚我们用redhat登录成功,现在我们把redhat加进ftpusers中 [root@zy root]# echo "redhat" >> /etc/ftpusers 再次登录就会发现登录失败。 [root@zy root]#vi /etc/passwd 对于系统的敏感用户,即passwd目录下 uid 500 以下的人 这些一般是被系统保留的人,我们应该通通把他们加入 /etc/ftpusers 中,这样做很麻烦 但我们可以反过来只允许指定人访问ftp服务器,而其他人被拒绝 [root@zy root]#cp RedHat/vsftpd.pam /etc/pam.d/ftp 这个第三课有说明大家看一下 [root@zy root]#more /etc/pam.d/ftp 这些用户本质上能登录是被pam.d文件控制了 我们只需要对pam.d/ftp 文件进行更改就可以了 [root@zy root]#vi /etc/pam.d/ftp 将里面默认拒绝的命令sense = deny 换成 sense=allow 这样就只有redhat 和 zy 用户可以登录ftp服务器了 5.为了安全期间,我们不想ftp用户是系统用户,所以我们就要建立一个虚拟的ftp用户,要保证系统确实没有的用户,如tom 首先我们编辑一个users.txt ,[root@zy root]#vi users.txt 里面输入用户 tom 密码 123 《用户和密码不要输进去,第一行是用户tom,第二行是密码123》 [root@zy root]#id tom 确认一下 tom用户不存在 [root@zy root]#db_load -T -t hash -f users.txt /etc/vsftpd_login.db 解释一下 -T 就是将简单txt文件写入db 数据库的命令 -t 是指写入的类型为hash ,-f就是文件名 ,/etc/vsftpd_login.db 这是指文件写入到的位置 [root@zy root]#chmod 600 /etc/vsftpd_login.db 将这个文件的权限改为600 [root@zy root]#vi /etc/pam.d/ftp 修改pam.d的服务文件 首先我们要把以前的注释掉 ,在所有的前面加# 注释掉 然后我们添上两句话 auth required pam_userdb.so db=/etc/vsftpd_login.db account required pam_userdb.so db=/etc/vsftpd_login.db auth 是认证,其中required 是一种控制方式 我们使用pam_user.db.so这个模块 并且加载一个db=/etc/vsftpd_login.db account 是指类型为 [root@zy root]# useradd vuser 建立一个虚拟帐户用来映射的,这个用户是不用设密码的 [root@zy root]#vi /etc/vsftpd.conf 编辑服务器的配置 我们要禁用掉所有的anon开头的命令,禁止匿名用户登录 然后 我们要加入两条命令 guest_enable=YES guest_username=vuser wq保存退出 然后我们实验下用redhat登录下结果反应是登录失败de ftp>user 我们用虚拟user登录 (username)tom 密码输入 123 进去了 ok 我们可以下个文件看看ftp》get .bashrc 下载成功 ls但是我们却不能看到 quit退出 [root@zy root]#cp install.log /home/vuser/ 复制install.log [root@zy root]#chmod o+r /home/vuser/ 改变目录为其他人可读 从新用tom登录我们就可以看到install.log了 特别注意,每次对/etc/vsftpd.conf文件做一次修改都要从新启动一次服务器用这个命令可以代替[root@zy root]#killall -HUP vsftpd 哥们们我不容易啊,打了半天的字,当你们学会一点小知识的时候顶哥们一下给哥们一定的支持,我会继续努力把linux大家一起学 写完的 |