主選單FreeBSD
PcBSD 0.83Windows程式語言(edit)
|
使用 VSFTP 與 MySQL 建置 FTP 的虛擬帳戶建置平台 FreeBSD 5.4-STABLEStep 1. 安裝 MySQL# cd /usr/ports/database/mysql40-server # make install cleanStep 2. 安裝 PAM-MySQL # cd /usr/ports/security/pam-mysql # make install clean 安裝後,注意提示訊息,需複製 或 搬移 或 連結 pam_mysql.so 到指定路徑 # cp /usr/local/lib/pam_mysql.so /usr/lib/pam_mysql.so Step 3. 安裝 vsftp # cd /usr/ports/vsftpd # make install cleanStep 4. 啟動 MySQL # /usr/local/share/mysql/mysql.server start 若要在開機時啟動,請將 mysql_enable="YES" 加到 /etc/rc.conf 中Step 5. 建立虛擬帳號資料庫 # mysql
mysql> create database vsftpd; //建立 vsftpd 使用的資料庫
mysql> use vsftpd; //切換至 vsftpd 資料庫
mysql> create table users(name varchar(20)
binary,passwd varchar(20) binary);
//建立帳號資料表
mysql> insert into users (name,passwd) values
('george',password('123456'));
//新增一個使用者
mysql> grant select on vsftpdvu.users to vsftpdguest@localhost
identified by 'vsftpdguest';
//設定 vsftpd 資料庫的使用權限
Step 6. 修改 /etc/pam.d/ftpauth required pam_mysql.so user=vsftpdguest passwd=vsftpdguest host=localhost db=vsftpd table=users usercolumn=name passwdcolumn=passwd crypt=2 account required pam_mysql.so user=vsftpdguest passwd=vsftpdguest host=localhost db=vsftpd table=users usercolumn=name passwdcolumn=passwd crypt=2
guest_enable=YES #是否開放Guest登入
guest_username=vsftpdguest #Guest 對應的系統使用者名稱
local_root=ftp #登入後的根目錄
local_enable=YES #本機使用者是否能登入
write_enable=YES #開放寫入的權限
anon_upload_enable=YES #匿名登入是否可上傳
#(虛擬帳號登入視同匿名登入)
anon_mkdir_write_enable=YES #匿名登入建立目錄與寫入檔案的權限
user_config_dir=/usr/local/etc/userdir #使用者環境設定檔位置 (可有可無)
chroot_list_enable=YES #限定使用者僅可在家目錄下活動
chroot_list_file=/usr/local/etc/vsftpd.chroot_list
#限定使用者僅可在家目錄下活動的設定檔 chroot_list_enable 設為 YES 才生效
anon_umask=022 #匿名上傳後的 umask 設定值
listen=YES #使用 standalone 模式啟動
virtual_use_local_privs=YES #匿名使用者是否與本機使用者權限相同
Step 8. 新增 vsftpdguest 使用者# adduser //自己加了...Step 9. 相關檔案的建立 a. 在 vsftpdguest 的家目錄下建立 ftp 的目錄 b. 在 /usr/local/etc 下建立 userdir 的目錄 c. 在 /usr/local/etc/userdir 下產生使用者的設定檔 ex. george 使用者的設定檔為 『george』內容為
local_root=hello
#指定 george 登入後的目錄位置在 /home/vsftpdguest/ftp 下的 hello 目錄
d.建立 /usr/local/etc/vsftpd.chroot_list 其內容為使用者名稱,一個使用者名稱放一行, 在此檔中的使用者只能在自己的家目錄中活動 Step 10. 啟動 vsftpd # /usr/local/libexec/vsftpd &後記: 以 inetd 模式啟動 vsftpd將 vsftpd.conf 中 listen=YES 移除修改 /etc/inetd.conf ftp stream tcp nowait root /usr/local/libexec/vsftpd vsftpd 小出鎚目前測試,還有一個地方有問題:第一個虛擬帳號並無法切到指定的家目錄,還是會到 ftp 的目錄,之後的 user 則無此問題 |