參考:http://wenku.baidu.com/link?url=lSFqo2xn8bKgQjqCF0-rIVRLDhx_H3MQ3dK3rpO_4XkX1e2jgfUSWs1EQLzrzWE1_ZfTyUFLILhWYOo-6-iOpKAA-YRviElGNVEZ8w4ncPa (http://t.cn/8swCnMQ)
問題:
1.530 Permission denied.
答:配置文件中userlist_enable=YES(如果啟用即YES,則看userlist_deny=YES/NO,如果為NO,則要把登錄的用戶寫入文件/etc/vsftpd/user_list...);
2.227 Entering Passive Mode.
答:和防火牆設置有關。
一、說明。
linux 系統下常用的FTP 是vsftp, 即Very Security File Transfer Protocol. 還有一個是proftp(Profession ftp)。 我們這里也是簡單的說明下vsftp的配置。
vsftp提供3種遠程的登錄方式:
(1)匿名登錄方式
就是不需要用戶名,密碼。就能登錄到服務器電腦里面
(2)本地用戶方式
需要帳戶名和密碼才能登錄。而且,這個帳戶名和密碼,都是在你linux系統里面,已經有的用戶。
(3)虛擬用戶方式
同樣需要用戶名和密碼才能登錄。但是和上面的區別就是,這個用戶名和密碼,在你linux系統中是沒有的(沒有該用戶帳號)
二、安裝。
命令:yum install vsftpd
三、啟動、關閉、重啟:service vsftpd start/stop/restart.
注:--查看vsftpd 啟動狀態
[root@singledb ~]# chkconfig --list vsftpd
vsftpd 0:off 1:off 2:off 3:off 4:off 5:off 6:off
[root@singledb ~]# chkconfig vsftpd on
[root@singledb ~]# chkconfig --list vsftpd
vsftpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
這里看到,默認情況下從2到5設置為on了。2到5是多用戶級別。 這個對應的是linux不同的運行級別。
我們也可以加level 選項來指定:
[root@singledb ~]# chkconfig --level 0 vsftpd on
[root@singledb ~]# chkconfig --list vsftpd
vsftpd 0:on 1:off 2:on 3:on 4:on 5:on 6:off
我們看到0已經設置為on了。
傳統的init 定義了7個運行級(run level),每一個級別都代表系統應該補充運行的某些特定服務:
(1)0級是完全關閉系統的級別
(2)1級或者S級代表單用戶模式
(3)2-5 級 是多用戶級別
(4)6級 是 重新引導的級別
四、配置。
1.配置文件:
位置:/etc/vsftpd/
vsftpd.conf: 主配置文件;
ftpusers: 指定哪些用戶不能訪問FTP服務器;
user_list: 指定的用戶是否可以訪問ftp服務器由vsftpd.conf文件中的userlist_deny的取值來決定。
vsftpd.conf 文件設置如下參數:
(1)ftpd_banner=welcome to ftp service :設置連接服務器后的歡迎信息
(2)idle_session_timeout=60 :限制遠程的客戶機連接后,所建立的控制連接,在多長時間沒有做任何的操作就會中斷(秒)
(3)data_connection_timeout=120 :設置客戶機在進行數據傳輸時,設置空閑的數據中斷時間
(4)accept_timeout=60 設置在多長時間后自動建立連接
(5)connect_timeout=60 設置數據連接的最大激活時間,多長時間斷開,為別人所使用;
(6)max_clients=200 指明服務器總的客戶並發連接數為200
(7)max_per_ip=3 指明每個客戶機的最大連接數為3
(8)local_max_rate=50000(50kbytes/sec) 本地用戶最大傳輸速率限制
(9)anon_max_rate=30000匿名用戶的最大傳輸速率限制
(10)pasv_min_port=端口
(11)pasv-max-prot=端口號 定義最大與最小端口,為0表示任意端口;為客戶端連接指明端口;
(12)listen_address=IP地址 設置ftp服務來監聽的地址,客戶端可以用哪個地址來連接;
(13)listen_port=端口號 設置FTP工作的端口號,默認的為21
(14)chroot_local_user=YES 設置所有的本地用戶可以chroot
(15)chroot_local_user=NO 設置指定用戶能夠chroot
(16)chroot_list_enable=YES
(17)chroot_list_file=/etc/vsftpd/chroot_list(只有/etc/vsftpd/chroot_list中的指定的用戶才能執行 )
(18)local_root=path 無論哪個用戶都能登錄的用戶,定義登錄帳號的主目錄, 若沒有指定,則每一個用戶則進入到個人用戶主目錄;
(19)chroot_local_user=yes/no 是否鎖定本地系統帳號用戶主目錄(所有);鎖定后,用戶只能訪問用戶的主目錄/home/user,不能利用cd命令向上轉;只能向下;
(20)chroot_list_enable=yes/no 鎖定指定文件中用戶的主目錄(部分),文件:/chroot_list_file=path 中指定;
(21)userlist_enable=YES/NO 是否加載用戶列表文件;
(22)userlist_deny=YES 表示上面所加載的用戶是否允許拒絕登錄;
(23)userlist_file=/etc/vsftpd/user_list 列表文件
五、ftp用戶管理。
1.默認情況下,ftp根目錄是/var/ftp。 如果要修改這個目錄位置,可以更改/etc/passwd 文件:
[root@singledb ftp]# cat /etc/passwd | grep ftp
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
2.創建一個用戶來訪問FTP,並指定該用戶的FTP 目錄:
[root@singledb u02]# useradd -d /u02/qsftp qs
[root@singledb u02]# passwd qs
以上創建用戶的方法可以用該帳號登錄系統,但是我們要創建的帳號是可以登錄FTP但是不可以登錄系統。
#useradd -d /var/www/html/qs -g ftp -s /sbin/nologin qs //-d是指定目錄(必須為相對根的跟路徑,否則提示阿彌有home家目錄),-g指定分組為ftp組,-s指定該用戶不能返回上一級。
useradd: unknown ftp search則需要添加組:groupadd ftp
#passwd qs //設置密碼
/*********************************************************************************************/
vsftp限制用戶訪問其他目錄
/etc/vsftpd/vsftpd.conf下
chroot_local_user=YES
chroot_list_enables=YES
# (default follows) chroot_list_file=/etc/vsftpd/vsftpd.chroot_list //需要在相應路徑下編輯vsftpd.chroot_list文件,將受限制的用戶列在其中
/*********************************************************************************************/
防止用戶返回到上一級目錄:
如果你想禁止所有用戶調轉到上級目錄,可以設置
chroot_local_user=YES 前提:需要設置local_root目錄;
然后將要禁止的用戶添加到chroot_list里面即可。
附錄:
1. 匿名服務器的連接(獨立的服務器)
在/etc/vsftpd/vsftpd.conf配置文件中添加如下幾項:
Anonymous_enable=yes (允許匿名登陸)
Dirmessage_enable=yes (切換目錄時,顯示目錄下.message的內容)
Local_umask=022 (FTP上本地的文件權限,默認是077)
Connect_form_port_20=yes (啟用FTP數據端口的數據連接)*
Xferlog_enable=yes (激活上傳和下傳的日志)
Xferlog_std_format=yes (使用標准的日志格式)
Ftpd_banner=XXXXX (歡迎信息)
Pam_service_name=vsftpd (驗證方式)*
Listen=yes (獨立的VSFTPD服務器)*
功能:只能連接FTP服務器,不能上傳和下傳
注:其中所有和日志歡迎信息相關連的都是可選項,打了星號的無論什么帳戶都要添加,是屬於FTP的基本選項
2. 開啟匿名FTP服務器上傳權限
在配置文件中添加以下的信息即可:
Anon_upload_enable=yes (開放上傳權限)
Anon_mkdir_write_enable=yes (可創建目錄的同時可以在此目錄中上傳文件)
Write_enable=yes (開放本地用戶寫的權限)
Anon_other_write_enable=yes (匿名帳號可以有刪除的權限)
3. 開啟匿名服務器下傳的權限
在配置文件中添加如下信息即可:
Anon_world_readable_only=no
注:要注意文件夾的屬性,匿名帳戶是其它(other)用戶要開啟它的讀寫執行的權限
(R)讀—–下傳 (W)寫—-上傳 (X)執行—-如果不開FTP的目錄都進不去
4.普通用戶FTP服務器的連接(獨立服務器)
在配置文件中添加如下信息即可:
Local_enble=yes (本地帳戶能夠登陸)
Write_enable=no (本地帳戶登陸后無權刪除和修改文件)
功能:可以用本地帳戶登陸vsftpd服務器,有下載上傳的權限
注:在禁止匿名登陸的信息后匿名服務器照樣可以登陸但不可以上傳下傳
5. 用戶登陸限制進其它的目錄,只能進它的主目錄
設置所有的本地用戶都執行chroot
Chroot_local_user=yes (本地所有帳戶都只能在自家目錄)
設置指定用戶執行chroot
Chroot_list_enable=yes (文件中的名單可以調用)
Chroot_list_file=/任意指定的路徑/vsftpd.chroot_list
注意:vsftpd.chroot_list 是沒有創建的需要自己添加,要想控制帳號就直接在文件中加帳號即可
6. 限制本地用戶訪問FTP
Userlist_enable=yes (用userlistlai 來限制用戶訪問)
Userlist_deny=no (名單中的人不允許訪問)
Userlist_file=/指定文件存放的路徑/ (文件放置的路徑)
注:開啟userlist_enable=yes匿名帳號不能登陸
7. 安全選項
Idle_session_timeout=600(秒) (用戶會話空閑后10分鍾)
Data_connection_timeout=120(秒) (將數據連接空閑2分鍾斷)
Accept_timeout=60(秒) (將客戶端空閑1分鍾后斷)
Connect_timeout=60(秒) (中斷1分鍾后又重新連接)
Local_max_rate=50000(bite) (本地用戶傳輸率50K)
Anon_max_rate=30000(bite) (匿名用戶傳輸率30K)
Pasv_min_port=50000 (將客戶端的數據連接端口改在
Pasv_max_port=60000 50000—60000之間)
Max_clients=200 (FTP的最大連接數)
Max_per_ip=4 (每IP的最大連接數)
Listen_port=5555 (從5555端口進行數據連接)
8. 查看誰登陸了FTP,並殺死它的進程
ps –xf |grep ftp
kill 進程號