Linux服务篇之二:构建Vsftp文件服务器

Linux服务篇之二、构建Vsftp文件服务器

FTP是文件传输协议,正是由于这种协议使得主机间可以共享文件。 FTP 使用TCP生成一个虚拟连接用于控制信息,然后再生成一个单独的 TCP 连接用于数据传输。

vsftpd是一款在Linux发行版中最主流的FTP服务器程序;特点是小巧轻快,安全易用;能让其自身特点得发发挥和掌握。

一、第一种方法就是使用系统用户登录FTP,但是也是比较危险的,先测试系统用户登录FTP,在Linux系统上创建useradd  test 用户,并为其设置名,然后在xp客户端打开我的电脑资源里面访问ftp://IP,输入用户名和密码即可访问,进行创建和删除操作。

1、安装vsftpd服务,

wKiom1WTsxmj1JQkAAGfRytICeo242.jpg

2、查看vsftpd的内容:先排除一下#的内容,

wKioL1WTtOHhGSwGAAIF6yTGAC0662.jpg

3、把vsftpd.conf的内容到一个新的配置文件中,

wKiom1WTsx2SCfDsAAJgVfhD1iU059.jpg

4、再把vsftpd1.conf的配置文件覆盖一下vsftpd.conf

查看vsftpd.conf文件:只剩下这内容,也是起作用的内容,这就是需要排除#内容的目的!

wKioL1WTtOHDrNH_AAKTxTlJyWI712.jpg

5、启动vsftpd服务,

wKioL1WTtOGCMyzCAAF-WXiocLY912.jpg

6、在windows下登录ftp

wKiom1WTsx6iRF-3AAEtZFN9jC8362.jpg

7、进入pub目录来新建一个文件:出现错误,提示没有权限,需要授权处理这个错误!

wKiom1WTsx6SsF8eAAGAcf3WLN4575.jpg

8、首先:需要找到pub这个目录,

wKioL1WTtOPxKGaoAAFat3wNIag903.jpg

9、进入该目录,并查看权限:755:表面其他用户没有写和修改权限;

wKioL1WTtOPwC2iYAAFwab4HG3M000.jpg

10、修改一下权限,这样其他用户都可以修改这个目录的内容了;

wKiom1WTsx_SuQVqAAFm79J-EHs103.jpg

11、再次进入pub这个目录,并上传一个文件,依然出错,

wKioL1WTtOShAGUbAAGEeVFhqIw585.jpg

12、查看一个日志信息,这里并没有错误日志显示,

wKiom1WTsyCSxiZYAAO2RkIo1jc621.jpg

13、再查看pub的上一级目录的权限,ftp目录其他人确实没有权限写入!

需要再次给ftp这个目录进行授权,

wKioL1WTtOSD0axQAAPIb9aQo1E424.jpg

14、再次新建2个文件的时候,

wKiom1WTsyDwRZCfAAHRhkmQ6hI276.jpg

15、默认情况下,下载一个文件文件:是可以的!

wKioL1WTtOWSwVFLAAEDOxpRAIA472.jpg

16、上传一个文件:出现错误!

wKiom1WTsyGT3GKsAAGiR456dGE305.jpg

总结:匿名用户的登录,是不是只有下载权限,没有上传权限!

 

二、新建系统用户并登陆FTP服务器,上传下载文件

1、新建一个系统用户,

wKiom1WTt8Cx2phRAAHvBiE4cJ4636.jpg

2、修改配置文件:禁止匿名用户登录,并重启vsftpd服务,

wKioL1WTuYSz8-2DAAKA8CFgycI185.jpg

3、提示:需要输入用户名和密码才能登陆ftp

wKiom1WTt8Hy8PB6AAF0cdfPZXA916.jpg

4、登陆ftp服务器之后,创建文件夹并且上传一个文件:没有问题;

wKiom1WTt8Gg8h4gAAFdPae-yOw956.jpg

以上这种方式创建的ftp服务器弊端:给文件分配权限,都需要新建用户和密码;

5、查看以上新建的文件所存放的目录:在各自用户的宿主目录下!

wKioL1WTuemDr0SdAAI4qW3gKys082.jpg

6、这里共有4个用户,每个用户只能看到自己的文件夹!

wKiom1WTuCXTYP6nAAJsmCGkzvk135.jpg

7、如果需要切换用户登录:右击空白处,选择登录,就会弹出对话框,输入新用户来登录,

wKioL1WTuery28ZDAAFLDZU1KA0424.jpg

8、再新建一个系统用户,并指定:/data/ftp为他的家目录;

wKioL1WTuerwdfP3AAFOToXAeLE568.jpg

9以003这个用户登录,新建一个文件夹出错,

wKioL1WTuoHj9k7DAAJaiZA2eJg527.jpg

wKiom1WTuL2BSVPqAAGbSPjzk4o197.jpg

10、新建一个文件,并下载这个文件:可以!

wKioL1WTuoHheIQIAAFwvJRvIog595.jpg

wKiom1WTuL6wjmLUAAFliyMw5jw755.jpg

等于说:目前用户003只有读取权限,并没有写入权限!需要授权!

11、授权、新建一个文件夹、上传文件夹,都可以,写入权限成功!

wKiom1WTuPvQR-xmAAIQm4c_Hgc680.jpg

wKioL1WTur_RsOYwAAHHnuB7Fws542.jpg

wKiom1WTuPvhEkp-AAHlFIS32ok410.jpg

12、写入内容,用户003下载并可以打开看到所添加的内容,

wKioL1WTur-jq2nOAAJpCNC_-II082.jpg

wKiom1WTuPyQyqsIAAHLOAJk3Go781.jpg


二、第二种方法比较安全,配置相对复杂一点,就是使用vsftpd虚拟用户登录FTP服务器

进行常见的操作。

1、首先安装FTP 虚拟用户需要用到的软件及认证模块:

yum install pam* db4* --skip-broken �Cy



wKioL1WTvDbxkBD0AAK5igSdgF4187.jpg

2、创建并生成vsftpd数据库文件vi/etc/vsftpd/ftpusers.txt,

内容如下:

第一行为FTP虚拟用户,登录用户名,第二行为密码,第三行为用户名,依次类推

wKiom1WTunKwfaw8AAFPQq9eYO0290.jpg

使用虚拟用户登录,

wKiom1WTunPjrGwqAAFLREHo7Zo319.jpg

查看

3、生成数据库文件命令:

db_load -T -t hash -f/etc/vsftpd/ftpusers.txt /etc/vsftpd/vsftpd_login.db

chmod 700 /etc/vsftpd/vsftpd_login.db

wKioL1WTvDezPC8PAAHdbFy4Ke4240.jpg

查看权限:目前只有root用户能访问,并且文件都是加密的方式!

wKiom1WTunPT_rZvAALbuNLmRH0030.jpg

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

wKioL1WTvDjxuE7kAAJk4j1vwck604.jpg

5创建vsftpd映射本地用户:

所有的FTP虚拟用户需要使用一个系统用户,这个系统用户不需要密码,也不需要登录。主要用来做虚拟用户映射使用。

useradd -d /data/ftp -s /sbin/nologin ftpuser

wKioL1WTvDjAVco8AAH1FZHMrNA380.jpg

查看一下该用户,

wKiom1WTunSgFi7lAAKvXVWJJdE693.jpg

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

wKioL1WTvDiQhVlQAAIsSdtvqNk926.jpg

7保存重启,/etc/init.d/vsftpd restart 即可使用虚拟用户登录,并可以上传,下载文件!

wKiom1WTunSRkswXAAG8oZQA9R8703.jpg

用户toudi02登录,

wKiom1WTunWgsWebAAFHObQN9fw660.jpg

他们的文档同时存放在了一个主目录下:/etc/ftp

wKioL1WTvDnwONfRAAEyvHG6Wsc420.jpg

wKioL1WTvDrA3QMSAAFJKduVssQ154.jpg

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


wKiom1WTunbQDh1VAAG0nn3GC-Q383.jpg

wKioL1WTvDqhNs7sAAGLTs_uHmA545.jpg

用户的目录,

wKiom1WTunaCoNTJAAIGs_38TMI822.jpg

重启一次服务,

wKioL1WTvDvAnK2tAAIGv1oWErA960.jpg

用户:tuodi01登录后查看到的文件,

wKioL1WTvDvi_qB7AAE-PZD4l60458.jpg

用户:tuodi02登录后查看到的文件,

wKiom1WTuneixwQKAAEtJSNpiTs122.jpg


三、做一个快照,为下次实验做准备,养成好习惯。

wKioL1WTwGywdJm1AAHYIYwCT_E590.jpg

wKiom1WTvqiDynaDAAF__zNeZns565.jpg


本文出自 “柏书兵-系统运维” 博客,转载请与作者联系!

你可能感兴趣的:(Linux服务篇之二:构建Vsftp文件服务器)