安裝並配置基於虛擬使用者的vsftpd

來源:互聯網
上載者:User

標籤:使用者

1.安裝vsftpd:

[[email protected] ~]# yum -y install vsftpd

 

使用者認證設定檔:/etc/pam.d/vsftpd

服務指令碼:/etc/rc.d/init.d/vsftpd

設定檔目錄:/etc/vsftpd

主設定檔:vsftpd.conf

匿名使用者:共用資源位置:/var/ftp

系統使用者通過ftp訪問資源是的位置:使用者自己的家目錄;

虛擬使用者通過ftp訪問資源時的位置:給虛擬使用者指定的硬射成為的系統使用者的家目錄;

 

[email protected] ~]# service vsftpd restartShutting down vsftpd:                                      [FAILED]Starting vsftpd for vsftpd:                                [  OK  ][[email protected] ~]# ss -tnlState      Recv-Q Send-Q                   Local Address:Port                     Peer Address:PortLISTEN     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                                   *:*    [[email protected] ~]#


3.修改設定檔:

[[email protected] vsftpd]# cp vsftpd.confvsftpd.bak
匿名存取控制:/etc/vsftp.confanonymous_enable=YES

 

 

設定開啟上傳許可權:

anon_upload_enable=YES

 

系統存取控制:

local_enable=YESwrite_enable=YESchroot_umask=022

 

禁用本機使用者或者指定使用者

chroot_local_user=YESchroot_liset_file=/etc/vsftpd/chroot_list

 

利用ftp賬戶登入並且上傳到upload目錄裡:

先將目錄給予setfacl授權讀寫執行;

[[email protected] ftp]# setfacl -m u:ftp:rwx upload/[[email protected] ftp]# getfacl upload/# file: upload/# owner: root# group: rootuser::rwxuser:ftp:rwxgroup::r-xmask::rwxother::r-x


測試是否可以上傳檔案:

 [[email protected]]# ftp 192.168.1.122Connected to 192.168.1.122 (192.168.1.122).220 (vsFTPd 2.2.2)Name (192.168.1.122:root): ftp331 Please specify the password.Password:230 Login successful.Remote system type is UNIX.Using binary mode to transfer files.ftp> ls227 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 pubdrwxrwxr-x    3 0       0            4096 Oct 22 20:49upload226 Directory send OK.ftp> cd upload250 Directory successfully changed.ftp> pwd257 "/upload"ftp> put fstablocal: fstab remote: fstab227 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伺服器裡是否可以匿名建立目錄的參數:

anon_mkdir_write_enable=YES

 

測試:

rwx------   2 14       50           4096 Oct 22 20:49 aa-rw-------    1 14      50            805 Oct 22 20:54fstab226 Directory send OK.ftp> mkdir bb257 "/upload/bb" createdftp> ls227 Entering Passive Mode(192,168,1,122,120,93).150 Here comes the directory listing.drwx------    2 14      50           4096 Oct 22 20:49 aadrwx------    2 14      50           4096 Oct 22 20:58 bb-rw-------    1 14      50            805 Oct 22 20:54fstab226 Directory send OK.ftp>


但是刪除不了建立的檔案,需要修改設定檔添加一行:

anon_other_write_enable=YES

測試:

ftp> delete fstab250 Delete operation successful.


其他機制:

使用者控制:

userlist_enable=YESuserlist_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

 

關係型資料庫:

 [[email protected]]# yum install pam_mysql

 

 

1.準備資料庫及相關表

mariaDB [(none)]> CREATE DATABASE vsftpd;

 

use vsftpd;

 

授權帳號:

mariaDB [vsftpd]> GRANT SELECT ONvsftpd.* TO [email protected]‘192.168.%.%‘ IDENTIFIED BY ‘123..com‘; mariaDB [vsftpd]> FLUSH PRIVILEGES;

 

 

查看:

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)


建立列表:

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表:

mariaDB [vsftpd]> INSERT INTO users(name,password) VALUES(‘hzm‘,password(‘123..com‘)),(‘tom‘,password(‘123..com‘));


查看:

ariaDB [vsftpd]> SELECT * FROM users;+----+------+-------------------------------------------+| id | name | password                                  |+----+------+-------------------------------------------+|  1| hzm  |*84255B63A81BC5CC440E46029310B403F826E831 ||  2| tom  |*84255B63A81BC5CC440E46029310B403F826E831 |+----+------+-------------------------------------------+2 rows in set (0.00 sec


2.配置vsftpd

 [[email protected] /]# vim/etc/pam.d/vsftpd.mysql


#vi /etc/pam.d/vsftpd.mysql

添加如下兩行:

auth required pam_mysql.so user=vsftppasswd=123..com host=192.168.1.122 db=vsftpd table=users usercolumn=namepasswdcolumn=password crypt=2account required pam_mysql.so user=vsftppasswd=123..com host=192.168.1.122 db=vsftpd table=users usercolumn=namepasswdcolumn=password crypt=2


添加如下:

添加個使用者修改許可權:

[[email protected] /]# useradd -s/sbin/nologin -d /var/ftproot vuser

[[email protected] /]# chmod go+rx/var/ftproot/

 

修改vsftp.conf:

添加如下資訊:

pam_service_name=vsftpd.mysqluserlist_enable=YEStcp_wrappers=YES guest_enable=YESguest_username=vuseruser_config_dir=/etc/vsftpd/vusers

儲存重啟vsftp;

 

測試:

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/74/DA/wKiom1YrRoOjwNaqAATypgFeWtc892.jpg" height="858" width="1200" alt="wKiom1YrRoOjwNaqAATypgFeWtc892.jpg" />


3.配置虛擬使用者有不同許可權:

1

[[email protected] vsftpd]# mkdir vusers [[email protected]]# cd vusers/[[email protected] vusers]# vim tom

添加:

anon_upload_enable=YESanon_mkdir_write_enable=YESanon_other_write_enable=YES

複製一份給hzm,選項參數都改成NO


測試:

ftp> put fstablocal: fstab remote: fstab227 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賬戶則沒有任何許可權;

name (192.168.159.128:root): hzm331 Please specify the password.Password:230 Login successful.Remote system type is UNIX.Using binary mode to transfer files.ftp> lcd /etcLocal directory now /etcftp> put fstablocal: fstab remote: fstab227 Entering Passive Mode(192,168,159,128,193,112).550 Permission denied.


本文出自 “我的學習部落格” 部落格,請務必保留此出處http://houzhimeng.blog.51cto.com/3938990/1713740

安裝並配置基於虛擬使用者的vsftpd

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.