linux_vsftp服务器的搭建与测试

上一篇 / 下一篇  2016-09-09 15:50:40 / 个人分类:Linux技术资料

一、FTP服务器及基本原理 
1、FTP服务的基本概念 
FTP是用于进行文件传输的网络协议
FTP服务中分为服务器和客户机两个角色
2、FTP服务器的传输模式
主动模式:由服务器主动连接客户机建立数据链路
被动模式:FTP服务器等待客户机建立数据链路
3、FTP服务器使用的端口
21端口用于与客户机建立命令链路
在主动模式下服务器使用20端口向客户机建立数据链路
4、vsftpd支持的账户:
  • 匿名账户
  • 本地账户(linux系统上有哪些本地账户)
  • 虚拟账户
二、主动模式的连接过程
linux_vsftp服务器的搭建与测试
三、被动模式的连接过程
linux_vsftp服务器的搭建与测试
四、常用FTP服务器软件
Windows下常用的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
linux_vsftp服务器的搭建与测试vsftpd的安装需要注意以下几点
  1. RHEL5系统中默认没有安装vsftpd服务器
  2. vsftpd服务器的安装文件位于映像文件中
  3. 安装文件名称是vsftpd-2.0.5-10.el5.i386.rpm 
  4. 使用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 
linux_vsftp服务器的搭建与测试ftpusers文件中可禁止高权限本地用户登录FTP服务器,提高了系统的安全性
十、user_list文件 
  • user_list文件具有对vsftpd服务器更灵活的用户访问控制
  • /etc/vsftpd/user_list 
  • 使用vsftpd.user_list文件需要在主配置文件中进行设置
  • 设置禁止user_list文件中的用户登录
  • userlist_enable=YES
  • userlist_deny=YES 
  • 设置只允许user_list文件中的用户登录
  • userlist_enable=YES
  • userlist_deny=NO 
十一、匿名用户登录 
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服务器后的目录为用户宿主目录,用户可转换到系统中的其他目录
十四、linux_vsftp服务器的搭建与测试linux_vsftp服务器的搭建与测试FTP本地用户帐号的问题linux_vsftp服务器的搭建与测试linux_vsftp服务器的搭建与测试
  • 使用FTP本地用户帐号存在安全性问题
  • FTP本地用户使用Linux系统用户帐号,存在安全隐患
  • 使用虚拟帐号替代本地用户帐号可以增强系统的安全性
  • 本地用户登录FTP目录后可从宿主目录转换到其他目录,不是很安全
  • 可以设置将本地用户禁锢在宿主目录中
十五、linux_vsftp服务器的搭建与测试linux_vsftp服务器的搭建与测试将FTP本地用户禁锢在宿主目录中linux_vsftp服务器的搭建与测试linux_vsftp服务器的搭建与测试
  • 在vsftpd.conf文件中添加设置项
  • chroot_local_user=YES 
  • 重新启动vsftpd服务
  • # service vsftpd restart 
  • 使用ftp客户端验证
  • 本地用户登录FTP服务器后,宿主目录将作为根(/)目录
linux_vsftp服务器的搭建与测试************************************注意************************************************linux_vsftp服务器的搭建与测试
在添加设置项时,一定要注意检查末尾是否有空格,否则会出现重启失败。我就是在操作过程中出现这个问题,浪费了2个多小时才检查出来。linux_vsftp服务器的搭建与测试
linux_vsftp服务器的搭建与测试************************************注意*************************************************linux_vsftp服务器的搭建与测试
【附加】:设置使其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带来的乐趣。
十六、linux_vsftp服务器的搭建与测试linux_vsftp服务器的搭建与测试vsftpd虚拟用户帐号的设置步骤【重点难点linux_vsftp服务器的搭建与测试linux_vsftp服务器的搭建与测试
  1. 建立虚拟用户口令库文件
  2. 生成vsftpd的认证文件
  3. 建立虚拟用户所需的PAM配置文件
  4. 建立虚拟用户所要访问的目录并设置相应权限
  5. 设置vsftpd.conf配置文件
linux_vsftp服务器的搭建与测试(-)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

   linux_vsftp服务器的搭建与测试建立虚拟用户所需的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

   linux_vsftp服务器的搭建与测试设置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
十七、总结
  1. vsftpd服务器中可使用匿名用户、本地用户和虚拟用户三种用户类型
  2. FTP服务器中的虚拟用户与本地用户功能类似,但更加安全
  3. vsftpd服务器中使用虚拟用户需要维护独立的用户口令库文件
  4. vsftpd中的每个虚拟用户可以建立用户配置文件用于设置独立的用户权限
  5. vsftpd中可以限制客户机对服务器资源的使用

转载:http://blog.sina.com.cn/s/blog_715b47c50101k1bx.html

TAG: 服务器

 

评分:0

我来说两句

Open Toolbar