天天看點

vsftp匿名使用者,本地使用者,虛拟使用者mysql認證詳情配置

vsftp匿名使用者,本地使用者,虛拟使用者+mysql認證詳情配置

一,簡介

    vsftpd 是“very secure FTP daemon”的縮寫,安全性是它的一個最大的特點。vsftpd 是一個 UNIX 類作業系統上運作的伺服器的名字,它可以運作在諸如 Linux、BSD、Solaris、 HP-UNIX等系統上面,是一個完全免費的、開發源代碼的ftp伺服器軟體,支援很多其他的 FTP 伺服器所不支援的特征。比如:非常高的安全性需求、帶寬限制、良好的可伸縮性、可建立虛拟使用者、支援IPv6、速率高等。注意這個是linux系統上必須掌握的基礎服務之一。工作中各種上傳下載下傳都要用到它。--松鼠&青蛙

下面資料傳輸端口計算227*256+73

使用者認證分為匿名使用者,本地使用者,虛拟使用者:

nsswitch:network server switch,名稱解析架構

配置檔案:/etc/nsswitch.conf

子產品:/lib64/libnss*,/usr/lib64/libnss*

pam:pluggable authentication module,使用者認證架構

子產品:/lib64/security

配置檔案:/etc/pam.conf,/etc/pam.d/*

  匿名使用者:Anonymous

  本地使用者:

 虛拟使用者:僅用于通路某特定服務中的資源

配置檔案

centos 6.5 vsftpd

/etc/logrotate.d/vsftpd   完成日志滾動

/etc/pam.d/vsftpd  使用者認證配置檔案

/etc/rc.d/init.d/vsftpd 服務腳本

/etc/vsftpd  配置檔案

/var/ftp匿名使用者共享資源位置 ftp使用者家目錄就是/var/ftp/  

系統使用者通過ftp通路的資源的位置:使用者自己的家目錄

虛拟使用者用過ftp通路的資源的位置:給虛拟使用者指定的映射成為的系統使用者的家目錄

二,匿名使用者配置

anonymous_enable=YES   啟用匿名使用者

anon_upload_enable=YES  匿名使用者上傳權限

anon_mkdir_write_enable=YES 匿名建立目錄權限

anon_other_write_enable=YES 匿名删除檔案權限 

        注意還必須給匿名使用者主目錄授權

setfacl -m u:ftp:rwx /var/ftp/pub/  給匿名使用者目錄權限讀寫權限

三,本地使用者配置

local_enable=YES 本地使用者上傳檔案

write_enable=YES

local_umask=022 本地用上傳檔案預設的檔案權限

禁锢所有的ftp本地使用者于其家目錄中

chroot_local_user=YES

或隻鎖定指定使用者與其家目錄中

chroot_list_enable=YES

chroot_list_file=/etc/vsftpd/chroot_list  在此檔案中鎖定使用者

資訊驗證檢視

cat /var/log/secure使用者登入驗證資訊

其他設定

給關鍵目錄添加警告說明提示資訊

dirmessage_enable=YES目錄消息使用者通路目錄是回報的資訊

在ftp對應的目錄下echo "hello world" > .message

日志:

傳輸日志put,get的user資訊

xferlog_enable=YES

xferlog_file=/var/log/xferlog

xferlog_std_format=YES指定日志格式

使用者上傳檔案屬主

chown_uploads=YES 是否改變上傳檔案的屬主

chown_username=whoever  改成哪個系統使用者

空閑會話逾時時長

idle_session_timeout=600

資料連結逾時時長

data_connection_timeout=120

不建議啟用:文本格式上傳下載下傳;強制如果本來是二進制程式,上傳下載下傳會出現問題。

#ascii_upload_enable=YES

#ascii_download_enable=YES

歡迎資訊

#ftpd_banner=Welcome to blah FTP service.

黑白名單控制

    vsftpd使用pam完成使用者認證,其用到的pam配置檔案 /etc/vsftpd/ftpusers黑名單

    pam_service_name=vsftpd

    [root@localhost pam.d]# cat vsftpd 

    #%PAM-1.0

    會話session    optional     pam_keyinit.so    force revoke

    認證auth       requiredpam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed(終止)黑名單

        auth       requiredpam_shells.so

        auth       includepassword-auth

    賬号account    includepassword-auth

        session    required     pam_loginuid.so

        session    includepassword-auth

    vsftpd不使用pam自己控制使用者登入的清單檔案/etc/vsftpd/user_list

    userlist_enable=YES是否啟用這個檔案控制使用者登入

    userlist_deny=YES|NO   出現在這個檔案中的使用者就拒絕或允許

速率限制

連結限制:

max_clients:最大并發連接配接數

max_per_ip:每個ip可同時發起的并發請求數;

傳輸速率:

anon_max_rate:所有匿名使用者的一共最大傳輸速率,機關是"位元組/秒"

local_max_rate:本地使用者

四,虛拟使用者

所有的虛拟使用者會被統一映射為一個指定的系統賬号,通路的共享位置即為此系統賬号的家目錄;各虛拟使用者可被賦予不用的通路權限:通過匿名使用者的權限控制參數進行指定;

虛拟使用者賬号的存儲方式;

    檔案:編輯檔案

奇數行為使用者

偶數行為密碼

此檔案需要被編碼為hash格式

    關系型資料庫中的表中:

計數查詢資料庫完成使用者認證;

mysql庫,此時pam要依賴pam_mysql子產品

pam_mysql的使用說明

配置文檔

一、安裝所需要程式

1、安裝mysql和pam_mysql

# yum -y install  mysql-server mysql-devel pam_mysql

注意:pam_mysql由epel源提供。

二、建立虛拟使用者賬号

1.準備資料庫及相關表

首先請確定mysql服務已經正常啟動。而後,按需要建立存儲虛拟使用者的資料庫即可,這裡将其建立為vsftpd資料庫。

mysql> create database vsftpd;

mysql> grant select on vsftpd.* to vsftpd@localhost identified by 'www.magedu.com';

mysql> grant select on vsftpd.* to [email protected] identified by 'www.magedu.com';

mysql> flush privileges;

mysql> use vsftpd;

mysql> create table users (

 id int AUTO_INCREMENT NOT NULL,

 name char(20) binary NOT NULL,

password char(48) binary NOT NULL,

 primary key(id)

 );

2、添加測試的虛拟使用者

根據需要添加所需要的使用者,需要說明的是,這裡将其密碼為了安全起見應該使用PASSWORD函數加密後存儲。

mysql> insert into users(name,password) values('magedu1',password('magedu'));

mysql> insert into users(name,password) values('magedu2',password('magedu'));

三、配置vsftpd

1.建立pam認證所需檔案

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

添加如下兩行

auth required /lib64/security/pam_mysql.so user=vsftpd passwd=www.magedu.com host=localhost db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2

account required /lib64/security/pam_mysql.so user=vsftpd passwd=www.magedu.com host=localhost db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2

crypt (plain)

    The method to encrypt the user's password:

       0 (or "plain") = No encryption.  Passwords stored in plaintext.

                        HIGHLY DISCOURAGED.  沒加密

       1 (or "Y")     = Use crypt(3) function. 加密的

       2 (or "mysql") = Use MySQL PASSWORD() function. It is possible

                        that the encryption function used by PAM-MySQL

                        is different from that of the MySQL server, as

                        PAM-MySQL uses the function defined in MySQL's

                        C-client API instead of using PASSWORD() SQL function

                        in the query.   MySQL PASSWORD()加密的

       3 (or "md5")   = Use plain hex MD5.

       4 (or "sha1")  = Use plain hex SHA

注意:由于mysql的安裝方式不同,pam_mysql.so基于unix sock連接配接mysql伺服器時可能會出問題,此時,建議授權一個可遠端連接配接的mysql并通路vsftpd資料庫的使用者。

2.修改vsftpd的配置檔案,使其适應mysql認證

建立虛拟使用者映射的系統使用者及對應的目錄

# useradd -s /sbin/nologin -d /var/ftproot vuser     -s為了不讓使用者登入

# chmod go+rx /var/ftproot   其他使用者能讀能進入

請確定/etc/vsftpd.conf中已經啟用了以下選項

anonymous_enable=NO

local_enable=YES

anon_upload_enable=NO

anon_mkdir_write_enable=NO

而後添加以下選項

guest_enable=YES

guest_username=vuser

并確定pam_service_name選項的值如下所示

pam_service_name=vsftpd.mysql

四、啟動vsftpd服務

# service vsftpd start

# chkconfig vsftpd on

檢視端口開啟情況

# netstat -tnlp |grep :21

tcp        0      0 0.0.0.0:21              0.0.0.0:*               LISTEN      23286/vsftpd 

使用虛拟使用者登入,驗正配置結果,以下為本機的指令方式測試,你也可以在其它Win Box上用IE或者FTP用戶端工具登入驗正

# ftp localhost

五、配置虛拟使用者具有不同的通路權限。本地使用者映射到虛拟使用者其實是匿名使用者權限

vsftpd可以在配置檔案目錄中為每個使用者提供單獨的配置檔案以定義其ftp服務通路權限,每個虛拟使用者的配置檔案名同虛拟使用者的使用者名。配置檔案目錄可以是任意未使用目錄,隻需要在vsftpd.conf指定其路徑及名稱即可。

1、配置vsftpd為虛拟使用者使用配置檔案目錄

# vim vsftpd.conf

添加如下選項

user_config_dir=/etc/vsftpd/vusers_config 

2、建立所需要目錄,并為虛拟使用者提供配置檔案

# mkdir /etc/vsftpd/vusers_config/

# cd /etc/vsftpd/vusers_config/

# touch tom jerry

3、配置虛拟使用者的通路權限

虛拟使用者對vsftpd服務的通路權限是通過匿名使用者的相關指令進行的。比如,如果需要讓tom使用者具有上傳檔案的權限,可以修改/etc/vsftpd/vusers_config/tom檔案,在裡面添加如下選項即可。

anon_upload_enable={YES|NO}

anon_mkdir_write_enable={YES|NO}

anon_other_write_enable={YES|NO}

pam驗證

1.生成虛拟使用者密碼庫檔案。為了建立此密碼庫檔案,先要生成一個文本檔案。該檔案的格式如下,單數行為使用者名,偶數行為密碼:

#vi account.txt

magedu1

magedu

magedu2

2.生成密碼庫檔案,并修改其權限:

#db_load -T -t hash -f ./account.txt /etc/vsftpd/account.db

#chmod 600 /etc/vsftpd/account.db

3.建立一個虛拟使用者的PAM檔案。加上如下兩行内容:

#vi /etc/pam.d/vsftp.pam

auth required /lib/security/pam_userdb.so db=/etc/vsftpd/account

account required /lib/security/pam_userdb.so db=/etc/vsftpd/account

4,建立虛拟使用者映射的系統使用者及對應的目錄

pam_service_name=vsftp.pam

本文轉自 吃草的青蛙 51CTO部落格,原文連結:http://blog.51cto.com/tlinux/1721981,如需轉載請自行聯系原作者