CentOS7下ftp服務器搭建


FTP(File Transfer Protocol,文件傳輸協議) 是 TCP/IP 協議組中的協議之一。

FTP協議包括兩個組成部分,

其一為FTP服務器,其二為FTP客戶端。其中FTP服務器用來存儲文件,

用戶可以使用FTP客戶端通過FTP協議訪問位於FTP服務器上的資源。

在開發網站的時候,通常利用FTP協議把網頁或程序傳到Web服務器上。

此外,由於FTP傳輸效率非常高,在網絡上傳輸大的文件時,一般也采用該協議。

 

1.安裝ftp服務

在centos7系統上

[root@lsx04-ftp ~]# yum install vsftpd -y
[root@lsx04-ftp ~]# rpm -qa |grep vsftpd       //查詢已安裝的軟件過濾出vsftpd的信息//

得到:

vsftpd-3.0.2-25.el7.x86_64

安裝成功

2.開啟VSFTPD

開啟服務

[root@lsx04-ftp ~]# systemctl start vsftpd

查詢21端口

[root@lsx04-ftp ~]# netstat -nultp | grep 21

此時可以通過ip地址訪問服務器(需要防火牆開放21端口,已經配置文件允許匿名訪問)

3.配置ftp權限

[root@lsx04-ftp ~]# vi /etc/vsftpd/vsftpd.conf

添加或修改成

# 禁用匿名用戶
anonymous_enable=NO

# 禁止切換根目錄
chroot_local_user=YES

# 設置FTP主目錄
local_root=/data/ftp

# 配置FTP被動模式的端口
pasv_min_port=30000
pasv_max_port=30000

 

重啟vsftpd服務

4.創建FTP用戶

在centos添加用戶ftpuser

修改好密碼后:

[root@lsx04-ftp ~]# usermod -s /sbin/nologin ftpuser   //限制其登錄

為用戶配主目錄

 

5.SElinux配置

VSFTPD是一個FTP服務器程序,然后SELinux是CentOS的防火牆組件, vsftpd 默認被 SELinux 攔截

解決方法有兩種:

方法1:

降低SElinux安全級別

vi /etc/sysconfig/selinux

設置SELINUX=enforcing改為SELINUX=permissive

重啟vsftpd服務

方法2:

在linux中設置ftp允許訪問

[root@lsx04-ftp ~]# getsebool -a | grep ftp

設置ftpd_full_access為on

[root@lsx04-ftp ~]# setsebool -P ftpd_full_access=on

重啟vsftpd服務,即可正常訪問FTP

 

 

備注:

[root@lsx04-ftp ~]# firewall-cmd --add-service=ftp --permanent  //添加ftp服務到防火牆

ftp配置文件說明:

anonymous_enable=NO  #允許匿名用戶訪問為了安全選擇關閉
local_enable=YES   # 允許本地用戶登錄
write_enable=YES   # 是否允許寫入
local_umask=022  # 本地用戶上傳文件的umask
dirmessage_enable=YES #為YES則進入目錄時顯示此目錄下由message_file選項指定的文本文件(,默認為.message)的內容
xferlog_enable=YES #開啟日志

xferlog_std_format=YES #標准格式
connect_from_port_20=YES
xferlog_file=/var/log/xferlog   #ftp日志目錄

idle_session_timeout=6000 #設置客戶端連接時間

data_connection_timeout=1200 #設置數據連接時間 針對上傳,下載
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list #設置為YES則下面的控制有效
chroot_list_enable=YES #若為NO,則記錄在chroot_list_file所指定的文件(默認是/etc/vsftpd.chroot_list)中的用戶將被chroot在登錄后所在目錄中,無法離開.如果為YES,則所記錄的用戶將不被chroot.這里YES.
chroot_local_user=YES
userlist_deny=NO #若設置為YES則記錄在userlist_file選項指定文件(默認是/etc/vsftpd.user_list)中的用戶將無法login,並且將檢察下面的userlist_deny選項
userlist_enable=YES #若為NO,則僅接受記錄在userlist_file選項指定文件(默認是/etc/vsftpd.user_list)中的用戶的login請求.若為YES則不接受這些用戶的請求.
userlist_file=/etc/vsftpd/user_list #白名單
chroot_list_enable=YES
local_root=/var/ftp/pub #根目錄
listen=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM