CentOS 7安裝配置vsftpd做FTP服務

2021-07-31 16:20:13 字數 4519 閱讀 4950

linux菜鳥,還沒用過ftp服務;在windows下用的是filezilla,一開始還在想linux下也用它,因為知道它是開源的,在linux下用它更顯得理所當然了,後來發現網上介紹大多都vsftpd,所以就用vsftpd做ftp服務了。

安裝在安裝前檢視是否已安裝vsftpd

[root@localhost ~]# rpm -q vsftpd

vsftpd-3.0.2-9.el7.x86_64

如果有顯示類似以上的資訊,說明已經安裝vsftpd,如果沒有,用yum安裝:

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

檢視一下vsftpd安裝在哪:

[root@localhost ~]# whereis vsftpd

vsftpd: /usr/sbin/vsftpd /etc/vsftpd /usr/share/man/man8/vsftpd.8.gz

啟動vsftpd服務:

[root@localhost ~]# systemctl start vsftpd.service

配置對於從未使用過vsftpd的linux菜鳥來說,在配置之前,簡單了解一下vsftpd服務的過程相當有必要的。安裝完預設情況下是開啟匿名登入的,對應的是 /var/ftp 目錄,這時只要服務啟動了,就可以直接連上ftp了。

pcvcdeimac:~ pcvc$ ftp 192.168.0.117

connected to 192.168.0.117.

220 (vsftpd 3.0.2)

name (192.168.0.117:pcvc): ftp

331 please specify the password.

password:

230 login successful.

remote system type is unix.

using binary mode to transfer files.

ftp> ls

229 entering extended passive mode (|||37296|).

150 here comes the directory listing.

drwxr-xr-x 2 0 0 6 jun 10 2014 pub

226 directory send ok.

然而,一般情況下我們都是按分配的使用者去訪問各自的目錄,vsftpd的使用者分為系統使用者和虛擬使用者,系統使用者也就是系統實際存在的linux使用者,而虛擬使用者則是存在於配置檔案裡面的。系統使用者方式比較簡單,建立系統使用者,確保使用者能對ftp目錄進行讀寫就可以了。以下是建立普通linux使用者,詳見 useradd 命令。其實,從以上連線ftp資訊可以看出,有的系統已預設建立了名為ftp的使用者了。

[root@localhost ~]# useradd -g root -m -d /var/www/html -s /sbin/nologin ftpuser

[root@localhost ~]# passwd ftpuser

[root@localhost ~]# 輸入密碼

把 /var/www/html 的所有權給ftpuser.root

[root@localhost ~]# chown -r ftpuser.root /var/www/html

這樣就可以通過ftpuser使用者連線ftp了。至於虛擬使用者需要做的步驟就比較多了。首先虛擬使用者的使用者認證是通過pam方式去認證的,pam檔案裡面指定了認證的db檔案,db檔案又是通過明文使用者名稱和密碼檔案生成而來,為何要這麼繞我也不大清楚。那麼首先我們要指定pam檔案,這個在 /etc/vsftpd/vsftpd.conf 配置檔案是通過 pam_service_name=vsftpd 配置指定的,其位置是 /etc/pam.d/vsftpd,編輯該檔案,把檔案內容全部注釋掉,加上以下兩行:

64位系統:

1 2

auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser_passwd

account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser_passwd

32位系統:

1 2

auth sufficient /lib/security/pam_userdb.so db=/etc/vsftpd/vuser_passwd

account sufficient /lib/security/pam_userdb.so db=/etc/vsftpd/vuser_passwd

db=/etc/vsftpd/vuser_passwd 指定了db檔案的位置,接下來就是生成db檔案,由於db檔案是通過明文使用者名稱和密碼檔案生成而來,所以先建立乙個儲存明文使用者名稱和密碼的檔案 vuser_passwd.txt

[root@localhost ~]# vi /etc/vsftpd/vuser_passwd.txt

該檔案奇行為使用者名稱,偶行為密碼:

1 2

pcvc

iampasswd

然後通過以下命令生成db檔案:

[root@localhost ~]# cd /etc/vsftpd

[root@localhost vsftpd]# db_load -t -t hash -f vuser_passwd.txt vuser_passwd.db

至此使用者的認證就知道怎麼一回事了,如果要新增新的使用者,在編輯 vuser_passwd.txt 後要再次生成一下db檔案。然後現在每個使用者的具體配置,如指向目錄、可讀寫許可權等又是在哪配置的呢,原來它是通過乙個使用者對應乙個配置檔案來實現的,且這個檔案必須用ftp使用者名稱去做檔名,建乙個目錄專門存放這些檔案:

[root@localhost vsftpd]# mkdir vuser_conf

[root@localhost vsftpd]# vi vuser_conf/pcvc

檔案內容大致如下:

1 2

3 4

5 6

7 local_root=/var/www/pcvcnet

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

接下來就是根據需要和以上各檔案資訊來修改配置檔案 /etc/vsftpd/vsftpd.conf 了,啟用或更改以下配置的值:

1 2

3 4

anonymous_enable=no # 禁用匿名登入

ascii_upload_enable=yes

ascii_download_enable=yes

chroot_local_user=yes # 啟用限定使用者在其主目錄下

以下配置是需要自己手工新增:

1 2

3 4

guest_enable=yes # 設定啟用虛擬使用者功能

guest_username=ftpuser # 指定虛擬使用者的宿主使用者,centos中已經有內建的ftp使用者了

user_config_dir=/etc/vsftpd/vuser_conf # 虛擬使用者配置檔案存放的路徑

allow_writeable_chroot=yes # 如果啟用了限定使用者在其主目錄下需要新增這個配置

用 systemctl restart vsftpd.service 重新啟動服務即可用虛擬使用者登入ftp了。

如果系統啟用了防火牆和selinux,那麼還要做以下配置。

防火牆新增ftp服務:

[root@localhost vsftpd]# firewall-cmd –permanent –zone=public –add-service=ftp

[root@localhost vsftpd]# firewall-cmd –reload

設定selinux:

[root@localhost vsftpd]# getsebool -a | grep ftp

[root@localhost vsftpd]# setsebool -p ftpd_full_access on

新增新 ftp 使用者

new_ftp_user

new_ftp_user_password

2. 重新生成 vuser_passwd.db 檔案:

3. 建立使用者配置檔案:

配置檔案內容:

local_root=/new/ftp/directory

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

3. 重啟服務:

Linux CentOS 7 安裝配置vsftp

學習linux時間不長,首次安裝了vsftp,按照網上的各種帖子嘗試配置,不過都沒打到預期,不是被拒絕連線,就是連線超時,總之就是各種問題啊。當然了,不是別人配置的不對,而是自己不是太懂linux,選擇的配置引數彼此之間不知道 起了衝突。所以結合自己的系統把安裝配置過程記錄下來,方便以後學習總結。y...

CentOS 7 安裝 配置

本例為 minimal iso 版本 centos 與 rhel 是同源,所以,在 centos 文件不足時,可以參考 rhel 的文件。本例子環境為 windows 可以使用 fedora liveusb creator 或者 ultraiso 等工具來把系統寫入 u盤,而後通過u盤啟動來安裝系統...

CentOS7 安裝配置 vsftpd

yum install y vsftpdvi etc vsftpd vsftpd.confanonymous enable no anonymous enable yes chroot local user yes 去掉前面的注釋 chroot list enable yes chroot list...