1. 程式人生 > >CentOS7 配置 vsftpd 服務

CentOS7 配置 vsftpd 服務

1、安裝vsftpd
yum install -y vsftpd

2、編輯配置檔案
vi /etc/vsftpd/vsftpd.conf

#是否開啟匿名使用者,匿名都不安全,不要開
anonymous_enable=NO


#允許本機賬號登入FTP
local_enable=YES


#允許賬號都有寫操作
write_enable=YES


#local_umask的意思是指:
#    檔案目錄許可權:777-022=755
#    檔案許可權:666-022=644
#    這有點反人類了,並且沒有人跟我說是減去的。注意理解!!!
local_umask=022 #匿名使用者是否有上傳檔案的功能,不要開 #anon_upload_enable=YES #匿名使用者是否有建立資料夾的功能,不要開 #anon_mkdir_write_enable=YES #進入某個目錄的時候,是否在客戶端提示一下 dirmessage_enable=YES #日誌記錄 xferlog_enable=YES #開放port模式的20埠的連線 connect_from_port_20=YES #允許沒人認領的檔案上傳的時候,更改掉所屬使用者 #chown_uploads=YES #chown_uploads=YES的前提下,所屬的使用者
#chown_username=whoever #日誌存放的地方 #xferlog_file=/var/log/xferlog #日誌成為std格式 xferlog_std_format=YES #使用者多久不管,伺服器會主動斷開連線,單位秒 #idle_session_timeout=600 #資料連線超時 #data_connection_timeout=120 #以 ftpsecure 作為此一服務執行者的許可權。 #因為 ftpsecure 的許可權相當的低,因此即使被入侵,入侵者僅能取得nobody 的許可權喔! #nopriv_user=ftpsecure #非同步停用,由客戶發起
#async_abor_enable=YES #使用ascii格式上傳檔案 #ascii_upload_enable=YES #使用ascii格式下載檔案 #ascii_download_enable=YES #歡迎詞 #ftpd_banner=Welcome to blah FTP service. #以anonymous使用者登入時候,是否禁止掉名單中的emaill密碼。 #deny_email_enable=YES #以anonymous使用者登入時候,所禁止emaill密碼名單。 #banned_email_file=/etc/vsftpd/banned_emails #限制使用者只能在自己的目錄活動 chroot_local_user=YES #例外名單,如果是YES的話,這個有點怪,不懂別亂開,上面的選項會跟這個名單反調(會被上面的選項影響)。 #chroot_list_enable=YES #chroot_list_file=/etc/vsftpd/chroot_list #是否允許使用ls -R等命令 ls_recurse_enable=NO #監聽ipv4埠,開了這個就說明vsftpd可以獨立執行,不用依賴其他服務。 listen=YES #監聽ipv6埠,還沒普及呢! # listen_ipv6=YES #pam模組的名稱,放置在 /etc/pam.d/vsftpd ,認證用 pam_service_name=vsftpd #使用允許登入的名單 userlist_enable=YES #限制允許登入的名單,前提是userlist_enable=YES,其實這裡有點怪~! userlist_deny=NO #允許 限制在自己的目錄活動的使用者 擁有寫許可權 allow_writeable_chroot=YES #Tcp wrappers : Transmission Control Protocol (TCP) Wrappers 為由 inetd 生成的服務提供了增強的安全性。 tcp_wrappers=YES
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107

乾淨版:

anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
#anon_upload_enable=YES
#anon_mkdir_write_enable=YES
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
#chown_uploads=YES
#chown_username=whoever
#xferlog_file=/var/log/xferlog
xferlog_std_format=YES
#idle_session_timeout=600
#data_connection_timeout=120
#nopriv_user=ftpsecure
#async_abor_enable=YES
#ascii_upload_enable=YES
#ascii_download_enable=YES
#ftpd_banner=Welcome to blah FTP service.
#deny_email_enable=YES
#banned_email_file=/etc/vsftpd/banned_emails
chroot_local_user=YES
#chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
ls_recurse_enable=NO
listen=YES
# listen_ipv6=YES

pam_service_name=vsftpd
userlist_enable=YES
userlist_deny=NO
allow_writeable_chroot=YES
tcp_wrappers=YES
  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34

3、新增使用者和密碼

useradd  -d /home/helloftp  -s  /bin/bash helloftp
passwd helloftp
  
  • 1
  • 2

4、編輯/etc/vsftpd/user_list
這個是執行登入ftp的名單
在檔案最後加上 helloftp

5、(避免影響,能連上再開) 關閉selinux和iptables

setenforce 0
service firewalld stop
service iptables stop
  
  • 1
  • 2
  • 3

6、啟動服務與設定開機啟動ftp
systemctl start vsftpd.service
systemctl enable vsftpd.service

特別注意:
設定了 chroot_local_user=YES 後,使用者不能登入
原因是 沒設定 allow_writeable_chroot=YES

然後用 FileZilla 折騰吧!。加密方式:普通FTP,我被坑過好幾次了!
這裡寫圖片描述

FTP有兩種模式:
1、主動模式(port)
1、客戶用 客戶埠A 連線 FTP服務 的 21 埠。
2、客戶 主動扔一個 客戶埠B 給FTP伺服器。
3、告訴伺服器說:“伺服器啊,你以後就往 客戶埠B 傳輸資料,我以後就往你的 伺服器20埠 傳輸資料”。

其次解析:
    FTP服務的port模式 只有兩個埠:20 和 21。
        伺服器20埠:負責傳輸資料
        伺服器21埠:負責溝通與控制

    客戶埠:
        客戶埠A:一個任意的非特權埠(埠號大於1024)
        客戶埠B:等於 客戶埠A + 1

  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

2、被動模式(PASV)
1、客戶端開啟兩個埠: 客戶埠A、 客戶埠B
2、客戶 用 客戶埠A 連線 FTP服務21埠
3、提交PASV命令,伺服器 返回一個 FTP服務埠B
4、客戶 用 客戶埠B 連線 FTP服務埠B

其次解析:
    FTP服務的PASV模式 只有兩個埠:FTP服務埠B 和 21。
        伺服器B埠: 負責傳輸資料   -----------   一個任意的非特權埠(埠號大於1024)
        伺服器21埠:負責溝通與控制

    客戶埠:
        客戶埠A:一個任意的非特權埠(埠號大於1024)
        客戶埠B:等於 客戶埠A + 1

  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

主動模式優點:如果設定防火牆的時候,我只需要開放 20 和 21埠即可了。
被動模式優點:伺服器擁有主導權。令客戶連線我的哪個埠就哪個埠,比較安全。

1、安裝vsftpd
yum install -y vsftpd