⑴ 怎樣配置具有SSL保護的FTP伺服器
FTP使用兩個TCP連接,一個連接用於控制,另一個連接用於數據。標準的控制連接使用TCP埠21,默認的數據連接是埠20。要開始一個安全的FTP進程,用戶可以連接沒有加密的TCP埠21,然後協商身份識別和加密選項。這個過程稱作顯示控制。另一方面,當用戶選擇安全FTP埠的時候,這種連接是隱式連接,通常使用990埠,在這個埠的連接是TLS/SSL。對這個控制連接進行加密的主要原因是在登錄FTP伺服器時隱藏口令。沒有安全控制連接,FTP
⑵ 如何解決FTP over TLS的問題
建議的安全的方案vpn+ftp進行訪問。
可能是由於防火牆限制了連接,或許您可以試一下將FTP的「傳輸設置」更改為「主動」試試。
⑶ [翻譯]在 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來實現安全連接。
⑷ 如何在CentOS 7中使用SSL/TLS加固FTP伺服器進行安全文件傳輸
FTP傳輸不是SSL,SSL用於HTTPS加密。FTP使用的是SSH(SFTP)才是傳輸文件加密。
⑸ 在高級設置中啟用 TLS 1.0、TLS 1.1 和 TLS 1.2,
1、在電腦桌面中雙擊「IE瀏覽器」圖標。
⑹ 文件傳輸協議有哪些
文件傳輸協議:Transfer Protocol,簡稱FTP。是Internet上進行文件傳輸的主要方式之一,在Internet上的學術論文、研究報告、技術資料以及各種共享軟體、免費軟體等都可以通過FTP來獲得。
網路協議
應用層 DNS, FTP, ENRP,HTTP, IMAP, IIRC, NNTP, POP3, SIP, SMTP, SNMP, SSH, Telnet, BitTorrent, DHCP ...
傳輸層 DCCP, SCTP, TCP, RTP, UDP, IL, RUDP, ...
網路層 IPv4, IPv6...
數據鏈路層 乙太網, Wi-Fi, 令牌環, MPLS, PPP ...
物理層 RS-232, EIA-422, RS-449, EIA-485, 10BASE2, 10BASE-T ...
⑺ 在win10系統中做ftp服務
操作步驟:
首先在開始屏幕中打開「搜索」,輸入「控制面板」,並打開;
2.在控制面板窗口中,找到「程序」,點擊;
注意事項
在啟動FTP伺服器時建議關閉防火牆。
⑻ 如何支持 ftp over tls
建議開啟該埠,用於安全性網頁的訪問。另外,為了防止黑客的攻擊,應該及時安裝微軟針對SSL漏洞發布的最新安全補叮要想關閉,裝一個天網即可,因為它是默認關閉所有埠的,有軟體用時它會讓你選擇的。
⑼ 如何藉助vsftpd在Linux上構建安全的FTP服務
FTP(文件傳輸協議)是互聯網上廣泛使用的服務之一,主要用於將文件從一個主機傳輸到另一個主機。FTP本身當初不是作為一種安全協議而設計的;正因為如此,典型的FTP服務很容易遭受諸如中間人攻擊和蠻力攻擊之類的常見攻擊。
許多具有安全功能的應用程序可用來構建安全的FTP服務。比如說,FTPS(安全Secure)使用SSL/TLS證書,對端到端數據進行加密。基於客戶端的需求,FTPS可加以配置,以支持經過加密及/或未經過加密的連接。SFTP(SSH文件傳輸協議)是另一種為傳輸中數據確保安全的方法。SFTP是作為SSH的一種擴展技術而開發的,同樣可以結合其他安全協議使用。
本教程將著重介紹藉助SSL/TLS已被啟用的vsftpd,構建和保護FTP服務。
先稍微介紹一下背景:典型的FTP伺服器偵聽TCP埠20以監視數據、偵聽TCP埠以監視命令(又叫控制埠)。連接的建立和命令參數的交互都通過埠21來完成。FTP連接支持兩種方法:主動模式和被動模式。在主動模式下的連接建立過程中,伺服器建立一條從其埠20(數據)到客戶機的連接。在被動模式下,伺服器為每一個客戶機會話專門指定了隨機性數據埠,並將該埠通知客戶機。隨後,客戶機建立一條通向伺服器隨機性埠的連接。
據RFC 1635顯示,FTP支持通過特殊用戶anonymous進行的公眾訪問,不需要任何密碼,或者通過用戶ftp、使用密碼ftp來進行訪問。除了這類公眾用戶外,vsftpd還支持本地Linux用戶進行的登錄。Linux用戶可以通過使用FTP連接到伺服器,並提供登錄信息,訪問其主目錄,即/home/user。
把vsftpd安裝到Linux上
如果想把vsftpd安裝到Ubuntu、Debian或Linux Mint上,可以使用apt-get命令。系統一啟動,vsftpd服務就會自動啟動。
$ sudo apt-get install vsftpd
如果想把vsftpd安裝到CentOS、Fedora或RHEL上,我們可以使用yum來輕松完成安裝。服務啟動後,還被添加到系統啟動項。
# yum install vsftpd
# service vsftpd start
# chkconfig vsftpd on
使用vsftpd的一種最基本的FTP服務現已准備好使用。我們只要將瀏覽器指向URL ftp://[ServerName/IP],或者使用FileZilla等FTP客戶軟體、使用用戶名anonymous,無需密碼來連接,或使用用戶名ftp、密碼ftp來連接,就可以訪問FTP服務。
vsftpd安裝完畢後,系統用戶ftp連同主目錄/var/ftp已被添加到系統中。只要建立了匿名FTP連接,會話總是默認使用/var/ftp目錄。所以,我們可以將該目錄用作FTP公眾用戶的主目錄。放在/var/ftp下面的任何文件/目錄都可以通過ftp://[ServerName/IP]加以訪問。
vsftpd配置文件的位置出現在下面兩個地方:
•Ubuntu、Debian或Linux Mint:/etc/vsftpd.conf
•CentOS、Fedora或RHEL:/etc/vsftpd/vsftpd.conf
在本教程的其餘部分,使用你Linux系統上的對應位置的vsftpd.conf文件。
調整FTP用戶
如果想禁用公眾訪問,我們就要在vsftpd.conf中明確禁止用戶anonymous。注釋掉這一行不管用,因為vsftpd使用默認值運行。你還需要重啟vsftpd。
anonymous_enable=NO
# service vsfptd restart
因而就要啟用強制性驗證;只有現有的Linux用戶才能夠使用其登錄信息來進行連接。
若想啟用/禁用本地用戶,我們可以修改vsftpd.conf文件。如果我們禁用本地用戶,就得確保用戶anonymous已被授予訪問許可權。
local_enable=YES/NO
# service vsfptd restart
如果想使用特定用戶連接到系統,我們只要將URL改成ftp://username@[ServerName/IP]。相應用戶的主目錄可使用這種方法,通過FTP來加以訪問。
將用戶限制在各自的主目錄
用戶使用FTP訪問遠程伺服器時,用戶可以瀏覽整個系統,只要文件/目錄是可讀取的。根本不建議這么做,因為任何用戶都能通過FTP會話,讀取和下載/etc、/var、/usr 及其他位置下面的系統文件。
想限制本地用戶在FTP會話期間只能訪問各自的主目錄,我們可以修改下面這個參數。
chroot_local_user=YES
# service vsftpd restart
現在,本地用戶只能夠訪問其主目錄了,無法訪問系統中的其他任何文件或目錄。
啟用SSL/TLS加密
FTP原本是一種明文協議,這意味著誰都可以輕松窺視在客戶機與遠程FTP伺服器之間所傳輸的文件。想對FTP通信內容進行加密,可以啟用vsftpd中的SSL/TLS。
第一步是創建SSL/TLS證書和私鑰,如下所示。它會將所創建的證書/私鑰存放在目標.pem文件中。
在Debian/Ubuntu上:
$ sudo openssl req -x509 -days 365 -newkey rsa:2048 –node
s -keyout /etc/vsftpd.pem -out /etc/vsftpd.pem
在CentOS/Fedora/RHEL上:
$ sudo openssl req -x509 -days 365 -newkey rsa:2048 –node
s -keyout /etc/vsftpd/vsftpd.pem -out /etc/vsftpd/vsftpd.pem
然後,將下面這些參數添加到vsftpd.conf配置文件中。
# 啟用TLS/SSL
ssl_enable=YES
# 強迫客戶機在登錄時使用TLS
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
require_ssl_reuse=NO
ssl_ciphers=HIGH
# 指定SSL證書/私鑰(Debian/Ubuntu)
# 如果是CentOS/Fedora/RHEL,將其換成/etc/vsftpd/vsftpd.pem
rsa_cert_file=/etc/vsftpd.pem
rsa_private_key_file=/etc/vsftpd.pem
# 為被動模式下的連接定義埠范圍
pasv_max_port=65535
pasv_min_port=64000
最後重啟vsftpd。
# service vsftpd restart
控制連接和帶寬
vsftpd提供了幾種方法來控制連接和用戶帶寬。我們將使用幾種方法來調整我們的FTP伺服器。
## 為每個匿名會話分配的帶寬設置為大約30 KB/s ##
anon_max_rate=30000
## 每個本地用戶被授予大約30 KB/s的帶寬##
local_max_rate=30000
## 客戶機會話閑置300秒後被終止##
idle_session_timeout=300
## 每個源IP地址的最大連接數量,這有助於防範拒絕服務(DoS)和分布式拒絕服務攻擊(DDoS)#
max_per_ip=50
調整防火牆
最後,如果你在系統(比如CentOS)上運行iptables防火牆,就要確保調整防火牆規則,允許FTP流量通過。下面這些規則應當有助於你開始上手。
# iptables -I INPUT -p tcp --dport 20 -j ACCEPT
# iptables -I INPUT -p tcp --dport 21 -j ACCEPT
# iptables -I INPUT -p tcp --dport 64000:65535 -j ACCEPT
頭兩條規則允許流量通過FTP數據/控制埠。最後一條規則允許被動模式下的連接,其埠范圍已經在vsftpd.conf中予以定義。
啟用日誌功能
萬一你在本教程的FTP服務構建過程中遇到任何問題,可以啟用日誌功能,為此只需修改vsftpd.conf中的下面這個參數:
xferlog_enable=YES
xferlog_std_format=NO
xferlog_file=/var/log/vsftpd.log
log_ftp_protocol=YES
debug_ssl=YES
# service vsftpd restart
藉助FileZilla連接到FTP伺服器
現在有幾款FTP客戶軟體支持SSL/TLS,尤其是FileZilla。想通過FileZilla連接到支持SSL/TLS的網站,就要為FTP主機使用下列設置。
你頭一次連接到支持SSL/TLS的FTP伺服器後,會看到該網站的證書。只管信任證書、登錄上去。
為sftpd排查故障
1. 如果你在連接到FTP伺服器的過程中遇到了下面這個錯誤,這可能是由於你的防火牆阻止FTP流量。為此,確保你在防火牆上打開了必要的FTP埠,如上所述。
ftp: connect: No route to host
2. 如果你連接到在CentOS/RHEL上運行的使用chroot改變根目錄的FTP伺服器時遇到了下面這個錯誤,禁用SELinux是一個辦法。
500 OOPS: cannot change directory:/home/dev
Login failed.
雖然關閉SELinux是一個快速的解決辦法,但在生產環境下這么做可能不安全。所以,改而打開SELinux中的下列布爾表達式可以解決這個問題。
$ sudo setsebool -P ftp_home_dir on
3. 如果你通過FileZilla訪問支持SSL/TLS的FTP伺服器時遇到了下列錯誤,就要確保在vsftpd.conf中添加「ssl_ciphers=HIGH」。FileZilla並不支持默認密碼(DES-CBC3-SHA)。
Trace: GnuTLS alert 40: Handshake failed
Error: GnuTLS error -12: A TLS fatal alert has been received.
"SSL_accept failed: error:1408A0C1:SSL routines:SSL3_GET_CLIENT_HELLO:no shared cipher"
總而言之,使用vsftpd構建FTP伺服器並非難事。針對用戶anonymous的默認安裝應該能夠支持小型的常見FTP服務。Vsftpd還有許多可以調整的參數(詳見http://linux.die.net/man/5/vsftpd.conf),讓它顯得用途廣泛。