Vsftpd安装与配置

方案一:

# vsftpd.conf文件中的缺省配置
anonymous_enable=YES # 允许匿名用户登陆
local_enable=YES # 允许本地用户登陆
write_enable=YES # 允许上传
local_umask=022 #
dirmessage_enable=YES # .message隐含文件
xferlog_enable=YES # 服务器将启用上传和下载日志
connect_from_port_20=YES # FTP服务器将启用FTP数据端口的连接请求
xferlog_std_format=YES # FTP服务器将使用标准的ftpd xfrelog日志格式
pam_service_name=vsftpd # 认证的配置文件 PAM
userlist_enable=YES # 设置为YES时FTP服务器将检查userlist_file设置文件中指定的用户是滞可以访问vsftpd服务器
listen=YES # 监听
tcp_wrappers=YES # 保护安全

### 被动模式端口范围设置 这里的端口范围写大于1024值以上的

pasv_min_port=60000

pasv_max_port=60010

可以设置将本地用户禁锢在宿主目录中
chroot_local_user=YES


## 虚拟账号

支持
yum -y install pam pam-devel

认证文件存放的位置
/etc/pam.d/vsftpd

1. 建立虚拟用户口令库文件
口令库文件,奇数行设置用户名,偶数行设置口令[密码]
vi logins.txt
make # 用户名
pwd111 # 密码
john # 用户名
pwd222 # 密码

2.生成vsftpd的认证文件
# 使用db_load命令生成认证文件
db_load -T -t hash -f logins.txt /etc/vsftpd/vsftpd_login.db
#设置认证文件只对用户可读可写
chmod 600 /etc/vsftpd/vsftpd_login.db

3.建立虚拟用户所需的PAM配置文件
# 手动建立vsftpd.vu文件
vi /etc/pam.d/vsftpd.vu
auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
account required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login

4.建立虚拟用户及要访问的目录并设置相应的权限
# 建立所有FTP虚拟用户账号使用的系统用户账号,并设置该账号宿主目录的权限
useradd -d /home/ftpsite virtual
chmod 700 /home/ftpsite/

5.设置vsftpd.conf配置文件
# 在配置文件中添加虚拟用户的配置内容
guest_enable=YES
guest_username=virtual
pam_service_name=vsftpd.vu

6.重新启动vsftpd服务
service vsftpd restart

7.设置主配置文件
# 在vsftpd.conf文件中添加用户配置文件目录设置
user_config_dir=/etc/vsftpd_user_conf

8.建立用户配置文件目录
# 使用mkdir命令建立用户配置文件目录
mkdir /etc/vsftpd_user_conf

9.为虚拟用户建立单独的配置文件
# 用户配置文件名称与用户名相同
/etc/vsftpd_user_conf/mike
/etc/vsftpd_user_conf/john

文件内容
anon_world_readable_only=NO 表示用户可以浏览FTP目录和下载文件
anon_upload_enable=YES 表示用户可以上传文件
anon_mkdir_write_enable=YES 表示用户具有建立和删除目录的权限
anon_other_write_enable=YES 表示用户具有文件改名和删除文件的权限
local_root=/web/www 指定此虚拟用户的根目录

**
给不同的虚拟用户指定不同的根目录
local_root=/home/xiaowang 

然后,新建xiaowang目录,并将权限设为virtual:
mkdir /home/xiaowang
chown virtual.virtual ./xiaowang
chmod 600 /home/xiaowang
经过以上设置,xiaowang登录VSFTPD后,用“pwd”指令就可以发现被自己被定位到自己的“/home/xiaowang”目录。
从文件系统层次来看,由于“/home/xiaowang”目录的权限是属于virtual的,所以其他的虚拟用户同样也可以访问xiaowang的自家目录。解决这个问题也很简单,我们只需要让VSFTPD负责将虚拟用户限制在其自家目录,就可以避免虚拟用户的互相访问。经过以上设置后,虚拟用户就可以拥有属于自己的目录了。

10.vsftpd服务器中的资源使用可以进行限制
max_clients=100
max_per_ip=5
local_max_rate=50000 # [单位字节]
anon_max_rate=2000 # [单位字节]

###################################################################

方案二:

# FTP端口
Ftp 20,21
21 命令
20 传数据

# 主动模式与被动模式
## 主动模式
1.客户端随机开一个大于1024端口与服务器FTP服务器21端口连接.
2.服务器20->客户端大于1024端口发送数据.

## 被动模式
1.客户端开2个端口(大于1024端口).
2.第一个端口与服务器端21通信.
3.客户端主动通过另一端口向服务器端请求数据,服务器端随机开一个大于1024的端口,响应客户端连接.

# VsFtp
1.GPL协议的服务器软件
2.非常安全,基于SSH
3.非常快,ReHat 单台服务器支持大于15000个用户连接

# 安装VsFtp
yum -y install vsftp
# 启动
service vsftpd start
# 开启自启动
chkconfig -level 35 vsftpd on

# 配置
/etc/vsftpd/vsftpd.conf
/etc/vsftpd/ftpusers # 不允许登陆FTP账号的
/etc/vsftpd/userlist # 不允许登陆FTP账号
注:userlist文件
如果在vsftpd.conf中加入
userlist_deny=NO 只允许此文件中的账号登陆
userlist_deny=YES 不允许此文件中的账号登陆


# 是否开启匿名用户
anonymous_enable=YES 开 | NO 关闭

# 是否开启匿名上传文件
anon_upload_enable=YES 开启 | NO 关闭

# 用户不允许切换
chroot_local_user=YES 允许 | NO 不允许
chroot_list_enable=YES

chroot_local_user=YES当它为YES时
chroot_list_file=/etc/vsftpd/chroot_list中的用户能切换目录
如:登陆后可以切换到/etc下

# 默认没有
账号默认的主目录
local_root = /ftp

# 最大允许你连接一个IP
max_per_ip=1

# 设置下载带宽[字节]
local_max_rate=2000 #[20K]

原文地址:https://www.cnblogs.com/ahwu/p/3468348.html