vsftp 使用虚拟用户
2016-08-29 15:52
316 查看
配置的思路:使用帐号和密码登录FTP服务器,每个用户只能登录到自己用户名的目录中,可以增删改查文件。 -- 使用VSFTP的虚拟用户和chroot目录的配置。
安装vsftp。使用pam管理vsftp的虚拟用户。
vsftp使用的目录/ftp vsftp使用的本地用户:vsftpd
因为是使用vsftpd的虚拟用户,所以我们需要先在系统中创建一个用户,并且该用户对/ftp目录具有可读可写可执行权限。
在iptables中开放20、21、被动模式端口范围(30000-35000),并加载FTP驱动模块modprobe ip_nat_ftpmodprobe ip_conntrack_ftp
/etc/vsftpd.conf文件内容
listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
# 指定vsftp欢迎信息及日志记录格式和日志文件路径
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
ftpd_banner=Welcome to nixCraft ftp server
connect_from_port_20=YES
chroot_local_user=YES
chroot_list_enable=NO
allow_writeable_chroot=YES
# 使用的本地账户的名称
guest_enable=YES
guest_username=vsftpd
secure_chroot_dir=/var/run/vsftpd/empty
# 指定使用pam.d目录中的哪个文件
pam_service_name=vsftpd
# 启用被动模式、被动模式使用的端口号范围及被动模式使用的公网IP
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000
pasv_address=61.139.2.69
#虚拟用户目录
user_config_dir=/etc/vsftpd/user_conf
# vsftp使用ssl key方式
rsa_cert_file=/etc/ssl/private/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.pem
ssl_enable=YES
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
require_ssl_reuse=NO
ssl_ciphers=HIGH
#结合/etc/hosts.allow和/etc/hosts.deny限制ip访问vsftpd服务。
tcp_wrappers=YES
修改/etc/hosts.deny
加入vsftpd : ALL
修改/etc/hosts.allow
加入vsftpd:.admin99.net
vsftpd:192.168.0.
vsftpd:192.168.0.0/255.255.255.0
第一行表示,只有admin99.net这个域里的主机允许访问vsftpd服务,注意admin99.net前面的那个点(.);
/第二行表示,只有192.168.0这个网段的用户允许访问vsftpd服务,注意0后面的点(.);
第三行表示,只有192.168.0这个网段的用户允许访问vsftpd服务,注意这里不能写为192.168.0.0/24。
/etc/pam.d/vsftpd文件内容 ,这个文件就是使用的用户名和密码的txt生成的db数据文件。/etc/vsftpd/user_config这个文件就是.db文件路径
auth sufficient pam_userdb.so db=/etc/vsftpd/user_config
account sufficient pam_userdb.so db=/etc/vsftpd/user_config
虚拟用户配置文件内容/etc/vsftpd/user_conf/username
write_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
local_root=/ftp/FTPUser
该配置内容为具有可读可写权限。
创建一个本地系统用户
useradd vsftpd -d /ftp -s /bin/false
chown vsftpd:vsftpd /ftp
创建文本文件loguser.txt
格式如下:
username
password
于是,我们/home/loguser.txt文件的内容为
cd /home 切换到/home目录
sudo touch /home/loguser.txt 创建账户和密码文件
sudo gedit /home/loguser.txt
然后将下面的账户文件字符粘帖入loguser.txt中,注意一行一行输入。
注意:奇数行为账户名,偶数行为密码。也就是1.3.5.等行为用户名,2.4.6行为密码;
最后一行需要回车(否则建立数据库文件时无法识别最后一行,导致报奇数行错误)。
db1
db100
db2
db200
db3
db300
test
生成数据库
sudo db_load -T -t hash -f /home/loguser.txt /etc/vsftpd_login.db
最后设置一下数据库文件的访问权限
sudo chmod 600 /etc/vsftpd_login.db
在ubuntu下要启动、停止、重启vsftpd,我们必须使用以下命令:
sudo service vsftpd stop
sudo service vsftpd start
sudo service vsftpd restart
vsftp配置ssl1.生成证书sudo openssl req -x509 -nodes -days 3650 -newkey rsa:1024 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem2.在vsftpd.conf配置文件中增加ssl配置项rsa_cert_file=/etc/ssl/private/vsftpd.pemrsa_private_key_file=/etc/ssl/private/vsftpd.pem配置强制使用ssl ssl_enable=YES
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES
After this we configure the server to use TLS, which is actually a successor to SSL, and preferred:
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
Finally, we will require add some additional options to flesh out our configuration file:
require_ssl_reuse=NO
ssl_ciphers=HIGH
总结:vsftp使用虚拟用户访问主要使用了单用户配置的方式。使用了pam模块。在使用虚拟用户上传下载文件的时候映射到本地新建的用户。
安装vsftp。使用pam管理vsftp的虚拟用户。
vsftp使用的目录/ftp vsftp使用的本地用户:vsftpd
因为是使用vsftpd的虚拟用户,所以我们需要先在系统中创建一个用户,并且该用户对/ftp目录具有可读可写可执行权限。
在iptables中开放20、21、被动模式端口范围(30000-35000),并加载FTP驱动模块modprobe ip_nat_ftpmodprobe ip_conntrack_ftp
/etc/vsftpd.conf文件内容
listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
# 指定vsftp欢迎信息及日志记录格式和日志文件路径
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
ftpd_banner=Welcome to nixCraft ftp server
connect_from_port_20=YES
chroot_local_user=YES
chroot_list_enable=NO
allow_writeable_chroot=YES
# 使用的本地账户的名称
guest_enable=YES
guest_username=vsftpd
secure_chroot_dir=/var/run/vsftpd/empty
# 指定使用pam.d目录中的哪个文件
pam_service_name=vsftpd
# 启用被动模式、被动模式使用的端口号范围及被动模式使用的公网IP
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000
pasv_address=61.139.2.69
#虚拟用户目录
user_config_dir=/etc/vsftpd/user_conf
# vsftp使用ssl key方式
rsa_cert_file=/etc/ssl/private/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.pem
ssl_enable=YES
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
require_ssl_reuse=NO
ssl_ciphers=HIGH
#结合/etc/hosts.allow和/etc/hosts.deny限制ip访问vsftpd服务。
tcp_wrappers=YES
修改/etc/hosts.deny
加入vsftpd : ALL
修改/etc/hosts.allow
加入vsftpd:.admin99.net
vsftpd:192.168.0.
vsftpd:192.168.0.0/255.255.255.0
第一行表示,只有admin99.net这个域里的主机允许访问vsftpd服务,注意admin99.net前面的那个点(.);
/第二行表示,只有192.168.0这个网段的用户允许访问vsftpd服务,注意0后面的点(.);
第三行表示,只有192.168.0这个网段的用户允许访问vsftpd服务,注意这里不能写为192.168.0.0/24。
/etc/pam.d/vsftpd文件内容 ,这个文件就是使用的用户名和密码的txt生成的db数据文件。/etc/vsftpd/user_config这个文件就是.db文件路径
auth sufficient pam_userdb.so db=/etc/vsftpd/user_config
account sufficient pam_userdb.so db=/etc/vsftpd/user_config
虚拟用户配置文件内容/etc/vsftpd/user_conf/username
write_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
local_root=/ftp/FTPUser
该配置内容为具有可读可写权限。
创建一个本地系统用户
useradd vsftpd -d /ftp -s /bin/false
chown vsftpd:vsftpd /ftp
创建文本文件loguser.txt
格式如下:
username
password
于是,我们/home/loguser.txt文件的内容为
cd /home 切换到/home目录
sudo touch /home/loguser.txt 创建账户和密码文件
sudo gedit /home/loguser.txt
然后将下面的账户文件字符粘帖入loguser.txt中,注意一行一行输入。
注意:奇数行为账户名,偶数行为密码。也就是1.3.5.等行为用户名,2.4.6行为密码;
最后一行需要回车(否则建立数据库文件时无法识别最后一行,导致报奇数行错误)。
db1
db100
db2
db200
db3
db300
test
生成数据库
sudo db_load -T -t hash -f /home/loguser.txt /etc/vsftpd_login.db
最后设置一下数据库文件的访问权限
sudo chmod 600 /etc/vsftpd_login.db
在ubuntu下要启动、停止、重启vsftpd,我们必须使用以下命令:
sudo service vsftpd stop
sudo service vsftpd start
sudo service vsftpd restart
vsftp配置ssl1.生成证书sudo openssl req -x509 -nodes -days 3650 -newkey rsa:1024 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem2.在vsftpd.conf配置文件中增加ssl配置项rsa_cert_file=/etc/ssl/private/vsftpd.pemrsa_private_key_file=/etc/ssl/private/vsftpd.pem配置强制使用ssl ssl_enable=YES
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES
After this we configure the server to use TLS, which is actually a successor to SSL, and preferred:
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
Finally, we will require add some additional options to flesh out our configuration file:
require_ssl_reuse=NO
ssl_ciphers=HIGH
总结:vsftp使用虚拟用户访问主要使用了单用户配置的方式。使用了pam模块。在使用虚拟用户上传下载文件的时候映射到本地新建的用户。
相关文章推荐
- rhel_5_vsftp之使用虚拟用户来登录FTP
- Vsftp服务器搭建--虚拟用户使用MySQL 认证
- RHEL 5 vsftp使用mysql 存储虚拟用户:
- vsftp虚拟用户使用pam认证方式:
- CentOS6 vsFTP安装与配置(使用虚拟用户)
- 使用vsftp虚拟用户实现安全访问控制 推荐
- VSFTP+MySQL虚拟用户配置
- Linux下如何使用虚拟用户增加FTP的安全性 推荐
- vsftpd虚拟用户使用实验报告
- VSFTP+MySQL虚拟用户配置
- vsftp 虚拟用户配置
- vsftp 通过pam认证方式,添加虚拟用户
- 使用VSFTPD配置虚拟用户访问权限
- vsftpd同时使用系统用户和虚拟用户验证
- RHEL4-FTP服务(五)配置虚拟用户访问vsftp服务器_(下)
- RHEL5 基于虚拟用户验证的VSFTP服务器
- vsftp高级应用:配置虚拟用户
- vsFTP服务器虚拟用户的配置
- RedHat上VSFTP+MySQL虚拟用户配置过程讲解
- vsftp虚拟用户配置