tft每日頭條

 > 科技

 > ftp服務器linux搭建教程學習

ftp服務器linux搭建教程學習

科技 更新时间:2025-04-12 14:50:23

ftp服務器linux搭建教程學習(Linux服務器配置-VSFTP服務配置)1

上文:Linux服務器配置-VSFTP服務配置(四)

使用虛拟用戶認證登錄FTP服務器是最安全的一種認證模式,因為用于登錄FTP服務器的用戶名在Linux系統中不是真實存在的(非本地用戶),即使通過抓包工具得到了用戶名及密碼,也不能用于登錄Linux系統。

一、配置前的準備工作

1、安裝db4-utils軟件包

由于在配置時,需要使用db_load命令,用哈希(hash)算法将明文的虛拟用戶密鑰文件轉換成數據庫文件,所以需要安裝db4-utils這個軟件包。

yum install -y db4-utils

2、db_load命令說明

語法:db_load [-nTV] [-c name=value] [-f file] [-h home] [-P password] [-t btree | hash | recno | queue] db_file

選項:

-T 允許應用程序能夠将文本文件轉譯載入進數據庫。如果指定了選項-T,那麼一定要追跟子選項-t

-t 子選項-t追加在-T選項後,用來指定轉譯載入的數據庫類型,-t可以指定的數據類型有Btree、Hash、Queue和Recon數據庫。

-f 參數後面接包含用戶名和密碼的文本文件,文件的内容是:奇數行為用戶名、偶數行為密碼。

3、配置文件相關配置項重點說明

a、因為虛拟用戶是通過映射本地用戶來登錄FTP的,所以配置文件中local_enable配置項必須設為YES(local_enable=YES)。

b、虛拟用戶的權限控制是使用匿名用戶的配置項來實現的,要想虛拟用戶具有寫操作的權限,可以通過以下配置項來實現,另外将配置項anonymous_enable設為NO,并不影響虛拟用戶登錄FTP服務器。

anon_upload_enable=YES|NO

anon_other_write_enable=YES|NO

anon_mkdir_write_enable=YES|NO

配置項具體解釋請參見—Linux服務器配置-VSFTP服務配置(二)。

c、用戶訪問控制配置項,也适用于虛拟用戶配置,可根據具體配置情況,将不允許訪問FTP的虛拟用戶添加到訪問控制列表中。

userlist_enable=YES|NO

userlist_deny=YES|NO

userlist_file=/etc/vsftpd/user_list

配置項具體解釋請參見—Linux服務器配置-VSFTP服務配置(四)。

d、通過user_config_dir設置項,可以為每個虛拟用戶設置不同的配置文件,但配置文件名需與虛拟用戶名相同。沒有單獨配置文件的虛拟用戶,适用于主配置文件。

二、實例說明使用數據庫文件方式配置虛拟用戶認證登錄FTP服務器

1、配置軟件環境說明。

CentOS6系統:

CentOS release 6.10 (Final)

vsftpd-2.2.2-24.el6.x86_64

RHEL7系統

Red Hat Enterprise Linux Server release 7.6 (Maipo)

vsftpd-3.0.2-25.el7.x86_64

ftp服務器linux搭建教程學習(Linux服務器配置-VSFTP服務配置)2

服務器配置要求:

  • FTP服務采用被動模式運行,隻允許虛拟用戶登錄,并将被動端口鎖定在59800-59900之間。
  • 虛拟用戶snowfox為FTP管理員,其FTP根目錄設定在/var/vftproot目錄中,該用戶具有可下載、上傳、新建目錄(文件)、更名、及删除文件的權限。
  • 虛拟用戶wendy為一般用戶,其FTP根目錄設定在/var/vftproot/wendy目錄中(即隻能訪問自己的FTP目錄),該用戶具有可下載、上傳、新建目錄(文件)、更名、及删除文件的權限。
  • 虛拟用戶itcat為一般用戶,其FTP根目錄設定在/var/vftproot目錄中(即可訪問其他用戶FTP目錄),該用戶隻有查看和下載文件的權限。

2、防火牆配置。

vsftpd服務的防火牆配置已在—Linux服務器配置-VSFTP服務配置(三)中加以說明,這裡不再重複。

3、創建虛拟用戶明文密鑰文件。

文件的内容是:奇數行為虛拟用戶名、偶數行為用戶密碼。當FTP虛拟用戶與本地用戶重名時,為了系統安全訪問FTP服務器的密碼一定不要與登錄Linux系統的密碼相同。

vim /etc/vsftpd/virusers.txt

ftp服務器linux搭建教程學習(Linux服務器配置-VSFTP服務配置)3

4、生成虛拟用戶密鑰認證數據庫文件。

将明文密鑰文件,使用db_load命令轉化成數據庫文件。為了安全起見,再轉化為數據庫文件後,可删除前面創建的虛拟用戶明文密鑰文件。

db_load -T -t hash -f /etc/vsftpd/virusers.txt /etc/vsftpd/virusers.db

ftp服務器linux搭建教程學習(Linux服務器配置-VSFTP服務配置)4

5、編輯 vsftpd 服務的PAM認證文件(/etc/pam.d/vsftpd)。

vim /etc/pam.d/vsftpd

在PAM認證文件中,加入以下兩行,并注釋掉其他行。其他行為本地用戶登陸時的驗證項。另外,PAM認證文件中“db=”的參數為使用db_load命令生成的數據庫文件的路徑,但不寫數據庫文件的後綴名。

auth required pam_userdb.so db=/etc/vsftpd/virusers

account required pam_userdb.so db=/etc/vsftpd/virusers

ftp服務器linux搭建教程學習(Linux服務器配置-VSFTP服務配置)5

另外,可單獨在/etc/pam.d/目錄中創建用于虛拟用戶的PAM認證文件,但需要在 vsftpd 服務配置文件中,修改pam_service_name配置項來加以明确。

6、創建本地映射用戶,并設置FTP目錄的權限。

在Linux系統中文件都有所有者、所屬組的屬性,當使用虛拟用戶創建文件時,就會導緻文件權限出現錯誤(因為虛拟用戶不是系統本地用戶)。為此,需要創建一個本地映射用戶,也就是說,讓虛拟用戶默認登錄到與之有映射關系的這個本地用戶的目錄中,虛拟用戶創建的文件的屬性都歸屬于這個本地用戶。為了安全起見,可将這個本地用戶設置為不允許登錄Linux服務器。

adduser -d /var/vftproot -s /sbin/nologin virftp

chmod -R 755 /var/vftproot

ftp服務器linux搭建教程學習(Linux服務器配置-VSFTP服務配置)6

7、備份配置文件

cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak

8、修改配置文件

vim /etc/vsftpd/vsftpd.conf

listen_port=21

connect_from_port_20=NO

pasv_enable=YES

pasv_min_port=59800

pasv_max_port=59900

listen=YES

listen_ipv6=NO

max_clients=0

max_per_ip=0

one_process_model=NO

accept_timeout=60

data_connection_timeout=300

idle_session_timeout=300

dirmessage_enable=YES

message_file=.message

write_enable=YES

download_enable=YES

chroot_local_user=YES

tcp_wrappers=YES

userlist_enable=YES

userlist_deny=YES

userlist_file=/etc/vsftpd/user_list

xferlog_enable=YES

xferlog_file=/var/log/xferlog

xferlog_std_format=YES

use_localtime=YES

anonymous_enable=NO

anon_umask=022

local_enable=YES

guest_enable=YES

guest_username=virftp

virtual_use_local_privs=NO

user_config_dir=/etc/vsftpd/vuser_config

pam_service_name=vsftpd

在RHEL7系統中,配置文件還需要加入以下配置項。

allow_writeable_chroot=YES

新版(2.3.5以上)的 vsftpd 程序為了安全,FTP目錄沒有寫權限,才允許用戶登錄,也可将此項設置為YES。

9、重啟vsftpd服務

  • CentOS6系統

service vsftpd restart

  • RHEL7系統

systemctl restart vsftpd

10、為虛拟用戶單獨創建配置文件及相應目錄,已調整各個虛拟用戶的不同訪問權限。

同過上述配置及主配置文件可以看出,現在所有虛拟用戶的訪問權限為:所有虛拟用戶都可以登錄FTP服務器,FTP的家目錄為/var/vftproot,并具有浏覽和下載文件的權限。

創建自定義虛拟用戶配置文件所在的目錄

mkdir -p /etc/vsftpd/vuser_config

為虛拟用戶單獨創建配置文件及相應目錄

  • snowfox虛拟用戶

vim /etc/vsftpd/vuser_config/snowfox #創建snowfox虛拟用戶的配置文件

加入以下配置項:

anon_upload_enable=YES

anon_other_write_enable=YES

anon_mkdir_write_enable=YES

  • wendy虛拟用戶

mkdir /var/vftproot/wendy #創建wendy虛拟用戶家目錄

chown virftp:virftp /var/vftproot/wendy/ #更改目錄的所有者及所屬組為本地映射用戶virftp

chmod 755 /var/vftproot/wendy/ #更改目錄權限

vim /etc/vsftpd/vuser_config/wendy #創建wendy虛拟用戶的配置文件

加入以下配置項:

local_root=/var/vftproot/wendy

anon_upload_enable=YES

anon_other_write_enable=YES

anon_mkdir_write_enable=YES

  • itcat虛拟用戶

由于vsftpd的主配置文件,已經滿足了itcat虛拟用戶的要求,顧不需為其建立單獨的配置文件。

11、SELinux設置

  • CentOS6系統

更改vsftp的SELinux布爾變量

setsebool -P ftp_home_dir on

setsebool -P allow_ftpd_full_access on

ftp服務器linux搭建教程學習(Linux服務器配置-VSFTP服務配置)7

  • RHEL7系統

setsebool -P ftpd_full_access on

ftp服務器linux搭建教程學習(Linux服務器配置-VSFTP服務配置)8

12、驗證配置結果

  • snowfox用戶登錄認證

ftp服務器linux搭建教程學習(Linux服務器配置-VSFTP服務配置)9

  • wendy用戶登錄認證

ftp服務器linux搭建教程學習(Linux服務器配置-VSFTP服務配置)10

  • itcat用戶登錄認證

ftp服務器linux搭建教程學習(Linux服務器配置-VSFTP服務配置)11

以上是我在學習Linux系統中整理的一些學習要點,肯定會有不對的地方,希望各位大俠給與指正,我們共同學習!謝謝!

下篇:Linux服務器配置-VSFTP服務配置(六)

通過實例說明數據庫 虛拟用戶配置登錄FTP服務器。

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关科技资讯推荐

热门科技资讯推荐

网友关注

Copyright 2023-2025 - www.tftnews.com All Rights Reserved