[root@LNMP ~]# yum install -y vsftpd #安装 centos自带的vsftp 服务
启动 vsftpd 服务,如果服务启动失败,检查日志。可以看到是 端口被 pure-ftpd占用。
关掉pure_ftpd 服务,再启动,就可以了。
[root@LNMP ~]# /etc/init.d/vsftpd start
Starting vsftpd for vsftpd: [ OK ]
以user3 为范例:
[root@LNMP ~]# passwd user3 #更改User3密码
Changing password for user user3.
New password:
BAD PASSWORD: it is based on a dictionary word
Retype new password:
passwd: all authentication tokens updated successfully.
-------------------------------------------------------
没有lftp 命令先安装
[root@LNMP ~]# yum install -y lftp
[root@LNMP ~]# lftp user3@10.72.4.50
Password:
lftp user3@10.72.4.50:~> ls #里面什么都没有
lftp user3@10.72.4.50:~>
[root@LNMP ~]# grep user3 /etc/passwd #查找user3的家目录
user3:x:502:502::/home/user3:/bin/bash
[root@LNMP ~]# ls /home/user3/ #目录是空的
[root@LNMP ~]# touch /home/user3/1207.txt
[root@LNMP ~]# mkdir /home/user3/1207
[root@LNMP ~]# ls /home/user3/
1207 1207.txt
黙认的用户在客户端访问。
[root@Bird ~]# lftp user3@10.72.4.50Password:lftp user3@10.72.4.50:~> lsdrwxr-xr-x 2 0 0 4096 Dec 07 02:47 1207-rw-r--r-- 1 0 0 0 Dec 07 02:45 1207.txtlftp user3@10.72.4.50:~>
此时的user3可以进入任何一个目录下(root除外)。黙认的vsftp 这样用是很危险的。
下面来配置一款安全的用法:
可以像 pure-ftpd 那用建一个虚拟用户来映射。这样更加安全。
也可以通过编辑配置文件来做一些限制。
[root@LNMP ~]# vim /etc/vsftpd/vsftpd.conf
#chroot_local_user=YES #打开这这个限限
[root@LNMP ~]# /etc/init.d/vsftpd restart #重启vsftpd 服务
Shutting down vsftpd: [ OK ]
Starting vsftpd for vsftpd: [ OK ]
在客户端进行操作
lftp user3@10.72.4.50:~> cd /etccd: Access failed: 550 Failed to change directory. (/etc) #/etc/文件夹进不去
[root@LNMP ~]# useradd virftp -s /sbin/nologin #创建用户
[root@LNMP ~]# vim /etc/vsftpd/vsftpd_login #存放用户&密码
[root@LNMP ~]# chmod 600 /etc/vsftpd/vsftpd_login #更改文件权限,只限root可以看
[root@LNMP ~]# db_load -T -t hash -f /etc/vsftpd/vsftpd_login /etc/vsftpd/vsftpd_login.db
#为vsftpd 生成可识别的二进制的库文件,保存路径 /etc/vsftpd/vsftpd_login.db
[root@LNMP ~]# mkdir /etc/vsftpd/vsftpd_user_conf #创建虚拟用户配置文件存放目录
[root@LNMP vsftpd_user_conf]# vim linux1 #加入以下内容
local_root=/home/virftp/linux1
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
[root@LNMP vsftpd_user_conf]# mkdir /home/virftp/linux1 #创建用户家目录
[root@LNMP vsftpd_user_conf]# chown -R virftp:virftp /home/virftp/linux1
#修改成映射用户的权限
编辑认证相关的配置文件
[root@LNMP vsftpd_user_conf]# vim /etc/pam.d/vsftpd #在最开头两行加下以下两行
#指定使用哪种方式来认证,不然系统会使用黙认的用户&密码。
我们用的是虚拟用户,会对应一个密码库文件
auth sufficient /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
account sufficient /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
#/lib/security/pam_userdb.so 认证模块
#db=/etc/vsftpd/vsftpd_login db的路径
---------------------------------------
确定文件存在不存在
发表评论