?概述
最近在搞Oracle在Linux系統下集群,針對Linux系統,筆人也是一片空白。Liunx外部文件的傳輸,避免不了使用FTP服務,所以現在就整理下,CentOS7環境下,FTP服務的搭建。FTP服務器需要安裝vsftp服務端軟件。我們知道,在建立vsftpd用戶時,我們一般是在linux下建立用戶useradd的方式來訪問ftp,但有時我們只想提供ftp服務,而避免用戶用ftp的帳號去登錄linux,采用一般的方式只能是限制該用戶的訪問權限,但還是避免不了用戶登錄進linux系統,所以比較好的方法是用vsftpd的虛擬用戶(virtual users)。
FTP基于虛擬用戶的配置
一、配置防火墻,開啟FTP服務器需要的端口
CentOS 7.0默認使用的是firewall作為防火墻,這里改為iptables防火墻。
1、關閉firewall:
systemctl stop firewalld.service #停止firewallsystemctl disable firewalld.service #禁止firewall開機啟動
2、安裝iptables防火墻
yum install iptables-services #安裝vi /etc/sysconfig/iptables #編輯防火墻配置文件,添加下面紅色部分進入iptables,說明:21端口是ftp服務端口;10060到10090是Vsftpd被動模式需要的端口,可自定義一段大于1024的tcp端口 -A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 10060:10090 -j ACCEPT :wq! #保存退出 systemctl restart iptables.service #最后重啟防火墻使配置生效 systemctl enable iptables.service #設置防火墻開機啟動
二、關閉SELINUX
vi /etc/selinux/config#SELINUX=enforcing #注釋掉#SELINUXTYPE=targeted #注釋掉SELINUX=disabled #增加:wq! #保存退出setenforce 0 #使配置立即生效
三、安裝vsftpd
rpm -qc vsftpd #查詢vsftpd是否安裝yum install -y vsftpd #安裝vsftpdyum install -y psmisc net-tools systemd-devel libdb-devel perl-DBI #安裝vsftpd虛擬用戶配置依賴包systemctl start vsftpd.service #啟動systemctl enable vsftpd.service #設置vsftpd開機啟動
四、新建系統用戶vsftpd
useradd vsftpd -d /home/wwwroot -s /bin/false #用戶目錄為/home/wwwroot, 用戶登錄終端設為/bin/false(即使之不能登錄系統)chown vsftpd:vsftpd /home/wwwroot -R
五、建立虛擬用戶個人Vsftp的配置文件和子賬號FTP權限
mkdir /etc/vsftpd/vconfcd /etc/vsftpd/vconftouch web1 #這里創建虛擬用戶配置文件mkdir -p /home/wwwroot/web1/http/mydic #設置FTP上傳文件新增權限,最新的vsftpd要求對主目錄不能有寫的權限所以ftp為755,主目錄下面的子目錄再設置777權限 chmod -R 755 /home/wwwroot/web1/http chmod R 777 /home/wwwroot/web1/http/mydicvi web1 #編輯用戶web1配置文件,其他的跟這個配置文件類似,輸入下面紅色內容 local_root=/home/wwwroot/web1/http/ #設置FTP賬號根目錄 write_enable=YES anon_world_readable_only=NO anon_upload_enable=YES anon_mkdir_write_enable=YES anon_other_write_enable=YES:wq! #保存退出
六、配置vsftp服務器
cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf-bak #備份默認配置文件
執行以下命令進行設置:
sed -i "s/anonymous_enable=YES/anonymous_enable=NO/g" '/etc/vsftpd/vsftpd.conf'sed -i "s/#anon_upload_enable=YES/anon_upload_enable=NO/g" '/etc/vsftpd/vsftpd.conf'sed -i "s/#anon_mkdir_write_enable=YES/anon_mkdir_write_enable=YES/g" '/etc/vsftpd/vsftpd.conf'sed -i "s/#chown_uploads=YES/chown_uploads=NO/g" '/etc/vsftpd/vsftpd.conf'sed -i "s/#async_abor_enable=YES/async_abor_enable=YES/g" '/etc/vsftpd/vsftpd.conf'sed -i "s/#ascii_upload_enable=YES/ascii_upload_enable=YES/g" '/etc/vsftpd/vsftpd.conf'sed -i "s/#ascii_download_enable=YES/ascii_download_enable=YES/g" '/etc/vsftpd/vsftpd.conf'sed -i "s/#ftpd_banner=Welcome to blah FTP service./ftpd_banner=Welcome to FTP service./g" '/etc/vsftpd/vsftpd.conf'echo -e "use_localtime=YES/nlisten_port=21/nchroot_local_user=YES/nidle_session_timeout=300/ndata_connection_timeout=1/nguest_enable=YES/nguest_username=vsftpd #此處要和剛剛創建的用戶名一直/nuser_config_dir=/etc/vsftpd/vconf/nvirtual_use_local_privs=YES/npasv_min_port=10060/npasv_max_port=10090/naccept_timeout=5/nconnect_timeout=1" >> /etc/vsftpd/vsftpd.conf
配置文件說明:
anonymous_enable=NO //設定不允許匿名訪問local_enable=YES //設定本地用戶可以訪問。注:如使用虛擬宿主用戶,在該項目設定為NO的情況下所有虛擬用戶將無法訪問chroot_list_enable=YES //使用戶不能離開主目錄ascii_upload_enable=YESascii_download_enable=YES //設定支持ASCII模式的上傳和下載功能pam_service_name=vsftpd //PAM認證文件名。PAM將根據/etc/pam.d/vsftpd進行認證#以下這些是關于vsftpd虛擬用戶支持的重要配置項,默認vsftpd.conf中不包含這些設定項目,需要自己手動添加guest_enable=YES //設定啟用虛擬用戶功能guest_username=vsftpd //指定虛擬用戶的宿主用戶,CentOS中已經有內置的ftp用戶了,通過映射到vsftpduser_config_dir=/etc/vsftpd/vuser_conf //設定虛擬用戶個人vsftp的CentOS FTP服務文件存放路徑。存放虛擬用戶個性的CentOS FTP服務文件(配置文件名=虛擬用戶名)
七、建立虛擬用戶名單文件
touch /etc/vsftpd/virtusers
編輯虛擬用戶名單文件:(第一行賬號,第二行密碼,注意:不能使用root做用戶名,系統保留)
vi /etc/vsftpd/virtusersweb1123456:wq! #保存退出
八、生成虛擬用戶數據文件
db_load -T -t hash -f /etc/vsftpd/virtusers /etc/vsftpd/virtusers.dbchmod 600 /etc/vsftpd/virtusers.db #設定PAM驗證文件,并指定對虛擬用戶數據庫文件進行讀取
九、在/etc/pam.d/vsftpd的文件頭部加入以下信息(在后面加入無效)
修改前先備份
cp /etc/pam.d/vsftpd /etc/pam.d/vsftpdbak
vi /etc/pam.d/vsftpd #先注釋到vsftpd所有配置,加入下面紅色部分
auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/virtusersaccount sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/virtusers
注意:如果系統為32位,上面改為lib,否則配置失敗;
十、最后重啟vsftpd服務器
systemctl restart vsftpd.service
可通過 tail -f /var/log/secure 指令,查看服務器安全日志,便于分析錯誤問題,設置操作效果一定要仔細.....
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。
新聞熱點
疑難解答
圖片精選