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服務
用戶白名單建立
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list

FTP服務

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

ftp虛擬用戶的設定
0). 準備

    yum clean all
    yum repolist 
    yum install vsftpd -y
    systemctl  start vsftpd
    systemctl  enable  vsftpd
   systemctl  stop firewalld
   systemctl  disable firewalld
    getenforce 
    setenforce  0
    getenforce 
   vim /etc/sysconfig/selinux 
    **SELINUX=disabled**

1). 創建虛擬帳號身份的文件(注意: 不要出現空行或者多餘的空格)
vim /etc/vsftpd/loginusers ##文件名稱任意
ftpuser1
123
ftpuser2
123
ftpuser3
123

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配置文件
vim /etc/vsftpd/vsftpd.conf
pam_service_name=ckvsftpd # 虛擬用戶信息認證文件名稱
guest_enable=YES # 虛擬用戶開啓
FTP服務
虛擬帳號身份指定)
guest_username=ftpuser
chmod u-w /home/ftpuser

虛擬帳號家目錄獨立設定)
vim /etc/vsftpd/vsftpd.conf
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用戶上傳和下載文件不限速, 並且可以上傳文件;

vim /etc/vsftpd/vsftpd.conf
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
write_enable=YES
anon_upload_enable=YES

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

****測試文件上傳:
lftp 172.25.0.11 -u ftpuser2

cd upload/
put /etc/passwd

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章