linux ftp伺服器
部署 FTP 伺服器
FTP ( 檔案傳輸協議 ) 是 INTERNET 上仍常用的最老的網路協議之一 , 它為系統提供了通過網路與遠端伺服器進行傳輸的簡單方法在 RED HAT ENTREPRISE LINUX 6 中。 FTP 伺服器包的名稱為 VSFTPD , 它代表 Very Secure File TransferProtocolDamon 伺服器名稱也叫做 vsftpd預設配置檔案讓 ANONYMOUS 使用者只能下載位於 CHROOT 目錄中的內容。 /var/ftp/ 這意味著遠端 FTP 客戶端能以使用者anonymous 或 ftp 身份連線到伺服器 ( 無需密碼 ), 並從 ftp伺服器上的 /var/ftp/ 目錄下載檔案 ( 其本地 ftp 使用者可以讀取這些檔案 )
部署網路服務的四個步驟
安裝服務軟體
啟動服務
啟用服務
測試服務
超文字傳輸協議
vsftpd #ftpd服務
lftp #相當於瀏覽器
1.ftp啟用(yum源已經配置好)
yum install -y vsftpd
systemctl start vsftpd
systemctl enable vsftpd
關閉火牆/讓防火牆允許ftp服務
允許ftp:
firewall-cmd --list-all ##列出所有防火牆有關支援的 firewall-cmd --permanent --add-service=ftp ##在防火牆允許的服務中新增ftp服務 firewall-cmd --reload ##重啟firewall-cmd firewall-cmd --list-all
示例:
列出防火牆的所相關的所有內容;
允許對ftp服務關閉防火牆功能;
重啟後防火牆對ftp服務關閉
ftp是核心加強型防火牆需要把selinux改稱disabled,之後重啟虛擬機器
重啟後顯示disabled
2.ftp基本資訊
訪問資料埠:21
資料傳輸埠:>1024的隨即埠
21主動模式(服務端主動推送) 20被動模式
[[email protected] ~]# netstat -antulpe | grep vsftpd tcp6 0 0 :::21 :::* LISTEN 0 99108 2225/vsftpd
預設釋出目錄:/var/ftp
訪問方式:
lftp 172.25.254.100 #匿名使用者登陸 預設/var/ftp/pub/發目錄
lftp 172.25.254.100 -u xxx#使用者登陸 /home裡
lftp 172.25.254.103 -u student
配置檔案:vim /etc/vsftpd/vsftpd.conf
[[email protected] student]# rpm -qc vsftpd ##查詢配置檔案所在位置
3.ftp的安全部署
500報錯:許可權過大
530報錯:認證失敗
550報錯:服務本身不允許
553報錯:檔案系統許可權過小
anonymous #匿名使用者
local #本地使用者
##使用者登陸
anonymous_enable=NO ##禁止匿名使用者登陸
測試:匿名使用者不能登陸,本地使用者可以
#匿名使用者上傳
chmod 775 /var/ftp/pub
chgrp ftp /var/ftp/pub
vim /etc/vsftpd/vs
anon_upload_enable=YES
示例:
(本地使用者可以直接上傳,匿名使用者不可以)
由於write_enable=YES本地使用者可以直接上傳
當write_enable=NO時:
##匿名使用者下載
anon_world_readable_only=NO
#匿名使用者刪除和重新命名
anon_other_write_enable=YES
#匿名使用者家目錄更改
anon_root=/westos
#匿名使用者umask值修改
anon_umask=022
#匿名使用者使用的身份修改
chown_uploads=YES
chown_username=student
#匿名使用者建立目錄
anon_mkdir_write_enable=YES
#匿名使用者最大上傳限速
anon_max_rate=102400 單位:位元組
dd if=/dev/zero of=/mnt/bigfile bs=1M count=2000
限制上傳速度100K/S
#最大連結個數
max_clients=5 #只能有5個人連結ftp
#本地使用者家目錄修改
local_root=/westos
#本地使用者上傳檔案許可權(在)
local_umask=077
#本地使用者家目錄鎖定
chroot_local_user=YES
#限制本地使用者瀏覽根目錄
chroot_local_user=YES #此引數要求去掉自己對自己家目錄的寫許可權
chmod u-w /home/* #都去掉
訪問根目錄黑名單建立
chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
示例:student在黑名單 訪問不了根目錄,westos 可以訪問。
訪問根目錄白名單建立
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
示例:student在白名單,可以訪問根目錄,westos不可以。
#限制本地使用者登陸
vim /etc/vsftpd/ftpusers #永久黑名單
vim /etc/vsftpd/user_list #臨時黑名單 no白名單 yes黑名單
示例:vim /etc/vsftpd/ftpusers #永久黑名單
#使用者白名單設定
userlist_deny=NO
/etc/vsftpd/user_list #此引數設定,此檔案變成使用者白名單,名單中出現的使用者可以登陸ftp
示例:
vim /etc/vsftpd/user_list #westos設定為使用者
因為westos在臨時黑名單中所以無法訪問。
[[email protected] westos]# vim /etc/vsftpd/vsftpd.conf
userlist_deny=NO
/etc/vsftpd/user_list
[[email protected] westos]# systemctl restart vsftpd.service #黑名單變白名單
4.ftp虛擬使用者的設定
#新建虛擬使用者
vim /etc/vsftpd/westos #檔名任意
user1 #使用者名稱
123 #密碼
user2
123
db_load -T -t hash -f /etc/vsftpd/westos /etc/vsftpd/westos.db #改銘文密碼
cat westos.db #檢視密碼
rpm -qc pam.x86-64 #檢視pam安裝了沒,沒安裝yum install pam.x86-64
vim /etc/pam.d/westos #檔名任意
account#帳號 required pam_userdb.so db=/etc/vsftpd/westos
auth#密碼 required pam_userdb.so db=/etc/vsftpd/westos
vim /etc/vsftpd/vsftpd.conf
pam_service_name=westos
guest_enable=YES
#虛擬使用者身份指定
虛擬使用者本來登陸進來是/var/ftp/pub/
guest_username=westos #指定使用者身份以westos登陸
#虛擬使用者家目錄的獨立設定
vim /etc/vsftpd/vsftpd.conf
local_root=/ftphome/$USER
user_sub_token=$USER ##解釋$USER的作用: $user 當前使用者身份
mkdir -p /ftphome/user1/user1dir
mkdir -p /ftphome/user2/user2dir
##虛擬使用者獨立配置
chgrp ftp /ftphome -R
chmod 775 /ftphome/user1/user1dir
chmod 775 /ftphome/user2/user2dir
vim /etc/vsftpd/vsftpd.conf
user_config_dir=/etc/vsftpd/userconf
mkdir -p /etc/vsftpd/userconf/
vim /etc/vsftpd/userconf/user1
舉例:anon_upload_enable=YES
給虛擬使用者獨立配置上傳功能