Linux下快速安裝vsftpd方法
vsftp的含義就是Very Security Ftp,其實就是一款FTP軟件。
每個人安裝軟件的時候都有自己不同的方法,不過大多大同小異,以下是本人安裝VSFTPD的方法
1、下載:
下載源碼到服務器,其下載地址是ftp://vsftpd.beasts.org/users/cevans/,當前的版本是vsftpd-2.0.6.tar.gz 。
強烈建議使用源碼安裝,即可擺脫類似rpm包依賴的困惑,又可以實現在不同unix/linux下自如的工作。
2、編譯源代碼:
tar xvzf vsftpd-2.0.6.tar.gz (解壓,並進入解壓後目錄vsftpd-2.0.6,通常在/usr/local下解壓)
make
make install
3、安裝配置:
cp vsftpd.conf /etc
cp RedHat/vsftpd.pam /etc/pam.d/ftp (用戶身份識別)
4、編輯配置:
修改配置文件/etc/vsftpd.conf。這個配置文件是vsftpd的關鍵所在,修改下列值,以實現不同的功能:
(1)修改的部分:把 local_enable=yes
write_enable=yes和
local_umask=022前面的註釋取消。
(2)增加部分:listen=YES(ftp作爲獨立的守護進程)
chroot_local_user=yes(用戶被定位在自己的主目錄裏,用cd / 並不能切換到根目錄)
cmds_allowed=ABOR,CWD,LIST,MDTM,MKD,NLST,PASS,PASV,
PORT,PWD,QUIT,RETR,RMD,RNFR,RNTO,SITE,SIZE,STOR,TYPE,USER,
ACCT,APPE,CDUP,HELP,MODE,NOOP,REIN,STAT,STOU,STRU,SYST(只許上傳文件和目錄,但不許刪除。注意:這些必須一行寫完)
5、啓動服務:
/usr/local/vsftpd-2.0.6/vsftpd &
用netstat -tnl查看,如果有21端口證明已經安裝配置成功
這個時候已經能用FTP,但不能使用匿名訪問。
6、關閉服務:
pkill vsftpd
7、開機自啓動
用vi打開、etc/rc.local在裏面加入/usr/local/vsftpd-2.0.6/vsftpd & 即可。
補充一:
改端口:
在vsftpd.conf最後加:
listen_port=2121
取消anonymous 登入
anonymous_enable=NO
老大原文提到,讓用戶不能切換到別的目錄,需要添加一個文件:
vim /etc/vsftpd/chroot_list 加入你所要限制的用戶
vsftpd.conf也去掉相應的註釋:chroot_list_file=/etc/vsftpd/chroot_list
補充二:打開vsFTP服務器的日誌功能:
把下面xferlog_file前面的#號對掉,也就是把vsftp的log功能打開,這樣我們就能在/var/log目錄下查看vsftpd.log。這是vsFTP的日誌功能,
這對於我們來說是極爲重要的。
#xferlog_file=/var/log/vsftpd.log
補充三:如何讓綁定IP到vsFTP?也就是說,如何讓用戶只能通過某個IP來訪問FTP。其實這個功能很有意思。如果綁定的是內網的IP,
外部是沒有辦法訪問的。如果綁定的是對外服務的IP,內網也只能通過對外服務的IP來訪問FTP
在/etc/vsftpd/vsftpd.conf中加一行,以我的局域網爲例,請看第一帖中的操作環境,這樣外網就不能訪問我的FTP了,
內網也可能通過192.168.0.2來訪問FTP
listen_address=192.168.0.2
加完後,要重啓vsFTP服務器
以下是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服務器
Anon_upload_enable=yes 匿名用戶上傳權限
Anon_mkdir_write_enable=yes 創建目錄的同時可以在此目錄中上傳文件
Write_enable=yes 本地用戶寫的權限
Anon_other_write_enable=yes 匿名帳號可以有刪除的權限
Anon_world_readable_only=no 匿名用戶瀏覽權限
Ascii_upload_enable=yes 啓用上傳的ASCII傳輸方式
Ascii_download_enable=yes 啓用下載的ASCII傳輸方式
Banner_file=/var/vsftpd_banner_file 用戶連接後歡迎信息使用的是此文件中的相關信息
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=5000 將客戶端的數據連接端口改在
Pasv_max_port=6000 5000—6000之間
Max_clients=200 FTP的最大連接數
Max_per_ip=4 每IP的最大連接數
Listen_port=5555 從5555端口進行數據連接
Local_enble=yes 本地帳戶能夠登陸
Write_enable=no 本地帳戶登陸後無權刪除和修改文件
Chroot_local_user=yes 本地所有帳戶都只能在自家目錄
Chroot_list_enable=yes 文件中的名單可以調用
Chroot_list_file=/etc/vsftpd.chroot_list 前提是chroot_local_user=no
Userlist_enable=yes 在指定的文件中的用戶不可以訪問
Userlist_deny=yes
Userlist_file=/etc/vsftpd.user_list
Banner_fail=/路徑/文件名 連接失敗時顯示文件中的內容
Ls_recurse_enable=no
Async_abor_enable=yes
one_process_model=yes
Listen_address=10.2.2.2 將虛擬服務綁定到某端口
Guest_enable=yes 虛擬用戶可以登陸
Guest_username=所設的用戶名 將虛擬用戶映射爲本地用戶
Chown_uploads=yes 改變上傳文件的所有者爲root
Chown_username=root
Deny_email_enable=yes 是否允許禁止匿名用戶使用某些郵件地址
Banned_email_file=//任意指定的路徑/xx/
Pasv_enable=yes 服務器端用被動模式
User_config_dir=/任意指定的路徑//任意文件目錄 指定虛擬用戶存放配置文件的路徑
上傳的ASCII傳輸方式Ascii_download_enable=yes 啓用下載的ASCII傳輸方式Banner_file=/var/vsftpd_banner_file 用戶連接後歡迎信息使用的是此文件中的相關信息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=5000 將客戶端的數據連接端口改在Pasv_max_port=6000 5000—6000之間Max_clients=200 FTP的最大連接數Max_per_ip=4 每IP的最大連接數Listen_port=5555 從5555端口進行數據連接Local_enble=yes 本地帳戶能夠登陸Write_enable=no 本地帳戶登陸後無
1、如果我們想把beinan這個用戶目錄定位在/mnt/beifen這個目錄中,並且不能登錄系統;我們應該如下操作
root@localhost ~]# adduser -d /mnt/beifen -g ftp -s /sbin/nologin beinan
[root@localhost ~]# passwd beinan
Changing password for user beinan.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
[root@localhost ~]#
2、如何實現虛擬路徑?
比如:
/home/a 映射爲 ftp://localhost/a
/home/b/c 則爲 ftp://localhost/c
其實這個不能說是vsFTPd的內容,其實我們早就接觸過了,可能我們沒有注意,我們可以通過如下的方法來實現。
[root@localhost ~]# mount --bind [原有的目錄] [新目錄]
比如我的ftp的默認目錄是/var/ftp,我想把/mnt/LinG/WinSoft文件夾,映射到/var/ftp目錄中,我就如下操作
我們要先在/var/ftp目錄中建一個目錄
[root@localhost ~]# mkdir /var/ftp/WinSoft
然後執行mount命令
[root@localhost ~]# mount --bind /mnt/LinG/WinSoft /var/ftp/WinSoft
這樣就OK了。
3、端口有衝突。查看下:
#netstat -utl |grep 21 是不是被佔用