Linux下配置FTP服务器

    文章来源:万象互联 更新时间:2012-9-23 17:27:19
分享:

配置使用虚拟用户登录的FTP服务器,可以避免使用操作系统帐号作为FTP用户带来的一些安全问题,也便于通过数据库或其它程序来进行管理。本文以Linux下的vsftpd这个FTP服务器软件为例,描述配置FTP的详细过程。

1 安装必备软件

yum install vsftpd

yum install db4#Berkeley DB数据库,用来存储虚拟FTP用户名、密码

2 初始化安装环境

mkdir -p /data/vsftpd #这个目录存放所有虚拟用户的目录和文件

useradd -d /data/vsftpd -s /sbin/nologin vsftpd#创建vsftpd用户,禁止登录

chown -R vsftpd:vsftpd /data/vsftpd

mkdir -p /etc/vsftpd/vsftpd_user_conf#这个目录下存放各个虚拟用户的配置文件(可以为空)

3 修改vsftpd配置文件

vi /etc/vsftpd/vsftpd.conf,内容如下:

  1. anonymous_enable=NO  
  2. local_enable=YES  
  3. write_enable=NO  
  4. local_umask=022  
  5. dirmessage_enable=YES  
  6. xferlog_enable=YES  
  7. connect_from_port_20=YES  
  8. nopriv_user=vsftpd  
  9. chroot_local_user=YES  
  10. listen=YES  
  11. pam_service_name=ftp    #PAM策略文件的名字  
  12. userlist_enable=YES  
  13. tcp_wrappers=YES  
  14. guest_enable=YES        #允许虚拟用户登录  
  15. guest_username=vsftpd  
  16. local_root=/data/vsftpd/$USER    #用户目录  
  17. user_sub_token=$USER  
  18. virtual_use_local_privs=YES  
  19. user_config_dir=/etc/vsftpd/vsftpd_user_conf    #用户配置文件所在目录,可以为空  


vi /etc/pam.d/ftp, 内容如下:

  1. auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login  
  2. account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login  

3 新建用户

i 修改用户名密码文件
vi /etc/vsftpd/logins.txt,在这个文件中新增用户名密码,logins.txt中奇数行为账户名,偶数行为密码
db_load -T -t hash -f /etc/vsftpd/logins.txt /etc/vsftpd/vsftpd_login.db #生成用户名、密码的数据库文件

ii 创建用户的目录
mkdir /data/vsftpd/$new_user_name
chown -R vsftpd:vsftpd /data/vsftpd/$new_user_name

4 启动FTP服务

service vsftpd start

chkconfig vsftpd on#设置开机自动启动

5 删除用户

i 修改用户名密码文件
vi /etc/vsftpd/logins.txt,在这个文件中删除用户名密码,logins.txt中奇数行为账户名,偶数行为密码
db_load -T -t hash -f /etc/vsftpd/logins.txt /etc/vsftpd/vsftpd_login.db
ii 删除用户目录

删除/data/vsftpd下的用户目录

常见故障:

登录失败

  1. 500 OOPS: cannot change directory:/home/vsftpd  
  2. Login failed.  
  3. 421 Service not available, remote server has closed connection  

解决方法

通常为SELinux导致,解决步骤如下:

vi /etc/selinux/config#将selinux=enforcing或permissive改成disabled,关掉selinux,

setenforce 0#使关掉selinux策略立即生效

/etc/init.d/vsftpd restart#重启FTP服务

文章来源:http://www.hulian.top,转载请注明!

版权说明:本站原创文章,由万象互联SEO优化发表.
本文地址:https://www.hulian.top/zixun/post/5212.html
在线咨询
  • 在线时间
  • 8:00-21:00