linux_vsftp服务器的搭建与测试
上一篇 /
下一篇 2016-09-09 15:50:40
/ 个人分类:Linux技术资料
一、FTP服务器及基本原理 1、FTP服务的基本概念 FTP是用于进行文件传输的网络协议FTP服务中分为服务器和客户机两个角色2、FTP服务器的传输模式主动模式:由服务器主动连接客户机建立数据链路被动模式:FTP服务器等待客户机建立数据链路3、FTP服务器使用的端口21端口用于与客户机建立命令链路在主动模式下服务器使用20端口向客户机建立数据链路 4、vsftpd支持的账户:
- 匿名账户
- 本地账户(linux系统上有哪些本地账户)
- 虚拟账户
二、主动模式的连接过程
三、被动模式的连接过程
四、常用FTP服务器软件
IIS具有FTP服务器的功能
Serv-U是流行的FTP服务器软件
Linux下的FTP服务器
Wu-ftpd出现较早,运行稳定,安全性稍差
Proftpd在配置文件和安全性方面有很大改进
vsftpd着重强调服务的安全性,运行效率也很高
五、ftp命令作为FTP客户端
ftp命令是最基本的FTP客户端软件
在Linux和Windows系统中都默认提供ftp命令
ftp命令的交互环境中使用命令对FTP服务器进行操作
ftp中很多命令与Bash中的命令类似
binary设置传输二进制文件,ascii设置传输文本文件
get命令用于下载文件,put命令用于上传文件
mget和mput用于一次下载或上传多个文件
quite、bye命令可退出ftp命令交互环境
六、安装vsftpd
vsftpd的安装需要注意以下几点 - RHEL5系统中默认没有安装vsftpd服务器
- vsftpd服务器的安装文件位于映像文件中
- 安装文件名称是vsftpd-2.0.5-10.el5.i386.rpm
- 使用rpm命名可顺利安装该软件包# rpm -ivh vsftpd-2.0.5-10.el5.i386.rpm
七、vsftpd.conf配置文件 - vsftpd.conf是vsftpd服务器的主配置文件
- /etc/vsftpd/vsftpd.conf
- 配置文件中所有的配置项都有相同的格式
- anonymous_enable=YES
- 配置文件中的注释行以“#”开始
- 配置文件的详细帮助信息可查询手册页# man vsftpd.conf
八、vsftpd服务器的缺省配置 - anonymous_enable=YES
- local_enable=YES
- write_enable=YES
- local_umask=022
- dirmessage_enable=YES
- xferlog_enable=YES
- connect_from_port_20=YES
- xferlog_std_format=YES
- pam_service_name=vsftpd
- userlist_enable=YES
- listen=YES
- tcp_wrappers=YES
九、ftpusers文件 ftpusers用于保存不允许进行FTP登录的本地用户帐号
# head -5 /etc/vsftpd/ftpusers
# Users that are not allowed to login via ftp
root
bin
daemon
adm
ftpusers文件中可禁止高权限本地用户登录FTP服务器,提高了系统的安全性 十、user_list文件
vsftpd服务器提供匿名用户登录的功能
匿名用户使用的登录用户名
anonymous
ftp
匿名FTP用户登录的口令通常是使用用户的E-mail地址,在vsftpd中输入任何字符串或直接回车都可以登录
所有匿名用户都登录到相同的目录中
/var/ft
FTP服务器的匿名登录可用于构建公共的文件下载服务器
十二、vsftpd服务的启动和关闭
服务器启动脚本
启动脚本名称是vsftpd
/etc/init.d/vsftpd
vsftpd服务需要设置在运行级别3和5自动启动
# chkconfig --level 35 vsftpd on
服务器启动
# service vsftpd start
服务器停止
# service vsftpd stop
服务器状态查询
# service vsftpd status
十三、使用ftp命令登录FTP服务器
ftp命令登录FTP服务器的格式
- # ftp 192.168.1.2
- 匿名登录
- 使用用户名anonymous或ftp
- 登录的FTP根目录为系统目录“/var/ftp”
- 本地用户登录
- 使用系统用户帐号和口令登录ftp服务器
- 登录FTP服务器后的目录为用户宿主目录,用户可转换到系统中的其他目录
十四、FTP本地用户帐号的问题- 使用FTP本地用户帐号存在安全性问题
- FTP本地用户使用Linux系统用户帐号,存在安全隐患
- 使用虚拟帐号替代本地用户帐号可以增强系统的安全性
- 本地用户登录FTP目录后可从宿主目录转换到其他目录,不是很安全
- 可以设置将本地用户禁锢在宿主目录中
- 在vsftpd.conf文件中添加设置项
- chroot_local_user=YES
- 重新启动vsftpd服务
- # service vsftpd restart
- 使用ftp客户端验证
- 本地用户登录FTP服务器后,宿主目录将作为根(/)目录
************************************
注意************************************************
在添加设置项时,一定要注意检查末尾是否有空格,否则会出现重启失败。我就是在操作过程中出现这个问题,浪费了2个多小时才检查出来。 ***********************************
*注意*************************************************
【附加】:设置使其root用户可以登录
vi /etc/vsftpd/ftpusers
vi /etc/vsftpd/user_list
删除root用户即可
重启vsftpd
service vsftpd restart
在开了root用户上传权限,也关了系统的防火墙,但ftp连接的时候依然还会出现 "500 OOPS:cannot change directory:/root" 错误,如何解决呢?
解决:
1、 查看 SELinux 的状态: sestatus -b | grep ftp 确切地说,只是查看了ftp的状态。
2、 在出现的结果中可以看到 ftp_home_dir off ,tftpd_disable_trans off之类。我们现在只要把其中之一设置为on就可以啦。
3、 setsebool -P ftpd_disable_trans on 或者 setsebool -P ftp_home_dir on
4、 重启vsftpd: service vsftpd restart
5、 慢慢享受ftp带来的乐趣。
十六、vsftpd虚拟用户帐号的设置步骤【重点难点】 - 建立虚拟用户口令库文件
- 生成vsftpd的认证文件
- 建立虚拟用户所需的PAM配置文件
- 建立虚拟用户所要访问的目录并设置相应权限
- 设置vsftpd.conf配置文件
(-)、vsftpd虚拟用户配置3-1 建立虚拟用户口令库文件- 口令库文件中奇数行设置用户名,偶数行设置口令
- # cat logins.txt
- mike
- pwabcd
- john
- pw1234
- 生成vsftpd的认证文件
- 使用db_load命令生成认证文件(需要安装db4-utilsxx.rpm包)
- # db_load -T -t hash -f logins.txt \
- /etc/vsftpd/vsftpd_login.db
- 设置认证文件只对用户可读可写
(二)、vsftpd虚拟用户配置3-2
建立虚拟用户所需的PAM配置文件 - 手工建立vsftpd.vu文件
- # cat /etc/pam.d/vsftpd.vu
- auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
- account required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
- 建立虚拟用户及要访问的目录并设置相应的权限
- 建立所有FTP虚拟用户帐号使用的系统用户帐号,并设置该帐号宿主目录的权限(-d意思是对应哪个目录)
- # useradd -d /home/ftpsite virtual
- # chmod 700 /home/ftpsite
(三)、vsftpd虚拟用户配置3-3
设置vsftpd.conf配置文件 - 在配置文件中添加虚拟用户的配置内容
- guest_enable=YES
- guest_username=virtual
- pam_service_name=vsftpd.vu
- 重新启动vsftpd服务程序
- 对vsftpd.conf文件修改后需要重新启动vsftpd服务程序
- # service vsftpd restart
(四)、测试虚拟用户帐号的FTP登录- 使用ftp命令登录FTP服务器
- 使用已配置的虚拟用户名和口令登录FTP服务器,如能够正常登录说明虚拟帐号配置成功
- 为了系统的安全,缺省配置的虚拟用户只具有较低的用户权限
- 可以通过为每个虚拟用户建立独立的配置文件增加用户的权限
(五)、对虚拟用户设置不同的权限
1、设置主配置文件
- 在vsftpd.conf文件中添加用户配置文件目录设置
- user_config_dir=/etc/vsftpd_user_conf
2、建立用户配置文件目录- 使用mkdir命令建立用户配置文件目录
- # mkdir /etc/vsftpd_user_conf
3、为虚拟用户建立单独的配置文件- 用户配置文件名称与用户名相同
- /etc/vsftpd_user_conf/mike
- /etc/vsftpd_user_conf/john
(六)、虚拟用户配置文件中的配置项
- 每个FTP虚拟用户都可以独立设置其权限
- anon_world_readable_only=NO
- anon_upload_enable=YES
- anon_mkdir_write_enable=YES
- anon_other_write_enable=YES
十七、总结- vsftpd服务器中可使用匿名用户、本地用户和虚拟用户三种用户类型
- FTP服务器中的虚拟用户与本地用户功能类似,但更加安全
- vsftpd服务器中使用虚拟用户需要维护独立的用户口令库文件
- vsftpd中的每个虚拟用户可以建立用户配置文件用于设置独立的用户权限
- vsftpd中可以限制客户机对服务器资源的使用
转载:http://blog.sina.com.cn/s/blog_715b47c50101k1bx.html
相关阅读:
- 传苹果与浪潮合作:iCloud数据转至自家服务器 (zaza9084, 2016-4-12)
- [转]你需要知道的 16 个 Linux 服务器监控命令 (jumperzzz, 2016-4-20)
- 通过telnet连接查看memcache服务器-zt (fairylly, 2016-5-23)
- 在此记录下Nginx服务器nginx.conf的配置文件说明, 部分注释收集与网络. (hansrex, 2016-6-12)
- LR 向服务器请求json报文 并查看服务器返回消息的方法 (jumperzzz, 2016-6-21)
- linux使用实战--服务器篇 (wohuyuelong, 2016-6-26)
- 浅谈服务器性能测试的全生命周期—从测试、结果分析到优化策略 (zaza9084, 2016-6-28)
- 上传文件到服务器,路径显示为C:\fakepath\+文件名 (selectsum, 2016-7-13)
- Pokemon Go覆盖全球26个国家 玩家涌入导致服务器宕机 (zaza9084, 2016-7-18)
- linux服务器使用tsocks设置代理 (fairylly, 2016-8-17)
收藏
举报
TAG:
服务器