FTP服務器搭建
- 2021 年 3 月 5 日
- 筆記
前戲
- FTP服務器(File Transfer Protocol Server)是在互聯網上提供文件存儲和訪問服務的計算機,它們依照FTP協議提供服務。
- 常見的FTP服務器:
- linux
- Windows
以下以linux系統安裝vsftpd為例
環境準備
#關閉防火牆
[root@web02 ~]# systemctl stop firewalld
#查看selinux狀態
[root@web02 ~]# getenforce
#關閉selinux
[root@web02 ~]# setenforce 0
安裝
使用rpm包安裝ftp
#查看vsftpd軟件包是否安裝
[root@web02 ~]# rpm -qa|grep vsftpd
#安裝
[root@web02 ~]# yum install -y vsftpd
[root@web02 ~]# systemctl status vsftpd
使用系統光盤中的安裝包
[root@web02 ~]# mount /dev/cdrom /mnt/
[root@web02 ~]# cd /mnt/Packages/
[root@web02 Packages]# ll|grep vsftpd
-rw-rw-r-- 1 root root 175412 Nov 12 2018 vsftpd-3.0.2-25.el7.x86_64.rpm
[root@web02 Packages]# rpm -ivh vsftpd-3.0.2-25.el7.x86_64.rpm
vsftpd配置文件詳解
#配置文件
[root@web02 ~]# rpm -ql vsftpd
/etc/vsftpd/vsftpd.conf #主配置文件
/var/ftp/pub #默認情況下,匿名用戶根目錄
#用戶限制相關文件
[root@web02 ~]# ll /etc/vsftpd/
total 24
-rw------- 1 root root 125 Oct 31 2018 ftpusers #用戶黑名單
-rw------- 1 root root 361 Oct 31 2018 user_list #用戶白名單(由配置文件決定)
-rw-r--r-- 1 root root 534 Mar 6 01:06 vsftpd.conf
-rwxr--r-- 1 root root 338 Oct 31 2018 vsftpd_conf_migrate.sh #vsftpd 操作的一些變量和設置腳本
#user_list: 指定的用戶是否可以訪問ftp服務器,通過vsftpd.conf文件中的userlist_deny的配置來決定配置中的用戶是否可以訪問,userlist_enable=YES ,userlist_deny=YES ,userlist_file=/etc/vsftpd/user_list 這三個配置允許文件中的用戶訪問FTP
#vsftpd主配置文件
[root@web02 ~]# vim /etc/vsftpd/vsftpd.conf
anonymous_enable=YES #允許匿名用戶訪問
anon_umask=022
anon_upload_enable=YES #控制是否允許匿名用戶上傳文件
anon_mkdir_write_enable=YES #控制是否允許匿名用戶創建目錄
anon_other_write_enable=YES #控制匿名用戶上傳、下載、創建、刪除權限
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=NO
listen_ipv6=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
#限制用戶目錄切換
#chroot_list_enable=YES
#chroot_list_file=/etc/vsftpd/chroot_list
#chroot_local_use=NO
#用戶白名單
#userlist_enable=YES
#userlist_deny=NO
#userlist_file=/etc/vsftpd/vsftpd.user_list
#注意,匿名用戶只有訪問權限
#注意匿名、登錄用戶的家目錄權限為755
創建vsftpd登錄用戶
[root@web02 ~]# useradd test
[root@web02 ~]# passwd test
權限修改
[root@web02 ~]# chown -R ftp.ftp /var/ftp
客戶端連接服務端
命令行連接
[root@web02 ~]# ftp 10.197.184.74
Connected to 10.197.184.74 (10.197.184.74).
220 (vsFTPd 3.0.2)
Name (10.197.184.74:root): test
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> quit
221 Goodbye.