使用vsftpd搭建FTP伺服器並實現檔案上傳與下載
阿新 • • 發佈:2022-12-11
一、前期準備
1、倉庫源準備
# 掛載光碟
mount /dev/sr0 /mnt
# 刪除倉庫原始檔
rm -rf /etc/yum.repos.d/*
# 編寫倉庫原始檔
vim /etc/yum.repos.d/vsftpd.repo
# 內容
[vsftpd]
name=centos7
baseurl=file:///mnt
enabled=1
gpgcheck=0
2、vsftpd 安裝、使用
- 安裝
yum clean all # 清除快取
yum repolist all # 可略
yum install vsftpd -y
systemctl start vsftpd
ps -e | grep ftp systemctl status vsftpd.service
- 使用
systemctl start vsftpd # 啟動
systemctl restart vsftpd # 重啟
systemctl enable vsftpd # 自啟動
3、vsftpd.conf 主配置檔案
- 清除帶#號的註釋資訊
mv /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak
- 原始內容
# 拷貝一個使用 grep -v "#" /etc/vsftpd/vsftpd.conf.bak > /etc/vsftpd/vsftpd.conf cat /etc/vsftpd/vsftpd.conf -n # 如下: anonymous_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
二、使用者登入
登入方式 ✨
# 分配一個虛擬機器ip
dhclient
ifconfig
#【第二行的ip就是虛擬機器ip】
- 登入
# 此電腦
ftp://虛擬機器ip
許可權與資源目錄設定
- 賦予許可權
# 資源目錄 ls -ld /var/ftp/pub chmod 777 /var/ftp/pub ls -ld /var/ftp/pub systemctl restart vsftpd # 防火牆 systemctl stop firewalld # 臨時關閉防火牆 systemctl status firewalld # 檢視狀態: 若有dead字樣表示成功 # selinux setenforce 0 # 臨時關閉 getenforce # 檢視狀態:若為Permissive表示成功
- vsftpd 資源目錄
# 測試檔案備用
cd /var/ftp/pub
touch demo.tar # ftp連線成功後可看到此檔案
window本地
- 開啟ftp
控制面板 --> 程式 --> 啟用或關閉Windows功能
- 防火牆開放ftp
控制面板 --> 系統安全 --> 允許應用通過Windows防火牆
1、匿名使用者登入
# 拷貝一個使用
grep -v "#" /etc/vsftpd/vsftpd.conf.bak > /etc/vsftpd/vsftpd.conf
- vsftp 配置
vim /etc/vsftpd/vsftpd.conf
# 新增
anon_root=/var/ftp
anon_upload_enable=YES
anon_mkdir_write_enable=YES
systemctl restart vsftpd
# 本地直接ftp連線即可(密碼啥的都不用)
2、本地使用者登入
# 拷貝一個使用
grep -v "#" /etc/vsftpd/vsftpd.conf.bak > /etc/vsftpd/vsftpd.conf
- vsftp 配置
vim /etc/vsftpd/vsftpd.conf
# 修改
anonymous_enable=NO
systemctl restart vsftpd
# 本地直接ftp連線即可(密碼啥的都不用)
3、虛擬使用者登入
- 建立虛擬使用者
mkdir /vftp
vim /vftp/vuser.txt
# 內容
lencamo
666666
zhangsan
555555
- 使虛擬使用者生效
db_load -T -t hash -f /vftp/vuser.txt /vftp/vuser.db
chmod 700 /vftp/vuser.db
cp /etc/pam.d/vsftpd /etc/pam.d/vsftpd.bak # 備份
vim /etc/pam.d/vsftpd
# 新增
auth required pam_userdb.so db=/vftp/vuser
account required pam_userdb.so db=/vftp/vuser
useradd -d /var/ftp/vuser vuser
chown vuser.vuser /var/ftp/vuser
chmod 555 /var/ftp/vuser
ls -ld /var/ftp/vuser
- vsftp 配置
# 拷貝一個使用
grep -v "#" /etc/vsftpd/vsftpd.conf.bak > /etc/vsftpd/vsftpd.conf
rm /etc/vsftpd/vsftpd.conf
vim /etc/vsftpd/vsftpd.conf
# 內容
anonymous_enable=NO
local_enable=YES
chroot_local_user=YES
allow_writeable_chroot=YES
write_enable=YES
guest_enable=YES
guest_username=vuser
listen=YES
pam_service_name=vsftpd
local_root=/var/ftp
anon_upload_enable=YES
anon_mkdir_write_enable=YES
systemctl restart vsftpd
# ftp連線(使用虛擬使用者登入即可)