码迷,mamicode.com
首页 > 其他好文 > 详细

vsftpd服务

时间:2016-09-07 06:57:16      阅读:250      评论:0      收藏:0      [点我收藏+]

标签:服务器   安全性   开发者   客户端   chris   vsftpd   

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
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
在此文件中设定配置文件中的所有参数,此文件的优先级搞


本文出自 “技术人生,简单不简单” 博客,请务必保留此出处http://willis.blog.51cto.com/11907152/1847008

vsftpd服务

标签:服务器   安全性   开发者   客户端   chris   vsftpd   

原文地址:http://willis.blog.51cto.com/11907152/1847008

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!