在CentOS上設置FTP服務器并限制訪問權限,可以使用vsftpd(Very Secure FTP Daemon)作為FTP服務器軟件。以下是設置和限制訪問權限的步驟:
首先,確保你已經安裝了vsftpd。如果沒有安裝,可以使用以下命令進行安裝:
sudo yum install vsftpd
安裝完成后,啟動vsftpd服務并設置開機自啟:
sudo systemctl start vsftpd
sudo systemctl enable vsftpd
編輯vsftpd的配置文件 /etc/vsftpd/vsftpd.conf
:
sudo vi /etc/vsftpd/vsftpd.conf
在配置文件中,你可以設置各種訪問控制選項。以下是一些常用的配置項:
listen=YES
:啟用獨立模式。listen_ipv6=NO
:禁用IPv6支持。anonymous_enable=NO
:禁止匿名用戶登錄。local_enable=YES
:允許本地用戶登錄。write_enable=YES
:允許FTP寫入權限。chroot_local_user=YES
:將本地用戶限制在其主目錄中。allow_writeable_chroot=YES
:允許chroot目錄可寫。userlist_enable=YES
:啟用用戶列表。userlist_file=/etc/vsftpd/user_list
:指定用戶列表文件。userlist_deny=NO
:默認允許用戶列表中的用戶登錄。創建并編輯用戶列表文件 /etc/vsftpd/user_list
,添加允許或拒絕訪問的用戶:
sudo vi /etc/vsftpd/user_list
在文件中添加用戶名,每行一個用戶名。例如:
user1
user2
如果你需要更復雜的訪問控制,可以使用PAM(Pluggable Authentication Modules)。編輯 /etc/pam.d/vsftpd
文件:
sudo vi /etc/pam.d/vsftpd
確保文件中有以下行:
auth required pam_listfile.so item=user sense=allow file=/etc/vsftpd/user_list onerr=succeed
完成配置后,重啟vsftpd服務以應用更改:
sudo systemctl restart vsftpd
確保防火墻允許FTP流量。你可以使用firewalld來配置:
sudo firewall-cmd --permanent --add-service=ftp
sudo firewall-cmd --reload
如果SELinux處于 enforcing 模式,可能需要調整SELinux策略以允許vsftpd正常工作。你可以臨時設置SELinux為 permissive 模式進行測試:
sudo setenforce 0
如果一切正常,可以永久修改SELinux配置文件 /etc/selinux/config
:
SELINUX=permissive
然后重啟系統。
通過以上步驟,你應該能夠在CentOS上成功設置并限制FTP服務器的訪問權限。