當前位置:首頁 » 操作系統 » vsftplinux

vsftplinux

發布時間: 2023-10-29 03:26:46

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

2. linux下如何安裝vsftp組件

在linux下安裝vsftp組件按照如下步驟,即可安裝成功

  1. 安裝vsftpd組件

安裝完後,有/etc/vsftpd/vsftpd.conf文件,是vsftp的配置文件。

[root@bogon ~]# yum -y install vsftpd

2.添加一個ftp用戶

此用戶就是用來登錄ftp伺服器用的。

[root@bogon ~]# useradd ftpuser

這樣一個用戶建完,可以用這個登錄,記得用普通登錄不要用匿名了。登錄後默認的路徑為 /home/ftpuser.

3.給ftp用戶添加密碼

[root@bogon ~]# passwd ftpuser

輸入兩次密碼後修改密碼

4.防火牆開啟21埠

因為ftp默認的埠為21,而centos默認是沒有開啟的,所以要修改iptables文件

[root@bogon ~]# vim /etc/sysconfig/iptables

在行上面有22 -jACCEPT 下面另起一行輸入跟那行差不多的,只是把22換成21,然後:wq保存。

重啟ftp服務:

[root@bogon ~]# service vsftpd restart

7.用ftp客戶端登錄即可

3. 如何在linux操作系統中安裝vsftp服務

一、安裝vsftp
安裝:yum install vsftpd
二、啟動、停止、重啟vsftp
啟動vsftp:
service vsftpd start
或指定路徑(注意:/etc/init.d/路徑可能不同):/etc/init.d/vsftpd start
重啟
service vsftpd restart
停止vsftp:
service vsftpd stop
三、創建ftp用戶組和目錄
1、創建FTP用戶組ftp-users
groupadd ftp-users
2、創建用戶組目錄ftp-docs
mkdir /home/ftp-docs
注意,這時還未指定跟ftp-users關聯。
3、修改許可權
chmod -R 750 /home/ftp-docs
750組只能讀不能寫,要組能寫,請改成770或760。
4、指定文件夾歸屬用戶和用戶組
chown root:ftp-users /home/ftp-docs
這時,如果遠程用戶屬於ftp-users組,則會共享該目錄。
5、添加FTP用戶並未他們設置預設目錄
useradd -g ftp-users -d /home/ftp-docs user1
passwd user1

4. linux vsftp 如何更改默認埠及訪問

1、選擇位於中間的「Customize」按鈕,按下ENTER鍵即可。

5. linux中怎麼安裝vsftpd

vsftpd是Linux下比較著名的FTP伺服器,搭建FTP伺服器當然首選這個。
本文介紹了在CentOS 6.4下安裝vsftpd、配置虛擬用戶登錄FTP的過程。
正文:
一:安裝vsftpd
查看是否已經安裝vsftpd
rpm -qa | grep vsftpd

如果沒有,就安裝,並設置開機啟動
yum -y install vsftpd
chkconfig vsftpd on

二:基於虛擬用戶的配置
所謂虛擬用戶就是沒有使用真實的帳戶,只是通過映射到真實帳戶和設置許可權的目的。虛擬用戶不能登錄CentOS系統。
修改配置文件
打開/etc/vsftpd/vsftpd.conf,做如下配置
anonymous_enable=NO //設定不允許匿名訪問
local_enable=YES //設定本地用戶可以訪問。註:如使用虛擬宿主用戶,在該項目設定為NO的情況下所有虛擬用戶將無法訪問
chroot_list_enable=YES //使用戶不能離開主目錄
ascii_upload_enable=YES
ascii_download_enable=YES //設定支持ASCII模式的上傳和下載功能
pam_service_name=vsftpd //PAM認證文件名。PAM將根據/etc/pam.d/vsftpd進行認證

以下這些是關於vsftpd虛擬用戶支持的重要配置項,默認vsftpd.conf中不包含這些設定項目,需要自己手動添加
guest_enable=YES //設定啟用虛擬用戶功能
guest_username=ftp //指定虛擬用戶的宿主用戶,CentOS中已經有內置的ftp用戶了
user_config_dir=/etc/vsftpd/vuser_conf //設定虛擬用戶個人vsftp的CentOS FTP服務文件存放路徑。存放虛擬用戶個性的CentOS FTP服務文件(配置文件名=虛擬用戶名

進行認證
首先,安裝Berkeley DB工具,很多人找不到db_load的問題就是沒有安裝這個包。
yum install db4 db4-utils

然後,創建用戶密碼文本/etc/vsftpd/vuser_passwd.txt ,注意奇行是用戶名,偶行是密碼
test
123456

接著,生成虛擬用戶認證的db文件
db_load -T -t hash -f /etc/vsftpd/vuser_passwd.txt /etc/vsftpd/vuser_passwd.db

隨後,編輯認證文件/etc/pam.d/vsftpd,全部注釋掉原來語句,再增加以下兩句:
auth required pam_userdb.so db=/etc/vsftpd/vuser_passwd
account required pam_userdb.so db=/etc/vsftpd/vuser_passwd

最後,創建虛擬用戶配置文件
mkdir /etc/vsftpd/vuser_conf/
vi /etc/vsftpd/vuser_conf/test //文件名等於vuser_passwd.txt裡面的賬戶名,否則下面設置無效

內容如下
local_root=/ftp/www //虛擬用戶根目錄,根據實際情況修改
write_enable=YES //可寫
anon_umask=022 //掩碼
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES

設置Selinux
setsebool -P ftp_home_dir=1 //設置ftp可以使用home目錄
sersebool -P allow_ftpd_full_access=1 //設置ftp用戶可以有所有許可權

設置FTP根目錄許可權
mkdir /ftp/www //創建目錄
chmod R 755 /ftp
chmod R 777 /ftp/www

最新的vsftpd要求對主目錄不能有寫的許可權所以ftp為755,主目錄下面的子目錄再設置777許可權
設置防火牆
打開/etc/sysconfig/iptables
在「-A INPUT –m state --state NEW –m tcp –p –dport 22 –j ACCEPT」,下添加:
-A INPUT -m state --state NEW -m tcp -p -dport 21 -j ACCEPT

然後保存,並關閉該文件,在終端內運行下面的命令,刷新防火牆配置:
service iptables restart

OK,運行「service vsftpd start」,你就可以訪問你的FTP伺服器了。

熱點內容
查看資料庫事務 發布:2024-11-30 15:29:34 瀏覽:56
python無線 發布:2024-11-30 15:24:49 瀏覽:359
安卓手機怎麼下符文之地 發布:2024-11-30 14:49:28 瀏覽:878
安卓ota在哪裡打開 發布:2024-11-30 14:46:55 瀏覽:102
mapreduce演算法 發布:2024-11-30 14:46:50 瀏覽:16
python的shell 發布:2024-11-30 14:46:49 瀏覽:730
變頻器什麼時候配置電抗器 發布:2024-11-30 14:46:37 瀏覽:700
官方版我的世界登錄網易伺服器 發布:2024-11-30 14:38:37 瀏覽:113
安卓手機沒電會出現什麼問題 發布:2024-11-30 14:37:31 瀏覽:984
unity3d加密dll 發布:2024-11-30 14:36:40 瀏覽:26