linux ftp服務的搭建配置
FTP介紹
FTP:是檔案傳輸協議的縮寫。
功能:
用來實現檔案的上傳(upload)和下載(download)
ftp的工作埠: 21 : 控制埠,用於在客戶機和伺服器之間建立連線
20 : 資料埠,用於伺服器給客戶機主動進行資料連線
vsftpd:非常安全檔案傳輸協議守護程式(very secure ftp daemon)
ftp的工作模式:主動port、被動passive模式
客戶端與服務端傳輸資料時,服務端傳輸埠為20時為主動模式,傳輸埠為>1024的隨機埠時為被動模式
ftp主動(port)模式工作過程:
1.客戶機和伺服器建立連線關係(登入): 客戶機(>1024的隨機埠號) <----> 伺服器 21號port
2.雙方建立資料連線關係,傳輸資料:客戶機(>1024的隨機port) <----> 伺服器 20號port
ftp被動(pasv)模式工作過程:
1.客戶機和伺服器建立連線關係(登入): 客戶機(>1024的隨機埠號) <----> 伺服器 21號port
2.雙方建立資料連線關係,傳輸資料:客戶機(>1024的隨機port) <----> 伺服器(>1024的隨機port)
說明:當ftp伺服器上有防火牆時,通常客戶機是以被動模式去訪問ftp伺服器的。在ftp伺服器的vsftpd.conf和防火牆上要指定放行的被動模式埠範圍的最小值和最大值。
vsftpd.conf 的被動模式埠範圍:
pasv_min_port=5000
pasv_max_port=6000
vsftpd部署思路:
1.關閉安全功能,並查狀態:
systemctl stop firewalld ; setenforce 0 #關閉防火牆及selinux安全設定
systemctl status firewalld ; getenforce #檢視防火牆狀態,檢查是否關閉
2.查軟體是否已安裝,如果未安裝就安裝軟體。
rpm -q vsftp ftp lftp #vsftpd是伺服器端程式, ftp lftp為客戶端程式
3.啟動服務,並允許開機自動啟動
systemctl restart vsftpd #重啟vsftpd服務
systemctl enable vsftpd #設定vsftpd開機自啟動
4.設定共享目錄,重新載入設定。
5.做本地(內測)訪問測試,做異地(公測)訪問測試。
實驗環境:
centos7.6 (以本機IP為例 192.168.11.11)
安裝步驟:
共享需要的檔案:
vsftpd的預設共享目錄:
1.匿名使用者(ftp或anonymous)共享: /var/ftp目錄
2.普通使用者:訪問的是普通使用者自己的家目錄,通常是" /home/使用者名稱"資料夾
注意:root使用者預設不能登入vsftpd伺服器來訪問共享,因為root賬號在黑名單裡。
服務測試:
方式一: ftp 192.168.11.11 回車 再按照提示輸入使用者密碼即可登陸
方式二: lftp 192.168.11.11 -u 使用者名稱,密碼 即可登陸成功 (例: 使用者名稱為tom 密碼為0 登陸)
在window下可以用資源管理器進行登陸: ftp://192.168.11.11
vsftpd配置檔案: rpm -qc vsftpd (檢視vsftpd的配置檔案)
主配置檔案為
/etc/vsftpd/vsftpd.conf
FTP服務功能及修改對應配置檔案介紹
黑名單功能:
/etc/vsftpd/ftpusers 和 /etc/vsftpd/user_list 為黑名單檔案
功能:可以把使用者設定為黑白名單,限制使用者訪問
例:root使用者預設在黑名單中,把兩個上述檔案中的root用#號註釋即可用root使用者訪問
也可以把其他使用者加入黑名單中
(注: user_list 可以設定為白名單,在/etc/vsftpd/vsftpd.conf 配置檔案中最後一行新增 userlist_deny=NO )
新增後重啟服務,白名單的使用者可以訪問,而非白名單使用者不能訪問,當黑白名單同時存在時,黑名單優先順序大於白名單,也就是隻要出現在 黑名單就不能正常登陸服務
建議:修改配置檔案時最好先備份檔案
chroot牢籠功能:
因登陸的使用者訪問的是自身的家目錄,但可以透過命令檢視其他檔案,比如根目錄或其他配置檔案,所以可以使用chroot牢籠功能限制,只 允許登陸的使用者訪問自己的家目錄
chroot牢籠分為四種情況:
1.全部使用者不加鎖(預設,但不安全)
2.全部加鎖
3.少數使用者不加鎖
4.少數使用者加鎖
情況一:使用vim 編輯 配置檔案 /etc/vsftpd/vsftpd.conf ,並用set nu顯示行號,可以看到以下行數的配置檔案,預設不加鎖,不用修改
情況二:啟動所有普通使用者的牢籠功能(即對所有人加鎖)
按照上述步驟編輯配置檔案/etc/vsftpd/vsftpd.conf ,set nu顯示行號,去除101行#號,並新增allow_writeable_chroot=YES,如下圖所示:
情況三:給指定少數使用者不啟用牢籠功能(即少數人不加鎖)
同理編輯配置檔案,並指定白名單路徑,如下圖所示:
vim編輯/etc/vsftpd/chroot_list,新增不需要啟用牢籠功能的使用者,再重啟服務即可
情況四:給指定的少數普通使用者啟用牢籠功能(即少數人加鎖)
編輯配置檔案如下圖所示:
用#號註釋掉101行 chroot_local_user=YES,此時只有檔案/etc/vsftpd/chroot_list 中的使用者啟用了牢籠功能
最後重啟服務( 注:每次修改完配置檔案都得重啟服務 systemctl restart vsftpd)
anonymous匿名使用者功能
實際作用:實現允許anonymous匿名使用者對共享檔案具有可讀可寫的許可權
分析:想實現上述功能必須滿足以下條件
1.檔案共享軟體必須允許這個使用者有可讀可寫的許可權。
2.使用者對共享目錄自身要有可讀可寫的許可權。
3.匿名使用者僅允許上傳檔案到/var/ftp中的子目錄中。如/var/ftp/upload,且ftp匿名使用者對upload目錄要有可讀可寫許可權。
( 警告:/var/ftp目錄的屬主、屬組不允許修改,且other許可權不允許有w可寫許可權,否則用ftp匿名使用者訪問共享時會提示下面這個500錯誤:500 OOPS: vsftpd: refusing to run with writable root inside chroot()
Login failed.
421 Service not available, remote server has closed connection)
實際操作步驟:
1.編輯配置檔案/etc/vsftpd/vsftpd.conf ,去除29 , 30行的#號,再新增兩行程式碼,如圖所示:
2.用root使用者建立/var/ftp/upload目錄,許可權為777或屬主和屬組均為ftp,重啟vsftpd服務,使用ftp登陸,即可實現匿名共享
ftp服務限速功能:
即對不同使用者限制不同的檔案傳輸速度
1.在配置檔案/etc/vsftpd/vsftpd.conf 中新增如下內容:
user_config_dir=/etc/vsftpd/userconf #指定個性化配置檔案的主目錄
2.建立指定個性化配置檔案的主目錄: mkdir -pv /etc/vsftpd/userconf
使用vim 建立編輯 /etc/vsftpd/userconf/gg
新增內容: local_max_rate=2000000 #即對名為gg的使用者上傳和下載速度限制為2MB/s
vsftpd的tcp_wrapers防火牆設定:
tcp_wrapers功能:一個迷你的防火牆,可以用來做基於tcp協議的應用程式的ip安全訪問控制
配置檔案: /etc/hosts.allow (白名單) ; /etc/hosts.deny (黑名單)
!技巧:讓少數人為白戶,那麼先在hosts.deny中做拒絕所有(all)黑名單,然後在hosts.allow中做少數IP的放行白名單。
設定舉例:
格式說明: 守護程式名稱 : 主機名或IP地址
vim /etc/hosts.deny #黑名單
vsftpd:192.168.11.1 #拒絕192.168.11.1這臺主機訪問vsftpd共享
sshd:192.168.11.1 #拒絕192.168.11.1這臺主機訪問sshd共享
vsftpd虛擬使用者功能:
虛擬使用者:即非useradd建立的使用者賬號(非/etc/passwd中的賬號),而是用vim建立的屬於vsftpd的獨立使用者賬號。
虛擬使用者的優勢:可以避免系統中的使用者賬號過多,讓vsftpd檔案共享軟體獨立管理自己的使用者賬號。
虛擬使用者賬號檔案格式:
檔案中的奇數行是使用者賬號,偶數行是使用者的密碼。
例:
1.建立虛擬使用者賬號檔案:vim /etc/vsftpd/vuser.txt,輸入圖中內容,即建立虛擬使用者f1,f2,f3,密碼為123456
2.將虛擬使用者賬號轉換成加密的資料庫格式檔案。
yum install -y libdb-utils #安裝libdb-utils
cd /etc/vsftpd #cd到/etc/vsftpd目錄下
db_load -T -t hash -f /etc/vsftpd/vuser.txt /etc/vsftpd/vuserdb.db #用hash演算法對vuser.txt轉化格式為.db
chmod -v 600 /etc/vsftpd/vuserdb.db #給予檔案/etc/vsftpd/vuserdb.db 許可權
3.在vsftpd的pam認證檔案中新增虛擬使用者賬號檔案的認證關係。
vim /etc/pam.d/vsftpd , 在檔案開頭插入以下兩行,並如圖:
auth sufficient pam_userdb.so db=/etc/vsftpd/vuserdb
account sufficient pam_userdb.so db=/etc/vsftpd/vuserdb (程式碼作用:既能讓虛擬使用者訪問共享,也能讓普通使用者訪問共享。)
4.用useradd建立一個普通使用者賬號qq
useradd qq -s /sbin/nologin #建立一個名為qq的使用者,指定登入shell為.sbin/nologin
5.在vsftpd.conf配置檔案中設定一個真實使用者賬號,並將真實使用者賬號vftper和虛擬使用者賬號檔案關聯起來。
vim vsftpd.conf 在檔案最後新增如下內容:
guest_enable=YES #允許來賓使用者訪問共享,即虛擬使用者
guest_username=vftper # 指定來賓使用者名稱為vftper使用者(即第4步新建的使用者)
user_config_dir=/etc/vsftpd/vuser_conf #指定使用者配置檔案目錄
allow_writeable_chroot=YES #允許chroot功能下執行寫操作(必須加此行,否則會登入失敗)
6.給每個虛擬使用者賬號設定獨立的共享訪問速度和訪問目錄。
cd /etc/vsftpd
mkdir -v vuser_conf
cd vuser_conf #在/etc/vsftpd目錄下,建立vuser_conf目錄
#建立f1、f2虛擬使用者的會員個性化設定檔案,允許f1這個虛擬使用者在自己的家目錄中可讀可寫。
touch f1 f2
mkdir -v /home/vftper/{f1,f2}
chmod -v 777 /home/vftper/{f1,f2}
vim f1 輸入內容:
write_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
local_root=/home/vftper/f1
#允許f2這個使用者在自己的家目錄中可讀,但不可寫。
vim f2 輸入內容:
local_root=/home/vftper/f2 #只寫這行,其餘行可以不寫
write_enable=NO
anon_world_readable_only=NO
anon_upload_enable=NO
anon_mkdir_write_enable=NO
anon_other_write_enable=NO
7.重啟vsftpd服務,並分別用虛擬使用者賬號訪問共享。
systemctl restart vsftpd
ftp 192.168.11.11 -->用f1、f2虛擬使用者分別訪問共享,測試檔案的上傳。
到此,vsftpd的虛擬使用者專案試驗完畢。
ftp和lftp客戶端程式的操作功能:
兩者都是客戶端應用程式
ftp命令格式: ftp 192.168.11.11
lftp命令格式:lftp 192.168.11.11 -u qq,0 #使用密碼為0,使用者名稱為qq的賬號登陸
ftp 和 lftp 的區別: ftp模式下傳輸檔案需指定檔案的根目錄,lftp則不需指定檔案的根目錄
關於ftp的服務部署即配置檔案的設定就介紹到這裡!
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/30345407/viewspace-2677967/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- linux ftp服務搭建LinuxFTP
- <Linux下FTP服務的搭建>LinuxFTP
- FTP服務搭建FTP
- 配置ftp服務FTP
- 如何在 Linux 中搭建 FTP 服務LinuxFTP
- Linux下FTP和TFTP服務配置LinuxFTP
- AIX FTP服務配置AIFTP
- linux下開啟並配置FTP服務LinuxFTP
- Linux FTP服務LinuxFTP
- FTP服務(vsftpd)配置FTP
- ubuntu下搭建ftp服務端UbuntuFTP服務端
- 網路拓撲—FTP服務搭建FTP
- 寶塔Linux皮膚FTP無法連線的解決辦法-搭建FTP 服務LinuxFTP
- linux之FTP服務vsftpd和pure-ftpd常用配置LinuxFTP
- 基於ECS搭建FTP服務(阿里雲)FTP阿里
- FTP檔案服務搭建與同步傳輸FTP
- <linux下extmail服務的搭建>LinuxAI
- 如何在linux下開啟FTP服務LinuxFTP
- apache網路服務的搭建和配置Apache
- FTP服務端部署FTP服務端
- Linux 下搭建 SVN 服務Linux
- CentOS.7下安裝配置FTP和SFTP服務CentOSFTP
- 天翼云云主機上搭建FTP服務最佳實踐FTP
- ubuntu開啟ftp服務UbuntuFTP
- Azure上部署FTP服務FTP
- ftp服務端安裝FTP服務端
- Kali Linux常用服務配置教程安裝及配置DHCP服務Linux
- linux vsftpd 服務配置LinuxFTP
- mysql for linux 配置多服務MySqlLinux
- Linux RedHat ftp配置LinuxRedhatFTP
- Kali Linux常用服務配置教程DHCP服務原理Linux
- 教你如何在CentOS7系統中配置ftp服務CentOSFTP
- linux環境ftp搭建LinuxFTP
- Kali Linux常用服務配置教程啟動DHCP服務Linux
- samba服務的配置(linux共享目錄)SambaLinux
- LINUX下VNC服務的安裝配置LinuxVNC
- mac下開啟FTP服務MacFTP
- Linux NTP服務配置 for Oracle RACLinuxOracle