首页 > 代码库 > Linux vsftp 配置
Linux vsftp 配置
1. 配置vsftpd虚拟用户登录及权限
2. 配置vsftp系统用户登录及控制用户访问
3. 配置vsftp+pam+mysql及权限设置
实验 /etc/init.d/iptables stop setenforce 0 (关闭防火墙,以免出错误。)
首先安装 yum install vsftpd -y
/etc/init.d/vsftpd start 这个装好其实就可以启动的。
可以用 ss -tnlp | grep :21 查看启动没。
cd /etc/vsftpd 进入目录后可以看到有个 vsftpd.conf配置文件
cp vsftpd.conf{,.bak} 拷贝一份在当前目录
vim(vi) vsftpd.conf 进入配置文件
下面是一些主要配置文件内容
匿名用户
anonymous_enable=YES #是否允许匿名账户登录FTP服务器
anon_upload_enable=YES #匿名用户的上传操作;生效要依赖于write_enable=YES;
anon_mkdir_write_enable=YES #匿名用户创建目录的权限
anon_other_write_enable=YE #匿名用户的删除及重命名操作权限
系统用户
local_enable=YES #是否允许本地账户登录FTP服务器
write_enable=YES #是否开启目录上次权限(控制所有账户)
#虚拟用户
guest_enable=YES #定启用虚拟用户功能
guest_username=vsftpd #指定虚拟用户的宿主用户
virtual_use_local_privs=YES #设定虚拟用户的权限符合他们的宿主用户
user_config_dir=/etc/vsftpd/vconf #设定虚拟用户配置文件存放路径
上传文件的属主设置
chown_uploads=YES #是否修改;
chown_username=USERNAM #启用chown_uploads指令时,将文件属主修改为此指令指定的用户;默认为root;
系统用户chroot()
chroot_local_user=YES #所有用户都锁定,不予许在其家目录有写权限,即那ftp用户
#不用于登录系统的账号对于"home-user"的根没有写权限
#或针对用户对家目录有些权限的账户开启白名单
#YES开启白名单,NO开启黑名单
chroot_list_enable=YES #开启名单功能,不开启则禁锢所有用户,要先开启锁定
chroot_list_file=/etc/vsftpd/chroot_list #白/黑名单
userlist_enable=YES #user_list控制用户访问
userlist_deny=YES #vsftpd自带的用户登录控制,默认为YES/黑名单,NO为白名单,黑名单直接无法输入密码pam则是给允许登录用户的认证
认证服务:
pam_service_name=vsftpd #/etc/pam.d/vsftpd
日志记录
xferlog_file=/var/log/vsftpd.log #文件要手动建立,vsftpd用户对日志文件vsftpd.log的读写权限,否则服务将启动失败。
其他
#idle_session_timeout=600 #设定空闲连接超时时间,单位秒
#data_connection_timeout=120 #设定单次最大连续传输时间,单位秒
#ftpd_banner=Welcome to blah FTP service. #设定Vsftpd的登陆标语
ls_recurse_enable=NO #禁止"ls -R"的命令,安全设定
listen=YES #设Vsftpd独立守护进程,否则由xinetd代理
已创建一个系统用户 user1
local_enable=YES 控制是否允许本地用户登录 YES 为是 NO 为否
控制用户访问: vsftpd.conf配置文件里倒数第二行有 userlist_enable=yes 默认开启。
然后 vsftpd文件夹内就有user_list文件 可用cat user_list查看文件内容。
在红框内的用户是不能登录的。想要其他用户也登录不了,可以自行加进去用户名。
(如果你把第一个红框内的内容输入到vsftpd.conf文件里,则只有第二个红框内的用户可登录)
首先去找一个 pam_mysql的epel源 下载 安装。
yum install mysql-server mysql-devel pam_mysql -y
下载其他包 安装。
/etc/init.d/mysqld start 启动服务
ss -tnlp | grep :3306 可以用这个命令来查看这个服务开启没
接下来就直接输入 mysql 就能登录进去了
下图是一些操作命令
下图是授权
接着 exit; 退出即可。
然后输入命令 进入mysql
创建2个虚拟用户 要来测试
现在即可 配置vsftpd
首先 建立pam认证所需文件
建立虚拟用户映射的系统用户及对应的目录
useradd -s /sbin/nologin -d /var/ftproot vuser
chmod go+rx /var/ftproot
请确保/etc/vsftpd.conf中已经启用了以下选项
anonymous_enable=NO
local_enable=YES
write_enable=YES
anon_upload_enable=NO
anon_mkdir_write_enable=NO
chroot_local_user=YES
而后添加以下选项
guest_enable=YES
guest_username=vuser
然后启动vsftpd服务。查看下端口开启情况
接下来用虚拟用户登录 检测配置结果
配置vsftpd为虚拟用户使用配置文件目录
vim /etc/vsftpd/vsftpd.conf
在里面添加一项
user_config_dir=/etc/vsftpd/vusers_config
创建所需要目录,并为虚拟用户提供配置文件
mkdir /etc/vsftpd/vusers_config/
cd /etc/vsftpd/vusers_config/
touch lan drr
然后在 lan drr 文件里添加一些内容 如下图
接下来检测 结果了这是 drr 用户的
现在测试 lan用户的
这个是补的 lftp的 drr 用户
这样就OK了。也说明lftp是没问题的。是我设置的权限 限制了用户。
以上就是 这是实验结果了。
Linux vsftp 配置