centOS7 搭建FTP服務

2021-10-07 23:42:01 字數 4645 閱讀 9013

在開始之前先開啟伺服器20、21埠,關閉selinux,然後重啟伺服器

# 加20、21埠

firewall-cmd --permanent --add-port=20/tcp

firewall-cmd --permanent --add-port=21/tcp

# 重啟防火牆

firewall-cmd --reload

# 檢視哪些埠開啟

firewall-cmd --list-port

# 檢視selinux(重啟伺服器生效)

vim /etc/selinux/config

selinux=enforcing 改為 selinux=disabled

#重啟伺服器

shutdown -r now

1.安裝vsftp

yum install -y vsftpd
2.設定 vsftpd 開機自啟動

systemctl enable vsftpd
3.啟動ftp

service vsftpd start
4.查詢ftp是否啟動

netstat -antup | grep ftp

結果展示:

tcp6 0 0 :::21 :::* listen 17011/vsftpd

5.建立使用者並繫結目錄和登陸許可權(後面要改使用者預設目錄記得修改許可權chmod 755 資料夾名稱)

useradd johnny -d /var/ftp/files -s /bin/nologin
6.設定使用者密碼

passwd johnny
7.備份並配置檔案

cd /etc/vsftpd/

cp vsftpd.conf vsftpd.conf.bak

vim vsftpd.conf

8.配置檔案引數,如下

# example config file /etc/vsftpd/vsftpd.conf

#監聽埠號

listen_port=21

#設定埠20進行資料連線。

connect_from_port_20=yes

#不允許匿名訪問

anonymous_enable=no

#設定本地使用者可以訪問。注意:主要是為虛擬宿主使用者,如果該專案設定為no那麼所有虛擬使用者將無法訪問

local_enable=yes

#設定可以進行寫操作

write_enable=yes

# 檔案許可權=666(系統預設檔案許可權,8進製)-local_umask(許可權掩碼)=644(rw-r--r--)

# 目錄許可權=777(系統預設檔案許可權,8進製)-local_umask=755(rwxr-xr-x)

local_umask=022

#禁止匿名使用者

anon_upload_enable=no

anon_mkdir_write_enable=no

#使用者配置檔案目錄

user_config_dir=/etc/vsftpd/conf

#設定開啟目錄標語功能

dirmessage_enable=yes

#設定開啟日誌記錄功能

xferlog_enable=yes

#設定禁止上傳檔案更改宿主

chown_uploads=no

#設定vsftpd的服務日誌儲存路徑。注意,該檔案預設不存在。必須要手動touch出來,並且由於這裡更改了vsftpd的服務宿主使用者為手動建立的vsftpd。必須注意給與該使用者對日誌的寫入許可權,否則服務將啟動失敗。

#xferlog_file=/opt/log/vsftpd/vsftpd.log

#設定日誌使用標準的記錄格式

xferlog_std_format=yes

#設定空閒連線超時時間,這裡使用預設。將具體數值留給每個具體使用者具體指定,當然如果不指定的話,還是使用這裡的預設值600,單位秒

#idle_session_timeout=600

#資料連線超時時間

#data_connection_timeout=120

#設定支撐vsftpd服務的宿主使用者為手動建立的vsftpd使用者。注意,一旦做出更改宿主使用者後,必須注意一起與該服務相關的讀寫檔案的讀寫賦權問題。比如日誌檔案就必須給與該使用者寫入許可權等。

#nopriv_user=ftpsecure

#設定支援非同步傳輸功能

async_abor_enable=yes

ascii_upload_enable=yes

ascii_download_enable=yes

#設定vsftpd的登陸歡迎語

ftpd_banner=welcome to ftp service.

#設定vsftpd的登陸標語的檔案

#banner_file =/etc/vsftpd/banner

#允許chroot使用者寫入(cent 7需要新增)

allow_writeable_chroot=yes

#chroot_list檔案目錄

chroot_list_file=/etc/vsftpd/chroot_list

#條件1:chroot_list使用者預設登入到系統根目錄

chroot_list_enable=no

#條件2:chroot_list之外使用者預設登入到使用者目錄

chroot_local_user=yes

#條件1和條件2有4中組合,具體的內容可以去別的地方檢視,這裡的設定是所有使用者登入都只能在其使用者目錄下

#例如我們前面建立的使用者默人目錄在/var/ftp/files這裡,登入後的預設目錄就在這

#設定本地使用者登入後所在的目錄

#local_root=/var/ftp/files

#禁止使用者登陸ftp後使用"ls -r"的命令。該命令會對伺服器效能造成巨大開銷。如果該項被允許,那麼擋多使用者同時使用該命令時將會對該伺服器造成威脅。

ls_recurse_enable=no

#當為yes時,vsftpd將以單獨模式執行.這意味著vsftpd不必以某種inetd執行,而是可以直接執行.vsftpd執行後會自己偵聽和操作進入的連線

listen=yes

#類似listen選項,但該選項使vsftpd偵聽的位址為ipv6格式的

listen_ipv6=no

#設定,啟用pam認證,並指定認證檔名/etc/pam.d/vsftpd

pam_service_name=/etc/pam.d/vsftpd

#是否啟用user_list

userlist_enable=no

#user_list檔案路徑

userlist_file=/etc/vsftpd/user_list

#user_list使用者是(yes)否(no)被拒絕,yes黑名單 no白名單

userlist_deny=no

# 若是啟動這項功能,則必須提供乙個檔案/etc/vsftpd/banner_emails,內容為email address。若是使用匿名登入,則會要求輸入email address,若輸入的email address 在此檔案內,則不允許進入。預設值為no。

#deny_email_enable=no

# 此檔案用來輸入email address,只有在deny_email_enable=yes時,才會使用到此檔案。若是使用匿名登入,則會要求輸入email address,若輸入的email address 在此檔案內,則不允許進入。

#banned_email_file=/etc/vsftpd/banned_emails

9. 因為前面建立的使用者沒有通過shell登入的授權,此處注釋掉pam_shells.so引數

vim /etc/pam.d/vsftpd

#%pam-1.0

session optional pam_keyinit.so force revoke

auth required pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed

#auth required pam_shells.so

auth include system-auth

account include system-auth

session include system-auth

session required pam_loginuid.so

10. 重啟ftp服務

service vsftpd restart
11. 登入ftp檢視效果

(1) 命令列登入

ftpopen 你的ip位址

輸入賬號和密碼

(2) 在我的電腦位址列輸入,根據提示輸入賬號密碼

ftp://你的ip位址

Centos7搭建FTP服務

yum y install vsftpd yum install ftp y vi etc vsftpd vsftpd.conf 部分介紹 anonymous enable yes 允許登入 anon upload enable yes 允許上傳 write enable yes 賦予寫許可權 an...

CentOS7搭建FTP服務

centos部署ftp yum install y vsftpd vi etc vsftpd vsftpd.conf anonymous enable no data connection timeout 300 chroot local user no allow writeable chroot...

centos7搭建ftp服務

vsftpd是linux下的一款小巧輕快,安全易用的ftp伺服器軟體,是一款在各個linux發行版中最受推崇的ftp伺服器軟體。yum y install vsftpduseradd ftpuserpasswd ftpuser因為ftp預設的埠為21,而centos預設是沒有開啟的,所以要修改ipt...