想搭建vsftpd服務先熟悉一下下面的內容
A: vsftp 的三種訪問方式
1.匿名登陸
使用用戶名 ftp或anonymous登陸
登陸的ftp的目錄爲/var/ftp 目錄
2.本地用戶登陸
使用系統用戶帳號和口令登陸ftp服務器
登陸ftp服務後的目錄爲用戶的宿主目錄 /home/用戶名,可以轉換到系統中的其它目錄
3.虛擬用戶登陸
使用獨立的文件保存虛擬賬號,安全性比較好可一替代本地用戶
B: 搭建vsftp服務的時候最好先把iptable 和 SELINUX 關掉不然會出現不能訪問的情況,
C:每次修改vsftp的配置文件 vsftpd.conf 必須重啓vsftpd服務才能生效!
D:學習一下vsftpd服務的文件結構和主配置文件vsftpd.conf 的常用的配置參數.可以參考鳥哥的vsftpd 服務器基礎. http://vbird.dic.ksu.edu.tw/linux_server/0410vsftpd_2.php
下面就開始安裝vsftpd服務了.
一 安裝vsftpd服務
yum install vsftpd
安裝以後直接啓動vsftp服務 命令:service vsftpd start
在vsftpd.conf 默認設置下,匿名用戶和本地用戶都可以登陸vsftpd服務器的!只是這兩種用戶登陸後的根目錄不一樣,匿名用戶在/etc/ftp目錄下面,本地用戶會登陸到自己的家目錄/home/用戶名 下面. 但是本地用戶可以切換到其它的目錄,不怎麼安全啊,我們可以在vsftpd.conf文件中限制本地用戶不能離開自己的家目錄,具體的方法還是 看鳥哥的 vsftpd 服務器基礎. http://vbird.dic.ksu.edu.tw/linux_server/0410vsftpd_2.php 講的真的很詳細啊! 特別是vsftpd.conf 配置文件參數的講解按照 與服務器環境較相關的設定值; 與本地用戶相關的設定值; 與匿名相關的設定值; 與系統安全相關的設定值.這幾部分分開學習很容易明白!
注意! 給匿名用戶和本地用戶上傳權限的時候 對應的上傳到目錄的其它用戶得有寫的權限. 但是/var/ftp 目錄的其它用戶不能有寫權限,如果設置有寫權限將無法訪問.說不明白看實例: 在/var/ftp 目錄下有幾個目錄!如下
[root@clear ftp]# ll 總用量 16
drwxr-xr-x 3 root root 4096 3月 26 18:42 down
drwxr-xr-x 2 root root 4096 3月 26 18:08 new
drwxr-xr-x 2 root root 4096 3月 1 18:16 pub
drwxr-xrwx 3 root root 4096 3月 26 20:04 up
只有up這個目錄 其它用戶有寫的權限! 如果在vsftpd.conf文件中設置了匿名用戶有上傳權限,那麼用戶能在up目錄裏上傳和下載,在其它三個目錄裏只能下載不能上傳!
如果ftp這個目錄其它用戶有寫的權限,如下.那麼ftp服務器將無法登陸!
drwxr-xrwx 6 root root 4096 3月 26 18:08 /var/ftp/
按照鳥哥的資料配置匿名訪問和本地用戶訪問以及常用參數的設置都應該沒問題! 我主要記錄一下虛擬用戶登陸!
vsftpd虛擬用戶帳號的設置!
1.建立虛擬用戶口令庫文件
#vim logings.txt # 庫文件名可以隨意起,
用戶名 #內容奇數行是用戶名
密碼 #偶數行是密碼
zhang3
123456
2.生成vsftpd的認證文件(用戶名密碼數據庫文件)
#db_load -T -t hash -f logins.txt /etc/vsftpd/vsftpd_login.db
#chmod 600 /etc/vsftpd/vsftpd_login.db
3.建立虛擬用戶所需的PAM配置文件!
#vim /etc/pam.d/vsftpd.vu
auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login.db
account required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login.db
64位系統的pam_userdb.so文件在/lib64/security/下面!!!!!
4.建立虛擬用戶訪問的目錄平配置相應的權限.
建立所有FTP虛擬用戶使用的系統用戶帳號,並設置該帳號宿主目錄的權限
useradd -d /home/ftpsite virtual(用戶) #不給virtual賬戶添加密碼!!
chmod 700 /home/ftpsite (宿主目錄) #所有虛擬用戶登陸後都到這個目錄!
5.設置vsftpd.conf配置文件.
在配置文件中添加虛擬用戶的配置內容
guest_enable=YES #啓用虛擬用戶
guest_username=virtual #虛擬用戶使用的系統帳號
pam_service_name=vsftpd.vu #認證文件
user_config_dir=/etc/vsftpd/vsftpd_user_conf #限制虛擬用戶權限的目錄
6.給不同的虛擬用戶設定不通的權限
vsftpd.conf 配置文件裏面的這一行參數指定了限制虛擬用戶權限的目錄在哪裏!! user_config_dir=/etc/vsftpd/vsftpd_user_conf
vsftpd_user_conf 目錄裏面的文件名必須和logings.txt文件裏面的虛擬用戶名一樣! 用各自的文件限制各自的權限! 內容如下
[root@clear vsftpd_user_conf]# cat zhang3
anon_world_readable_only=NO #權限不僅是隻讀,用戶可以瀏覽下載
anon_other_write_enable=YES #可以刪除.修改
anon_mkdir_write_enable=YES #可以創建文件和目錄
anon_upload_enable=YES #可以上傳
注意:vsftpd.conf配置文件裏面的anonymous_enable=YES local_enable=YES guest_enable=YES 這三項同時開啓時! 匿名用戶登陸後在/var/ftp目錄下;虛擬用戶登陸後在/home/ftpsite目錄下; 本地用戶是無法登陸的因爲參數 pam_service_name=vsftpd.vu 改變了!!
7. 使用虛擬用戶登陸,必須在vsftpd.conf配置文件中開啓 "local_enable=YES" 選項,否者無法使用虛擬帳號登陸!
報錯:500 OOPS: vsftpd: both local and anonymous access disabled!
配置文件如下:
[root@clear vuftp]# cat /etc/vsftpd/vsftpd.conf | grep -v '^#'
anonymous_enable=NO
local_enable=YES #注意使用虛擬用戶登陸這個選項必須YES.即必須開啓本地用戶登陸.
write_enable=YES
local_umask=022
anon_other_write_enable=YES
anon_mkdir_write_enable=YES
anon_upload_enable=YES
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
listen=YES
guest_enable=YES #開啓虛擬帳號訪問
guest_username=vuftp #使用虛擬帳號時用本地帳號vuftp來頂替!
pam_service_name=vsftpd.vu #認證文件
user_config_dir=/etc/vsftpd/vsftpd_user_conf #存放虛擬用戶限制各自權限的配置文件
tcp_wrappers=YES # 支持tcpwrappers的防火牆機制.
8.重新啓動vsftpd服務程序.
service vsftpd restart
參考http://wiki.ubuntu.org.cn/Vsftpd%E8%99%9A%E6%8B%9F%E7%94%A8%E6%88%B7%E8%AE%BE%E7%BD%AE