1.使用vsftpd搭建ftp服務器
①yum安裝vsftpd
[root@test_01 ~]# yum install -y vsftpd
②爲保證安全性,添加虛擬用戶virftp,並且使該用戶無法登錄系統
[root@test_01 ~]# useradd -s /sbin/nologin virftp
③編輯虛擬用戶的密碼文件/etc/vsftpd/vsftpd_login,並在文件中寫入用戶和密碼(奇數行用戶名,偶數行密碼)
[root@test_01 ~]# vim /etc/vsftpd/vsftpd_login testuser1 1234567890 testuser2 0987654321
④修改文件權限,root用戶可讀可寫
[root@test_01 ~]# chmod 600 /etc/vsftpd/vsftpd_login
⑤將文本形式的密碼文件轉換爲計算機可識別的二進制文件
[root@test_01 ~]# db_load -T -t hash -f /etc/vsftpd/vsftpd_login /etc/vsftpd/vsftpd_login.db [root@test_01 ~]# ls /etc/vsftpd/ ftpusers vsftpd.conf vsftpd_login user_list vsftpd_conf_migrate.sh vsftpd_login.db
⑥創建虛擬用戶的配置文件目錄
[root@test_01 ~]# mkdir /etc/vsftpd/vsftpd_user_conf [root@test_01 ~]# cd /etc/vsftpd/vsftpd_user_conf [root@test_01 vsftpd_user_conf]#
⑦創建虛擬用戶配置文件,並將如下配置寫入文件中
[root@test_01 vsftpd_user_conf]# vim testuser1 local_root=/home/virftp/testuser1 anonymous_enable=NO write_enable=YES local_umask=022 anon_upload_enable=NO anon_mkdir_write_enable=NO idle_session_timeout=600 data_connection_timeout=120 max_clients=10
配置信息詳解:
local_root=/home/virftp/testuser1 ⇒ 定義x虛擬用戶的家目錄,用於文件傳輸
anonymous_enable=NO ⇒ 是否允許匿名用戶
write_enable=YES ⇒ 是否可寫
local_umask=022 ⇒ 用於定義創建的新文件&目錄時的權限
anon_upload_enable=NO ⇒ 是否允許匿名用戶上傳
anon_mkdir_write_enable=NO ⇒ 是否允許匿名用戶創建文件夾,是否可寫
idle_session_timeout=600 ⇒ 超時登錄時間限制
data_connection_timeout=120 ⇒ 數據傳輸的超時時間
max_clients=10 ⇒ 最大的客戶端數目
⑧構建虛擬用戶的家目錄
[root@test_01 vsftpd_user_conf]# touch /home/virftp/testuser1/test.txt [root@test_01 vsftpd_user_conf]# chown -R virftp:virftp /home/virftp
⑨定義密碼文件信息
[root@test_01 vsftpd_user_conf]# vim /etc/pam.d/vsftpd auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login #%PAM-1.0 session optional pam_keyinit.so force revoke auth required pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed auth required pam_shells.so auth include password-auth account include password-auth session required pam_loginuid.so session include password-auth
⑩編輯vsftpd的主配置文件,修改以下部分信息
將anonymous_enable=YES 改爲 anonymous_enable=NO
將#anon_upload_enable=YES 改爲 anon_upload_enable=NO
將#anon_mkdir_write_enable=YES 改爲 anon_mkdir_write_enable=NO
※在配置文件末尾添加如下內容
chroot_local_user=YES guest_enable=YES guest_username=virftp virtual_use_local_privs=YES user_config_dir=/etc/vsftpd/vsftpd_user_conf allow_writeable_chroot=YES
⑪啓動vdftpd服務,查看服務狀態
[root@test_01 vsftpd_user_conf]# systemctl start vsftpd [root@test_01 vsftpd_user_conf]# ps aux | grep vsftpd root 3986 0.0 0.0 53216 572 ? Ss 17:34 0:00 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf root 3988 0.0 0.0 112680 972 pts/0 S+ 17:34 0:00 grep --color=auto vsftpd
⑫在客戶端安裝lftp客戶端後,使用lftp登錄測試
[root@test_02 ~]# lftp [email protected] 口令: lftp [email protected]:~> ls -rw-r--r-- 1 1022 1022 0 Jan 18 09:17 test.txt lftp [email protected]:/>
2.使用pure-ftpd搭建ftp服務
①yum安裝pure-ftpd
[root@test_02 ~]# yum install -y pure-ftpd
②編輯配置文件/etc/pure-ftpd/pure-ftpd.conf
將包含密碼配置文件/etc/pure-ftpd/pureftpd.pdb的這一行取消註釋
PureDB /etc/pure-ftpd/pureftpd.pdb
③啓動pure-ftpd服務
[root@test_02 ~]# systemctl start pure-ftpd
④創建測試目錄以及測試用戶
[root@test_02 ~]# useradd -u 1020 pure-ftp [root@test_02 ~]# mkdir /data/ftp [root@test_02 ~]# chown -R pure-ftp:pure-ftp /data/ftp
⑤創建ftp虛擬用戶,並指定用戶家目錄
[root@test_02 ~]# pure-pw useradd ftp_usera -u pure-ftp -d /data/ftp Password: Enter it again: [root@test_02 ~]# pure-pw mkdb
⑥測試
[root@test_02 ~]# touch /data/ftp//test.txt [root@test_02 ~]# lnft [email protected] -bash: lnft: 未找到命令 [root@test_02 ~]# lftp [email protected] 口令: lftp [email protected]:~> ls drwxr-xr-x 2 1020 pure-ftp 22 Jan 18 18:33 . drwxr-xr-x 2 1020 pure-ftp 22 Jan 18 18:33 .. -rw-r--r-- 1 0 0 0 Jan 18 18:33 test.txt lftp [email protected]:/>