一、簡要說明
ftp:文件傳輸協議
vsftpd:非常安全的ftp進程
二、工作模式
ftp的命令端口為21
主動模式(不推薦):ftp數據端口為20,服務器連接客戶端,因為客戶端都有防火墻,所有使用不便
被動模式(推薦):服務器告訴客戶端我開放的端口,客戶端連接服務器
三、安裝vsftpd
站在用戶的角度思考問題,與客戶深入溝通,找到鎮平網站設計與鎮平網站推廣的解決方案,憑借多年的經驗,讓設計與互聯網技術結合,創造個性化、用戶體驗好的作品,建站類型包括:網站設計、網站制作、企業官網、英文網站、手機端網站、網站推廣、域名申請、網站空間、企業郵箱。業務覆蓋鎮平地區。
yum -y install vsftpd
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
安裝完成后,防火墻設置開啟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,對應服務器的ftp用戶,訪問的文件夾為/var/ftp,除root不能有寫權限
開啟配置
#anonymous
anonymous_enable=YES
3.系統用戶配置(不推薦)
因為ftp是明文傳輸,如果被抓包了就能看到系統用戶的用戶名和密碼,導致服務器不安全
相關配置
#local system user
local_enable=YES
write_enable=YES
五、虛擬用戶配置(推薦)
可以基于數據庫和文件兩種模式,文件模式配置如下:
1.創建用戶數據庫文件
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.創建映射的用戶和FTP目錄
useradd -s /sbin/nologin ftpuser
3.創建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.為虛擬用戶進行單獨權限設置
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模塊文件和數據庫建表
1.pam文件內容改為,crypt為0表示數據庫明文存放,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模塊文件需要用到數據庫的庫文件所以
vi /etc/ld.so.conf.d/mysql.conf
/home/program/mariadb/lib
ldconfig
3.數據庫建立表和授權用戶
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 是否啟動系統用戶
write_enable=YES 可以上傳文件
anon_upload_enable=YES 默認匿名用戶不能上傳,開啟上傳,但是默認var/pub目錄本身沒有寫權限,
anon_mkdir_write_enable=YES 匿名用戶可以創建文件夾
anon_other_write_enable=YES 匿名用戶其他寫權限
dirmessage_enable=YES 是否顯示歡迎信息 目錄下的隱藏文件.message為內容
xferlog_enable=YES 是否啟動傳輸日志
xferlog_file=/var/log/xferlog 指定日志文件
xferlog_std_format=YES 日志文件是否使用標準格式
chown_uploads=YES 上傳后是否改變屬主
chown_username=whoever 改變的屬主為
idle_session_timeout=600 命令連接超時
data_connection_timeout=120 數據連接超時
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 當設置禁錮目錄后,默認對根文件夾沒有寫權限才能登陸,該設置可以啟用寫入
listen=YES 是否監聽
pam_service_name=vsftpd pam驗證文件模塊名
userlist_enable=YES 啟用user_list文件
userlist_deny=NO 當為yes時,列表中的不能登錄,當為no時只有列表中的用戶才能登陸
tcp_wrappers=YES 可以通過host文件進行限制
nax_clients = 10 最多客戶端連接數
max_per_ip = 10 每個ip可以連接幾個
anon_world_readable_only=YES 是否允許下載,YES不能下載,NO可以
分享名稱:centos7基于vsftpd的ftp服務使用
文章分享:http://m.kartarina.com/article38/geccsp.html
成都網站建設公司_創新互聯,為您提供網站維護、網頁設計公司、網站收錄、外貿建站、網站策劃、微信小程序
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯