Linux:ftp服务 (vsftpd)

我的ftp服务器为centos7

使用yum安装的vsftpd软件  (如果你需要离线yum库,而不会搭建可以查看)

Linux:rpm查询安装 && yum安装_鲍海超-GNUBHCkalitarro的博客-CSDN博客


安装软件 配置环境

其次是Linux的防火墙和selinux要关闭   如果你不会的话请查看↓

Linux:centos 关闭 防火墙 && 关闭SELinux && 配置临时ip_鲍海超-GNUBHCkalitarro的博客-CSDN博客

yum -y install vsftpd

# 安装ftp软件

Linux:ftp服务 (vsftpd)_第1张图片

rpm -qc vsftpd

Linux:ftp服务 (vsftpd)_第2张图片

查看软件的配置文件

其中的 /etc/vsftpd/vsftpd.conf 为主配置文件


查看默认配置文件

默认的ftp服务文件在 

cd /var/ftp/pub/

cat /etc/vsftpd/vsftpd.conf | grep -v "^#"

# 查看一下 默认配置文件

Linux:ftp服务 (vsftpd)_第3张图片

anonymous_enable=YES           开启匿名用户访问;

local_enable=YES                      启用本地系统用户访问;

write_enable=YES                     本地系统用户写入权限;

local_umask=022                      本地用户创建文件及目录默认权限掩码;

dirmessage_enable=YES           打印目录显示信息,通常用于用户第一次访问目录时,信息提示;

xferlog_enable=YES                  启用上传/下载日志记录; 

connect_from_port_20=YES      FTP使用20端口进行数据传输;

xferlog_std_format=YES           日志文件将根据xferlog的标准格式写入;

listen=NO                                  Vsftpd不以独立的服务启动,通过Xinetd服务管理,建议改成YES;

listen_ipv6=YES                        启用IPV6监听;

pam_service_name=vsftpd       登录FTP服务器,依据/etc/pam.d/vsftpd中内容进行认证;

userlist_enable=YES                  Vsftpd.user_list和ftpusers配置文件里用户禁止访问FTP;

tcp_wrappers=YES                    设置vsftpd与tcp wrapper结合进行主机的访问控制,Vsftpd服务器检查/etc/hosts.allow 和/etc/hosts.deny中的设置,来决定请求连接的主机,是否允许访问该FTP服务器。


配置匿名登录

我们配置匿名登录不用上面的默认文档  先把原配置文件备份一下

mv /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak
# 将vsftpd.conf   改名为 vsftpd.conf.bak  当作备份

cp /etc/vsftpd/vsftpd.conf.bak /etc/vsftpd/vsftpd.conf 

# 再复制一份 vsftpd.conf 

 Linux:ftp服务 (vsftpd)_第4张图片

 把上图所有的配置文件清除    清空

Linux:ftp服务 (vsftpd)_第5张图片

 然后填入

# 全局配置
listen=YES
listen_address=192.168.1.1
listen_port=21
connect_from_port_20=YES
#pasv_min_port=2222
#pasv_max_port=2225
write_enable=YES
xferlog_enable=YES
xferlog_std_format=YES
pam_service_name=vsftpd
#userlist_enable=YES
tcp_wrappers=YES
#max_clients=0
#max_per_ip=0
# 匿名用户配置
anonymous_enable=YES
anon_umask=022
anon_root=/var/ftp
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
#anon_max_rate=0

Linux:ftp服务 (vsftpd)_第6张图片

第三行一定要修改上你的ip  我的是192.168.1.1 所以写上的192.168.1.1 

上面的是对匿名用户进行配置的 , 匿名用户拥有读写删除的权限

然后保存退出

Linux:ftp服务 (vsftpd)_第7张图片

 由于放文件的位置是root所属人  权限是755

为了匿名 我们要把所属人改为ftp用户

Linux:ftp服务 (vsftpd)_第8张图片

systemctl start vsftpd

# 开启服务

Linux:ftp服务 (vsftpd)_第9张图片

 Linux 如果要访问ftp要安装ftp这个软件

yum -y install ftp

# ftp + ip

# ftp 192.168.1.1


使用用户访问用户默认目录(黑名单 & 白名单)

现在将我们上一步备份的源文件恢复一下

删除上一步对匿名用户的操作

rm -rf vsftpd.conf

cp /etc/vsftpd/vsftpd.conf.bak /etc/vsftpd/vsftpd.conf

# 如果你跟着我做了上一个匿名登录   那你就要用上面的这个删除一下  然后恢复一下备份

如果没有 做上一步  就 不要执行这个

systemctl start vsftpd 

配置文件改成原配置文件后重启一下服务

vi /etc/vsftpd/vsftpd.conf

Linux:ftp服务 (vsftpd)_第10张图片默认文档里边是这样的,我么先不对他配置 

 先创建3个用户  他们的默认目录创建到/var/ftp/下

我这里是 tarro1  tarro2 tarro3

useradd -d /var/ftp/tarro1 tarro1
useradd -d /var/ftp/tarro2 tarro2
useradd -d /var/ftp/tarro3 tarro3

Linux:ftp服务 (vsftpd)_第11张图片

touch /var/ftp/tarro1/t1
touch /var/ftp/tarro2/t2
touch /var/ftp/tarro3/t3

在里面创建文件等会看效果

Linux:ftp服务 (vsftpd)_第12张图片

Windows访问ftp直接进去了是以 匿名用户进去了因为默认文档里有匿名用户设置

但是匿名用户只能读取

也进进不去tarro1 - 3

Linux:ftp服务 (vsftpd)_第13张图片

 右键空白处点击登录  然后登录用户

Linux:ftp服务 (vsftpd)_第14张图片

 ftp的黑名单

vi /etc/vsftpd/user_list

 Linux:ftp服务 (vsftpd)_第15张图片

 默认写在这里的都无法访问ftp

Linux:ftp服务 (vsftpd)_第16张图片

wq保存退出

systemctl restart vsftpd

重启下服务 

Linux:ftp服务 (vsftpd)_第17张图片

现在tarro1  和 2 就在黑名单了

如果想把黑名单变成白名单

vi /etc/vsftpd/vsftpd.conf
Linux:ftp服务 (vsftpd)_第18张图片

添加 

userlist_deny=NO

现在黑名单就变成白名单了

Linux:ftp服务 (vsftpd)_第19张图片

 现在仅这个配置文件里的用户可以登录


用户映射登录

useradd -d /var/ftproot  yingshe

#创建虚拟用户能够映射的本地用户。指定家目录,此用户不允许本地登录

chmod 755 /var/ftproot 

vim /etc/vsftpd/vusers.list 

# 编辑内容:奇数行为虚拟用户名,偶数行为用户密码

Linux:ftp服务 (vsftpd)_第20张图片 

cd /etc/vsftpd/

db_load -T -t hash -f vusers.list  vusers.db

# 将虚拟用户列表转换为ftp能够识别的数据库

chmod 600 vusers* 

为了安全,更改权限,只允许属主使用

vim /etc/pam.d/vsftpd.vu

# 建立支持虚拟用户的 PAM 认证文件

写入

#%PAM-1.0
auth required pam_userdb.so db=/etc/vsftpd/vusers
account required pam_userdb.so db=/etc/vsftpd/vusers

Linux:ftp服务 (vsftpd)_第21张图片

 

vim /etc/vsftpd/vsftpd.conf 
编辑内容:

 

listen=YES
listen_ipv6=NO
listen_address=192.168.10.1
listen_port=21
connect_from_port_20=YES
xferlog_enable=YES
xferlog_std_format=YES
write_enable=YES
userlist_enable=YES
tcp_wrappers=YES
anonymous_enable=NO
anon_umask=022
local_enable=YES
local_umask=022
allow_writeable_chroot=YES
chroot_local_user=YES
pam_service_name=vsftpd.vu
guest_enable=YES
guest_username=yingshe
user_config_dir=/etc/vsftpd/yingshe_dir

Linux:ftp服务 (vsftpd)_第22张图片

 要将ip改为你的ip

mkdir /etc/vsftpd/yingshe_dir

cd /etc/vsftpd/yingshe_dir/ 

touch tarro11

touch tarro22

# 创建他俩的权限文件

 vim tarro11

写入

anon_upload_enable=YES
anon_mkdir_write_enable=YES

Linux:ftp服务 (vsftpd)_第23张图片 

 systemctl restart vsftpd

# 重启服务

或者 

 systemctl start vsftpd

Linux:ftp服务 (vsftpd)_第24张图片 

 访问成功

你可能感兴趣的:(linux,服务器,运维)