vsftpd伺服器搭建(基礎篇)

2021-10-02 14:29:52 字數 3899 閱讀 2771

疑難雜症

vsftpd 是「very secure ftp daemon」的縮寫,安全性是它的乙個最大的特點。

vsftpd 是乙個 unix 類作業系統上執行的伺服器的名字,它可以執行在諸如 linux、bsd、solaris、 hp-unix等系統上面,是乙個完全免費的、開放源**的ftp伺服器軟體,支援很多其他的 ftp 伺服器所不支援的特徵。

比如:非常高的安全性需求、頻寬限制、良好的可伸縮性、可建立虛擬使用者、支援ipv6、速率高等。

vsftpd是一款在linux發行版中最受推崇的ftp伺服器程式。特點是小巧輕快,安全易用。

vsftpd 是以一般身份啟動服務,所以對於 linux 系統的使用許可權較低,對於linux 系統的危害就相對的減低了。此外, vsftpd 亦利用 chroot() 這個函式進行改換根目錄的動作,使得系統工具不會被vsftpd 這支服務所誤用;

任何需要具有較高執行許可權的 vsftpd 指令均以一支特殊的上層程式( parent process ) 所控制 ,該上層程式享有的較高執行許可權功能已經被限制的相當的低,並以不影響linux 本身的系統為準;

所有來自 clients 端,想要使用這支上層程式所提供的較高執行許可權之vsftpd 指令的需求,均被視為『不可信任的要求』來處理,必需要經過相當程度的身份確認後,方可利用該上層程式的功能。例如chown(), login 的要求等等動作;

此外,上面提到的上層程式中,依然使用 chroot() 的功能來限制使用者的執行許可權。

實驗環境

實驗目的

學會搭建簡單的vsftp服務

[root@localhost ~]# yum install -y vsftpd*

[root@localhost ~]# rpm -qa | grep vsftpd

vsftpd-3.0.2-22.el7.x86_64

[root@localhost ~]#

[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf # 在檔案末尾,新增下面引數

# 如果某使用者被限制在其家目錄下,那麼該使用者的家目錄不能再具有寫許可權,否則會報錯。

# 推薦在主配置檔案中新增下面的配置。防止出現錯誤 500 oops: vsftpd: refusing to run with writable root inside chroot()

allow_writeable_chroot=yes

注:配置檔案中的chroot*一類引數,可以有效的限制使用者活動的目錄。從而提公升了安全性

小插曲,講述chroot_list_enable 與 chroot_local_list 相愛相殺的故事。

分別是以下幾種情況:

當chroot_list_enable=no,chroot_local_user=yes時

所有的使用者,禁止切換到其他目錄。

當chroot_list_enable=no,chroot_local_user=no時

所有的使用者,可以切換到其他目錄。

當chroot_list_enable=yes,chroot_local_user=yes時

chroot_list中使用者,可以切換目錄。未在檔案中的使用者,禁止切換目錄。

當chroot_list_enable=yes,chroot_local_user=no時

chroot_list中使用者,禁止切換目錄。未在檔案中的使用者,可以切換目錄。

[root@localhost ~]# useradd -s /sbin/nologin -d /home/test test

[root@localhost ~]# passwd test

changing password for user test.

new password:

bad password: the password is shorter than 8 characters

retype new password:

passwd: all authentication tokens updated successfully.

[root@localhost ~]#

[root@localhost ~]# setenforce 0 # 關閉selinux

[root@localhost ~]# firewall-cmd --permanent --add-service=ftp # 讓防火牆放行ftp服務

success

[root@localhost ~]# firewall-cmd --reload # 重啟防火牆

success

[root@localhost ~]# systemctl start vsftpd # 啟動vsftpd服務

[root@localhost ~]# systemctl status vsftpd # 檢視vsftpd服務的狀態

● vsftpd.service - vsftpd ftp daemon

loaded: loaded (/usr/lib/systemd/system/vsftpd.service; disabled; vendor preset: disabled)

active: active (running) since wed 2020-02-05 02:21:51 est; 10min ago

process: 28584 execstart=/usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf (code=exited, status=0/success)

main pid: 28585 (vsftpd)

cgroup: /system.slice/vsftpd.service

└─28585 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf

feb 05 02:21:51 localhost.localdomain systemd[1]: starting vsftpd ftp daemon...

feb 05 02:21:51 localhost.localdomain systemd[1]: started vsftpd ftp daemon.

[root@localhost ~]#

匿名登入

開啟cmd,輸入 ftp ip 進行連線,輸入使用者名稱:anonymous, 密碼:直接敲回車。

如下圖,成功登入

本地使用者登入

重複剛才連線的操作,輸入使用者名稱(剛剛建立的本地使用者test):test,密碼:你設定的,回車登入。

如下圖,成功登入

注:乙個非常簡單的ftp伺服器就搭建完成了。

虛擬使用者登入

詳情請移步到這篇 vsftpd虛擬使用者配置。

關於vsftpd本地使用者登入出現 530報錯 的問題,請看這篇。530報錯問題

vsftpd伺服器的搭建

趁熱把自己搭建vsftpd的過程寫下來。我用的系統是fc13,安裝vsftpd yum install vsftpd 第一步 vim login.txt userone onepasswd usertwo twopasswd wq第二步 db load t t hash f login.txt et...

NFS伺服器搭建(基礎篇)

客戶端疑難雜症 nfs 是 network file system 的縮寫,即網路檔案系統。功能是讓客戶端通過網路訪問不同主機上磁碟裡的資料,主要用在類unix系統上實現檔案共享的一種方法。nfs version 4 nfsv4 works through firewalls and on the ...

利用vsftpd搭建ftp伺服器

昨天在實驗室內網的一台機器上搭建了乙個ftp伺服器,方便大家共享檔案。這個ftp server要滿足的要求是 有多個使用者,使用乙個共用目錄,每個人都能上傳檔案,但是只能對屬於自己的檔案進行修改 刪除 伺服器雖然在內網的機器上,但是要求在整個校園內都可以方便的訪問。首先,在這台內網機器上建立乙個資料...