linux安装FTP虚拟用户设置

来源:互联网 发布:锵锵三人行 德国公知 编辑:程序博客网 时间:2024/05/29 11:22
一.安装:
1.安装Vsftpd服务相关部件:

# yum -y install vsftpd*

2.确认安装PAM服务相关部件:
# yum -y install pam*

3.安装DB4部件包:
这里要特别安装一个db4的包,用来支持文件数据库。
# yum -y install db4*


二.系统帐户
1.建立Vsftpd服务的宿主用户:
# /usr/sbin/useradd vsftpd -s /sbin/nologin

建立Vsftpd虚拟宿主用户:
# /usr/sbin/useradd www -s /sbin/nologin


三.调整Vsftpd的配置文件:
1.编辑配置文件前先备份
# cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak

编辑主配置文件Vsftpd.conf
# vim /etc/vsftpd/vsftpd.conf


anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
anon_upload_enable=NO
anon_mkdir_write_enable=NO
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
chown_uploads=NO
chroot_local_user=YES
#xferlog_file=/var/log/vsftpd.log
#xferlog_std_format=YES
nopriv_user=vsftpd
async_abor_enable=YES
#ascii_upload_enable=YES
#ascii_download_enable=YES
ftpd_banner=Welcome to FTP service
chroot_list_enable=NO
ls_recurse_enable=NO
listen=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
guest_enable=YES
guest_username=www
virtual_use_local_privs=YES
user_config_dir=/etc/vsftpd/vconf


建立Vsftpd的日志文件,并更该属主为Vsftpd的服务宿主用户:
# touch /var/log/vsftpd.log
# chown www:www /var/log/vsftpd.log


建立虚拟用户配置文件存放路径:
# mkdir /etc/vsftpd/vconf/


三.制作虚拟用户数据库文件
1.先建立虚拟用户名单文件:
# touch /etc/vsftpd/virtusers
建立了一个虚拟用户名单文件,这个文件就是来记录vsftpd虚拟用户的用户名和口令的数据文件,
这里给它命名为virtusers。为了避免文件的混乱,我把这个名单文件就放置在/etc/vsftpd/下。


2.编辑虚拟用户名单文件:
# vim /etc/vsftpd/virtusers
ftp001
123456

编辑这个虚拟用户名单文件,在其中加入用户的用户名和口令信息。格式很简单:“一行用户名,一行口令”。


3.生成虚拟用户数据文件:
# db_load -T -t hash -f /etc/vsftpd/virtusers /etc/vsftpd/virtusers.db


4.察看生成的虚拟用户数据文件
# ll /etc/vsftpd/virtusers.db


5.建立shell脚本.

# vim /etc/vsftpd/reload.sh
# db_load -T -t hash -f /etc/vsftpd/virtusers /etc/vsftpd/virtusers.db
# chmod +x /etc/vsftpd/reload.sh


四.设定PAM验证文件,并指定虚拟用户数据库文件进行读取
1.察看原来的Vsftp的PAM验证配置文件:
# cat /etc/pam.d/vsftpd

----------------------------------------------------------------
#%PAM-1.0
session    optional     pam_keyinit.so    force revoke
auth       required     pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed
auth       required     pam_shells.so
auth       include      system-auth
account    include      system-auth
session    include      system-auth
session    required     pam_loginuid.so
----------------------------------------------------------------


2.在编辑前做好备份:
# cp /etc/pam.d/vsftpd /etc/pam.d/vsftpd.backup
3.编辑Vsftpd的PAM验证配置文件
# vi /etc/pam.d/vsftpd
----------------------------------------------------------------
#%PAM-1.0
auth    required      /lib/security/pam_userdb.so     db=/etc/vsftpd/virtusers
account required      /lib/security/pam_userdb.so     db=/etc/vsftpd/virtusers
以上两条是手动添加的,上面的全部加#注释了.内容是对虚拟用户的安全和帐户权限进行验证。

!!!!!!!这里有个要注意说明的:如果系统是64位系统在这里的所有lib后面要加入64!!!!!!
!!!!!!!如下这样才可以:
#%PAM-1.0
auth    required      /lib64/security/pam_userdb.so     db=/etc/vsftpd/virtusers
account required      /lib64/security/pam_userdb.so     db=/etc/vsftpd/virtusers


五.虚拟用户的配置

建立虚拟用户配置文件模版:
# vi /etc/vsftpd/vconf/vconf.tmp 注: 此处为模板. 真实文件名称因该与用户名一致. 如: fpt001 新建立用户的时候copy 改


local_root=/home/www/ftpfile
anonymous_enable=NO
write_enable=YES
local_umask=022
anon_upload_enable=NO
anon_mkdir_write_enable=NO
idle_session_timeout=600
data_connection_timeout=120
max_clients=10
max_per_ip=5
local_max_rate=50000
pam_service_name=vsftpd
chroot_local_user=YES

建立完成后把文件改名为用户登录的用户名.

# cp /etc/vsftpd/vconf/vconf.tmp /etc/vsftpd/vconf/ftp001


iptables -F

setsebool ftpd_disable_trans 1  /或者vim /etc/selinux/config  将SELINUX设置为disabled

如果建立出错: 

Could not change active booleans: Invalid boolean

执行: setsebool ftp_home_dir=1     重启服务器; service vsftpd restart


最后建立目录:

# mkdir /home/www/ftpfile

分配目录所有者:

#  chown -R www:www /home/www/ftpfile     



启动服务:
# /sbin/service vsftpd start  

# /sbin/service vsftpd restart  重启

# /sbin/chkconfig vsftpd --list (查看0~6个runlevel 是否按照阁下意愿开启或关闭 ntpd服务)
# /sbin/chkconfig vsftpd --level 35 on (开启runlevel 3和5的ntpd服务)
# /sbin/chkconfig vsftpd on (开启runlevel 2345的ntpd服务)
# /sbin/chkconfig vsftpd off (关闭所有runlevel的ntpd服务)


安装时常见错误:

1. 确认配置好后. 连接没有反映.  可以尝试关闭防火墙. 

# service iptables stop


2. 500 OOPS: failed to open vsftpd log file:/var/log/vsftpd.log

# setsebool ftp_home_dir=1 重启服务器; service vsftpd restart




原创粉丝点击