vsftpd部署

    安装网上一些资料部署,发现总是出现一些坑,所以,根据自己学习和部署,在此来发表自己的文章。

一、环境,VMware workstation Pro 15软件创建虚拟机,系统cento7.6
首先,装完后关机再开机一下,我们先把本地yum源做好,关机开机后,会挂载镜像。
vsftpd部署
这样就有CentOS 的镜像了,然后我们进行挂载:
mkdir -pv /dvd
mount /dev/cdrom /mnt/
cp -pr /mnt/ /dvd
umount /dev/cdrom /mnt/
我们把挂载的文件复制到/dvd下,这样重启或再开机时,不用担心centos镜像掉了,
然后yum部署继续操作:
cd /etc/yum.repos.d/
mkdir -p bak
mv Centos
bak/
touch CentOS.repo
vim CentOS.repo
[CentOS7.6]
name=CentOS7.6
baseurl=file:///dvd
gpgcheck=0
enabled=1
保存,退出。
然后:
yum repolist all
本地yum源就完成了
然后关闭防火墙和selinux
vim /etc/selinux/config
vsftpd部署
退出,保存,下一步reboot
然后关闭防火墙
systemctl stop firewalld.service

二、然后开始部署vsftpd了
yum -y install vsftpd ftp
现在已经完成安装了,下面进行配置,首先我进行匿名配置:
(1)、匿名访问权限:可上传可下载,可删除更改权限。
cd /etc/vsftpd
cp vsftpd.conf vsftpd.conf.bak
vim vsftpd.conf
anonymous_enable=YES
local_enable=YES
write_enable=YES
local_umask=022
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
anon_world_readable_only=NO
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_file=/var/log/xferlog
xferlog_std_format=YES
ls_recurse_enable=YES
listen=YES
listen_ipv6=NO
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
保存,退出
注:需要改的就这些,有些代码这个vsftpd.conf里面没有,需要添加进去,有的去掉注释就可以了。也可以直接把这代码覆盖到vsftpd.conf里面,我试过没问题。
(2)、为此,还需要给登录进去的目录设置权限,否则无法登录和上传下载,
chmod 777 /var/ftp/pub
(3)、下一步重启vsftpd
systemctl restart vsftpd
现在我们测试下:
首先我们要知道ip
ip a
vsftpd部署
我的ip是192.168.11.3
ftp 192.168.11.3
vsftpd部署
密码也填写ftp
现在就完成了,也可以使用windows上测试
vsftpd部署
这两个目录是无法删除和修改的,并且在这里无法添加文件,进入pud后才可以或我创建的目录bakk后才可以进行上传下载和删除修改。
(4)、怎么在这里添加目录呢?
其实就是在/var/ftp下创建目录,并且给777权限就可以了。
注:我们这样部署,匿名用户权限非常的大,所以如果只是给上传和下载,没有删除、创建和修改:
(5)、注释掉:anon_other_write_enable=YES这一行,或者删除这一行或把YES改成NO
vsftpd部署
完成后保存,退出,下一步:
systemctl restart vsftpd
这样就修改完成了
(6)、如果只是有上传文件:
vsftpd部署
再注释掉或删除anon_world_readable_only=NO,或者把这个NO改成YES也可以的。
匿名访问权限问题就到这里了。
三、下一步我们来进行让本地用户可以登录访问:
(1)、首先把我们这个备份一下
cp -pv vsftpd.conf vsftpd.conf.bak2
cp vsftpd.conf.bak vsftpd.conf
vsftpd部署
2)、我们用原文件进行修改
vim vsftpd.conf
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_file=/var/log/xferlog
xferlog_std_format=YES
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
ls_recurse_enable=YES
listen=YES
listen_ipv6=NO
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
保存,退出,也可以直接复制我这里的代码,试了,没问题
(3)、然后就是创建用户并禁止用户登录系统:
useradd ak -s /sbin/nologin
给用户设置密码:
passwd ak
创建用户完成后,我们还要把这个用户写入到/etc/vsftpd/chroot_list这个文件里面
echo “ak” > /etc/vsftpd/chroot_list
然后重启vsftpd:systemclt restart vsftpd
(4)、下一步开始测试了:
ftp 192.168.11.3
vsftpd部署
5)、我这样设置,是限制了用户只能在自己的家目录了进行上传下载,删除、创建和修改。
vsftpd部署
但是却可以cd到根目录上,还是有很大的安全隐患的。
(6)、也可以指定用户都登录到一个目录上,只需在vsftpd.conf上添加:
local_root=/var/ftp
然后重启vsftpd,用户登录后就到这个ftp目录下了。
(7)、匿名用户指定只需在vsftpd.conf上添加:
anon_root=/var/ftp
然后重启vsftpd就可以了
需要再次添加用户,只需创建后:
echo “用户名” >> /etc/vsftpd/chroot_list
然后重启vsftpd就可以了。
vsftpd部署就到此结束了

猜你喜欢

转载自blog.51cto.com/14204744/2488160