天天看點

FTP服務

1.什麼是FTP 伺服器?

FTP 是 File Transfer Protocol(檔案傳輸協定)的英文簡稱,而中文簡稱為“文傳協定”。用于 Internet 上的控制檔案的雙向傳輸。同時,它也是一個應用程式(Application)。 基于不同的作業系統有不同的 FTP 應用程式,而所有這些應用程式都遵守同一種協定以傳輸檔案。

在 FTP 的使用當中,使用者經常遇到兩個概念:"下載下傳"(Download)和"上傳"(Upload)

2. 什麼是Vsftpd?

vsftpd 是“very secure FTP daemon”的縮寫,安全性是它的一個最大的特點。vsftpd是一個 UNIX 類作業系統上運作的伺服器的名字,它可以運作在諸如 Linux、BSD、Solaris、HP-UNIX 等系統上面,是一個完全免費的、開放源代碼的 ftp 伺服器軟體,支援很多其他的FTP 伺服器所不支援的特征。

3.安裝Vsftpd

備注:自己在家做時,需要自己配好Yum倉庫

yum install vsftpd -y

systemctl start vsftpd

systemctl stop firewalld

systemctl enable vsftpd

lftp ip

FTP服務
能登陸并且顯示,表示安裝成功 vsftpd檔案資訊 /var/ftp ##預設釋出目錄 /etc/vsftpd ##配置目錄

用戶端通路時, 使用者身份可以分為:

1). 匿名使用者:沒有指定使用者身份, ftp身份實作從伺服器上傳和下載下傳檔案;

2). 本地使用者: -u指定使用者身份,使用者是伺服器端的使用者;

3). 虛拟使用者: -u指定使用者身份,但是伺服器端并不存在該使用者(id username)

沒有指定使用者身份

4.vsftpd服務的配置參數

#安裝完後,有/etc/vsftpd/vsftpd.conf 檔案,是 vsftp 的配置檔案。

1)匿名使用者設定

anonymous_enable=YES|NO ##匿名使用者登陸限制

FTP服務
匿名使用者上傳 vim /etc/vsftpd/vsftpd.conf write_enable=YES anon_upload_enable=YES chgrp ftp /var/ftp/pub chmod 775 /var/ftp/pub
FTP服務
FTP服務

匿名使用者家目錄修改

anon_root=/direcotry

匿名使用者建立目錄 anon_mkdir_write_enable=YES|NO
FTP服務
匿名使用者上傳檔案預設權限修改 anon_umask=xxx
FTP服務

>匿名使用者下載下傳

anon_world_readable_only=YES|NO ##設定參數值為no表示匿名使用者可以下載下傳

匿名使用者删除

anon_other_write_enable=YES|NO

匿名使用者使用的使用者身份修改 chown_uploads=YES chown_username=student chown_uploads_mode=0644

最大上傳速率

anon_max_rate=102400

FTP服務
最大連結數 max_clients=2

2)本地使用者設定

local_enable=YES|NO ##本地使用者登陸限制

write_enable=YES|NO ##本地使用者寫權限限制

FTP服務
本地使用者家目錄修改 local_root=/directory

本地使用者上傳檔案權限

local_umask=xxx

限制本地使用者浏覽/目錄 所有使用者被鎖定到自己的家目錄中 chroot_local_user=YES chmod u-w /home/*
FTP服務
使用者黑名單建立 chroot_local_user=NO chroot_list_enable=YES chroot_list_file=/etc/vsftpd/chroot_list
FTP服務

使用者白名單建立

FTP服務
限制本地使用者登陸 vim /etc/vsftpd/ftpusers ##使用者黑名單 vim /etc/vsftpd/user_list ##使用者臨時黑名單
FTP服務
使用者白名單設定 userlist_deny=NO /etc/vsftpd/user_list ##參數設定,此檔案變成使用者白名單,隻在名單中出現的使用者可以登陸ftp

ftp虛拟使用者的設定

0). 準備

1). 建立虛拟帳号身份的檔案(注意: 不要出現空行或者多餘的空格)

vim /etc/vsftpd/loginusers ##檔案名稱任意

ftpuser1

123

ftpuser2

ftpuser3

2). 對使用者帳号和密碼進行加密

db_load -T -t hash -f /etc/vsftpd/loginusers loginusers.db

chmod 600 /etc/vsftpd/loginusers*

FTP服務

3). 編輯帳号和密碼處理的庫檔案

vim /etc/pam.d/ckvsftpd ##檔案名稱任意

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

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

FTP服務

4). 配置vsftpd配置檔案

pam_service_name=ckvsftpd # 虛拟使用者資訊認證檔案名稱

guest_enable=YES # 虛拟使用者開啟

FTP服務

虛拟帳号身份指定)

guest_username=ftpuser

chmod u-w /home/ftpuser

虛拟帳号家目錄獨立設定)

local_root=/ftpuserhome/$USER

user_sub_token=$USER

FTP服務

mkdir /ftpuserhome

chgrp ftpuser /ftpuserhome

chmod g+s /ftpuserhome

mkdir /ftpuserhome/ftpuser{1..3}

虛拟帳号配置獨立)

案例實作目标:

1). ftpuser1使用者上傳和下載下傳檔案限速;

2). ftpuser2使用者上傳和下載下傳檔案不限速, 并且可以上傳檔案;

user_config_dir=/etc/vsftpd/conf.d

mkdir -p /etc/vsftpd/conf.d

vim /etc/vsftpd/conf.d/ftpuser1

在此檔案中設定配置檔案中的所有參數,此檔案的優先級高

anon_max_rate=1024

vim /etc/vsftpd/conf.d/ftpuser2

mkdir /ftp/ftpuser2/upload/

chown ftpuser /ftp/ftpuser2/upload/

systemctl restart vsftpd

測試限速

** server:

dd if=/dev/zero of= /ftp/ftpuser1/hello1 bs=1M count=100

dd if=/dev/zero of=/ftp/ftpuser2/hello2 bs=1M count=100

****client:

lftp 172.25.0.11 -u ftpuser1

get hello1

lftp 172.25.0.11 -u ftpuser2

get hello2

****測試檔案上傳:

cd upload/ put /etc/passwd

繼續閱讀