1. 程式人生 > >Linux中ftp服務

Linux中ftp服務

1.ftp的啟用

環境配置

vim /etc/sysconfig/selinux ##修改配置檔案,將SELINUX改為disabled。然後重啟虛擬機器
這裡寫圖片描述

yum install vsftpd                 ##下載服務
systemctl start vsftpd             ##啟動服務   
systemctl enable vsftpd            ##設定服務開機自啟動
firewall-cmd --permanent --add-service=ftp  ##設定火牆
firewall-cmd --reload              ##重啟

這裡寫圖片描述

2.ftp的基本資訊

訪問資料埠:21
資料傳輸埠:大於1024的隨機埠

預設釋出目錄:/var/ftp/
訪問方式

lftp 172.25.254.115             ##匿名登陸,預設目錄/var/ftp
lftp 172.25.254.115 -u student  ##使用者登入,預設目錄/home/student

配置檔案:
/etc/vsftpd/vsftpd.conf

3.ftp訪問的基本設定

匿名使用者登陸
vim /etc/vsftpd/vsftpd.conf    ##修改配置檔案
anonymous_enable=YES|NO        ##匿名使用者是否可以登陸(YES可以登陸,NO不能登陸)
注意:每次修改完配置檔案後都需重啟服務

這裡寫圖片描述
這裡寫圖片描述

本地使用者登陸
vim /etc/vsftpd/vsftpd.conf
local_enable=YES|NO       ##本地使用者是否可以登陸(YES可以登陸,NO不能)

這裡寫圖片描述
這裡寫圖片描述

本地使用者可寫
vim /etc/vsftpd/vsftpd.conf
write_enable=YES|NO        ##本地使用者是否可寫

這裡寫圖片描述
這裡寫圖片描述

匿名使用者上傳
chmod 775 /var/ftp/pub
chgrp ftp /var/ftp/pub     ##上傳之前需更改pub目錄的許可權和所在組
vim /etc/vsftpd/vsftpd.conf
anon_upload_enable=YES     ##匿名使用者可以上傳

這裡寫圖片描述
這裡寫圖片描述

匿名使用者下載
vim /etc/vsftpd/vsftpd.conf
anon_world_readable_only=NO   

這裡寫圖片描述
這裡寫圖片描述

匿名使用者建立目錄,刪除和重新命名
vim /etc/vsftpd/vsftpd.conf
anon_mkdir_write_enable=YES
anon_other_write_enable=YES

這裡寫圖片描述
這裡寫圖片描述

匿名使用者家目錄修改
vim /etc/vsftpd/vsftpd.conf
anon_root=/westos

這裡寫圖片描述
這裡寫圖片描述

匿名使用者上傳檔案預設許可權修改
vim /etc/vsftpd/vsftpd.conf
anon_umask=022

這裡寫圖片描述
這裡寫圖片描述

最大上傳速率
dd if=/dev/zero of=file bs=1M count=1000  ##建立一個1G 的檔案
vim /etc/vsftpd/vsftpd.conf
anon_max_rate=102400(單位:位元組byte)

先建立一個1G的檔案
可以看出在不限制上傳速度時,上傳速度大概60M,當限制最大上傳速度為100K了之後,速度大概為100K左右
這裡寫圖片描述
這裡寫圖片描述

最大連線數
max_clients=1        ##最大連線數為1

這裡寫圖片描述
這裡寫圖片描述

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

這裡寫圖片描述

本地使用者家目錄修改
local_root=/dir

這裡寫圖片描述
這裡寫圖片描述

本地使用者上傳檔案許可權
local_umask=077      ##本地使用者上傳檔案許可權為600

這裡寫圖片描述

限制本地使用者瀏覽/目錄

當沒限制時,本地使用者可以切到/看到根目錄下的所有東西
這裡寫圖片描述
所有使用者被鎖定到自己家目錄中

chroot_local_user=YES
chmod u-w /home/*     ##減小家目錄許可權,不然會因許可權過大報錯

這裡寫圖片描述
使用者只能檢視自己家目錄中的檔案

本地使用者訪問黑名單建立

chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot.list
這裡寫圖片描述
由於chroot.list檔案不存在,所以要手動建立此檔案。並在檔案中寫入使用者
這裡寫圖片描述
可以看到使用者只能訪問自己的家目錄i

本地使用者訪問白名單建立

chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot.list
這裡寫圖片描述
當chroot_local_user改為YES時,此時寫在/etc/vsftpd/chroot_list下的為白名單,仍然將student寫入此檔案中
此時使用者又可以訪問/目錄了

使用者登陸黑名單設定

vim /etc/vsftpd/ftpusers       ##使用者黑名單
vim /etc/vsftpd/user_list      ##使用者臨時黑名單
這裡寫圖片描述
這裡寫圖片描述

使用者登陸白名單設定

vim /etc/vsftpd/vsftpd.conf
userlist_deny=NO
/etc/vsftpd/user_list  ##引數設定,此檔案變成使用者白名單,只在名單中出現的使用者可以登陸ftp
這裡寫圖片描述
這裡寫圖片描述

4.ftp虛擬使用者的設定

建立虛擬帳號身份

vim /etc/vsftpd/westosfile    ##檔名稱任意
user1                         ##使用者帳號
123                           ##密碼
user2                         ##使用者帳號
123                           ##密碼
user3                         ##使用者帳號
123                           ##密碼

這裡寫圖片描述

db_load -T -t hash -f /etc/vsftpd/westosfile /etc/vsftpd/westosfile.db  ##加密檔案
這裡寫圖片描述

vim /etc/pam.d/westos               ##檔名稱任意
account  required  pam_userdb.so  db=/etc/vsftpd/westosfile     
auth     required  pam_userdb.so  db=/etc/vsftpd/westosfile

這裡寫圖片描述

vim /etc/vsftpd/vsftpd.conf
guest_enable=YES 
pam_service_name=westos     
guest_username=student      ##用student身份登陸

這裡寫圖片描述
當使用虛擬賬戶登陸時發現進去後是student家目錄
這裡寫圖片描述

虛擬帳號家目錄獨立設定
vim /etc/vsftpd/vsftpd.conf
local_root=/ftphome/$USER
user_sub_token=$USER

這裡寫圖片描述
建立虛擬使用者家目錄

mkdir /ftphome/user1/user1dir -p
mkdir /ftphome/user2/user2dir -p
mkdir /ftphome/user3/user3dir -p

這裡寫圖片描述

虛擬帳號配置獨立
chgrp ftp /ftphome/ -R
chmod 775 /ftphome/user1/user1dir
chmod 775 /ftphome/user2/user2dir
mkdir -p /etc/vsftpd/userconf   ##名稱任意

這裡寫圖片描述

vim /etc/vsftpd/vsftpd.conf

在配置檔案中寫入 user_config_dir=/etc/vsftpd/userconf
注意此處userconf需與上一步所建立的目錄名稱一致
這裡寫圖片描述
vim /etc/vdftpd/userconf/user1
在此檔案中設定配置檔案中的所有引數,此檔案的優先順序高
這裡寫圖片描述
此時user1具有上傳及刪除功能
這裡寫圖片描述

5.ftp常見報錯

530 報錯表示認證失敗
550 服務本身不允許這樣做
500 許可權過大
553 伺服器上的檔案系統不允許