【Linux】【CentOS】【FTP】FTP伺服器安裝與配置(vsftpd、lftp)
阿新 • • 發佈:2021-12-02
CentOS7 | FTP伺服器安裝與配置(vsftpd、lftp) | 初次學習、配置的筆記,如有不當,歡迎在評論區糾正
【初次學習、配置的筆記,如有不當,歡迎在評論區糾正 -- 萌狼藍天 @ 2021-12-02】
基本概念
FTP訪問方式
- 實體賬號:本地賬戶
- 來賓賬戶:guest
- 匿名登入:anonymous fp
實訓
環境搭建
安裝FTP軟體包
查詢是否已安裝FTP軟體包 vsftpd
rpm -q vsftpd
查詢vsftpd軟體包的資訊
yum info vsftpd
安裝FTP軟體包vsftpd
yum install vsftpd
關於錯誤程式碼256
[Errno 256] No more mirrors to try.
問題分析:我掛載的本地映象,所以:應當在每次開機後重新掛載,才能使用的
問題解決方案:重新掛載了本地映象,就可以成功下載了
安裝FTP客戶端lftp
查詢是否已安裝lftp
rpm -q lftp
安裝lftp
yum install lftp
修改FTP配置檔案
配置檔案所在位置 /etc/vsftpd/vsftpd.conf
vim /etc/vsftpd/vsftpd.conf
備份原來的配置檔案
cd /etc/vsftpd/
ls
cp vsftpd.conf vsftpd.conf.bak
ls
修改配置檔案
vim vsftpd.conf
(1)允許匿名使用者登陸,並設定匿名使用者登陸路徑
anonymous_enable=YES anon_root=/var/ftp/pub
(2)是否允許使用者有寫入許可權
(3)設定使用者的umask碼為022
(建立目錄許可權為755rwxr-xr-x,建立檔案許可權為644)
(4)匿名使用者操作許可權設定
上傳檔案許可權為yes;新建資料夾許可權為yes;匿名使用者其他寫許可權為yes;匿名使用者下載不具備讀許可權的檔案為no;
(5)其他設定
完整檔案內容如下:
# Example config file /etc/vsftpd/vsftpd.conf # # The default compiled in settings are fairly paranoid. This sample file # loosens things up a bit, to make the ftp daemon more usable. # Please see vsftpd.conf.5 for all compiled in defaults. # # READ THIS: This example file is NOT an exhaustive list of vsftpd options. # Please read the vsftpd.conf.5 manual page to get a full idea of vsftpd's # capabilities. # # Allow anonymous FTP? (Beware - allowed by default if you comment this out). anonymous_enable=YES # # Uncomment this to allow local users to log in. # When SELinux is enforcing check for SE bool ftp_home_dir local_enable=YES # # Uncomment this to enable any form of FTP write command. write_enable=YES # # Default umask for local users is 077. You may wish to change this to 022, # if your users expect that (022 is used by most other ftpd's) local_umask=022 # # Uncomment this to allow the anonymous FTP user to upload files. This only # has an effect if the above global write enable is activated. Also, you will # obviously need to create a directory writable by the FTP user. # When SELinux is enforcing check for SE bool allow_ftpd_anon_write, allow_ftpd_full_access anon_upload_enable=YES anon_root=/var/ftp/pub anon_mkdir_write_enable=YES anon_other_write_enable=YES anon_world_readable_only=NO # # Uncomment this if you want the anonymous FTP user to be able to create # new directories. anon_mkdir_write_enable=YES # # Activate directory messages - messages given to remote users when they # go into a certain directory. dirmessage_enable=YES # # Activate logging of uploads/downloads. xferlog_enable=YES # # Make sure PORT transfer connections originate from port 20 (ftp-data). connect_from_port_20=YES # # If you want, you can arrange for uploaded anonymous files to be owned by # a different user. Note! Using "root" for uploaded files is not # recommended! #chown_uploads=YES #chown_username=whoever # # You may override where the log file goes if you like. The default is shown # below. #xferlog_file=/var/log/xferlog # # If you want, you can have your log file in standard ftpd xferlog format. # Note that the default log file location is /var/log/xferlog in this case. xferlog_std_format=YES # # You may change the default value for timing out an idle session. #idle_session_timeout=600 # # You may change the default value for timing out a data connection. #data_connection_timeout=120 # # It is recommended that you define on your system a unique user which the # ftp server can use as a totally isolated and unprivileged user. #nopriv_user=ftpsecure # # Enable this and the server will recognise asynchronous ABOR requests. Not # recommended for security (the code is non-trivial). Not enabling it, # however, may confuse older FTP clients. #async_abor_enable=YES # # By default the server will pretend to allow ASCII mode but in fact ignore # the request. Turn on the below options to have the server actually do ASCII # mangling on files when in ASCII mode. The vsftpd.conf(5) man page explains # the behaviour when these options are disabled. # Beware that on some FTP servers, ASCII support allows a denial of service # attack (DoS) via the command "SIZE /big/file" in ASCII mode. vsftpd # predicted this attack and has always been safe, reporting the size of the # raw file. # ASCII mangling is a horrible feature of the protocol. #ascii_upload_enable=YES #ascii_download_enable=YES # # You may fully customise the login banner string: #ftpd_banner=Welcome to blah FTP service. # # You may specify a file of disallowed anonymous e-mail addresses. Apparently # useful for combatting certain DoS attacks. #deny_email_enable=YES # (default follows) #banned_email_file=/etc/vsftpd/banned_emails # # You may specify an explicit list of local users to chroot() to their home # directory. If chroot_local_user is YES, then this list becomes a list of # users to NOT chroot(). # (Warning! chroot'ing can be very dangerous. If using chroot, make sure that # the user does not have write access to the top level directory within the # chroot) #chroot_local_user=YES #chroot_list_enable=YES # (default follows) #chroot_list_file=/etc/vsftpd/chroot_list # # You may activate the "-R" option to the builtin ls. This is disabled by # default to avoid remote users being able to cause excessive I/O on large # sites. However, some broken FTP clients such as "ncftp" and "mirror" assume # the presence of the "-R" option, so there is a strong case for enabling it. #ls_recurse_enable=YES # # When "listen" directive is enabled, vsftpd runs in standalone mode and # listens on IPv4 sockets. This directive cannot be used in conjunction # with the listen_ipv6 directive. listen=NO # # This directive enables listening on IPv6 sockets. By default, listening # on the IPv6 "any" address (::) will accept connections from both IPv6 # and IPv4 clients. It is not necessary to listen on *both* IPv4 and IPv6 # sockets. If you want that (perhaps because you want to listen on specific # addresses) then you must run two copies of vsftpd with two configuration # files. # Make sure, that one of the listen options is commented !! listen_ipv6=YES pam_service_name=vsftpd userlist_enable=YES tcp_wrappers=YES
設定匿名使用者訪問目錄
設定匿名使用者訪問目錄/var/ftp/pub,該目錄許可權必須設定為755,
在該目錄下新建檔案test_XXX_01和目錄test_XXX_dir,在檔案test_XXX_01中隨意輸入若干內容;
將該檔案和目錄許可權設定為777;
關閉防火牆並重啟ftp伺服器
systemctl stop firewalld
systemctl restart vsftpd.service
# 設定開機啟動
systemctl enable vsftpd.service
可能遇見的錯誤
配置檔案有誤,檢查輸入或者修改的地方有沒有多餘的空格
解決方案
在ftp客戶端,採用lftp軟體訪問ftp伺服器
開啟另外一臺機器,切換到root身份安裝lftp
使用ftp遠端連線
下載檔案到本地
嘗試在test_zwj_dir中新建目錄並上傳檔案
建立目錄失敗,解決方案如下:
在ftp服務端修改配置檔案 vim /etc/selinux/config
修改內容如下:
將SELINUX的值由enforcing修改為disabled
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of three values:
# targeted - Targeted processes are protected,
# minimum - Modification of targeted policy. Only selected processes are protected.
# mls - Multi Level Security protection.
SELINUXTYPE=targeted
重啟服務 systemctl restart vsftpd.service
重啟主機
開機後記得關閉防火牆,重啟vsftp
上傳-成功
建立資料夾-成功
作者:萌狼藍天,轉載請註明原文連結:https://www.cnblogs.com/mllt/p/linux_edu_ftp_conf_pra1.html | 萌狼藍天@嗶哩嗶哩 | QQ:3447902411(僅限技術交流,新增請說明方向)