设为首页 收藏本站
查看: 1323|回复: 0

[经验分享] 安装并配置基于虚拟用户的vsftpd

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-11-18 08:41:07 | 显示全部楼层 |阅读模式
1.安装vsftpd:
1
[iyunv@localhost ~]# yum -y install vsftpd




用户认证配置文件:/etc/pam.d/vsftpd
服务脚本:/etc/rc.d/init.d/vsftpd
配置文件目录:/etc/vsftpd
主配置文件:vsftpd.conf
匿名用户:共享资源位置:/var/ftp
系统用户通过ftp访问资源是的位置:用户自己的家目录;
虚拟用户通过ftp访问资源时的位置:给虚拟用户指定的硬射成为的系统用户的家目录;

1
2
3
4
5
6
7
8
9
10
11
12
13
root@localhost ~]# service vsftpd restart
Shutting down vsftpd:                                      [FAILED]
Starting vsftpd for vsftpd:                                [  OK  ]
[iyunv@localhost ~]# ss -tnl
State      Recv-Q Send-Q                   Local Address:Port                     Peer Address:Port
LISTEN     0      50                                    *:3306                                 *:*   
LISTEN     0      128                                  :::80                                  :::*   
LISTEN     0      32                                    *:21                                   *:*   
LISTEN     0      128                                  :::22                                  :::*   
LISTEN     0      128                                   *:22                                   *:*   
LISTEN     0      100                                 ::1:25                                  :::*   
LISTEN     0      100                           127.0.0.1:25                                   *:*   
[iyunv@localhost ~]#




3.修改配置文件:
1
[iyunv@localhost vsftpd]# cp vsftpd.confvsftpd.bak



1
2
匿名访问控制:/etc/vsftp.conf
anonymous_enable=YES





设置打开上传权限:
1
anon_upload_enable=YES




系统访问控制:
1
2
3
local_enable=YES
write_enable=YES
chroot_umask=022




禁用本地用户或者指定用户
1
2
chroot_local_user=YES
chroot_liset_file=/etc/vsftpd/chroot_list




利用ftp账户登录并且上传到upload目录里:

先将目录给予setfacl授权读写执行;

1
2
3
4
5
6
7
8
9
10
[iyunv@localhost ftp]# setfacl -m u:ftp:rwx upload/
[iyunv@localhost ftp]# getfacl upload/
# file: upload/
# owner: root
# group: root
user::rwx
user:ftp:rwx
group::r-x
mask::rwx
other::r-x




测试是否可以上传文件:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
[iyunv@localhostetc]# ftp 192.168.1.122
Connected to 192.168.1.122 (192.168.1.122).
220 (vsFTPd 2.2.2)
Name (192.168.1.122:root): ftp
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
227 Entering Passive Mode(192,168,1,122,244,212).
150 Here comes the directory listing.
drwxr-xr-x    2 0       0            4096 Jul 24 00:49 pub
drwxrwxr-x    3 0       0            4096 Oct 22 20:49upload
226 Directory send OK.
ftp> cd upload
250 Directory successfully changed.
ftp> pwd
257 "/upload"
ftp> put fstab
local: fstab remote: fstab
227 Entering Passive Mode(192,168,1,122,248,28).
150 Ok to send data.
226 Transfer complete.
805 bytes sent in 0.000295 secs (2728.81Kbytes/sec)
ftp>




开启ftp服务器里是否可以匿名创建目录的参数:
1
anon_mkdir_write_enable=YES




测试:
1
2
3
4
5
6
7
8
9
10
11
12
13
rwx------   2 14       50           4096 Oct 22 20:49 aa
-rw-------    1 14      50            805 Oct 22 20:54fstab
226 Directory send OK.
ftp> mkdir bb
257 "/upload/bb" created
ftp> ls
227 Entering Passive Mode(192,168,1,122,120,93).
150 Here comes the directory listing.
drwx------    2 14      50           4096 Oct 22 20:49 aa
drwx------    2 14      50           4096 Oct 22 20:58 bb
-rw-------    1 14      50            805 Oct 22 20:54fstab
226 Directory send OK.
ftp>




但是删除不了创建的文件,需要修改配置文件添加一行:
1
anon_other_write_enable=YES



测试:
1
2
ftp> delete fstab
250 Delete operation successful.




其他机制:
用户控制:
1
2
userlist_enable=YES
userlist_deny=YES|NO




默认文件为/etc/vsftpd/user_list

链接限制:
max_clients:最大并发连接数;
max_per_ip:每个ip同时并发请求数;

传输速率:
anno_max_rate:匿名用户最大传输速率,单位是“字节/秒”
local_max_rate:本地用户

虚拟用户:
所有的虚拟用户会被统一映射为一个指定的系统账号,访问的共享位置即为此系统账号的家目录;

各虚拟用户可被赋予不同访问权限;
通过匿名用户的权限控制参数进行指定;

虚拟用户账号的存储方式:
    文件:编辑文件
            奇数行为用户名
            偶数行为密码
            此文件需要被编码为hash格式:

    关系型数据库中的表中:
            即时查询数据库完成用户认证;
Mysql库:
pam_mysql.x86.64

关系型数据库:
1
[iyunv@localhostlocal]# yum install pam_mysql





1.准备数据库及相关表
1
mariaDB [(none)]> CREATE DATABASE vsftpd;




use vsftpd;

授权账号:
1
2
3
mariaDB [vsftpd]> GRANT SELECT ONvsftpd.* TO vsftp@'192.168.%.%' IDENTIFIED BY '123..com';
  
mariaDB [vsftpd]> FLUSH PRIVILEGES;





查看:
1
2
3
4
5
6
7
8
9
MariaDB [vsftpd]> DESC users;
+----------+------------------+------+-----+---------+----------------+
| Field   | Type             | Null | Key |Default | Extra          |
+----------+------------------+------+-----+---------+----------------+
| id      | int(10) unsigned | NO   | PRI |NULL    | auto_increment |
| name    | varchar(50)      | NO   |    | NULL    |                |
| password | char(48)         | NO  |     | NULL   |                |
+----------+------------------+------+-----+---------+----------------+
3 rows in set (0.00 sec)




创建列表:
1
mariaDB [vsftpd]> create table users (id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, name VARCHAR(50) BINARYNOT NULL, password CHAR(48) BINARY NOT NULL);





插入users表:
1
mariaDB [vsftpd]> INSERT INTO users(name,password) VALUES('hzm',password('123..com')),('tom',password('123..com'));





查看:
1
2
3
4
5
6
7
8
ariaDB [vsftpd]> SELECT * FROM users;
+----+------+-------------------------------------------+
| id | name | password                                  |
+----+------+-------------------------------------------+
|  1| hzm  |*84255B63A81BC5CC440E46029310B403F826E831 |
|  2| tom  |*84255B63A81BC5CC440E46029310B403F826E831 |
+----+------+-------------------------------------------+
2 rows in set (0.00 sec




2.配置vsftpd
1
[iyunv@localhost /]# vim/etc/pam.d/vsftpd.mysql




#vi /etc/pam.d/vsftpd.mysql
添加如下两行:
1
2
auth required pam_mysql.so user=vsftppasswd=123..com host=192.168.1.122 db=vsftpd table=users usercolumn=namepasswdcolumn=password crypt=2
account required pam_mysql.so user=vsftppasswd=123..com host=192.168.1.122 db=vsftpd table=users usercolumn=namepasswdcolumn=password crypt=2




添加如下:
添加个用户修改权限:
[iyunv@localhost /]# useradd -s/sbin/nologin -d /var/ftproot vuser
[iyunv@localhost /]# chmod go+rx/var/ftproot/

修改vsftp.conf:
添加如下信息:
1
2
3
4
5
6
7
pam_service_name=vsftpd.mysql
userlist_enable=YES
tcp_wrappers=YES
  
guest_enable=YES
guest_username=vuser
user_config_dir=/etc/vsftpd/vusers



保存重启vsftp;

测试:
wKiom1YrRoOjwNaqAATypgFeWtc892.jpg

3.配置虚拟用户有不同权限:
1
1
2
3
4
[iyunv@localhost vsftpd]# mkdir vusers
  
[iyunv@localhostvsftpd]# cd vusers/
[iyunv@localhost vusers]# vim tom



添加:
1
2
3
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES



复制一份给hzm,选项参数都改成NO

测试:
1
2
3
4
5
6
7
ftp> put fstab
local: fstab remote: fstab
227 Entering Passive Mode(192,168,159,128,172,134).
150 Ok to send data.
226 Transfer complete.
805 bytes sent in 9.1e-05 secs (8846.15Kbytes/sec)
ftp>



成功~~~

相反,hzm账户则没有任何权限;
1
2
3
4
5
6
7
8
9
10
11
12
name (192.168.159.128:root): hzm
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> lcd /etc
Local directory now /etc
ftp> put fstab
local: fstab remote: fstab
227 Entering Passive Mode(192,168,159,128,193,112).
550 Permission denied.



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-140502-1-1.html 上篇帖子: 1.造成FTP提权攻击的直接或间接原因 2.Cookie窃取所针对的内容 3.访问控制的安全特性 下篇帖子: vsftpd服务器 用户
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表