vsftpd服务

本文涉及的产品
运维安全中心(堡垒机),企业双擎版|50资产|一周时长
运维安全中心(堡垒机),免费版 6个月
简介:

1.什么是vsftpd服务

        vsftpd 的名字代表"very secure FTP daemon", 安全是它的开发者 Chris Evans 考虑的首要问题之一。在这个 FTP 服务器设计开发的最开始的时候,高安全性就是一个目标。

        一个例子就是 vsftpd 是在 chroot 模式下工作的,chroot 模式就是为程序(这里就是 vsftpd 了)单独指定一个新的目录,它也就不能访问那个目录之外的程序和文件了 --- 所以这也称为“被锁上的”。一个可能被潜在的攻击者破坏的 FTP 服务器将被从系统的其他部分独立开来,从而避免了更大的损失。


2.什么是ftp

    FTP Transfer Protocol 件传输协议的缩写,在RFC 959中具体说明。

    FTP会话时包含了两个通道,一个叫控制通道,一个叫数据通道。

    控制通道:控制通道是和FTP服务器进行沟通的通道,连接FTP,发送FTP指令都是通过控制通道来完成的。

    数据通道:数据通道是和FTP服务器进行文件传输或者列表的通道。

FTP协议中,控制连接均有客户端发起,而数据连接有两种工作方式:PORT方式和PASV方式

    PORT模式(主动方式)

    FTP 客户端首先和FTP Server的TCP 21端口建立连接,通过这个通道发送命令,客户端需要接收数据的时候在这个通道上发送PORT命令。 PORT命令包含了客户端用什么端口(一个大于1024的端口)接收数据。在传送数据的时候,服务器端通过自己的TCP 20端口发送数据。 FTP server必须和客户端建立一个新的连接用来传送数据。

    PASV模式(被动方式)

    在建立控制通道的时候和PORT模式类似,当客户端通过这个通道发送PASV 命令的时候,FTP server打开一个位于1024和5000之间的随机端口并且通知客户端在这个端口上传送数据的请求,然后FTP server 将通过这个端口进行数据的传送,这个时候FTP server不再需要建立一个新的和客户端之间的连接传送数据。

    如果从C/S模型这个角度来说,PORT对于服务器来说是OUTBOUND,而PASV模式对于服务器是INBOUND,这一点请特别注意,尤其是在使用防火墙的企业里,这一点非常关键,如果设置错了,那么客户将无法连接。


3.安装ftp

先关闭selinux策略

vim /etc/sysconfig/selinux
  SELINUX=disabled
reboot


yum install vsftpd  -y
systemctl start vsftpd 
systemctl enable vsftpd 
systemctl stop firewalld  #关火墙或者添加服务到火墙识别服务
(
firewall-cmd --list-all
firewall-cmd --permanent --add-service=ftp
firewall-cmd --reload
firewall-cmd --list-all
)
setenforce 0
lftp ip                ##能登陆并且显示,表示安装成功

4.vsftpd文件信息
/var/ftp        ##默认发布目录
/etc/vsftpd        ##配置目录

5.vsftpd服务的配置参数(/etc/vsftpd/vsftpd.conf

550服务本身不允许
530用户名或密码错误,与PAM认证有关
553没权限
500权限过大

1)匿名用户设定
anonymous_enable=YES|NO        ##匿名用户登陆限制

#<匿名用户上传>
vim /etc/vsftpd/vsftpd.conf
write_enable=YES
anon_upload_enable=YES
chgrp ftp /var/ftp/pub
chmod 775 /var/ftp/pub

#<匿名用户家目录修改>
anon_root=/direcotry

#<匿名用户上传文件默认权限修改>
anon_umask=xxx

#<匿名用户建立目录>
anon_mkdir_write_enable=YES|NO

#<匿名用户下载>
anon_world_readable_only=YES|NO ##设定参数值为no表示匿名用户可以下载

#<匿名用户删除>
anon_other_write_enable=YES|NO    

#<匿名用户使用的用户身份修改>
chown_uploads=YES
chown_username=student

#<最大上传速率>
anon_max_rate=102400

#<最大链接数>
max_clients=2


2)本地用户设定
local_enable=YES|NO        ##本地用户登陆限制
write_enable=YES|NO        ##本地用户写权限限制

#<本地用户家目录修改>
local_root=/directory

#<本地用户上传文件权限>
local_umask=xxx

#<限制本地用户浏览/目录>
所有用户被锁定到自己的家目录中
chroot_local_user=YES
chmod u-w /home/*

用户黑名单建立
chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
vim 

用户白名单建立
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
vim /etc/vsftpd/chroot_list
student
westos

#<限制本地用户登陆>
vim /etc/vsftpd/ftpusers        ##用户黑名单
vim /etc/vsftpd/user_list        ##用户临时黑名单

用户白名单设定  
userlist_deny=NO
/etc/vsftpd/user_list            ##参数设定,此文件变成用户白名单,只在名单中出现的用户可以登陆ftp

6.<ftp虚拟用户的设定>
6.1创建虚拟帐号身份
vim /etc/vsftpd/loginusers    ##文件名称任意
ftpuser1   ##用户名
123        ##密码
ftpuser2
123
ftpuser3
123

db_load -T -t hash -f /etc/vsftpd/loginusers loginusers.db

vim /etc/pam.d/ckvsftpd        ##文件名称任意
account        required    pam_userdb.so    db=/etc/vsftpd/loginusers
auth        required    pam_userdb.so    db=/etc/vsftpd/loginusers

vim /etc/vsftpd/vsftpd.conf
pam_service_name=ckvsftpd
guest_enable=YES
guest_username=ftpuser  #虚拟帐号身份指定
chmod u-w /home/ftpuser

6.2虚拟帐号家目录独立设定
vim /etc/vsftpd/vsftpd.conf
local_root=/ftpuserhome/$USER
user_sub_token=$USER

mkdir /ftpuserhome
chgrp ftpuser /ftpuserhome
chmod g+s /ftpuserhome
mkdir /ftpuserhome/ftpuser{1..3}

6.3虚拟帐号配置独立
注释
vim /etc/vsftpd/vsftpd.conf
user_config_dir=/etc/vsftpd/userconf
mkdir -p /etc/vsftpd/userconf

vim /etc/vsftpd/userconf/ftpuser1
在此文件中设定配置文件中的所有参数,此文件的优先级搞



本文转自willis_sun 51CTO博客,原文链接:http://blog.51cto.com/willis/1847008,如需转载请自行联系原作者


相关文章
|
7月前
|
Linux 网络安全 开发工具
Centos6.5搭建一个简单的vsftpd服务
在CentOS 6.5上配置vsftpd服务器:确保与Win10能互通,更新yum源,安装vsftpd,编辑配置文件禁用匿名访问,重启服务并关闭防火墙。创建新用户和密码,通过FTP在Win10文件管理器中使用实验机IP访问,用创建的用户和密码登录,成功创建远程文件夹,实验机上可见。
97 2
|
7月前
|
Linux 网络安全 数据安全/隐私保护
Linux vsFTPd服务详解——文件加密传输配置
Linux vsFTPd服务详解——文件加密传输配置
240 2
|
7月前
|
Linux 数据安全/隐私保护 Windows
Linux vsFTPd服务详解——本地用户登录实战
Linux vsFTPd服务详解——本地用户登录实战
212 2
|
7月前
|
Web App开发 安全 Unix
Linux 配置FTP服务器 + vsftpd服务安装配置 (Good篇)
Linux 配置FTP服务器 + vsftpd服务安装配置 (Good篇)
179 1
|
7月前
|
运维 网络协议 安全
Linux vsFTPd服务详解——vsFTPd基础知识
Linux vsFTPd服务详解——vsFTPd基础知识
100 4
|
7月前
|
网络协议 安全 Linux
配置vsftpd服务
FTP是TCP/IP协议族中的应用层协议,用于可靠地传输文件,基于C/S架构,使用20(数据)和21(命令)端口。有两种传输模式:主动模式,客户端告知服务器数据端口,服务器发起连接;被动模式,服务器响应客户端的PASV命令,客户端建立数据连接。安装Linux的vsftpd服务涉及`yum install vsftpd`,创建用户,重启服务并设置开机启动。配置文件`vsftpd.conf`可调整访问权限和行为。通过FTP命令如`help`,`get`,`put`进行文件操作。匿名用户模式可允许无密码访问,需修改配置文件开启。
169 0
|
7月前
|
安全 Linux 网络安全
Linux加强篇011-使用Vsftpd服务传输文件
山重水复疑无路,柳暗花明又一村
326 1
Linux加强篇011-使用Vsftpd服务传输文件
|
存储 运维 安全
Linux巩固篇011-Linux vsftpd 服务传输文件
纸上得来终觉浅,绝知此事要躬行
11329 13
Linux巩固篇011-Linux vsftpd 服务传输文件
|
弹性计算 缓存 Linux
Centos Linux系统使用vsftpd搭建ftp服务
Centos Linux系统使用vsftpd搭建ftp服务
264 0
Centos Linux系统使用vsftpd搭建ftp服务