Linux服务篇之二、构建Vsftp文件服务器
FTP是文件传输协议,正是由于这种协议使得主机间可以共享文件。 FTP 使用TCP生成一个虚拟连接用于控制信息,然后再生成一个单独的 TCP 连接用于数据传输。
vsftpd是一款在Linux发行版中最主流的FTP服务器程序;特点是小巧轻快,安全易用;能让其自身特点得发发挥和掌握。
一、第一种方法就是使用系统用户登录FTP,但是也是比较危险的,先测试系统用户登录FTP,在Linux系统上创建useradd test 用户,并为其设置名,然后在xp客户端打开我的电脑资源里面访问ftp://IP,输入用户名和密码即可访问,进行创建和删除操作。
1、安装vsftpd服务,
2、查看vsftpd的内容:先排除一下#的内容,
3、把vsftpd.conf的内容到一个新的配置文件中,
4、再把vsftpd1.conf的配置文件覆盖一下vsftpd.conf,
查看vsftpd.conf文件:只剩下这内容,也是起作用的内容,这就是需要排除#内容的目的!
5、启动vsftpd服务,
6、在windows下登录ftp,
7、进入pub目录来新建一个文件:出现错误,提示没有权限,需要授权处理这个错误!
8、首先:需要找到pub这个目录,
9、进入该目录,并查看权限:755:表面其他用户没有写和修改权限;
10、修改一下权限,这样其他用户都可以修改这个目录的内容了;
11、再次进入pub这个目录,并上传一个文件,依然出错,
12、查看一个日志信息,这里并没有错误日志显示,
13、再查看pub的上一级目录的权限,ftp目录其他人确实没有权限写入!
需要再次给ftp这个目录进行授权,
14、再次新建2个文件的时候,
15、默认情况下,下载一个文件文件:是可以的!
16、上传一个文件:出现错误!
总结:匿名用户的登录,是不是只有下载权限,没有上传权限!
二、新建系统用户并登陆FTP服务器,上传下载文件
1、新建一个系统用户,
2、修改配置文件:禁止匿名用户登录,并重启vsftpd服务,
3、提示:需要输入用户名和密码才能登陆ftp,
4、登陆ftp服务器之后,创建文件夹并且上传一个文件:没有问题;
以上这种方式创建的ftp服务器弊端:给文件分配权限,都需要新建用户和密码;
5、查看以上新建的文件所存放的目录:在各自用户的宿主目录下!
6、这里共有4个用户,每个用户只能看到自己的文件夹!
7、如果需要切换用户登录:右击空白处,选择登录,就会弹出对话框,输入新用户来登录,
8、再新建一个系统用户,并指定:/data/ftp为他的家目录;
9、以003这个用户登录,新建一个文件夹出错,
10、新建一个文件,并下载这个文件:可以!
等于说:目前用户003只有读取权限,并没有写入权限!需要授权!
11、授权、新建一个文件夹、上传文件夹,都可以,写入权限成功!
12、写入内容,用户003下载并可以打开看到所添加的内容,
二、第二种方法比较安全,配置相对复杂一点,就是使用vsftpd虚拟用户登录FTP服务器
进行常见的操作。
1、首先安装FTP 虚拟用户需要用到的软件及认证模块:
yum install pam* db4* --skip-broken �Cy
2、创建并生成vsftpd数据库文件vi/etc/vsftpd/ftpusers.txt,
内容如下:
第一行为FTP虚拟用户,登录用户名,第二行为密码,第三行为用户名,依次类推
使用虚拟用户登录,
查看
3、生成数据库文件命令:
db_load -T -t hash -f/etc/vsftpd/ftpusers.txt /etc/vsftpd/vsftpd_login.db
chmod 700 /etc/vsftpd/vsftpd_login.db
查看权限:目前只有root用户能访问,并且文件都是加密的方式!
4、配置PAM验证文件:
在配置文件vi /etc/pam.d/vsftpd 行首加入如下两行认证语句:
(如果是32位,lib64需改成lib,如果RedHat,加入的语句不一样,需注意)
auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
account sufficient /lib64/security/pam_userdb.sodb=/etc/vsftpd/vsftpd_login
5、创建vsftpd映射本地用户:
所有的FTP虚拟用户需要使用一个系统用户,这个系统用户不需要密码,也不需要登录。主要用来做虚拟用户映射使用。
useradd -d /data/ftp -s /sbin/nologin ftpuser
查看一下该用户,
6、修改完整版配置文件内容如下:
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
ascii_upload_enable=YES
ascii_download_enable=YES
listen=YES
guest_enable=YES
guest_username=ftpuser
pam_service_name=vsftpd
user_config_dir=/etc/vsftpd/vsftpd_user_conf
virtual_use_local_privs=YES
7、保存重启,/etc/init.d/vsftpd restart 即可使用虚拟用户登录,并可以上传,下载文件!
用户toudi02登录,
他们的文档同时存放在了一个主目录下:/etc/ftp
8、这时候所有的虚拟用户共同使用/home/ftpuser目录上传下载,如果想使用自己独立的目录,可以在/etc/vsftpd/vsftpd_user_conf目录创建各自的配置文件,如给baishubing创建独立的配置文件:vi /etc/vsftpd/vsftpd_user_conf/tuodi01,
内容如下,建立自己的FTP目录。
local_root=/home/ftpsite/ tuodi01
write_enable=YES
anon_world_readable_only=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
用户的目录,
重启一次服务,
用户:tuodi01登录后查看到的文件,
用户:tuodi02登录后查看到的文件,
三、做一个快照,为下次实验做准备,养成好习惯。
本文出自 “柏书兵-系统运维” 博客,转载请与作者联系!