當前位置:首頁 » 雲伺服器 » linux搭建sftp伺服器搭建

linux搭建sftp伺服器搭建

發布時間: 2023-09-18 07:58:09

linux/centos普通用戶sudo開啟sftp

一般情況下,從安全考慮,root是禁止ssh登錄,普通用戶通過sudo操作,一般都沒問題,但是要通過ftp傳輸文件就麻煩了,文件是屬於root用戶的,普通用戶即使等登錄也不能更改文件,也要加上sudo命令才能更改文件,通過winscp軟體可以實現實現這個功能,詳細配置查看這個帖子:

http://blog.csdn.net/xuejinliang/article/details/52301349

配置圖1(http://upload-images.jianshu.io/upload_images/3727878-911d343f96035822.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

配置-高級-SFTP    sudo /usr/libexec/openssh/sftp-server

配置圖2(http://upload-images.jianshu.io/upload_images/3727878-52fa5c95dcc9d859.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

配置-高級-Shell   sudo -i

附加背景知識:

https://en.wikibooks.org/wiki/OpenSSH/Cookbook/File_Transfer_with_SFTP

在主流linux系統版本當中,默認都有安裝openssl和openssh包,都有ssh命令,也就是說默認安裝好了SFTP伺服器和sftp命令,不需要額外配置vsftp。

sftp有兩種實現

1.sftp-server默認實現

2.internal-sftp可更改用戶對應的目錄

本來考慮不用sudo,而是通過internal-sftp來實現,把普通用戶加入到root用戶組,把文件的root用戶組許可權加上寫的許可權來實現的,後來發現沒用,

因為目錄許可權設置要遵循2點:

ChrootDirectory設置的目錄許可權及其所有的上級文件夾許可權,屬主和屬組必須是root;

ChrootDirectory設置的目錄許可權及其所有的上級文件夾許可權,只有屬主能擁有寫許可權,許可權最大設置只能是755。

如果不能遵循以上2點,即使是該目錄僅屬於某個用戶,也可能會影響到所有的SFTP用戶。

Ⅱ 如何藉助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),讓它顯得用途廣泛。

Ⅲ 怎麼開啟linux伺服器的sftp服務

可以按照如下方式進行設置:

1、創建sftp組,groupaddsftp,創建完成之後使用cat /etc/group命令組的信息。

拓展資料

1、sftp是Secure File Transfer Protocol的縮寫,安全文件傳送協議。可以為傳輸文件提供一種安全的網路的加密方法。sftp 與 ftp 有著幾乎一樣的語法和功能。SFTP 為 SSH的其中一部分,是一種傳輸檔案至 Blogger 伺服器的安全方式。

2、其實在SSH軟體包中,已經包含了一個叫作SFTP(Secure File Transfer Protocol)的安全文件信息傳輸子系統,SFTP本身沒有單獨的守護進程,它必須使用sshd守護進程(埠號默認是22)來完成相應的連接和答復操作,所以從某種意義上來說,SFTP並不像一個伺服器程序,而更像是一個客戶端程序。

Ⅳ 如何在虛擬機上的Linux系統配置FTP服務,跟Windows建立連接傳輸文件

在虛擬機上的Linux系統配置FTP服務,跟Windows建立連接傳輸文件的具體操作步驟如下:

1、在電腦上下載並安裝好小型FTP伺服器(Quick Easy FTP Server) 軟體,打開進行設置用戶名,用於遠程登錄。

熱點內容
雲伺服器12位ip 發布:2025-02-01 20:00:07 瀏覽:470
腳本微信取關 發布:2025-02-01 19:35:01 瀏覽:152
如何用雲伺服器部署svn 發布:2025-02-01 19:33:20 瀏覽:990
緩存迅雷 發布:2025-02-01 19:31:53 瀏覽:978
linux與unixshell編程指南 發布:2025-02-01 19:25:03 瀏覽:939
護膚品資料庫 發布:2025-02-01 19:25:02 瀏覽:648
python接受json數據 發布:2025-02-01 19:24:24 瀏覽:943
修改網站資料庫 發布:2025-02-01 19:02:16 瀏覽:423
果粉不換安卓怎麼辦 發布:2025-02-01 18:57:21 瀏覽:796
網頁卡需要什麼配置 發布:2025-02-01 18:50:30 瀏覽:136