linux搭建下載伺服器
FTP服務可以根據服務對象的不同分為兩類:一類是系統FTP伺服器,它只允許系統上的合法用戶使用;另一類是匿名FTP伺服器,Anonymous FTP Server,它使用任何人都可以登錄到FTP伺服器上去獲取文件。
5.1 選擇和安裝FTP伺服器軟體
如果你在安裝LINUX系統的時候,在選擇啟動進程的時候選擇了「ftpd」這一項的話,安裝完LINUX系統後,它已經將一個默認的FTP伺服器安裝到系統中去了。我們已經可以利用它來實現系統FTP伺服器的功能了。我們只需在此基礎上根據我們的需要進行一些個性化設定就可以了。
在絕大多數的LINUX發行版本中都選用的是Washington University FTP,它是一個著名的FTP伺服器軟體,一般簡稱為wu-ftp。它功能強大,能夠很好地運行於眾多的UNIX操作系統,例如:IBM AIX、FreeBSD、HP-UX、NeXTstep、Dynix、SunOS、Solaris等。所以Internet上的FTP伺服器,一大半以上採用了它。
wu-ftp擁有許多強大的功能,很適於吞吐量較大的FTP伺服器的管理要求:
1) 可以在用戶下載文件的同時對文件做自動的壓縮或解壓縮操作;
2) 可以對不同網路上的機器做不同的存取限制;
3) 可以記錄文件上載和下載時間;
4) 可以顯示傳輸時的相關信息,方便用戶及時了解目前的傳輸動態;
5) 可以設置最大連接數,提高了效率,有效地控制了負載。
5.2 wu-ftp的組成
安裝了wu-ftp後,你將在/bin目錄下看到以下五個可執行文件:
ftpd FTP伺服器程序
ftpshut 用於關閉FTP伺服器程序
ftpcount 顯示目前在線人數
ftpwho 查看目前FTP伺服器的連接情況
ckconfig 檢查FTP伺服器的設置是否正確
除了這些可執行文件以外,它還在/etc和/var目錄下生成了七個配置文件:
/etc/ftpusers
/etc/ftpaccess
/var/run/ftp.pids
/etc/ftpconversions
/var/log/xferlog
/etc/ftpgroups
/etc/ftphosts
系統安裝了wu-ftp後,會建立一個特殊的用戶ftp,並在/home目錄下建立了一個ftpd目錄,當用戶以匿名登錄上來時,將會自動定位於這個目錄下。在這個目錄下一般會建立幾個子目錄。
/home/ftpd/bin:存放一些供FTP用戶使用的可執行文件
/home/ftpd/etc:存放一些供FTP用戶使用的配置文件
/home/ftpd/pub:存放供下載的信息
/home/ftpd/incoming:存放供上載信息的空間
5.3 wu-ftp的配置
5.3.1 查看、修改/etc/inetd.conf文件
/etc/inetd.conf文件是LINUX系統的超級伺服器inetd的配置文件。它負責監聽多個TCP/IP埠。當它收到請求,就根據配置文件派生一個相應的伺服器。通過使用超級伺服器,其他服務就可以只在需要時才派生,從而大大節省了系統資源。
而wu-ftp就是利用超極伺服器inetd來監聽請求的。當超級伺服器inetd收到了客戶端的FTP請求時,就根據配置文件打開一個FTP服務進程。所以我們如果要使用wu-ftp,就必須確認在超級伺服器inetd的配置文件inetd.conf中有這樣一句:
ftp stream tcp nowait root /usr/sbin/tcpd wu.ftpd
以便當超級伺服器收到FTP請求的時候,能夠派生一個wu-ftp的FTP服務進程。(註:要確認是否有這樣一行時,可以使用文件內容查找命令來確認:
cat /etc/inetd.conf | grep ftp 如果沒有,則用手工加入或手工修改。
5.3.2 wu-ftpd的命令選項
wu-ftpd就是wu-ftp的服務進程。它可以不帶參數執行,也可以帶參數執行。下面簡單介紹一下wu-ftpd的執行參數。
-d 當FTP伺服器發生錯誤時,將錯誤入系統的syslog中;
-l 將每次FTP客戶端進行連接的入系統的syslog中;
-t 設置FTP客戶端連接幾分鍾無操作就切斷連接;
-a 使wu-ftp使用/etc/ftpaccess的設定;
-A 使wu-ftp不使用/etc/ftpaccess的設定;
-L 將FTP客戶端連線後所執行的程序記錄在系統的syslog中;
-I 將FTP客戶端上載文件的日誌記錄在/usr/adm.xferlog文件中;
-o 將FTP客戶端下載文件的日誌記錄在/usr/adm/xferlog文件中。
通過對以上參數的理解,我們建議,將上面系統安裝時的那條默認配置改為:
ftp stream tcp nowait root /usr/sbin/tcpd wu.ftpd ?a ?I
5.3.3 提供自動壓縮、解壓縮的功能
如果想讓FTP伺服器有自動壓縮、解壓縮的功能,必須先將一些壓縮、解壓縮的命令文件如tar、gzip、gunzip、compress、uncompress等命令文件拷貝到/home/ftpd/bin目錄下。
5.3.4 關於/etc/ftpaccess的設置
這個配置文件是FTP伺服器上最重要的配置文件,它直接關繫到你的FTP伺服器能否正常工作,還有許多許可權上的設置。下面是一個典型的配置實例。
loginfails 3
class local real *
class remote anonymous guest *
limit remote 100 Any /etc/ftpd/toomany.
msgmessage /etc/ftpd/welcome.msg login
compress yes local remote
tar yes local remote
private yes
passwd-check rfc822 warn
log commands real
log transfer anonymous guest inbound outbound
log transfer real inbound
shutdown /etc/ftpd/shut.msg
delete no anonymous,guest
overwrite no anonymous,guest
rename no anonymous
chmod no anonymous,guest
umask no anonymous
upload /home/ftpd * no
upload /home/ftpd /bin no
upload /home/ftpd /etc no
upload /home/ftpd /pub yes real 0644 dirs
upload /home/ftpd /incoming yes real guest anonymous 0644 dirs
alias in /incoming
email [email protected]
email [email protected]
deny *.com.tw /etc/ftpd/deny.msg
下面我們逐句進行講解,並給出每條設置的含義,以便大家觸類旁通,以便根據自己FTP伺服器的具體情況進行合理的設置。
1. 格式:loginfails [次數]
功能:設定當用戶登錄到FTP伺服器時,允許用戶輸錯密碼的次數。
實例:loginfails 3:密碼輸入錯誤三次就切斷連接。
2. 格式:class [類名] [real/guest/anonymous] [IP地址]
功能:這個指令的功能設定FTP伺服器上用戶的類別。並可對客戶端的IP地址進行限制,允許某部分的IP地址或全部的IP地址訪問。而在FTP伺服器上的用戶基本上可以分為以下三類:
real 在該FTP伺服器有合法帳號的用戶;
guest 有記錄的匿名用戶;
anonymous 許可權最低的匿名用戶
實例:class local real *:定義一個名為local的類,它包含了在任何地方登錄(*代表所有IP地址)的real用戶。
class remote anonymous guest *:定義一個名為remote的類,它包含了在任何地方登錄的anonymous用戶和guest用戶。
3. 格式:limit [類別] [人數] [時間] [文件名]
功能:這個指令的功能為設置指定的時間內指定的類別允許連接的指定人數上限。當達到人數上限的時候,顯示指定文件的內容。
實例:limit remote 100 Any /etc/ftpd/toomany.msg:在任何時間內,remote類的訪問用戶達到100人時,將不再允許無法產生新的連接,當第101位客戶要連接時,連接將失敗,並象用戶出示文件/etc/ftpd/toomany.msg的內容。
4. 格式:message [文件名稱] [指令]
功能:當用戶執行所指定的指令時,系統將指定的文件內容顯示出來。
實例:message /etc/ftpd/welcome.msg login:當用戶執行login命令時,也就是登錄到FTP伺服器上的時候,系統將顯示文件/etc/ftpd/welcome.msg的內容。
5. 格式:compress [yes/no] [類別]
功能:設置哪一個類別的用戶可以使用compress(壓縮)功能。
實例:compress yes local remote:允許local和remote兩個類別的用戶都能使用compress(壓縮)功能。
6. 格式:tar [yes/no] [類別]
功能:設置哪一個類別的用戶可以使用tar(歸檔)功能。
實例:tar yes local remote:允許local和remote兩類的用戶都能使用tar功能。
7. 格式:private [yes/no]
功能:設定是否支持群組對文件的取用。
實例:private yes:支持群組對文件的取用。
8. 格式:passwd-check [none/trivial/rfc822] [enforce/warn]
功能:設定對匿名用戶anonymous的密碼使用方式。
none 表示不做密碼驗證,任何密碼都可以登錄;
trival 表示只要輸入的密碼中含有字元「@」就可以登錄;
rfc822 表示密碼一定要符合RFC822中所規定的E-Mail格式才能登錄;
enfore 表示輸入的密碼不符合以上指定的格式就不讓登錄;
warn 表示密碼不符合規定時只出現警告信息,仍然能夠登錄。
實例:passwd-check rfc822 warn:希望能夠得到符合規定的E-Mail作為密碼,但如果不是,也允許登錄。
9. 格式:log command [real/guest/anonymous]
功能:設置哪些用戶登錄後的操作記錄在文件/usr/adm/xferlog中。
實例:log command real:當real用戶登錄後,將他的操作記錄下來。由於其它用戶許可權較低,所以操作不會引起太大的安全隱患,所以一般只需記下real用戶的操作就可以了。
10. 格式:log transfers [real/guest/anonymous] [inbound/outbound]
功能:設置哪些用戶的上載(inbound)和下載(outbound)操作做日誌。
實例:log transfer anonymous guest inbound outbound:對於匿名用戶要更加的關注它們的文件操作,所以無論上載、下載都進行記錄。
log transfer real inbound:對於合法用戶則只記錄他的上載記錄。
11. 格式:shutdown [文件名]
功能:FTP伺服器關閉的時間可以設置在後面所指定的文件中,當設置的時間一到,便無法登錄FTP伺服器了,要恢復的話只有將這個文件刪掉。而這個文件必須由指令/bin/ftpshut來生成。
實例:shutdown /etc/ftpd/shut.msg
12. 格式:delete [yes/no] [real/anonymous/guest]
功能:設置是否允許指定用戶使用delete命令刪除文件。默認是允許。
實例:delete no anonymous,guest:為了更好地管理FTP伺服器,一般情況下,我們不允許匿名用戶執行delete命令。
13. 格式:overwrite [yes/no] [real/anonymous/guest]
功能:設置是否允許指定用戶覆蓋同名文件。默認是允許。
實例:overwrite no anonymous,guest:為了更好地管理FTP伺服器,一般情況下,我們不允許匿名用戶覆蓋同名文件。
14. 格式:rename [yes/no] [real/anonymous/guest]
功能:設置是否允許指定用戶使用rename命令來為文件改名。默認是允許。
實例:delete no anonymous:為了更好地管理FTP伺服器,一般情況下,我們不允許匿名用戶執行rename命令改變文件名。而對有記錄的匿名用戶則適當的放寬,允許他們使用改名命令。
15. 格式:chmod [yes/no] [real/anonymous/guest]
功能:設置是否允許指定用戶使用chmod命令更改文件許可權。默認是允許。
實例:delete no anonymous,guest:為了更好地管理FTP伺服器,一般情況下,我們不允許匿名用戶執行chmod命令更改文件許可權。
16. 格式:umask [yes/no] [real/anonymous/guest]
功能:設置是否允許指定用戶使用umask命令。默認是允許。
實例:delete no anonymous:為了更好地管理FTP伺服器,一般情況下,我們不允許匿名用戶執行umask命令。
17. 格式:upload [根目錄] [上載目錄] [yes/no] [用戶] [許可權] [dirs/nodirs]
功能:對可以上載的目錄進行更加詳細的設置。
實例:upload /home/ftpd * no:表示在子目錄/home/ftpd下不允許上載;upload /home/ftpd /bin no:表示在子目錄/home/ftpd/bin下不允許上載;upload /home/ftpd /etc no:表示在子目錄/home/ftpd/etc下不允許上載;upload /home/ftpd /pub yes real 0644 dirs:允許用伺服器上的合法用戶在子目錄/home/ftpd/pub目錄下能上載許可權為0644(也就是-rw-r--r--)的文件,而且在這個目錄下可以新建子目錄。 upload /home/ftpd /incoming yes real guest anonymous 0644 dirs:允許所有的用戶在子目錄/home/ftpd/incoming下能上載許可權為0644的文件,而且在這個目錄下可以新建子目錄。
18. 格式:alias [目錄別名] [目錄名]
功能:給指定目錄設置一個別名,在切換目錄時就可以使用較短的目錄別名。
實例:alias inc: /incoming:為子目錄incoming設置一個別名inc:。
19. 格式:email [guest的E-Mail地址]
功能:只要將某些E-Mail地址設置在這個地方,那麼這些用戶登錄到FTP伺服器時,他的身份將為guest,一般許可權比real低一些,比anonymous高。
實例:email [email protected] email [email protected]:這里僅是一個示例,實際上可以包含多個符合規范的E-Mail地址。
20. 格式:deny [IP地址/域名] [說明文件]
功能:這個設置可以限制哪一些IP地址或域名的用戶無法登入FTP伺服器。
實例:deny *.com.tw /etc/ftpd/deny.msg:設置凡是域名是以「.com.tw」結束的域名,都禁止其訪問。而將/etc/ftpd/deny.msg的內容顯示給用戶看。
5.3.5 設置/etc/ftpuser,禁止某些用戶登錄
有時我們需要禁止一些用戶使用FTP服務。其實這個設置是十分簡單的,只需要將要禁止的用戶帳號寫入文件/etc/ftpuser中。由於從系統的安全考慮,一般我們是不希望許可權過大的用戶和一些與命令名相同的用戶進入FTP伺服器。所以在預設的配置中,一般以下用戶已經被列入了「黑名單」。
root uucp news bin adm nobody lp sync shutdown halt mail
5.3.6 設置/etc/ftphosts,禁止某些來自指定機器上的登錄
如果你需要拒絕來自某些主機的登錄,一種方法就是在/etc/ftpaccess中設置deny命令,另一種更加簡單的方法就是在/etc/ftphosts中寫入你要禁止的主機的IP地址或域名。
5.3.7 使新的配置生效
到此為止,我們已經能夠根據自己的需要對FTP伺服器配置進行必要的修改和調整。而讓我們重新配置後,就必須使其生效。一般的,對/etc/ftpaccess的配置是直接作用於設置後的下一次FTP服務進程。而其它的則要對inetd進程重新啟動。
5.4 wu-ftp相關的其他一些命令的使用
5.4.1 連接數統計命令ftpcount
我們可以使用ftpcount命令十分清楚地統計出當前連接到FTP伺服器上的用戶數目,並且同時列出上限。命令輸出如下所示:
Service class local 0 Users(20maximum)
Service class remote 5 Users(100maximum)
5.4.2 在線用戶查看命令ftpwho
我們可以使用ftpwho命令十分清楚地列出當前連接的用戶的詳細情況。
5.4.2 FTP關閉文件生成命令ftpshut
我們可以使用ftpshut命令生成一個在/etc/ftpaccess中設置的shut.msg文件,用於關機設定。ftpshut命令的格式為:
Ftpshut <-l min> <-d min> time <說明>
-l 這個參數設定在關閉FTP伺服器功能前多少分鍾時停止用戶的連接;
-d 這個參數設定在關閉FTP伺服器功能前多少分鍾時切斷用戶連接;
time 指定關閉FTP伺服器的時間。例如6:20分則寫為0620;
2. 如何搭建ftp伺服器 linux
Red Hat Linux下架設FTP伺服器
FTP,即File Transfer Protocol,文件傳輸協議。它是目前Internet上最流行的數據傳送方法之一。利用FTP協議,我們可以在FTP伺服器和FTP客戶端之間進行雙向數據傳輸,既可以把數據從FTP伺服器上下載到本地客戶端,又可以從客戶端上傳數據到遠程FTP伺服器。
1.安裝vsftpd伺服器
vsftpd是目前Linux最好的FTP伺服器工具之一,其中的vs就是「Very Secure」(很安全)的縮寫,可見它的最大優點就是安全,除此之外,它還具有體積小,可定製強,效率高的優點。
如果選擇完全安裝RedHat Linux 9.0,則系統會默認安裝vsftpd伺服器。我們可以在終端命令窗口輸入以下命令進行驗證:
[root@ahpeng root] rpm -qa | grep vsftpd
如果結果顯示為「vsftpd-1.1.3-8」,則說明系統已經安裝vsftpd伺服器。如果安裝RedHat Linux 9.0時沒有選擇vsftpd伺服器,則可以在圖形環境下單擊「主菜單→系統設置→添加刪除應用程序」菜單項,在出現的「軟體包管理」對話框里確保選中「FTP伺服器」選項,然後單擊「更新」按鈕,按照屏幕提示插入第3張安裝光碟即可開始安裝。
另外,你也可以直接插入第3張安裝光碟,定位到/RedHat/RPMS下的vsftpd-1.1.3-8.i386.rpm安裝包,然後在終端命令窗口運行以下命令即可開始安裝進程:
[root@ahpeng RPMS] rpm -ivh vsftpd-1.1.3-8.i386.rpm
2.啟動/重新啟動/停止vsftpd服務
從Red Hat Linux9.0開始,vsftpd默認只採用standalone方式啟動vsftpd服務,方法是在終端命令窗口運行以下命令:
[root@ahpeng root] /etc/rc.d/init.d/vsftpd start
重新啟動vsftpd服務:
[root@ahpeng root] /etc/rc.d/init.d/ vsftpd restart
關閉vsftpd服務:
[root@ahpeng root] /etc/rc.d/init.d/ vsftpd stop
確認vsftpd服務已經啟動後,我們可以在任意一台Windows主機的DOS命令窗口裡輸入「ftp FTPAddres」(用實際的FTP伺服器IP地址或者域名代替FTPAddres),注意用戶名、密碼都是ftp(ftp是匿名用戶的映射用戶賬號),如下所述:
Microsoft Windows XP [版本 5.1.2600]
(C) 版權所有 1985-2001 Microsoft Corp.
F:\Peter>;ftp FTPAddress
Connected to FTPAddress
220 (vsFTPd 1.1.3) //vsftpd的響應請求
User (FTPAddress:(none)): ftp //輸入用戶賬號ftp
331 Please specify thepassword.
Password: //輸入密碼ftp
230 Login successful. Havefun.
ftp>;
3.vsftpd的配置
在Red HatLinux 9.0里的vsftpd共有3個配置文件,它們分別是:
vsftpd.ftpusers:位於/etc目錄下。它指定了哪些用戶賬戶不能訪問FTP伺服器,例如root等。
vsftpd.user_list:位於/etc目錄下。該文件里的用戶賬戶在默認情況下也不能訪問FTP伺服器,僅當vsftpd .conf配置文件里啟用userlist_enable=NO選項時才允許訪問。
vsftpd.conf:位於/etc/vsftpd目錄下。它是一個文本文件,我們可以用Kate、Vi等文本編輯工具對它進行修改,以此來自定義用戶登錄控制、用戶許可權控制、超時設置、伺服器功能選項、伺服器性能選項、伺服器響應消息等FTP伺服器的配置。
(1)用戶登錄控制
anonymous_enable=YES,允許匿名用戶登錄。
no_anon_password=YES,匿名用戶登錄時不需要輸入密碼。
local_enable=YES,允許本地用戶登錄。
deny_email_enable=YES,可以創建一個文件保存某些匿名電子郵件的黑名單,以防止這些人使用Dos攻擊。
banned_email_file=/etc/vsftpd.banned_emails,當啟用deny_email_enable功能時,所需的電子郵件黑名單保存路徑(默認為/etc/vsftpd.banned_emails)。
(2)用戶許可權控制
write_enable=YES,開啟全局上傳許可權。
local_umask=022,本地用戶的上傳文件的umask設為022(系統默認是077,一般都可以改為022)。
anon_upload_enable=YES,允許匿名用戶具有上傳許可權,很明顯,必須啟用write_enable=YES,才可以使用此項。同時我們還必須建立一個允許ftp用戶可以讀寫的目錄(前面說過,ftp是匿名用戶的映射用戶賬號)。
anon_mkdir_write_enable=YES,允許匿名用戶有創建目錄的權利。
chown_uploads=YES,啟用此項,匿名上傳文件的屬主用戶將改為別的用戶賬戶,注意,這里建議不要指定root賬號為匿名上傳文件的屬主用戶!
chown_username=whoever,當啟用chown_uploads=YES時,所指定的屬主用戶賬號,此處的whoever自然要用合適的用戶賬號來代替。
chroot_list_enable=YES,可以用一個列表限定哪些本地用戶只能在自己目錄下活動,如果chroot_local_user=YES,那麼這個列表裡指定的用戶是不受限制的。
chroot_list_file=/etc/vsftpd.chroot_list,如果chroot_local_user=YES,則指定該列表(chroot_local_user)的保存路徑(默認是/etc/vsftpd.chroot_list)。
nopriv_user=ftpsecure,指定一個安全用戶賬號,讓FTP伺服器用作完全隔離和沒有特權的獨立用戶。這是vsftpd系統推薦選項。
async_abor_enable=YES,強烈建議不要啟用該選項,否則將可能導致出錯!
ascii_upload_enable=YES;ascii_download_enable=YES,默認情況下伺服器會假裝接受ASCⅡ模式請求但實際上是忽略這樣的請求,啟用上述的兩個選項可以讓伺服器真正實現ASCⅡ模式的傳輸。
注意:啟用ascii_download_enable選項會讓惡意遠程用戶們在ASCⅡ模式下用「SIZE/big/file」這樣的指令大量消耗FTP伺服器的I/O資源。
這些ASCⅡ模式的設置選項分成上傳和下載兩個,這樣我們就可以允許ASCⅡ模式的上傳(可以防止上傳腳本等惡意文件而導致崩潰),而不會遭受拒絕服務攻擊的危險。
(3)用戶連接和超時選項
idle_session_timeout=600,可以設定默認的空閑超時時間,用戶超過這段時間不動作將被伺服器踢出。
data_connection_timeout=120,設定默認的數據連接超時時間。
(4)伺服器日誌和歡迎信息
dirmessage_enable=YES,允許為目錄配置顯示信息,顯示每個目錄下面的message_file文件的內容。
ftpd_banner=Welcome to blah FTP service,可以自定義FTP用戶登錄到伺服器所看到的歡迎信息。
xferlog_enable=YES,啟用記錄上傳/下載活動日誌功能。
xferlog_file=/var/log/vsftpd.log,可以自定義日誌文件的保存路徑和文件名,默認是/var/log/vsftpd.log。
3. linux系統下怎麼搭建網站伺服器
具體方法如下:
1、使用putty或類似的SSH工具登錄伺服器(本地安裝跳過);
4. linux虛擬機怎麼搭建ftp伺服器
詳解Linux中搭建一個ftp伺服器。
ftp工作是會啟動兩個通道:
控制通道 , 數據通道
在ftp協議中,控制連接均是由客戶端發起的,而數據連接有兩種模式:port模式(主動模式)和pasv(被動模式)
PORT模式:
在客戶端需要接收數據時,ftp_client(大於1024的隨機埠)-PORT命令->ftp_server(21) 發送PORT命令,這個PORT命令包含了客戶端是用什麼埠來接收數據(大於1024的隨機埠),在傳送數據時,ftp_server將通過自己的TCP 20 埠和PORT中包含的埠建立新的連接來傳送數據。
PASV模式:
傳送數據時,ftp_client--PASV命令-->ftp_server(21) 發送PASV命令時,ftp_server自動打開一個1024--5000之間的隨機埠並且通知ftp_client在這個埠上傳送數據,然後客戶端向指定的埠發出請求連接,建立一條數據鏈路進行數據傳輸。
安裝ftp
#rpm -qa vsftpd 查看是否已經安裝
#yum install -y vsftpd
#rpm -ql vsftpd
/etc/logrotate.d/vsftpd. vsftpd的日誌文件
/etc/pam.d/vsftpd PAM認證文件
/etc/rc.d/init.d/vsftpd 啟動腳本
/etc/vsftpd vsftpd的配置文件存放的目錄
/etc/vsftpd/ftpusers 禁止使用vsftpd的用戶列表文件
/etc/vsftpd/user_list 禁止或允許使用vsftpd的用戶列表文件
/etc/vsftpd/vsftpd.conf 主配置文件
/etc/vsftpd/vsftpd_conf_migrate.sh vsftpd操作的一些變數和設置
/usr/sbin/vsftpd vsftpd的主程序
其他一些說明文檔和手冊文件略!
/var/ftp 匿名用戶主目錄
/var/ftp/pub 匿名用戶的下載目錄
#service vsftpd start
#chkconfig --level vsftpd
#chkconfig --level 2345 vsftpd on
2 匿名用戶的登錄名:ftp(anonymous) 密碼空 ,登錄的目錄為/var/ftp
用匿名用戶登錄的時候默認是只有下載的許可權,沒有上傳,創建和刪除的許可權:
#vim /etc/vsftpd/vsftpd.conf
anon_upload_enable=YES 上傳
anon_mkdir_write_enable=YES 創建
anon_other_write_enable=YES 刪除
#service vsftpd restart
為了安全應該禁止匿名用戶的登錄:
123456 #vim /etc/vsftpd/vsftpd.conf
anonymous_enable=NO
#anon_upload_enable=YES 上傳
#anon_mkdir_write_enable=YES 創建
#anon_other_write_enable=YES 刪除
#service vsftpd restart
3 創建一個直接登錄系統用戶來登錄ftp:
#useradd -s /sbin/nologin viong
#passwd viong
用戶具有 上傳 創建 下載 切換目錄
------------------------------------------------------------------
4 加強vsftp安全設置:
限制系統用戶鎖定在家目錄:
#vim /etc/vsftpd/vsftpd.conf
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list 限制更多的系統用戶,把需要限制的用戶加入/etc/vsftpd/chroot_list中即可
#touch /etc/vsftpd/chroot_list
#cut -d: -f 1 /etc/passwd >>/etc/vsftpd/chroot_list 將本地用戶都加入到chroot_list
限制重要系統用戶不能登錄ftp:
#cat /etc/vsftpd/ftpusers 默認已經添加了系統中一些比較重要的用戶
#echo "viong" >>/etc/vsftpd/ftpusers 此時viong不能登錄ftp
利用ftp用戶策略允許登錄ftp的系統用戶:
/etc/vsftpd/user_list 只有在這個文件中的用戶才能登錄系統:
#vim /etc/vsftpd/vsftpd.conf
#在userlist_enable=YES 的後面添加
userlist_deny=NO
userlist_file=/etc/vsftpd/user_list
設置登錄ftp目標ip地址:用iptables設置
---------------------------------------
搭建支持SSL加密傳輸的vsftpd:
#openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout /etc/vsftpd/vsftpd.pem -out /etc/vsftpd/vsftpd.pem 生成證書
#vim /etc/vsftpd/vsftpd.conf
ssl_enable=YES
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES
ssl_tlsv1=YES
ssl_sslv2=YES
ssl_sslv3=YES
rsa_cert_file=/etc/vsftpd/vsftpd.pem
下面是ssl參數一些定義,根據自己需求去修改:
ssl_enable=yes/no //是否啟用 SSL,默認為no
allow_anon_ssl=yes/no //是否允許匿名用戶使用SSL,默認為no
rsa_cert_file=/path/to/file //rsa證書的位置
dsa_cert_file=/path/to/file //dsa證書的位置
force_local_logins_ssl=yes/no //非匿名用戶登陸時是否加密,默認為yes
force_local_data_ssl=yes/no //非匿名用戶傳輸數據時是否加密,默認為yes
force_anon_logins_ssl=yes/no //匿名用戶登錄時是否加密,默認為no
force_anon_data_ssl=yes/no //匿名用戶數據傳輸時是否加密,默認為no
ssl_sslv2=yes/no //是否激活sslv2加密,默認no
ssl_sslv3=yes/no //是否激活sslv3加密,默認no
ssl_tlsv1=yes/no //是否激活tls v1加密,默認yes
ssl_ciphers=加密方法 //默認是DES-CBC3-SHA
#service vsftpd restart
用flashftp連接:
連接類型為:FTP使用公開SSL(驗證SSL)
地址:192.168.137.130:21
登錄類型:普通
用戶:viong
密碼:123