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

一、簡要說明
ftp:文件傳輸協(xié)議
vsftpd:非常安全的ftp進(jìn)程
二、工作模式
ftp的命令端口為21
主動模式(不推薦):ftp數(shù)據(jù)端口為20,服務(wù)器連接客戶端,因?yàn)榭蛻舳硕加蟹阑饓?,所有使用不?br/>被動模式(推薦):服務(wù)器告訴客戶端我開放的端口,客戶端連接服務(wù)器
三、安裝vsftpd

站在用戶的角度思考問題,與客戶深入溝通,找到鎮(zhèn)平網(wǎng)站設(shè)計與鎮(zhèn)平網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個性化、用戶體驗(yàn)好的作品,建站類型包括:網(wǎng)站設(shè)計、網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、域名申請、網(wǎng)站空間、企業(yè)郵箱。業(yè)務(wù)覆蓋鎮(zhèn)平地區(qū)。

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)用戶配置(不推薦)
因?yàn)閒tp是明文傳輸,如果被抓包了就能看到系統(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中進(jìn)行配置

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

5.為虛擬用戶進(jìn)行單獨(dú)權(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.重啟并加入開機(jī)啟動項

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驗(yàn)證文件模塊名
userlist_enable=YES  啟用user_list文件
userlist_deny=NO 當(dāng)為yes時,列表中的不能登錄,當(dāng)為no時只有列表中的用戶才能登陸
tcp_wrappers=YES 可以通過host文件進(jìn)行限制
nax_clients = 10 最多客戶端連接數(shù)
max_per_ip = 10 每個ip可以連接幾個
anon_world_readable_only=YES 是否允許下載,YES不能下載,NO可以

分享名稱:centos7基于vsftpd的ftp服務(wù)使用
文章分享:http://muchs.cn/article38/geccsp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站維護(hù)網(wǎng)頁設(shè)計公司、網(wǎng)站收錄外貿(mào)建站、網(wǎng)站策劃、微信小程序

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都app開發(fā)公司