1. 程式人生 > >linux ftp伺服器

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
在這裡插入圖片描述
在這裡插入圖片描述
給虛擬使用者獨立配置上傳功能
在這裡插入圖片描述
在這裡插入圖片描述在這裡插入圖片描述