Centos8中使用VSFTPD配置FTPs
導讀 | 在本文中,將演示如何安裝vsftpd服務,配置為ftps,併為ftp使用者配置chroot,將ftp會話限制在各自的/var/www/html/[username]目錄中。 |
8
需要建立用於訪問FTP伺服器的使用者。執行以下
來建立使用者並設定各自的密碼,建立使用者時使用
-s
選項,讓這兩個使用者禁止
登入:
[root@localhost ~]# useradd -s /sbin/nologin user01 [root@localhost ~]# useradd -s /sbin/nologin user02 [root@localhost ~]# echo '123'|passwd --stdin user01 Changing password for user user01. passwd: all authentication tokens updated successfully. [root@localhost ~]# echo '123'|passwd --stdin user02 Changing password for user user02. passwd: all authentication tokens updated successfully.
上面的使用者的shell設定為
/sbin/nologin
之後,需要在
/etc/shells
檔案中新增
/sbin/nologin
,否則後面ftp使用者登入時提示
Login failed: 530 Login incorrect.
[root@localhost ~]# echo "/sbin/nologin" >> /etc/shells [root@localhost ~]# cat /etc/shells /bin/sh /bin/bash /usr/bin/sh /usr/bin/bash /sbin/nologin
使用下面 安裝vsftpd:
[root@localhost ~]# yum -y install vsftpd
為FTP伺服器建立一個自簽名證書。使用
openssl
命令,執行以下命令來生成自簽名證書和私鑰:
[root@localhost ~]# openssl req -x509 -nodes -keyout /etc/vsftpd/vsftpd.key -out /etc/vsftpd/vsftpd.pem -days 365 -newkey rsa:2048 Generating a RSA private key ..+++++ ..............................................+++++ writing new private key to '/etc/vsftpd/vsftpd.key' ----- You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [XX]:CN State or Province Name (full name) []:Shandong Locality Name (eg, city) [Default City]:QD Organization Name (eg, company) [Default Company Ltd]:Linuxprobe Organizational Unit Name (eg, section) []: Common Name (eg, your name or your server's hostname) []:ftp.linuxprobe.com Email Address []:
將上面建立的使用者user01和user02新增到
/etc/vsftpd/user_list
檔案中,只允許該檔案中的使用者ftp登入。
[root@localhost vsftpd]# vim /etc/vsftpd/user_list # vsftpd userlist # If userlist_deny=NO, only allow users in this file # If userlist_deny=YES (default), never allow users in this file, and # do not even prompt for a password. # Note that the default vsftpd pam config also checks /etc/vsftpd/ftpusers # for users that are denied. root bin daemon adm lp sync shutdown halt mail news uucp operator games nobody user01 user02
下面編輯
/etc/vsftpd/vsftpd.conf
,編輯前需要備份一下配置檔案:
[root@localhost vsftpd]# cd /etc/vsftpd/ [root@localhost vsftpd]# cp -p vsftpd.conf vsftpd.conf.back
編輯vsftpd.conf檔案,配置檔案內容如下:
[root@localhost vsftpd]# vim vsftpd.conf [root@localhost vsftpd]# cat vsftpd.conf | grep -Ev '(^$|^#)' anonymous_enable=NO local_enable=YES write_enable=YES local_umask=022 dirmessage_enable=YES xferlog_enable=YES connect_from_port_20=YES xferlog_std_format=YES listen=NO listen_ipv6=YES pam_service_name=vsftpd userlist_enable=YES userlist_deny=NO ssl_enable=YES ssl_sslv2=NO ssl_sslv3=NO ssl_tlsv1_2=YES rsa_cert_file=/etc/vsftpd/vsftpd.pem rsa_private_key_file=/etc/vsftpd/vsftpd.key allow_anon_ssl=NO force_local_data_ssl=YES force_local_logins_ssl=YES require_ssl_reuse=NO ssl_ciphers=HIGH pasv_min_port=30000 pasv_max_port=31000 debug_ssl=YES chroot_local_user=YES local_root=/var/www/html/$USER allow_writeable_chroot=YES
下面啟用服務,並啟動服務:
[root@localhost ~]# systemctl enable vsftpd Created symlink /etc/systemd/system/multi-user.target.wants/vsftpd.service ¡ú /usr/lib/systemd/system/vsftpd.service. [root@localhost ~]# systemctl start vsftpd
[root@localhost ~]# firewall-cmd --permanent --add-service=ftp success [root@localhost ~]# firewall-cmd --reload success
下面需要設定一下selinux的boolean值,預設情況下
/var/www/html
目錄的安全上下文為
httpd_sys_content_t
,使用者使用ftp上傳下載可能會出現許可權問題,所以下面設定一下和ftp相關的selinux設定:
[root@localhost ~]# setsebool -P ftpd_full_access 1 [root@localhost ~]# getsebool ftpd_full_access ftpd_full_access --> on
在
/var/www/html
目錄中建立使用者的目錄,並設定許可權。
[root@localhost ~]# mkdir /var/www/html/user0{1..2} [root@localhost ~]# chown -R user01:apache /var/www/html/user01/ [root@localhost ~]# chown -R user02:apache /var/www/html/user02/
在每個目錄中建立一個空檔案。你在登入後可以區分使用者家目錄:
[root@localhost ~]# touch /var/www/html/user01/user01_files [root@localhost ~]# touch /var/www/html/user02/user02_files
下載
lftp
命令列客戶端進行連線測試:
[root@localhost ~]# yum -y install lftp
下面使用user01登入:
[root@localhost ~]# lftp user01@localhost Password: lftp user01@localhost:~> ls ls: Fatal error: Certificate verification: Not trusted (01:3E:A2:1B:39:E9:BE:DB:55:1F:C3:71:34:6F:B6:8E:E2:D0:2C:8C)
上面提示錯誤,因為是自簽名證書。可以透過執行以下命令不檢查證書:
[root@localhost ~]# echo "set ssl:verify-certificate no" >> /etc/lftp.conf
下面再執行一下lftp命令使用user01登入:
[root@localhost ~]# lftp user01@localhost Password: lftp user01@localhost:~> ls -rw-r--r-- 1 0 0 0 Apr 07 09:42 user01_files
再使用user02登入看一下:
[root@localhost ~]# lftp user02@localhost Password: lftp user02@localhost:~> ls -rw-r--r-- 1 0 0 0 Apr 07 09:42 user02_files
本文介紹瞭如何設定更安全的ftp - “FTPs”、將ftp使用者的主目錄限制在/var/www/html目錄中、如何使用輕量化ftp命令列工具 - “lftp”。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69955379/viewspace-2769206/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- vsftpd伺服器配置與使用FTP伺服器
- ubuntu下vsftpd配置UbuntuFTP
- vsftpd.conf 配置詳解FTP
- 【linux】Debian10.0配置vsftpdLinuxFTP
- centos8 中 如何配置靜態IPCentOS
- CentOS8中配置RAID磁碟陣列CentOSAI陣列
- Centos8 使用auditd配置系統審計CentOS
- 配置vsftpd匿名使用服務,個人使用者使用以及虛擬使用者使用配置細節!FTP
- CentOS8中systemd配置檔案說明CentOS
- centos8 Iptables配置CentOS
- CentOS8配置本地yumCentOS
- FTP伺服器——使用vsftpd搭建FTP伺服器
- vsftpdFTP
- Centos8中如何使用Chrony同步時間CentOS
- Ubuntu上ftp的vsftpd.conf檔案的配置UbuntuFTP
- CentOS8配置阿里雲YUM源CentOS阿里
- VM安裝配置centos8教程CentOS
- 如何在 CentOS8/RHEL8 中配置 Rsyslog 伺服器CentOS伺服器
- linux之FTP服務vsftpd和pure-ftpd常用配置LinuxFTP
- Centos8 如何配置DHCP伺服器CentOS伺服器
- Xmanager4遠端連線linux圖形介面(vsftpd配置)LinuxFTP
- ubuntu系統使用vsftpd搭建FTP伺服器。UbuntuFTP伺服器
- Centos8中安裝並配置VDO來優化儲存空間CentOS優化
- centos8安裝和配置redis服務CentOSRedis
- Linux中Vsftpd服務的部署及優化LinuxFTP優化
- 使用VMWare 安裝Centos8CentOS
- CentOS8下的Docker使用CentOSDocker
- 【linux運維】Linux伺服器玩轉vsftpd安裝與配置Linux運維伺服器FTP
- Ubuntu22.04 vsftpdUbuntuFTP
- vsftpd多例項多使用者不同許可權FTP
- centos8 中安裝texinfoCentOS
- Centos8 編輯本地DNS解析配置檔案CentOSDNS
- ubuntu ftp 伺服器搭建及vsftpd.conf配置例項詳解UbuntuFTP伺服器
- Linux環境下安裝配置vsftpd服務(三種認證模式)LinuxFTP模式
- vsftpd部署(centos7.9)FTPCentOS
- docker搭建vsftpd服務DockerFTP
- 在CentOS8中安裝gitlabCentOSGitlab
- Centos8 安裝並使用Ansible(二)CentOS