溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

centos7基于vsftpd的ftp服務(wù)使用

發(fā)布時間:2020-06-09 02:04:16 來源:網(wǎng)絡(luò) 閱讀:315 作者:tttfffddd158 欄目:系統(tǒng)運維

一、簡要說明
ftp:文件傳輸協(xié)議
vsftpd:非常安全的ftp進程
二、工作模式
ftp的命令端口為21
主動模式(不推薦):ftp數(shù)據(jù)端口為20,服務(wù)器連接客戶端,因為客戶端都有防火墻,所有使用不便
被動模式(推薦):服務(wù)器告訴客戶端我開放的端口,客戶端連接服務(wù)器
三、安裝vsftpd

yum -y install vsftpd
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config

安裝完成后,防火墻設(shè)置開啟21和配置文件中(pasv_min_port 到 pasv_max_port)的端口
配置文件:/etc/vsftpd/vsftpd.conf
主程序:/usr/sbin/vsftpd
四、被動模式配置ftp
1.通用配置

#anonymous 
anonymous_enable=NO
#local system user
local_enable=YES
allow_writeable_chroot=YES
#passive mode and port
pasv_enable=YES
pasv_min_port=20000
pasv_max_port=20999
#listen
listen=YES
listen_ipv6=NO
connect_from_port_20=YES
#log 
xferlog_enable=YES
xferlog_file=/var/log/xferlog
#welcome info
dirmessage_enable=YES
#trans limit
idle_session_timeout=120
data_connection_timeout=120
tcp_wrappers=YES
max_clients=10
max_per_ip=10
#safe
local_umask=022
chroot_local_user=YES

2.匿名用戶配置(不推薦)
匿名用戶anonymous,對應(yīng)服務(wù)器的ftp用戶,訪問的文件夾為/var/ftp,除root不能有寫權(quán)限
開啟配置

#anonymous 
anonymous_enable=YES

3.系統(tǒng)用戶配置(不推薦)
因為ftp是明文傳輸,如果被抓包了就能看到系統(tǒng)用戶的用戶名和密碼,導(dǎo)致服務(wù)器不安全
相關(guān)配置

#local system user
local_enable=YES
write_enable=YES

五、虛擬用戶配置(推薦)
可以基于數(shù)據(jù)庫和文件兩種模式,文件模式配置如下:
1.創(chuàng)建用戶數(shù)據(jù)庫文件
vm_user.txt格式必須是一行用戶名一行密碼如
tom
123456

vi /etc/vsftpd/vm_user.txt
cd /etc/vsftpd/
db_load -T -t hash -f vm_user.txt vm_user.db
chmod 600 vm_user.db

2.創(chuàng)建映射的用戶和FTP目錄

useradd -s /sbin/nologin ftpuser

3.創(chuàng)建pam文件

vi /etc/pam.d/vm-vsftpd
auth required pam_userdb.so db=/etc/vsftpd/vm_user
account required pam_userdb.so db=/etc/vsftpd/vm_user

4.在vsftp.conf中進行配置

#vm_ftp
guest_enable=YES
guest_username=ftpuser
pam_service_name=vm-vsftpd
user_config_dir=/etc/vsftpd/vm_ftp.d/

5.為虛擬用戶進行單獨權(quán)限設(shè)置

mkdir /etc/vsftpd/vm_ftp.d/
mkdir /home/ftpuser/life
chown -R ftpuser:ftpuser /home/ftpuser/
vi /etc/vsftpd/vm_ftp.d/tom
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/ftpuser/life

6.完整的vsftpd.conf配置如下

#anonymous 
anonymous_enable=NO
#local system user
local_enable=YES
allow_writeable_chroot=YES
#passive mode and port
pasv_enable=YES
pasv_min_port=20000
pasv_max_port=20999
#listen
listen=YES
listen_ipv6=NO
connect_from_port_20=YES
#log 
xferlog_enable=YES
xferlog_file=/var/log/xferlog
#welcome info
dirmessage_enable=YES
#trans limit
idle_session_timeout=120
data_connection_timeout=120
tcp_wrappers=YES
max_clients=10
max_per_ip=10
#safe
local_umask=022
chroot_local_user=YES

#vm_ftp
guest_enable=YES
guest_username=ftpuser
pam_service_name=vm-vsftpd
user_config_dir=/etc/vsftpd/vm_ftp.d/

7.重啟并加入開機啟動項

systemctl restart vsftpd
systemctl enable vsftpd

六、基于mysql或mariadb的虛擬文件配置
基本配置同上面一樣,不同之處在于修改pam模塊文件和數(shù)據(jù)庫建表
1.pam文件內(nèi)容改為,crypt為0表示數(shù)據(jù)庫明文存放,1位加密存放

auth required  /usr/lib64/security/pam_mysql.so user=ftpuser passwd=ftp123456 host=localhost db=mylab  table=ftp_user  usercolumn=name  passwdcolumn=password  crypt=0
account required /usr/lib64/security/pam_mysql.so user=ftpuser  passwd=ftp123456 host=localhost  db=mylab  table=ftp_user usercolumn=name passwdcolumn=password  crypt=0

2.安裝pam所需文件

yum -y install pam-devel

安裝pam_mysql-0.7RC1

tar xf  pam_mysql-0.7RC1.tar.gz
cd pam_mysql-0.7RC1
./configure --with-mysql=/home/program/mariadb/ --with-pam-mods-dir=/lib64/security/
make & make install

pam模塊文件需要用到數(shù)據(jù)庫的庫文件所以

vi /etc/ld.so.conf.d/mysql.conf
/home/program/mariadb/lib
ldconfig

3.數(shù)據(jù)庫建立表和授權(quán)用戶

create table ftp_user(id int not null auto_increment primary key,name char(20) binary not null,password char(48) binary not null);
insert into ftp_user(name,password) values('ftphome','123'),('ftpwork','456');
grant select on mylab.ftp_user to 'ftpuser'@'localhost' identified by '123456';
flush privileges;

七、配置說明

anonymous_enable=YES 是否啟用匿名用戶
local_enable=YES 是否啟動系統(tǒng)用戶
write_enable=YES 可以上傳文件
anon_upload_enable=YES 默認(rèn)匿名用戶不能上傳,開啟上傳,但是默認(rèn)var/pub目錄本身沒有寫權(quán)限,
anon_mkdir_write_enable=YES 匿名用戶可以創(chuàng)建文件夾
anon_other_write_enable=YES 匿名用戶其他寫權(quán)限
dirmessage_enable=YES 是否顯示歡迎信息 目錄下的隱藏文件.message為內(nèi)容
xferlog_enable=YES 是否啟動傳輸日志
xferlog_file=/var/log/xferlog 指定日志文件
xferlog_std_format=YES 日志文件是否使用標(biāo)準(zhǔn)格式
chown_uploads=YES 上傳后是否改變屬主
chown_username=whoever 改變的屬主為
idle_session_timeout=600 命令連接超時
data_connection_timeout=120 數(shù)據(jù)連接超時
ascii_upload_enable=YES 以文本模式上傳
ascii_download_enable=YES 以文本模式下載
chroot_local_user=YES 全部用戶鎖定到家目錄
chroot_list_enable=YES 需要例外
chroot_list_file=/etc/vsftpd/chroot_list 例外用戶列表
allow_writeable_chroot=YES 當(dāng)設(shè)置禁錮目錄后,默認(rèn)對根文件夾沒有寫權(quán)限才能登陸,該設(shè)置可以啟用寫入
listen=YES 是否監(jiān)聽
pam_service_name=vsftpd pam驗證文件模塊名
userlist_enable=YES  啟用user_list文件
userlist_deny=NO 當(dāng)為yes時,列表中的不能登錄,當(dāng)為no時只有列表中的用戶才能登陸
tcp_wrappers=YES 可以通過host文件進行限制
nax_clients = 10 最多客戶端連接數(shù)
max_per_ip = 10 每個ip可以連接幾個
anon_world_readable_only=YES 是否允許下載,YES不能下載,NO可以
向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI