70.4. vsftpd - The Very Secure FTP Daemon

70.4.1. 安装 vsftpd

70.4.1.1. Ubuntu 环境安装
$ sudo apt-get install vsftpd
				

test

				
[08:25:37 jobs:0] $ ncftp ftp://127.0.0.1
NcFTP 3.2.1 (Jul 29, 2007) by Mike Gleason (http://www.NcFTP.com/contact/).
Connecting to 127.0.0.1...
(vsFTPd 2.0.7)
Logging in...
Login successful.
Logged in to 127.0.0.1.
Current remote directory is /.
ncftp / >
				
				

enable local user

$ sudo vim /etc/vsftpd.conf

# Uncomment this to allow local users to log in.
local_enable=YES
chroot_local_user=YES

$ sudo /etc/init.d/vsftpd reload
				

testing for local user

				
$ ncftp ftp://neo@127.0.0.1/
NcFTP 3.2.1 (Jul 29, 2007) by Mike Gleason (http://www.NcFTP.com/contact/).
Connecting to 127.0.0.1...
(vsFTPd 2.0.7)
Logging in...
Password requested by 127.0.0.1 for user "neo".

    Please specify the password.

Password: *******

Login successful.
Logged in to 127.0.0.1.
Current remote directory is /home/neo.
ncftp /home/neo >
				
				
70.4.1.2. CentOS 7 环境安装
				
yum install -y vsftpd

systemctl enable vsftpd

cp /etc/vsftpd/vsftpd.conf{,.original}

sed -i 's/anonymous_enable=YES/anonymous_enable=NO/' /etc/vsftpd/vsftpd.conf
sed -i 's/#chroot_local_user=YES/chroot_local_user=YES/' /etc/vsftpd/vsftpd.conf
sed -i 's/listen=NO/listen=YES/' /etc/vsftpd/vsftpd.conf
sed -i 's/listen_ipv6=YES/listen_ipv6=NO/' /etc/vsftpd/vsftpd.conf

echo "allow_writeable_chroot=YES" >> /etc/vsftpd/vsftpd.conf

systemctl start vsftpd
				
				

firewalld 防火墙

# firewall-cmd --permanent --add-port=21/tcp				
				

iptables

sed -i 's/IPTABLES_MODULES=""/IPTABLES_MODULES="ip_conntrack_ftp"/' /etc/sysconfig/iptables-config

# vim /etc/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 20 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
				

70.4.2. ftp 帐号的shell权限

我们不想让FTP用户通过shell登录系统, 可以将用户的Shell改为/sbin/nologin

neo:x:1000:1000:neo,,,:/home/neo:/sbin/nologin
			

70.4.3. vsftpd 认证模块

70.4.3.1. pam_shells.so
# cat /etc/pam.d/vsftpd
#%PAM-1.0
session    optional     pam_keyinit.so    force revoke
auth       required	pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed
auth       required	pam_shells.so
auth       include	system-auth
account    include	system-auth
session    include	system-auth
session    required     pam_loginuid.so
				

/etc/vsftpd/ftpusers 列表中的用户将不能登录ftp服务器

70.4.3.2. virtual user

创建明文密码文件,一行用户名后回车跟一行密码

# cat virtual-users.txt
user
password
neo
123456
jam
654321
				

转为数据库文件

# sudo apt-get install db-util
# db_load -T -t hash -f virtual-users.txt /etc/vsftpd/virtual-users.db
				

创建插件认证配置文件 /etc/pam.d/vsftpd-virtual

auth required pam_userdb.so db=/etc/vsftpd/virtual-users
account required pam_userdb.so db=/etc/vsftpd/virtual-users
				
/etc/vsftpd/vsftpd.conf:

# virtual users to use local privs, not anon privs
virtual_use_local_privs=YES

# the PAM file used by authentication of virtual uses
pam_service_name=vsftpd-virtual

# in conjunction with 'local_root',
# specifies a home directory for each virtual user
user_sub_token=$USER
local_root=/var/www/virtual/$USER
# the virtual user is restricted to the virtual FTP area

chroot_local_user=YES
# hides the FTP server user IDs and just display "ftp" in directory listings
hide_ids=YES

guest_enable=YES
guest_username=nobody

# the umask for file creation
local_umask=022
				

guest_username=nobody 虚拟用户将使用nobody用户作为他的uid,gid.

# mkdir /var/www/virtual/mary
# chown ftp:ftp /var/www/virtual/mary
				
70.4.3.3. 虚拟用户权限
vim /etc/vsftpd.conf

user_config_dir=/etc/vsftpd/conf.d

mkdir /etc/vsftpd/conf.d
				

neo 只能下载不能上传

				
echo "anon_world_readable_only=NO" > /etc/vsftpd/conf.d/neo
				
				

jam 可以下上传跟下载

				
echo "anon_world_readable_only=NO" > /etc/vsftpd/conf.d/jam
echo "anon_upload_enable=YES" >> /etc/vsftpd/conf.d/jam
echo "write_enable=YES" >> /etc/vsftpd/conf.d/jam
				
				

70.4.4. chroot

70.4.4.1. local user

chroot 所有本地用户

chroot_local_user=YES
				
70.4.4.2. /etc/vsftpd/chroot_list

受限用户用户添加到文件vsftpd.chroot_list

chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
				

注意:每行一个用户名

70.4.4.3. test
adduser -o --home /www --shell /sbin/nologin --uid 99 --gid 99 --group nobody www
echo "www:chen" | chpasswd
echo www > /etc/vsftpd/chroot_list
ncftp ftp://www:chen@172.16.0.1
				

70.4.5. FAT

70.4.5.1. vsftpd: refusing to run with writable root inside chroot()

添加 allow_writeable_chroot=YES 项到 /etc/vsftpd/vsftpd.conf 配置文件

echo "allow_writeable_chroot=YES" >> /etc/vsftpd/vsftpd.conf
				
重启 vsftpd 




原文出处:Netkiller 系列 手札
本文作者:陈景峯
转载请与作者联系,同时请务必标明文章原始出处和作者信息及本声明。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
[84.15, 74.25, 97.2, 83.25, 102.6, 88.8, 77.55, 91.8, 68.45, 102.6, 86.4, 64.35, 81.6, 97.2, 81.0, 76.5, 83.25, 29.7, 93.6, 79.8, 80.0, 91.2, 72.0, 88.8, 73.6, 94.05, 34.65, 52.8, 64.35, 69.75, 79.2, 81.6, 84.6, 81.0, 79.2, 91.8, 77.4, 83.25, 64.8, 74.25, 36.75, 37.7, 85.8, 92.5, 88.8, 39.6, 54.45, 86.4, 91.8, 73.8, 76.8, 77.55, 57.6, 90.75, 88.2, 86.4, 58.5, 76.5, 81.0, 49.5, 82.5, 88.2, 91.2, 66.0, 74.25, 99.9, 60.45, 79.2, 86.4, 75.2, 72.6, 96.9, 56.1, 74.25, 64.8, 81.6, 89.25, 88.8, 97.2, 96.35, 81.6, 72.0, 80.85, 94.35, 74.25, 80.0, 94.35, 36.3, 67.2, 81.6, 73.5, 76.8, 66.0, 86.4, 98.05, 81.4, 86.4, 70.2, 74.4, 44.55, 39.6, 87.45, 83.25, 82.5, 74.25, 82.8, 75.2, 86.4, 89.1, 37.95, 61.5, 72.6, 98.4, 86.95, 89.1, 89.1, 79.2, 81.0, 80.85, 52.5, 56.1, 69.3, 84.6, 83.25, 79.2, 66.5, 93.6, 81.6, 86.4, 97.2, 89.1, 91.8, 70.4, 79.2, 81.0, 100.8, 84.15, 90.0, 74.25, 64.8, 94.35, 81.0, 81.0, 93.6, 91.8, 77.55, 61.5, 89.1, 94.35, 81.7, 90.65, 92.75, 64.35, 66.0, 37.95, 91.8, 86.4, 75.0, 76.8, 75.2, 61.05, 91.8, 72.0, 94.05, 81.0, 81.6, 91.8, 95.2, 94.05, 81.0, 68.8, 84.6, 86.4, 89.25, 75.6, 84.15, 76.8, 85.75, 88.2, 85.8, 81.0, 72.5, 76.8, 55.8, 82.5, 72.0, 91.8, 70.95, 81.0, 86.4, 97.2, 72.0, 92.5, 69.3, 91.8, 84.15, 55.8, 89.1, 86.4, 86.4, 76.8, 88.2, 94.5, 92.5, 81.6, 72.0, 88.8, 89.1, 59.2, 87.4, 72.0, 85.8, 72.0, 72.0, 94.35, 98.4, 75.6, 89.1, 66.6, 76.5, 75.9, 70.2, 86.4, 91.8, 85.8, 54.45, 41.85, 88.0, 78.4, 85.8, 79.2, 66.6, 79.2, 59.4, 67.2, 86.4, 79.2, 86.4, 39.6, 84.15, 86.1, 81.6, 89.1, 79.2, 91.2, 76.5, 97.2, 99.9, 79.2, 76.8, 71.75, 39.6, 48.6, 79.2, 89.1, 81.0, 84.6, 81.6, 68.8, 81.6, 86.4, 72.0, 89.1, 89.6, 47.25, 63.0, 97.2, 91.8, 46.8, 90.0, 62.4, 88.8, 64.35, 89.1, 77.7, 86.4, 88.8, 91.8, 81.6, 85.8, 73.6, 86.95, 92.4, 91.8, 94.35, 74.25, 69.3, 83.2, 73.5, 82.8, 74.25, 95.4, 72.0, 77.9, 75.2, 76.8, 97.2, 84.15, 66.0, 78.4]按照这组数据的概率分布采样10个数
03-09

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值