實驗記錄:vsftp整合mysql-pam管理虛擬帳號

來源:互聯網
上載者:User

標籤:style   color   os   檔案   io   art   

為了提高系統的安全性,我們採用虛擬使用者而非系統(匿名)使用者的形式訪問FTP。整體思路是通過開啟vsftp中的虛擬賬戶功能並調用新的pam認證模組,然後再修改pam模組使得可以通過mysql驗證使用者的合法性。以下為實驗過程。

第一步裝包:

yum install -y vsftpd mysql-server mysql-devel pam-devel

yum groupinstall -y Development tools

tar -xf pam_mysql-0.7RC1.tar.gz -C /usr/src/

cd /usr/src/pam_mysql-0.7RC1

./configure

make && make install

第二步配置mysql

service mysqld start

mysql -p

create database ftpusers;

use ftpusers;

create table users( id int AUTO_INCREMENT NOT NULL,name char(20) NOT NULL UNIQUE KEY, passwd char(48) NOT NULL, primary key(id) );

insert into users(name,passwd)values(‘nick‘,password(‘redhat‘));

grant select on ftpusers.* to [email protected] identified by ‘vftpadm‘;

flush privileges;

第三步編輯vsftpd.conf,以下是我的配置:

anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
anon_upload_enable=YES
dirmessage_enable=YES
xferlog_enable=YES
xferlog_std_format=YES
connect_from_port_20=YES
xferlog_std_format=YES
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
listen=YES
user_config_dir=/etc/vsftpd/user_config
local_root=/var/ftp/pub
guest_enable=YES
guest_username=virftp
pam_service_name=vftp
userlist_enable=YES
tcp_wrappers=YES
userlist_deny=YES

第四步編輯pam檔案:vim /etc/pam.d/vftp

session optional pam_keyinit.so force revoke
auth sufficient /lib64/security/pam_mysql.so user=virftp passwd=vftpadm host=localhost db=ftpusers table=users usercolumn=name passwdcolumn=passwd crypt=2
auth required pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed
auth required pam_shells.so
auth include password-auth
account sufficient /lib64/security/pam_mysql.so user=virftp passwd=vftpadm host=localhost db=ftpusers table=users usercolumn=name passwdcolumn=passwd crypt=2
account include password-auth
session required pam_loginuid.so
session include password-auth

上面紅色字型是驗證虛擬賬戶用的,其餘為預設vsftpd驗證,local賬戶驗證時用得到。

第五步:添加虛擬賬戶

useradd virftp -s /sbin/nologin -d /home/virftp virftp

chown virftp. -R /home/virftp/

第六步:建立虛擬賬戶設定檔

mkdir /etc/vsftpd/user_config

cd /etc/vsftpd/user_config

建立虛擬賬戶nick:

vim nick

local_root=/home/virftp/

這裡只限制了其根目錄,這裡不定義的一律繼承主設定檔的設定(/etc/vsftp/vsftpd.conf)

cp一個檔案到此目錄來驗證實驗

cp /etc/inittab /home/virftp

service vsftpd restart

最後登陸賬戶nick 密碼redhat 查看結果

 

實驗總結:開始我在pam檔案中mysql驗證沒用sufficient而用了required,直接導致不能用local賬戶登入。

這裡解釋下兩者的含義,sufficient代表一旦滿足這條規則,則直接退出不往下匹配了,如果不滿足,則往下繼續匹配。

required說明如果不匹配則直接退出,如果匹配則繼續往下匹配。

所以當我用required時,local賬戶不匹配直接退出。 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.