A. [翻譯]在 Ubuntu 中使用 SSL/TLS 加密 FTP 連接
在本教程中,我們將介紹如何在 Ubuntu 16.04 / 16.10 中使用 SSL / TLS 加密 FTP(本文中,我們將使用 VsFTP,一個號稱非常安全的 FTP 軟體)
在完成本指南中的所有步驟之後,我們將進一步去了解在FTP伺服器中啟用加密服務的基本原理,以確保能安全的傳輸數據。
必須在 Ubuntu中已經安裝並配置完FTP伺服器
請確保本文中的所有命令都將以root或sudo特權帳戶運行。
1.我們將首先在 /etc/ssl/ 下創建一個子目錄(如果這個目錄不存在),以存儲SSL / TLS證書和密鑰文件:
2.現在,我們通過運行下面的命令在單個文件中生成證書和密鑰。
上述命令將提示您回答以下問題,請輸入自己特定的值。
3.在進行任何 VsFTP 配置之前,對於啟用了UFW防火牆的用戶,必須打開埠990和40000-50000,以允許在VSFTPD配置文件中分別設置TLS連接和被動埠的埠范圍:
4.現在,打開VSFTPD配置文件並在其中定義SSL詳細信息:
然後,添加或找到選項 ssl_enable 並將其值設置為 YES 以激活 SSL 的使用,因為 TLS 比 SSL 更安全,因此通過啟用 ssl_tlsv1 選項,我們將限制 VSFTPD 使用 TLS:
5.接下來,使用 # 字元注釋掉下面的行,如下所示:
6.現在,我們還必須防止匿名用戶使用SSL,然後強制所有非匿名登錄使用安全的SSL連接進行數據傳輸,並在登錄期間發送密碼:
7.此外,我們可以使用以下選項在FTP伺服器中添加更多的安全功能。使用option_ssl_reuse = YES選項,所有SSL數據連接都需要展示SSL會話重用;證明他們知道與控制頻道相同的主機密碼。所以我們應該禁用它。
另外,我們可以通過設置 ssl_ciphers 選項來設置SSL密碼等級。這將有助於阻擋試圖強制使用特定密碼的攻擊。
8.然後,我們來定義被動埠的埠范圍(最小和最大埠)。
9.我們可以使用debug_ssl選項啟用SSL調試,將 openSSL 連接記錄到VSFTPD日誌文件中:
最後保存並關閉文件。然後重啟 VSFTPD 服務:
10.執行上述所有配置後,通過從命令行使用FTP來測試VSFTPD是否正在使用SSL / TLS連接。
在下面的輸出,有一個錯誤消息,VSFTPD 只允許用戶(非匿名)從支持加密服務的安全客戶端登錄。
因為命令行不支持加密服務,從而導致了上述錯誤。因此,為了安全地連接到啟用加密服務的FTP伺服器,我們需要一個默認支持 SSL / TLS 連接的FTP客戶端,例如FileZilla。
FileZilla是功能強大,廣泛使用的跨平台FTP客戶端,支持通過SSL / TLS等方式連接 FTP。要在Linux客戶端計算機上安裝FileZilla,請使用以下命令。
12.安裝完成後,打開它並轉到File => Sites Manager或按 Ctrl + S 以打開下面的站點管理器界面。
13.現在,添加主機/站點名稱和IP地址,定義要使用的協議,加密和登錄類型,如下面的屏幕截圖(使用適用於您的實際情況的值):
14.然後點擊從上面的「Connect」,輸入密碼,然後驗證用於SSL / TLS連接的證書,然後單擊「確定」再次連接到FTP伺服器:
15.現在,您應該已經通過TLS連接成功登錄到了FTP伺服器,可以從下面的界面查看連接狀態以獲取更多信息。
16.最後,我們將文件從本地機器傳輸到FTP伺服器的文件夾中,看看FileZilla界面的下端,查看有關文件傳輸的報告。
全部教程如上!永遠記住,安裝FTP伺服器而不啟用加密服務具有一定的安全隱患。正如我們在本教程中所述,您可以在 Ubuntu 16.04 / 16.10中配置FTP伺服器以使用SSL / TLS來實現安全連接。
B. ubuntu怎麼搭建ftp伺服器並配置埠號
架設ftp伺服器應該安裝 ftpd並啟動。 如果只是臨時使用的話推薦使用更安全的sftp,不需要任何安裝。 直接訪問sftp://:22 輸入系統帳號密碼即可
C. ubuntu linux 下如何啟動ftp服務
1、首先,連接相應linux主機,進入到linux命令行狀態下,等待輸入shell指令。
D. VM虛擬機中的ubuntu搭建ftp伺服器,用的是sudo apt-get install vsftpd,該怎樣配置vsftpd.conf文件
看你的截圖,我怎麼感覺有點像是網站的列出目錄的形式?
你確認你的conf配置正確了嗎?
vsftpd.conf配置參數詳細整理
#接受匿名用戶
anonymous_enable=YES
#匿名用戶login時不詢問口令
no_anon_password=YES
#匿名用戶主目錄
anon_root=(none)
#接受本地用戶
local_enable=YES
#本地用戶主目錄
local_root=(none)
#如果匿名用戶需要密碼,那麼使用banned_email_file裡面的電子郵件地址的用戶不能登錄
deny_email_enable=YES
#僅在沒有pam驗證版本時有用,是否檢查用戶有一個有效的shell來登錄
check_shell=YES
#若啟用此選項,userlist_deny選項才被啟動
userlist_enable=YES
#若為YES,則userlist_file中的用戶將不能登錄,為NO則只有userlist_file的用戶可以登錄
userlist_deny=NO
#當此選項激活時,與chroot_local_user選項配合,chroot()容器的位置可以在每個用戶的基礎上指定。每個用戶的容器來源於/etc/passwd中每個用戶的自家目錄欄位。默認值為NO。
passwd_chroot_enable=NO
#定義匿名登入的使用者名稱。默認值為ftp
ftp_username=FTP
#################用戶許可權控制###############
#可以上傳(全局控制)
write_enable=YES
#本地用戶上傳文件的umask
local_umask=022
#上傳文件的許可權配合umask使用
#file_open_mode=0666
#匿名用戶可以上傳
anon_upload_enable=NO
#匿名用戶可以建目錄
anon_mkdir_write_enable=NO
匿名用戶其它的寫權利(更改許可權?)
anon_other_write_enable=NO
如果設為YES,匿名登入者會被允許下載可閱讀的檔案。默認值為YES。
anon_world_readable_only=YES
#如果開啟,那麼所有非匿名登陸的用戶名都會被切換成guest_username指定的用戶名
#guest_enable=NO
所有匿名上傳的文件的所屬用戶將會被更改成chown_username
chown_uploads=YES
匿名上傳文件所屬用戶名
chown_username=lightwiter
#將本地用戶鎖定在自家目錄中。當此項被激活時,chroot_list_enable和chroot_local_users參數的作用將發生變化,chroot_list_file所指定文件中的用戶將不被鎖定在自家目錄。本參數被激活後,可能帶來安全上的沖突,特別是當用戶擁有上傳、 shell訪問等許可權時。因此,只有在確實了解的情況下,才可以打開此參數。默認值為NO。
chroot_local_users=YES
#鎖定某些用戶在自家目錄中。即當這些用戶登錄後,不可以轉到系統的其他目錄,只能在自家目錄(及其子目錄)下。具體的用戶在chroot_list_file參數所指定的文件中列出。默認值為NO。
chroot_list_enable=YES
#允許使用"async ABOR"命令,一般不用,容易出問題
async_abor_enable=YES
管控是否可用ASCII 模式上傳。默認值為NO。
ascii_upload_enable=YES
#管控是否可用ASCII 模式下載。默認值為NO。
ascii_download_enable=YES
#這個選項必須指定一個空的數據夾且任何登入者都不能有寫入的許可權,當vsftpd 不需要file system 的許可權時,就會將使用者限制在此數據夾中。默認值為/usr/share/empty
secure_chroot_dir=/usr/share/empty
###################超時設置##################
#空閑連接超時
idle_session_timeout=600
#數據傳輸超時
data_connection_timeout=120
#PAVS請求超時
ACCEPT_TIMEOUT=60
#PROT模式連接超時
connect_timeout=60
################伺服器功能選項###############
#開啟日記功能
xferlog_enable=YES
#使用標准格式
xferlog_std_format=YES
#當xferlog_std_format關閉且本選項開啟時,記錄所有ftp請求和回復,當調試比較有用.
#log_ftp_protocol=NO
#允許使用pasv模式
pasv_enable=YES
#關閉安全檢查,小心呀.
#pasv_promiscuous=NO
#允許使用port模式
#port_enable=YES
#關閉安全檢查
#prot_promiscuous
#開啟tcp_wrappers支持
tcp_wrappers=YES
#定義PAM 所使用的名稱,預設為vsftpd。
pam_service_name=vsftpd
#當伺服器運行於最底層時使用的用戶名
nopriv_user=nobody
#使vsftpd在pasv命令回復時跳轉到指定的IP地址.(伺服器聯接跳轉?)
pasv_address=(none)
#################伺服器性能選項##############
#是否能使用ls -R命令以防止浪費大量的伺服器資源
#ls_recurse_enable=YES
#是否使用單進程模式
#one_process_model
#綁定到listen_port指定的埠,既然都綁定了也就是每時都開著的,就是那個什麼standalone模式
listen=YES
#當使用者登入後使用ls -al 之類的指令查詢該檔案的管理權時,預設會出現擁有者的UID,而不是該檔案擁有者的名稱。若是希望出現擁有者的名稱,則將此功能開啟。
text_userdb_names=NO
#顯示目錄清單時是用本地時間還是GMT時間,可以通過mdtm命令來達到一樣的效果
use_localtime=NO
#測試平台優化
#use_sendfile=YES
################信息類設置################
#login時顯示歡迎信息.如果設置了banner_file則此設置無效
ftpd_banner=歡迎來到網路.
#允許為目錄配置顯示信息,顯示每個目錄下面的message_file文件的內容
dirmessage_enable=YES
#顯示會話狀態信息,關!
#setproctitle_enable=YES
############## 文件定義 ##################
#定義不能更改用戶主目錄的文件
chroot_list_file=/etc/vsftpd/vsftpd.chroot_list
#定義限制/允許用戶登錄的文件
userlist_file=/etc/vsftpd/vsftpd.user_list
#定義登錄信息文件的位置
banner_file=/etc/vsftpd/banner
#禁止使用的匿名用戶登陸時作為密碼的電子郵件地址
banned_email_file=/etc/vsftpd.banned_emails
#日誌文件位置
xferlog_file=/var/log/vsftpd.log
#目錄信息文件
message_file=.message
############## 目錄定義 #################
#定義用戶配置文件的目錄
user_config_dir=/etc/vsftpd/userconf
#定義本地用戶登陸的根目錄,注意定義根目錄可以是相對路徑也可以是絕對路徑.相對路徑是針對用戶家目錄來說的.(#此項設置每個用戶登陸後其根目錄為/home/username/webdisk)
local_root=webdisk
#匿名用戶登陸後的根目錄,默認不設置
anon_root=/home/ftp
#############用戶連接選項#################
#可接受的最大client數目
max_clients=100
#每個ip的最大client數目
max_per_ip=5
#使用標準的20埠來連接ftp
connect_from_port_20=YES
#綁定到某個IP,其它IP不能訪問
listen_address=192.168.0.2
#綁定到某個埠
#listen_port=2121
#數據傳輸埠
#ftp_data_port=2020
#pasv連接模式時可以使用port 范圍的上界,0 表示任意。默認值為0。
pasv_max_port=0
#pasv連接模式時可以使用port 范圍的下界,0 表示任意。默認值為0。
pasv_min_port=0
##############數據傳輸選項#################
#匿名用戶的傳輸比率(b/s)
anon_max_rate=51200
#本地用戶的傳輸比率(b/s)
local_max_rate=5120000
E. 如何在ubuntu中安裝設置ftp伺服器
以 vsftpd為例:
1,安裝ftp
sudo apt-get install vsftpd
2,配置vsftpd.conf
------------------
sudo nano /etc/vsftpd.conf #禁止匿名訪問
anonymous_enable=NO#接受本地用戶
local_enable=YES#允許上傳
write_enable=YES#用戶只能訪問限制的目錄
chroot_local_user=YES#設置固定目錄,在結尾添加。如果不添加這一行,各用戶對應自己的目錄,當然這個文件夾自己建
local_root=/home/ftp
看網上說加一行「pam_service_name=vsftpd」,我看我這個配置文件本來就有,就不管了。
-------------------
3,添加ftp用戶
sudo useradd -d /home/ftp -M ftpuser
sudo passwd ftpuser
4,調整文件夾許可權
這個是避免「500 OOPS: vsftpd: refusing to run with writable root inside chroot()」
sudo chmod a-w /home/ftp
sudo mkdir /home/ftp/data
這樣登錄之後會看到data文件夾,雖然稍麻煩,原因不表了。。查資料這么辛酸已經不易。。
改pam.d/vsftpd
這時候直接用useradd的帳號登錄ftp會530 login incorrect
sudo nano /etc/pam.d/vsftpd
注釋掉
#auth required pam_shells.so
5,重啟vsftpd
sudo service vsftpd restart
F. 如何在ubuntu系統上建立一個ftp伺服器
工具/原料
Linux系統
Ubuntu/CentOS都可以
方法/步驟
1
1、更新源列表
打開」終端窗口」,輸入」sudo apt-get update」 回車--->輸入當前登錄用戶的管理員密碼,回車,等待該命令執行完成就可以了。如果不運行該命令,直接安裝vsftpd就會出現幾個軟體包無法下載。
2
2、安裝vsftpd
打開終端,輸入」sudo apt-get install vsftpd」 回車,安裝完成即可。
3、判斷vsftpd是否安裝成功
打開終端,輸入」sudo service vsftpd restart」 重啟vsftpd伺服器,回車後,vsftpd處於運行狀態,則安裝成功。
4、新建」/home/test」 目錄作為用戶主目錄
打開終端窗口,輸入」sudo mkdir /home/test」 回車,在輸入」sudo ls
/home」 回車,有一個test目錄,則用戶目錄創建成功。
5、新建用戶test並設置密碼
打開終端,輸入」sudo useradd –d /home/test –s /bin/bash test」 回車,新建用戶成功,在輸入」sudo passwd test」 設置test用戶的密碼(輸入兩次) 回車,密碼設置成功。
6、配置文件/etc/vsftpd.conf
打開終端,輸入」sudo vim /etc/vsftpd.conf」 回車,打開vsftpd文件,進入插入(編輯)模式向文件中追加」userlist_deny=NO
userlist_enable=YES userlist_file=/etc/allowed_users」 和 」seccomp_sandbox=NO」 設置文件中的」local_enable=YES」 保存退出即可。
7、新建/etc/allowed_users文件
打開終端,輸入」sudo vim /etc/allowed_users」 回車,輸入test,保存並退出即完成該文件的創建。
8、使用vim查看/etc/ftpusers文件中的內容
打開"終端窗口",輸入"sudo vim /etc/ftpusers" 回車-->打開這個文件後,檢查是否有test這個用戶名,若沒有,就直接退出。若有就刪除test用戶名,因為這個文件中記錄的是不能訪問FTP伺服器的用戶清單。
9、使用WinSCP登錄FTP伺服器
用test用戶名登錄linux,打開終端,在根目錄下新建文件ftpTestFile.txt和userTestDir目錄,便於測試。
10、使用WinSCP工具遠程登錄到FTP伺服器
打開WinSCP工具進入登錄界面,輸入FTP伺服器的IP(192.168.220.128)、用戶名(test)、密碼(123456)即可登錄到FTP伺服器,如圖可看到FTP根目錄下的文件。
11、測試文件的上傳與下載
將本地文件UploadFile.txt上傳到FTP伺服器
從FTP伺服器下載ftpTestFile.txt到本地
12、查看FTP伺服器是否存在上傳的文件
13
最後經過測試,能實現文件的上傳與下載,
G. 如何在ubuntu中安裝設置ftp伺服器
首先我們考慮搭建FTP服務需要關注的都有哪些方面?比如我們最經常關注的有:
1、如何添加FTP用戶?
2、如何臨時凍結某FTP用戶?
3、FTP用戶登入後的默認目錄?是否可以改變?
4、如何鎖定FTP用戶可訪問的目錄范圍?
5、FTP用戶可以有哪些訪問許可權?可否上傳文件?
我們將帶著這些問題來探討如何配置VSFTP以達到預定目標。
一、主要配置選項
VSFTP的主配置文件是/etc/vsftpd.conf 。由於可配置的選項實在太多,無法一一詳談,只能截取比較常用的功能配置選項來加以說明。完整說明可參考man vsftpd.conf。
這里需要注意的是,每個配置選項都是由「配置項目名稱=配置值「所定義。在每個配置變數後,要緊跟等號,再緊跟設置的變數值。中間不允許出現空格之類的分隔符,否則導致配置錯誤,無法生效!
另外,如果需要開通上傳功能,則應注意用來登錄FTP的本地系統用戶對要操作的目錄需要具備寫許可權,否則無法上傳文件!
版本vsftpd: version 2.0.6
啟動VSFTPD:sudo /etc/init.d/vsftpd start
停止VSFTPD:sudo /etc/init.d/vsftpd stop
重啟VSFTPD:sudo /etc/init.d/vsftpd restart
以下為常用的配置選項:
1、listen=YES
若設置為YES,開啟監聽網路。
2、anonymous_enable
若設置為YES,則允許匿名用戶訪問;若設置為NO則拒絕匿名用戶訪問。
如果開啟的話,則可以通過用戶名ftp或者anonymous來訪問,密碼隨便。
3、local_enable
若設置為YES,則允許通過本地用戶帳號訪問;若設置為NO,則拒絕本地用戶帳號訪問。如果你拒絕了陌生人訪問,那麼這個必須設置為YES吧,否則誰能訪問你的FTP呢?
4、write_enable
若設置為YES,則開啟FTP全局的寫許可權;若設置為NO,則不開。
若為NO則所有FTP用戶都無法寫入,包括無法新建、修改、刪除文件、目錄等操作,也就是說用戶都沒辦法上傳文件!!
5、anon_upload_enable
若設置為YES,開啟匿名用戶的上傳許可權。前提是write_enable有開啟,並且用戶具有對當前目錄的可寫許可權。 若設置為NO,則關閉匿名用戶的上傳許可權。
6、anon_mkdir_write_enable
若設置為YES,開啟匿名用戶新建目錄的許可權。前提是write_enable有開啟,並且用戶具有對當前目錄的可寫許可權。 若設置為NO,則關閉匿名用戶新建目錄的許可權。
7、dirmessage_enable
若設置為YES,則可開啟目錄信息推送,也就是用戶登錄FTP後可以列出當前目錄底下的文件、目錄。 這個應該要開啟吧!
8、xferlog_enable
若設置為YES,則開啟登錄、上傳、下載等事件的日誌功能。應開啟!
9、xferlog_file=/var/log/vsftpd.log
指定默認的日誌文件,可指定為其他文件。
10、xferlog_std_format
若設置為YES,則啟用標準的ftpd日誌格式。可以不啟用。
11、connect_from_port_20
若設置為YES,則伺服器的埠設為20。
如果不想用埠20,可以另外通過ftp_data_port來指定埠號。
12、chown_uploads
若設置為YES,則匿名用戶上傳文件後系統將自動修改文件的所有者。
若要開啟,則chown_username=whoever也需指定具體的某個用戶,用來作為匿名用戶上傳文件後的所有者。
13、idle_session_timeout=600
不活動用戶的超時時間,超過這個時間則中斷連接。
14、data_connection_timeout=120
數據連接超時時間 。
15、ftpd_banner=Welcome to blah FTP service.
FTP用戶登入時顯示的信息 。
16、local_root=/home/ftp
指定一個目錄,用做在每個本地系統用戶登錄後的默認目錄。
17、anon_root=/home/ftp
指定一個目錄,用做匿名用戶登錄後的默認目錄。
18、chroot_local_user、 chroot_list_enable、chroot_list_file
這個組合用於指示用戶可否切換到默認目錄以外的目錄。
其中,chroot_list_file默認是/etc/vsftpd.chroot_list,該文件定義一個用戶列表。
若chroot_local_user 設置為NO,chroot_list_enable設置為NO,則所有用戶都是可以切換到默認目錄以外的。
若chroot_local_user 設置為YES,chroot_list_enable設置為NO,則鎖定FTP登錄用戶只能在其默認目錄活動,不允許切換到默認目錄以外。
若chroot_local_user 設置為YES,chroot_list_enable設置為YES,則chroot_list_file所指定的文件裡面的用戶列表都可以訪問默認目錄以外的目錄,而列表以外的用戶則被限定在各自的默認目錄活動。
若chroot_local_user設置為NO,chroot_list_enable設置為YES,則chroot_list_file所指定的文件裡面的用戶列表都被限定在各自的默認目錄活動,而列表以外的用戶則可以訪問默認目錄以外的目錄。
建議設置:chroot_local_user與chroot_list_enable都設置為YES。這樣就只有chroot_list_file所指定的文件裡面的用戶列表可以訪問默認目錄以外的目錄,而列表以外的用戶則被限定在各自的默認目錄活動!
好處:所有人都被限制在特定的目錄裡面。如果某些特定用戶需要訪問其他目錄的許可權,只需將其用戶名寫入chroot_list_file文件就可以賦予其訪問其他目錄的許可權!