CentOS7 FTP服務搭建(虛擬用戶訪問FTP服務)

概述html

  最近在搞Oracle在Linux系統下集羣,針對Linux系統,筆人也是一片空白。Liunx外部文件的傳輸,避免不了使用FTP服務,因此如今就整理下,CentOS7環境下,FTP服務的搭建。FTP服務器須要安裝vsftp服務端軟件。咱們知道,在創建vsftpd用戶時,咱們通常是在linux下創建用戶useradd的方式來訪問ftp,但有時咱們只想提供ftp服務,而避免用戶用ftp的賬號去登陸linux,採用通常的方式只能是限制該用戶的訪問權限,但仍是避免不了用戶登陸進linux系統,因此比較好的方法是用vsftpd的虛擬用戶(virtual users)。linux

FTP基於虛擬用戶的配置web

1、配置防火牆,開啓FTP服務器須要的端口數據庫

CentOS 7.0默認使用的是firewall做爲防火牆,這裏改成iptables防火牆。centos

一、關閉firewall:安全

systemctl stop firewalld.service #中止firewall

systemctl disable firewalld.service #禁止firewall開機啓動

二、安裝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 session

 -A INPUT -m state --state NEW -m tcp -p tcp --dport 10060:10090 -j ACCEPTasync

 

 :wq! #保存退出tcp

 systemctl restart iptables.service #最後重啓防火牆使配置生效

 systemctl enable iptables.service #設置防火牆開機啓動

2、關閉SELINUX

vi /etc/selinux/config

#SELINUX=enforcing #註釋掉

#SELINUXTYPE=targeted #註釋掉

SELINUX=disabled #增長

:wq! #保存退出

setenforce 0 #使配置當即生效

3、安裝vsftpd

rpm -qc vsftpd #查詢vsftpd是否安裝

yum install -y vsftpd #安裝vsftpd yum install -y psmisc net-tools systemd-devel libdb-devel perl-DBI #安裝vsftpd虛擬用戶配置依賴包 systemctl start vsftpd.service #啓動 systemctl enable vsftpd.service #設置vsftpd開機啓動

4、新建系統用戶vsftpd

useradd vsftpd -d /home/wwwroot -s /bin/false #用戶目錄爲/home/wwwroot, 用戶登陸終端設爲/bin/false(即便之不能登陸系統)

chown vsftpd:vsftpd /home/wwwroot -R

5、創建虛擬用戶我的Vsftp的配置文件和子帳號FTP權限

mkdir /etc/vsftpd/vconf

cd /etc/vsftpd/vconf

touch 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/mydic

vi 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! #保存退出

6、配置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=YES
ascii_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用戶了,經過映射到vsftpd user_config_dir=/etc/vsftpd/vuser_conf //設定虛擬用戶我的vsftp的CentOS FTP服務文件存放路徑。存放虛擬用戶個性的CentOS FTP服務文件(配置文件名=虛擬用戶名)
 

7、創建虛擬用戶名單文件

touch /etc/vsftpd/virtusers

編輯虛擬用戶名單文件:(第一行帳號,第二行密碼,注意:不能使用root作用戶名,系統保留)

vi /etc/vsftpd/virtusers
web1
123456
:wq! #保存退出

8、生成虛擬用戶數據文件

db_load -T -t hash -f /etc/vsftpd/virtusers /etc/vsftpd/virtusers.db

chmod 600 /etc/vsftpd/virtusers.db #設定PAM驗證文件,並指定對虛擬用戶數據庫文件進行讀取

9、在/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/virtusers
account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/virtusers

注意:若是系統爲32位,上面改成lib,不然配置失敗;

10、最後重啓vsftpd服務器

systemctl restart vsftpd.service

可經過  tail -f /var/log/secure 指令,查看服務器安全日誌,便於分析錯誤問題,設置操做效果必定要仔細.....

參考博客:

CentOS FTP基於虛擬用戶的配置         http://www.cnblogs.com/surge/p/3868385.html
CentOS 7.0安裝配置vsftp服務器        http://www.linuxidc.com/Linux/2016-09/135636.htm

vsftpd+pam=虛擬用戶登陸FTP服務器 http://blog.chinaunix.net/uid-7553302-id-2978313.html

centos 安裝vsftp 絕對成功包括目錄權限配置 http://blog.csdn.net/openn/article/details/8744650

相關文章
相關標籤/搜索