安装
直接 yum -install vsftpd
========================================================local 方式 登录===============================
添加一个本地用户(系统用户)
addusers test
passwd test
type password:123
retype password:123
完成!
配置
1,删除匿名用户
修改配置文件/etc/vsftpd/vsftpd.conf
anonymous_enable=NO //关闭匿名访问
2,开启local登录(指用户通过系统用户来登录到ftp 注:此用户也同时可以ssh登录)
local_anable=YES
3,为了安全起见 限制用户不能跳出指定的目录 同时目录更不能有执行权限
chroot_list_enable = YES
chroot_list_fiel=/etc/vsftpd/chroot_list
在相应的目录下生成 chroot_list文件,并在文件写上用户名 (一行一条记录 )
4,限制此用户ssh的方式登录到系统
修改配置文件 /etc/ssh/sshd_config 在大概最后的地方填写你想能ssh登录到系统的用户 多用户以空格格开 AllowUsers root
===========================================================================================================
=============================================虚拟方式登录============================================================
1,在local登录方式的配置基础上加上
vi /etc/vsftpd/vsftpd.conf 在最后加上
guest_enable=YES
guest_username=ftpuser
virtual_use_local_privs=YES
user_config_dir=/etc/vsftpd/vconf
如果没有的目录或文件 自己建立
注:(以上的ftpuser这个是虚拟登录的宿主用户,也就是说虚拟用的用户都是通过这个用户来登录到ftp的,这个是自己创建的,如果没有则:useradd ftpuser -s /sbin/nologin ,此外还得创建一个ftpuser的宿主ftpadmin ===> useradd ftpadmin -s /sbin/nologin )
2,在/etc/vsftpd/vconf/下创建用户列表 vir_user
touch /etc/vsftpd/vconf/vir_user
写入用户列表,一行一条记录,单数为用户名 双数行是密码
vi /etc/vsftpd/vconf/vir_user
test1
123456
3,把用户信息列表vir_user 变成db格式(用到db4-utils)
检测是否安装db4-utils rpm -qa | grep db4
如果看到db4-utils 就安装了,否则就进行安装 yum install db4-utils
工具准备好后 ,开始生成把vir_user 生成db文件
db_load -T -t hash -f /etc/vsftpd/vconf/vir_user /etc/vsftpd/vconf/vir_user.db
4,让pam.d/vsftpd载入你的用户列表数据库文件vir_user.db
vi /etc/pam.d/vsftpd
在最前加入两行
auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vconf/vir_user
account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vconf/vir_user
注:上面的是vir_user 而非vir_user.db 别太相信你的直角
5,添加用户个性配置文件
在/etc/vsftpd/vconf/ 下生成一个和你在vir_user 写的虚拟用户名相同的文件名文件
在里面写入一些用户的配置文件 信息,如一些是否可写 可读等权限的问题,如下:
local_root=/home/test1
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=1048576
6,在home下生成一个虚拟用户的根目录,用户默认直接登录到这个目录里
如我vir_user里有一个test1的用户,我在/home下生成一个目录
mkdir test1
6-1,改变文件的所有者,因为所有虚拟用户都是通过 ftpuser 这个本地用户登录到ftp的,所以可以把这个所有者设置为ftpuser
chown ftpuser test1
6-2,改变权限,测试我就给他777吧
chmod 777 test1
7,完成!
8,测试
打开cmd (windows下) 其它的话随便 或者你下载个ftp工具来登录也是。但现在是测试 直接用系统的就算了
C:\Users\Administrator>ftp 121.40.xx.xx
连接到 121.40.xx.xx。
220 (vsFTPd 2.0.5)
用户(121.40.xx.xx:(none)): test1
331 Please specify the password.
密码:123456
230 Login successful.
9,如果你在配置过程中出现什么问题,可以打开/var/log/security
查看一下是什么原因引起登录失败
一般如果说没有找到用户,那就是你pam.d/vsftpd/这个文件导入 vir_usr.db的时候失败。
直接 yum -install vsftpd
========================================================local 方式 登录===============================
添加一个本地用户(系统用户)
addusers test
passwd test
type password:123
retype password:123
完成!
配置
1,删除匿名用户
修改配置文件/etc/vsftpd/vsftpd.conf
anonymous_enable=NO //关闭匿名访问
2,开启local登录(指用户通过系统用户来登录到ftp 注:此用户也同时可以ssh登录)
local_anable=YES
3,为了安全起见 限制用户不能跳出指定的目录 同时目录更不能有执行权限
chroot_list_enable = YES
chroot_list_fiel=/etc/vsftpd/chroot_list
在相应的目录下生成 chroot_list文件,并在文件写上用户名 (一行一条记录 )
4,限制此用户ssh的方式登录到系统
修改配置文件 /etc/ssh/sshd_config 在大概最后的地方填写你想能ssh登录到系统的用户 多用户以空格格开 AllowUsers root
===========================================================================================================
=============================================虚拟方式登录============================================================
1,在local登录方式的配置基础上加上
vi /etc/vsftpd/vsftpd.conf 在最后加上
guest_enable=YES
guest_username=ftpuser
virtual_use_local_privs=YES
user_config_dir=/etc/vsftpd/vconf
如果没有的目录或文件 自己建立
注:(以上的ftpuser这个是虚拟登录的宿主用户,也就是说虚拟用的用户都是通过这个用户来登录到ftp的,这个是自己创建的,如果没有则:useradd ftpuser -s /sbin/nologin ,此外还得创建一个ftpuser的宿主ftpadmin ===> useradd ftpadmin -s /sbin/nologin )
2,在/etc/vsftpd/vconf/下创建用户列表 vir_user
touch /etc/vsftpd/vconf/vir_user
写入用户列表,一行一条记录,单数为用户名 双数行是密码
vi /etc/vsftpd/vconf/vir_user
test1
123456
3,把用户信息列表vir_user 变成db格式(用到db4-utils)
检测是否安装db4-utils rpm -qa | grep db4
如果看到db4-utils 就安装了,否则就进行安装 yum install db4-utils
工具准备好后 ,开始生成把vir_user 生成db文件
db_load -T -t hash -f /etc/vsftpd/vconf/vir_user /etc/vsftpd/vconf/vir_user.db
4,让pam.d/vsftpd载入你的用户列表数据库文件vir_user.db
vi /etc/pam.d/vsftpd
在最前加入两行
auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vconf/vir_user
account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vconf/vir_user
注:上面的是vir_user 而非vir_user.db 别太相信你的直角
5,添加用户个性配置文件
在/etc/vsftpd/vconf/ 下生成一个和你在vir_user 写的虚拟用户名相同的文件名文件
在里面写入一些用户的配置文件 信息,如一些是否可写 可读等权限的问题,如下:
local_root=/home/test1
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=1048576
6,在home下生成一个虚拟用户的根目录,用户默认直接登录到这个目录里
如我vir_user里有一个test1的用户,我在/home下生成一个目录
mkdir test1
6-1,改变文件的所有者,因为所有虚拟用户都是通过 ftpuser 这个本地用户登录到ftp的,所以可以把这个所有者设置为ftpuser
chown ftpuser test1
6-2,改变权限,测试我就给他777吧
chmod 777 test1
7,完成!
8,测试
打开cmd (windows下) 其它的话随便 或者你下载个ftp工具来登录也是。但现在是测试 直接用系统的就算了
C:\Users\Administrator>ftp 121.40.xx.xx
连接到 121.40.xx.xx。
220 (vsFTPd 2.0.5)
用户(121.40.xx.xx:(none)): test1
331 Please specify the password.
密码:123456
230 Login successful.
9,如果你在配置过程中出现什么问题,可以打开/var/log/security
查看一下是什么原因引起登录失败
一般如果说没有找到用户,那就是你pam.d/vsftpd/这个文件导入 vir_usr.db的时候失败。