天天看点

linux安装服务-vsftpd

1.检查是否安装vsftpd(服务端),ftp(客户端)。

2.vsftpd相关配置文件:

/etc/vsftpd/vsftpd.conf:vsftpd 的核心配置文件

/etc/vsftpd/ftpusers:用于指定哪些用户不能访问FTP 服务器。  黑名单

/etc/vsftpd/user_list:userlist_deny=no时,白名单     userlist_deny=yes时,黑名单

3.通过vsftpd.conf配置,实现本地用户登录ftp,并具有读写能力:

(1)建立维护网站内容的ftp 帐号team1 和team2 ,然后设置其密码

[[email protected] ~]# useradd team1

[[email protected] ~]# useradd team2

[[email protected] ~]# echo "123456" | passwd --stdin team1

Changing password for user team1.

passwd: all authentication tokens updated successfully.

[[email protected] ~]# echo "123456" | passwd --stdin team2

Changing password for user team2.

passwd: all authentication tokens updated successfully.

2)配置vsftpd.conf 主配置文件并作相应修改

[[email protected] vsftpd]# cp vsftpd.conf.back vsftpd.conf

[[email protected] vsftpd]# vim /etc/vsftpd/vsftpd.conf

anonymous_enable=NO:禁止匿名用户登录

local_enable=YES:允许本地用户登录

ocal_root=/var/www/html:设置本地用户的根目录为/var/www/html

chroot_list_enable=YES:启用chroot(锁定用户根目录) 功能

chroot_list_file=/etc/vsftpd/chroot_list:设置锁定用户在根目录中的列表文件。此文件存放要锁定的用户名

allow_writeable_chroot=YES :允许锁定的用户有写的权限

保存退出

(3)建立/etc/vsftpd/chroot_list 文件,添加team1 和team2 帐号

[[email protected] vsftpd]# touch /etc/vsftpd/chroot_list

[[email protected] ~]# ll !$

ll /etc/vsftpd/chroot_list

-rw-r--r-- 1 root root 0 Nov 10 17:08 /etc/vsftpd/chroot_list

[[email protected] ~]# vim /etc/vsftpd/chroot_list  #写入以下内容,一行,一个用户名

team1

team2

(5)修改本地权限

[[email protected] ~]# ll -d /var/www/html/

drwxr-xr-x. 2 root root 4096 Oct  6  2011 /var/www/html/

[[email protected] ~]# chmod -R o+w /var/www/html/

[[email protected] ~]# ll -d /var/www/html/

drwxr-xrwx. 2 root root 4096 Oct  6  2011 /var/www/html/

(6)重启vsftpd 服务使配置生效

service vsftpd restart

4.通过vsftpd.conf配置,实现虚拟用户登录ftp,并具有读写能力:

第1步:创建用于进行 FTP 认证的用户数据库文件,其中奇数行为账户名,偶数行为密码。 [[email protected] ~]# cd /etc/vsftpd/ [[email protected] vsftpd]# vim vuser.list zhangsan 123456 lisi 123456   用 db _ load 命令用哈希( hash)算法将原始的明文信息文件转换成数据库文件,并且降低 数据库文件的权限(避免其他人看到数据库文件的内容),然后再把原始的明文信息文件 删除。 [[email protected] vsftpd]# db _ load -T -t hash -f vuser.list vuser.db [[email protected] vsftpd]# file vuser.db vuser.db: Berkeley DB (Hash, version 9, native byte-order) [[email protected] vsftpd]# chmod 600 vuser.db [[email protected] vsftpd]# rm -f vuser.list   第2步:创建一个与虚拟用户对应的系统本地用户,并为该用户指定用户ftp访问的家目录,并且不允许登录: [[email protected] ~]# useradd -d /var/ftproot -s /sbin/nologin virtual [[email protected] ~]# ls -ld /var/ftproot/ drwx------. 3 virtual virtual 74 Jul 14 17:50 /var/ftproot/ [[email protected] ~]# chmod -Rf 755 /var/ftproot/   第3步:建立用于支持虚拟用户的 PAM 文件。 [[email protected] ~]# vim /etc/pam.d/vsftpd.vu auth required pam _ userdb.so db=/etc/vsftpd/vuser account required pam _ userdb.so db=/etc/vsftpd/vuser   第4步:在 vsftpd 服务程序的主配置文件中通过 pam_service_name 参数将 PAM 认证 文件的名称修改为 vsftpd.vu [[email protected] ~]# vim /etc/vsftpd/vsftpd.conf 1 anonymous _ enable=NO 2 local _ enable=YES 3 guest _ enable=YES 第 11 章 4 guest _ username=virtual 5 allow _ writeable _ chroot=YES 6 write _ enable=YES 7 local _ umask=022 8 dirmessage _ enable=YES 9 xferlog _ enable=YES 10 connect _ from _ port _ 20=YES 11 xferlog _ std _ format=YES 12 listen=NO 13 listen _ ipv6=YES 14 pam _ service _ name=vsftpd.vu 15 userlist _ enable=YES 16 tcp _ wrappers=YES   第5步:为虚拟用户设置不同的权限。 [[email protected] ~]# mkdir /etc/vsftpd/vusers _ dir/ [[email protected] ~]# cd /etc/vsftpd/vusers _ dir/ [[email protected] vusers _ dir]# touch lisi [[email protected] vusers _ dir]# vim zhangsan anon _ upload _ enable=YES anon _ mkdir _ write _ enable=YES anon _ other _ write _ enable=YES 然后再次修改 vsftpd 主配置文件,通过添加 user _ config _ dir 参数来定义这两个虚拟用户 不同权限的配置文件所存放的路径 [[email protected] ~]# vim /etc/vsftpd/vsftpd.conf anonymous _ enable=NO local _ enable=YES guest _ enable=YES guest _ username=virtual allow _ writeable _ chroot=YES write _ enable=YES local _ umask=022 dirmessage _ enable=YES xferlog _ enable=YES connect _ from _ port _ 20=YES xferlog _ std _ format=YES listen=NO listen _ ipv6=YES pam _ service _ name=vsftpd.vu userlist _ enable=YES tcp _ wrappers=YES user _ config _ dir=/etc/vsftpd/vusers _ dir 重启vsftpd服务 [[email protected] ~]# systemctl restart vsftpd [[email protected] ~]# systemctl enable vsftpd ln -s '/usr/lib/systemd/system/vsftpd.service' '/etc/systemd/system/multi user.target.wants/vsftpd.service 11.2 vsftpd 服务程序 229   第6步:设置 SELinux 域允许策略 [[email protected] ~]# getsebool -a | grep ftp ftp _ home _ dir –> off ftpd _ anon _ write –> off ftpd _ connect _ all _ unreserved –> off ftpd _ connect _ db –> off ftpd _ full _ access –> off ftpd _ use _ cifs –> off ftpd _ use _ fusefs –> off ftpd _ use _ nfs –> off ftpd _ use _ passive _ mode –> off httpd _ can _ connect _ ftp –> off httpd _ enable _ ftp _ server –> off sftpd _ anon _ write –> off sftpd _ enable _ homedirs –> off sftpd _ full _ access –> off sftpd _ write _ ssh _ home –> off tftp _ anon _ write –> off tftp _ home _ dir –> off [[email protected] ~]# setsebool -P ftpd _ full _ access=on