『壹』 匿名FTP是指什麼
匿名FTP即匿名文件傳輸協議。用於對遠程計算機的連接,這些計算機是作為匿名或客戶用戶進行連接的,以將公共文件傳輸到用戶的本地計算機。
匿名文件傳輸能夠使用戶與遠程主機建立連接並以匿名的身份從遠程主機上拷貝文件,而不必是該遠程主機的注冊用戶。用戶使用特殊的用戶名anonymous,許多系統用戶要求用戶將E-mail地址作為口令,便可登陸「匿名」FTP伺服器,訪問遠程主機上公開的文件。
匿名FTP服務的實質是:提供服務的機構在它的FTP伺服器上建立一個公開賬戶,並賦予該賬戶訪問公共目錄的許可權。
用戶想要登錄到這些FTP伺服器時,無需事先申請用戶賬戶,可以用「anonymous」作為用戶名,用自己的E-mail地址或姓名作為用戶密碼,便可登錄,獲取FTP服務。
(1)ftp命令行匿名擴展閱讀:
1、FTP工作原理:
與許多互聯網應用一樣,FTP服務也是一個客戶機用反務器系統(C/S)。用戶通過一個支持FTP協議的客戶端程序,連接到遠程主機上的FTP伺服器程序。用戶通過客戶端程序向伺服器程序發出命令,伺服器程序執行用戶所發出的命令,並將執行的結果返回到客戶端。
以文件下載為例,當啟動FTP客戶端程序從遠程計算機下載文件時,事實上啟動了兩個程序:一個本機上的FTP客戶端程序,它向FTP伺服器提出拷下載文件的請求;
另一個是啟動了遠程計算機的上的FTP伺服器程序,它響應你的請求並將指定的文件傳送到你的計算機中。目前,FTP的應用軟體有很多,如伺服器端的有Server-U、FileZilla等,客戶端的有CuteFtp 、 FlashFTP等,極大的方便了用戶的使用。
2、工作機制:
匿名FCP是這樣一種機制,用戶可通過它連接到遠程FTP伺服器上,進行文件的上傳或下載,而不需要成為其注冊用戶。
通過FTP程序連接匿名FTP伺服器的方式同連接普通FTP伺服器的方式類似,只是在要求提供用戶帳號時必須輸人anonymous或ftP,而該用戶帳號的口令可以是任意的字元。
當遠程伺服器提供匿名FTP服務時,會預先指定某些目錄及文件向公眾開放,允許匿名用戶的存取,而系統中的其餘目錄則處於隱匿狀態。作為一種安全措施,大多數匿名FTP伺服器都只允許用戶下載文件,而不允許用戶上傳文件。
『貳』 問一下,ftp的匿名命令失神么
FTP基礎知識
您是否正准備搭建自己的FTP網站?您知道FTP協議的工作機制嗎?您知道什麼是PORT方式?什麼是PASV方式嗎?如果您不知道,或沒有完全掌握,請您坐下來,花一點點時間,細心讀完這篇文章。所謂磨刀不誤砍柴功,掌握這些基礎知識,會令您事半功倍。否則,很可能折騰幾天,最後一事無成。
FTP基礎知識
FTP是File Transfer Protocol(文件傳輸協議)的縮寫,用來在兩台計算機之間互相傳送文件。相比於HTTP,FTP協議要復雜得多。復雜的原因,是因為FTP協議要用到兩個TCP連接,一個是命令鏈路,用來在FTP客戶端與伺服器之間傳遞命令;另一個是數據鏈路,用來上傳或下載數據。
FTP協議有兩種工作方式:PORT方式和PASV方式,中文意思為主動式和被動式。
PORT(主動)方式的連接過程是:客戶端向伺服器的FTP埠(默認是21)發送連接請求,伺服器接受連接,建立一條命令鏈路。
當需要傳送數據時,客戶端在命令鏈路上用 PORT命令告訴伺服器:「我打開了****埠,你過來連接我」。於是伺服器從20埠向客戶端的****埠發送連接請求,建立一條數據鏈路來傳送數據。
PASV(被動)方式的連接過程是:客戶端向伺服器的FTP埠(默認是21)發送連接請求,伺服器接受連接,建立一條命令鏈路。
當需要傳送數據時,伺服器在命令鏈路上用 PASV命令告訴客戶端:「我打開了****埠,你過來連接我」。於是客戶端向伺服器的****埠發送連接請求,建立一條數據鏈路來傳送數據。
從上面可以看出,兩種方式的命令鏈路連接方法是一樣的,而數據鏈路的建立方法就完全不同。而FTP的復雜性就在於此。
FTP伺服器端的注意事項
一、FTP伺服器是公網IP,用公網動態域名;或是內網IP,用內網專業版TrueHost
1、伺服器如果安裝了防火牆,請記住要在防火牆上打開FTP埠(默認是21)。
2、所有FTP伺服器軟體都支持PORT方式。至於PASV方式,大部分FTP伺服器軟體都支持。支持PASV方式的FTP伺服器軟體,也可以設置為只工作在PORT方式上。
3、為了PASV方式能正常工作,需要在FTP伺服器軟體上為PASV方式指定可用的埠范圍(設置方法)。此外,還要在伺服器的防火牆上打開這些埠。當客戶端以PASV方式連接伺服器的時候,伺服器就會在這個埠范圍里挑選一個埠出來,給客戶端連接。
二、FTP伺服器是內網IP,用內網動態域名標准版cm*natpro*y
這種情況下,FTP伺服器不需要做特殊設置,只要支持PASV方式就可以了。大部分FTP伺服器軟體都支持PASV方式。
FTP客戶端的注意事項
請注意:選擇用PASV方式還是PORT方式登錄FTP伺服器,選擇權在FTP客戶端,而不是在FTP伺服器。
一、客戶端只有內網IP,沒有公網IP
從上面的FTP基礎知識可知,如果用PORT方式,因為客戶端沒有公網IP,FTP將無法連接客戶端建立數據鏈路。因此,在這種情況下,客戶端必須要用PASV方式,才能連接FTP伺服器。大部分FTP站長發現自己的伺服器有人能登錄上,有人登錄不上,典型的錯誤原因就是因為客戶端沒有公網IP,但用了IE作為FTP客戶端來登錄(IE默認使用PORT方式)。
作為FTP站長,有必要掌握FTP的基礎知識,然後指導您的朋友如何正確登錄您的FTP。
二、客戶端有公網IP,但安裝了防火牆
如果用PASV方式登錄FTP伺服器,因為建立數據鏈路的時候,是由客戶端向伺服器發送連接請求,沒有問題。反過來,如果用PORT方式登錄FTP伺服器,因為建立數據鏈路的時候,是由伺服器向客戶端發送連接請求,此時連接請求會被防火牆攔截。如果要用PORT方式登錄FTP伺服器,請在防火牆上打開 1024以上的高端埠。
三、連接用內網標准版cm*natpro*y搭建的FTP服務,必須要用PASV方式。連接任何公網FTP伺服器、或用內網專業版TrueHost搭建的FTP伺服器,PORT方式和PASV方式都可以使用。
當然,使用PORT方式的時候,還要滿足上面的兩個條件。
四、常見的FTP客戶端軟體PORT方式與PASV方式的切換方法。
大部分FTP客戶端默認使用PASV方式。IE默認使用PORT方式。
在大部分FTP客戶端的設置里,常見到的字眼都是「PASV」或「被動模式」,極少見到「PORT」或「主動模式」等字眼。因為FTP的登錄方式只有兩種:PORT和PASV,取消PASV方式,就意味著使用PORT方式。
IE:
工具 -> Internet選項 -> 高級 -> 「使用被動FTP」(需要IE6.0以上才支持)。
CuteFTP:
Edit -> Setting -> Connection -> Firewall -> 「PASV Mode」
或
File -> Site Manager,在左邊選中站點 -> Edit -> 「Use PASV mode」
FlashGet:
工具 -> 選項 -> 代理伺服器 -> 直接連接 -> 編輯 -> 「PASV模式」
FlashFTP:
選項 -> 參數選擇 -> 代理/防火牆/標識 -> 「使用被動模式」
或
站點管理 -> 對應站點 -> 選項 -> 「使用被動模式」
或
快速連接 -> 切換 -> 「使用被動模式」
LeechFTP:
Option -> Firewall -> Do not Use
五、請盡量不要用IE作為FTP客戶端
IE只是個很粗糙的FTP客戶端工具。首先,IE6.0以下的版本不支持PASV方式;其次,IE在登錄FTP的時候,看不到登錄信息。在登錄出錯的時候,無法找到錯誤的原因。在測試自己的FTP網站的時候,強烈建議不要使用IE。
FTP建站的詳細配置過程
請參考這個網頁的說明來配置:
使用Serv-U建立FTP網站
高級話題
一、為什麼沒有公網IP,也能使用PORT方式登錄FTP?
NAT 網關的工作方式是在TCP/IP數據包的包頭里找區域網的源地址和源埠,替換成網關的地址和埠。對數據包里的內容,是不會改變的。而使用PORT方式登錄FTP的時候,IP地址與埠信息是在數據包裡面的,而不是在包頭。因此,沒有公網IP,使用PORT方式是無法從internet上的ftp伺服器下載數據的。
但是,極少數的NAT網關也支持PORT方式。這些NAT網關連數據包裡面的內容都掃描,掃描到 PORT指令後會替換PORT方式的IP和埠。在這種NAT網關下面,用PORT方式就沒問題了。不過,這些網關也只掃描21埠的數據包,如果FTP 伺服器不是用默認的21埠,也無法使用PORT方式。
二、內網可以用PORT訪問其他FTP,為什麼不能用PORT訪問自己的TrueHost FTP?
下面要討論的問題,只是為了說明一些原理,是不影響實際使用的。如果您沒有興趣深究這些原理,不必花時間看。
內網用戶通過支持PORT方式的NAT網關,訪問自己本機利用TrueHost建立的FTP伺服器,FTP命令鏈路的建立過程如下:
FTP客戶端
10.10.0.1
埠*** <==> ISP NAT網關
61.144.1.2
埠**** <==> TH伺服器
*.*.*.*
埠21 <==> TH客戶端 <==> 用戶FTP伺服器
10.10.0.1
埠21
FTP客戶端通過ISP的NAT網關、科邁TrueHost伺服器、TrueHost客戶端,連接用戶本機的FTP伺服器的21埠。
當需要下載數據的時候,FTP客戶端通過這條命令鏈路,向FTP伺服器發送PORT命令。假設命令為:
PORT 10,10,0,1,30,4 (即IP=10.10.0.1 埠=30*256+4=7684)
當命令通過ISP的NAT網關的時候,NAT網關判斷目的埠是21,並且是PORT命令,於是,修改命令里的IP和埠,替換為自己的IP和埠,比如:
PORT 61,144,1,2,50,6 (即IP=61.144.1.2 埠=50*256+6=12806)
用戶的FTP伺服器最終收到的是上面這個PORT命令。於是,FTP伺服器向這個IP和埠發送連接請求,建立數據鏈路。
用戶FTP伺服器
10.10.0.1
埠20 <==> ISP NAT網關
61.144.1.2
埠12806 <==> FTP客戶端
10.10.0.1
埠7684
但是,因為NAT網關的公網IP只能接收外來的連接請求。就是說,61.144.1.2:12806隻能接收其他公網IP的連接請求,對於從NAT內部(10.10.0.1:20)發起的連接請求,是無法建立連接的。為什麼?原因很簡單,因為內網IP要訪問外網,必須要通過NAT建立映射。於是FTP數據鏈路無法建立。於是,用戶無法在自己的機器上通過21埠訪問自己的TrueHost FTP。
我們再來看看,如果FTP埠不是21,比如是22,會發生什麼情況呢?在FTP客戶端發送PORT命令的時候,NAT網關檢測到目標埠是22,因為支持PORT的 NAT網關只監視目的埠是21的數據包,發現目的埠是22的數據包,不做任何處理,完全放行。於是FTP伺服器收到的PORT命令依然是PORT 10,10,0,1,30,4。於是FTP伺服器向這個IP和埠發送連接請求。
用戶FTP伺服器
10.10.0.1
埠20 <==> FTP客戶端
10.10.0.1
埠7684
這種情況下命令鏈路就可以建立起來了。而且是等於本機連接本機,速度飛快。
綜上所述,內網用戶無法用PORT方式通過21埠訪問自己的TrueHost FTP伺服器。如果FTP埠不是21,則可以訪問,而且實際上是本機連接本機。
上面的文字,僅僅是為了說明一些原理,不影響實際使用。如果本機訪問本機,還要通過FTP的話,就有畫蛇添足之嫌了。
『叄』 ftp伺服器不允許匿名登錄
一、匿名用戶 ftp anonymous
/var/ftp 默認主目錄
在/etc/vsftpd/vsftpd.conf中:
anonymous_enable=YES
anon_upload_enable=YES
anon_other_write_enable=YES #可刪除
chmod -R 777 /var/ftp/pub/
修改/var/ftp/pub的SELinux許可權
執行以下命令,修改/var/ftp/pub這目錄的類型:
chcon -R -t ftpd_anon_rw_t /var/ftp/pub/
anon_root=/var/www/html/ftp #改匿名用戶的宿主目錄
二、本地用戶
默認支持,使用各自的宿主目錄。不安全
local_root=/opt #新增這一項,改成其他路徑
三、虛擬用戶 PAM文件方式 推薦
1、建立虛擬用戶口令庫文件
# cat /etc/vsftpd/logins
mike #用戶
pwabcd #用戶 mike密碼
john #用戶john
pw1234 #john 密碼
2、生成vsftpd的認證文件
db_load -T -t hash -f logins.txt /etc/vsftpd/vsftpd_login.db
chmod 600 /etc/vsftpd/vsftpd_login.db
3、新創建虛擬用戶所需的PAM配置文件
配置文件 /etc/pam.d/vsftpd(注釋所有行)添加下列:(x64系統)
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
4、新創建虛擬用戶的系統用戶所要訪問的目錄並設置相應許可權
# useradd -s /bin/false -d /home/ftpsite ftpvirtual #創建映射本地用戶
# chmod 700 /home/ftpsite
#設置vsftpd.conf配置文件,支持虛擬用戶
guest_enable=YES
guest_username=ftpvirtual
pam_service_name=vsftpd
user_config_dir=/etc/vsftpd/vsftpd_user_conf #添加用戶配置文件目錄設置
『肆』 通過ftp命令以匿名方式登錄該伺服器時,需要輸入的用戶名是什麼
guest,來賓用戶
『伍』 vsftpd 怎麼設置允許匿名訪問
vsftpd服務程序中匿名開放是一種最不安全的驗證模式,任何人都可以無需密碼驗證就登陸到FTP服務端主機,這種模式一般只用來保存不重要的公開文件,尤其是在生產環境中更要注意不放敏感文件,當然也非常推薦用咱們第八章中學習的防火牆管理工具(例如Tcp_wrappers)將vsftpd服務程序的允許訪問主機范圍設置為企業內網,這樣還算能夠保證基本的安全性。
vsftpd服務程序默認已經開啟了匿名訪問模式,咱們需要做的就是進一步允許匿名用戶的上傳、下載文件的許可權,以及讓匿名用戶能夠創建、刪除、更名文件的許可權,這些許可權對於匿名用戶來講非常的危險,咱們只是為了練習Linux系統中vsftpd服務程序的配置能力,十分不推薦在生產環境中使用,匿名用戶的許可權參數及介紹:
參數 作用
anonymous_enable=YES 允許匿名訪問模式。
anon_umask=022 匿名用戶上傳文件的umask值。
anon_upload_enable=YES 允許匿名用戶上傳文件
anon_mkdir_write_enable=YES 允許匿名用戶創建目錄
anon_other_write_enable=YES 允許匿名用戶修改目錄名或刪除目錄
[root@linuxprobe~]#vim/etc/vsftpd/vsftpd.conf
anonymous_enable=YES
anon_umask=022
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=NO
listen_ipv6=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
確認參數填寫正確後保存並退出vsftpd服務程序的主配置文件,還需要重啟vsftpd服務程序來讓新的配置服務參數生效,並且同學們在生產環境中或者紅帽RHCSA、RHCE、RHCA認證考試中也請記得一定要把配置過的服務程序加入到開機啟動項中,以保證下次伺服器重啟後依然能夠為用戶正常提供ftp文件傳輸服務:
[root@linuxprobe~]#systemctlrestartvsftpd
[root@linuxprobe~]#systemctlenablevsftpd
ln-s'/usr/lib/systemd/system/vsftpd.service''/etc/systemd/system/multi-user.target.wants/vsftpd.service
這樣咱們就可以在客戶端上面使用ftp命令連接到遠程的FTP伺服器上面了,FTP服務的匿名開放模式的帳號統一為anonymous,密碼為空。匿名模式登陸到FTP伺服器後默認所在位置為/var/ftp目錄,咱們可以切換至裡面的pub目錄中,然後嘗試創建一個新的目錄文件來檢驗是否已經有了寫入許可權:
[root@linuxprobe~]#ftp192.168.10.10
Connectedto192.168.10.10(192.168.10.10).
220(vsFTPd3.0.2)
Name(192.168.10.10:root):anonymous
331Pleasespecifythepassword.
Password:此處敲擊回車即可
230Loginsuccessful.
RemotesystemtypeisUNIX.
.
ftp>cdpub
.
ftp>mkdirfiles
550Permissiondenied.
剛剛咱們已經把iptables防火牆策略清空,而且也在vsftpd服務程序的主配置文件中添加了允許匿名用戶創建目錄和寫入文件的許可權,那麼為什麼還會被拒絕呢?建議同學們先不要往下面看,思考後用自己的方法嘗試解決下這個問題,長期這樣您的Linux系統排錯能力就一定會練出來的。
回想起前面操作的細節,咱們FTP服務的匿名開放模式是默認登陸到了/var/ftp目錄中,查看下這個目錄的許可權後才發現原來只有root管理員用戶才有寫入許可權的,怪不得會提示寫入出錯呢,咱們只需要把目錄的所有者身份改成系統帳戶ftp即可,這樣就應該可以了吧~
[root@linuxprobe~]#ls-ld/var/ftp/pub
drwxr-xr-x.3rootroot16Jul1314:38/var/ftp/pub
[root@linuxprobe~]#chown-Rfftp/var/ftp/pub
[root@linuxprobe~]#ls-ld/var/ftp/pub
drwxr-xr-x.3ftproot16Jul1314:38/var/ftp/pub
[root@linuxprobe~]#ftp192.168.10.10
Connectedto192.168.10.10(192.168.10.10).
220(vsFTPd3.0.2)
Name(192.168.10.10:root):anonymous
331Pleasespecifythepassword.
Password:此處敲擊回車即可
230Loginsuccessful.
RemotesystemtypeisUNIX.
.
ftp>cdpub
.
ftp>mkdirfiles
.
又報錯了!!此時再次使用ftp命令登入到FTP伺服器主機後依然會提示寫入操作失敗,但細心的同學一定發現報錯信息已經產生了變化,在剛剛沒有寫入許可權的時候提示說許可權拒絕(Permission denied.)所以咱們懷疑是許可權的問題,但現在是提示創建目錄的操作失敗(Create directory operation failed.)那麼咱們同學應該也能馬上意識到是SELinux服務在限制這個操作了吧,查看下所有與ftp相關的SELinux域策略有那些吧:
[root@linuxprobe~]#getsebool-a|grepftp
ftp_home_dir-->off
ftpd_anon_write-->off
ftpd_connect_all_unreserved-->off
ftpd_connect_db-->off
ftpd_full_access-->off
ftpd_use_cifs-->off
ftpd_use_fusefs-->off
ftpd_use_nfs-->off
ftpd_use_passive_mode-->off
httpd_can_connect_ftp-->off
httpd_enable_ftp_server-->off
sftpd_anon_write-->off
sftpd_enable_homedirs-->off
sftpd_full_access-->off
sftpd_write_ssh_home-->off
tftp_anon_write-->off
tftp_home_dir-->off
根據策略的名稱和經驗可以猜測出是哪一條規則策略,咱們在設置的時候請記得使用-P參數來讓配置過的策略永久生效,保證在伺服器重啟後依然能夠順利寫入文件,咱們可以分別嘗試下創建目錄文件、對文件進行改名以及刪除目錄文件等等操作。最後,恭喜同學們完成了這個實驗課程,建議您在進行一次實驗課程前還原虛擬機到最初始的狀態,以免多個配置參數之間產生沖突。
[root@linuxprobe~]#setsebool-Pftpd_full_access=on
[root@linuxprobe~]#ftp192.168.10.10
Connectedto192.168.10.10(192.168.10.10).
220(vsFTPd3.0.2)
Name(192.168.10.10:root):anonymous
331Pleasespecifythepassword.
Password:此處敲擊回車即可
230Loginsuccessful.
RemotesystemtypeisUNIX.
.
ftp>cdpub
.
ftp>mkdirfiles
257"/pub/files"created
ftp>renamefilesdatabase
350ReadyforRNTO.
250Renamesuccessful.
ftp>rmdirdatabase
.
ftp>exit
221Goodbye.
看了還不會的話 就回去看下原文吧《Linux就該這么學》第11章節~
『陸』 FTP空間的匿名FTP
FTP的全稱是File Transfer Protocol(文件傳輸協議),顧名思義,就是專門用來傳輸文件的協議。FTP的主要作用,就是讓用戶連接上一個遠程計算機(這些計算機上運行著 FTP伺服器程序)察看遠程計算機有哪些文件,然後把文件從遠程計算機上拷到本地計算機,或把本地計算機的文件送到遠程計算機去。
其實 早期在Internet上傳輸文件,並不是一件容易的事,我們知道 Internet是一個非常復雜的計算機環境,有PC、工作站、MAC、伺服器、大型機等等,而這些計算機可能運行不同的操作系統,有Unix、Dos、 Windows、MacOS等等,各種操作系統之間的文件交流,需要建立一個統一的文件傳輸協議,這就是所謂的FTP。雖然基於不同的操作系統有不同的 FTP應用程序,而所有這些應用程序都遵守同一種協議,這樣用戶就可以把自己的文件傳送給別人,或者從其它的用戶環境中獲得文件。
與大 多數Internet服務一樣,FTP也是一個客戶機/伺服器系統(C/S)。用戶通過一個支持FTP協議的客戶機程序,連接到遠程主機上的FTP伺服器 程序。用戶通過客戶機程序向伺服器程序發出命令,伺服器程序執行用戶所發出的命令,並將執行的結果返回到客戶機。比如說,用戶發出一條命令,要求伺服器向用戶傳送某一個文件,伺服器會響應這條命令,將指定文件送至用戶的機器上。客戶機程序代表用戶接收到這個文件,將其存放在用戶指定目錄中。FTP客戶程序 有字元界面和圖形界面兩種。字元界面的FTP的命令復雜、繁多。圖形界面的FTP客戶程序,操作上要簡潔方便的多。
在FTP的使用當 中,用戶經常遇到兩個概念:下載(Download)和上載(Upload)。下載文件就是從遠程主機拷貝文件至自己的計算機上;上載文 件就是將文件從自己的計算機中拷貝至遠程主機上。用Internet語言來說,用戶可通過客戶機程序向(從)遠程主機上載、下載文件。
在ftp的使用過程中,必須首先登錄,在遠程主機上獲得相應的許可權以後,方可上傳或下載文件。也就是說,要想同哪一台計算機傳送文件,就必須具有哪一台計算機的適當授權。換言之,除非有用戶ID和口令,否則便無法傳送文件。這種情況違背了Internet的開放性,Internet上的FTP主機何止千 萬,不可能要求每個用戶在每一台主機上都擁有帳號。因此就衍生出了匿名FTP。
『柒』 win7的不能直接登錄FTP,但是在命令提示符下可以匿名登錄。
FTP根目錄如果選擇C盤(系統盤)下的目錄,每次登陸都得通過用戶名密碼.
放在其他盤就不會出現這種情況而且可以選擇匿名和基本方式.你可以試試..