FTP

FTP是File Transfer Protocol (文件傳輸協議)的簡稱,用於internet上控制文件的雙向傳輸。
FTP也是一個應用程序,基於不同操作系統有不同的FTP應用程序,而所有這些應用程序都遵守同一種協議以傳輸文件。
在FTP的使用當中,用戶經常遇到兩種概念:下載和上傳

FTP工作於應用層,監聽tcp21號端口,是一種c/s架構的應用程序。

搭建ftp服務

1.安裝wget 刪掉本地源
[root@hyj ~]# yum install wget -y
[root@hyj ~]# cd /etc/yum.repos.d/
[root@hyj yum.repos.d]# ls
CentOS-Base.repo CentOS-fasttrack.repo CentOS-Vault.repo
CentOS-CR.repo CentOS-Media.repo
CentOS-Debuginfo.repo CentOS-Sources.repo
[root@hyj yum.repos.d]# rm -rf ./*
[root@hyj yum.repos.d]# ls

2.從網上下載網絡源
[root@hyj yum.repos.d]# wget http://mirrors.163.com/.help/CentOS7-Base-163.repo
[root@hyj ~]# sed -i 's/\$releasever/7/g' /etc/yum.repos.d/CentOS7-Base-163.repo
[root@hyj ~]# yum clean all
3.下載安裝擴展源
[root@hyj ~]# yum install epel-release -y
4下載安裝vsftpd
[root@hyj ~]# yum install vsftpd -y

vsftpd虛擬用戶配置
1.創建文本格式的用戶名,密碼列表,例如添加兩個用戶hejie,zhengran,密碼分別爲123,456
[root@hyj ~]# echo 'hejie' >> /etc/vsftpd/vu.list
[root@hyj ~]# echo '123' >> /etc/vsftpd/vu.list
[root@hyj ~]# echo 'zhengran' >> /etc/vsftpd/vu.list
[root@hyj ~]# echo '456' >> /etc/vsftpd/vu.list
[root@hyj ~]# cat /etc/vsftpd/vu.list
hejie
123
zhengran
456

//這裏的用戶名和密碼是一一對應的,前面是賬號,後面跟的是密碼
//安裝db4工具,將剛創建的文本格式用戶名、密碼文件使用db4工具裝換成數據庫文件
//-T 表示轉換,-t表示加密方式,使用hash算法加密
[root@hyj ~]# yum install db4* -y
[root@hyj ~]# db_load -T -t hash -f /etc/vsftpd/vu.list /etc/vsftpd/vu.db
[root@hyj ~]# ls /etc/vsftpd/
ftpusers user_list vsftpd.conf vsftpd_conf_migrate.sh vu.db vu.list

//爲提高虛擬用戶賬號文件的安全性,應該將文件權限設置爲600,避免數據外泄
[root@hyj ~]# chmod 600 /etc/vsftpd/vu.
[root@hyj ~]# ll /etc/vsftpd/vu.

-rw-------. 1 root root 12288 Aug 12 18:24 /etc/vsftpd/vu.db
-rw-------. 1 root root 23 Aug 12 18:18 /etc/vsftpd/vu.list

//添加虛擬用戶賬號、創建ftp根目錄。例如將要使用的ftp根目錄設置爲/var/ftproot,映射賬號的名稱爲vftp,可進行如下操作
[root@hyj ~]# useradd -d /var/ftproot -s /sbin/nologin vftp
[root@hyj ~]# chmod 755 /var/ftproot/
[root@hyj ~]# ll /var/ftproot/ -d
drwxr-xr-x. 2 vftp vftp 62 Aug 12 18:31 /var/ftproot/

//爲虛擬用戶建立PAM認證
[root@hyj ~]# vi /etc/pam.d/vsftpd
#%PAM-1.0
auth required pam_userdb.so db=/etc/vsftpd/vu
account required pam_userdb.so db=/etc/vsftpd/vu

//修改vsftpd配置文件
[root@hyj ~]# cat >> /etc/vsftpd/vsftpd.conf << EOF

guest_enable=YES //是否開啓虛擬用戶
guest_username=vftp //虛擬用戶是誰
user_config_dir=/etc/vsftpd/vusers_dir // 授權ftp虛擬用戶所在目錄
allow_writeable_chroot=YES //允許被禁錮的用戶家目錄有寫權限
EOF

//有了上述配置後,就可以在/etc/vsftpd/vusers_dir目錄中爲每個虛擬用戶分別建立配置文件了
例如,若要使虛擬用戶tom能夠上傳文件,創建目錄,而jerry只有默認的下載權限
[root@hyj ~]# mkdir /etc/vsftpd/vusers_dir
[root@hyj ~]# ll /etc/vsftpd/
total 32
-rw-------. 1 root root 125 Aug 3 2017 ftpusers
-rw-------. 1 root root 361 Aug 3 2017 user_list
-rw-------. 1 root root 5133 Aug 12 18:49 vsftpd.conf
-rwxr--r--. 1 root root 338 Aug 3 2017 vsftpd_conf_migrate.sh
-rw-------. 1 root root 12288 Aug 12 18:24 vu.db
-rw-------. 1 root root 23 Aug 12 18:18 vu.list
drwxr-xr-x. 2 root root 6 Aug 12 19:14 vusers_dir

//設置hejie用戶可上傳文件,創建目錄
[root@hyj ~]# echo 'anon_upload_enable=YES' >> /etc/vsftpd/vusers_dir/hejie
[root@hyj ~]# echo 'anon_mkdir_enable=YES' >> /etc/vsftpd/vusers_dir/hejie
//設置zhengran用戶只有默認的下載權限,只需創建一個名爲zhengran的空文件即可
root@hyj ~]# touch /etc/vsftpd/vusers_dir/zhengran

//關閉防火牆 啓動服務 查看端口起來沒
[root@hyj ~]# systemctl start vsftpd
[root@hyj ~]# ss -antl
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 :22 :
LISTEN 0 100 127.0.0.1:25
:
LISTEN 0 32 :::21 :::

LISTEN 0 128 :::22 :::
LISTEN 0 100 ::1:25 :::

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