linux6 ftp平臺部署及一鍵部署腳本

  1. 系統環境
    [root@ceshiji ~]# cat /etc/redhat-release
    CentOS release 6.7 (Final)
    [root@ceshiji ~]# iostat -c
    Linux 2.6.32-573.3.1.el6.x86_64 (ceshiji)   01/05/2018  _x86_64_    (8 CPU)
    [root@ceshiji ~ ]# getenforce
    Disabled
  2. vsftp,pam,db4安裝
    [root@ceshiji ~]# yum install vsftpd pam* db4* -y
    #查看ftp版本
    vsftpd -version
    vsftpd: version 2.2.2
  3. 開啓vsftp自啓服務
    [root@ceshiji ~]]# chkconfig --level 35 vsftpd on
    [root@ceshiji ~]]# chkconfig --list
  4. 配置vsftpd服務的宿主
    #useradd vsftpdadmin -s /sbin/nologin -d /data/vsftpdadmin -m``
    說明:這個vsftpdadmin只是用來替換root的,並不需要登錄
  5. 建立ftp虛擬宿主帳
    #useradd -s /sbin/nologin -d /data/ftpuser -m ftpuser
  6. 配置vsftpd.conf
    說明:更改配置前最好備份一下然後再改。
    #vim /etc/vsftpd/vsftpd.conf
  7. 下面是我的vsftpd.conf配置內容:
    #cat /etc/vsftpd/vsftpd.conf |grep -v '^#'
    ##不允許匿名用戶登錄ftp
    anonymous_enable=NO
    ##允許本地用戶登錄
    local_enable=YES
    ##啓用任何形式的FTP寫入命令
    write_enable=YES
    ##上傳後文件的權限掩碼
    local_umask=022
    ##開啓目錄標語,默認是YES
    dirmessage_enable=YES
    ##開啓日誌,默認是YES
    xferlog_enable=YES
    ##設定數據連接端口20
    ##這個端口我更改爲50100
    connect_from_port_20=NO
    #設置是否允許被動模式
    pasv_enable=YES
    pasv_min_port=50000
    pasv_max_port=60000
    listen_port=50100
    ##設定vsftpd的服務日誌保存路徑
    xferlog_std_format=YES
    xferlog_file=/var/log/xferlog
    # vsftpd_log_file所指定的文件,即/var/log/vsftpd.log也將用來 記錄服務器的傳輸情況
    dual_log_enable=YES
    vsftpd_log_file=/var/log/vsftpd.log
    ##會話超時,客戶端連接到ftp但未操作,可根據個人情況修改
    idle_session_timeout=600
    #設定默認的數據連接超時時間
    data_connection_timeout=120
    ##支持異步傳輸功能,默認是註釋掉的
    async_abor_enable=YES
    ##支持ASCII模式的上傳功能,默認是註釋掉的
    ascii_upload_enable=YES
    ##支持ASCII模式的下載功能,默認是註釋掉的
    ascii_download_enable=YES
    ##FTP的登錄歡迎語,本身是被註釋掉的
    ftpd_banner=Welcome to datagrand FTP service.
    ##禁止本地用戶登出自己的FTP主目錄
    chroot_local_user=YES
    ##鎖定登錄用戶只能在家目錄的位置的文件
    chroot_list_file=/etc/vsftpd/chroot_list
    ##偵聽ipv4地址
    listen=YES
    ##########啓用vsftpd虛擬用以及虛擬用戶賬號配置目錄############
    ##設定啓用虛擬用戶功能
    guest_enable=YES
    ##指定虛擬用戶的宿主用戶
    guest_username=ftpuser
    ##設定pam服務下vsftpdd的驗證配置文件名
    pam_service_name=vsftpd
    ##設定虛擬用戶的權限符合他們的宿主用戶
    virtual_use_local_privs=YES
    ##設定虛擬用戶個人Vsftp的配置文件存放路徑
    user_config_dir=/etc/vsftpd/vconf
    ##拒絕登錄用戶名單
    userlist_enable=YES
    userlist_deny=NO
    ##限制主機對VSFTP服務器的訪問
    tcp_wrappers=YES
    ############################虛擬用戶全局配置###############
    ##開放虛擬用戶創建目錄的權限
    anon_mkdir_write_enable=YES
    ##開放虛擬用戶的下載權限
    anon_world_readable_only=YES
    ##開放虛擬用戶的寫權限
    write_enable=YES
    ##開放虛擬用戶的上傳權限
    anon_upload_enable=YES
    ##開放虛擬用戶刪除、重命名目錄和文件
    anon_other_write_enable=YES
  8. 建立日誌文件
    #touch /var/log/vsftpd.log    //日誌文件  
    #chown vsftpdadmin:vsftpdadmin /var/log/vsftpd.log   //屬於vsftpdadmin這個宿主 
  9. 建立虛擬用戶文件
    #mkdir /etc/vsftpd/vconf/  
    #touch /etc/vsftpd/vconf/vir_user 
  10. 建立虛擬用戶
    #vim /etc/vsftpd/vconf/vir_user 
    ##用戶名
    xiaoming
    ##密碼
    12345678

    說明:
    (1)第一行用戶名,第二行是上一行用戶名的密碼,其他人的以此類推;
    (2)用戶名,密碼後面不要有空格!

    #vim /etc/vsftpd/chroot_list
    ##用戶名
    xiaoming

    說明:加入需要鎖定登錄用戶只能家目錄的位置然後將帳戶輸入一行一個,保存就可以了。

    #vim /etc/vsftpd/user_list
    ##添加虛擬用戶
    xiaoming

    創建虛擬用戶具體文件和步驟:

    #pwd
    /etc/vsftpd/vconf
    #touch xiaoming
    #vim xiaoming
    ##添加如下內容:
    ##虛擬用戶的根目錄,需要預先建立並賦予相應權限
    local_root=/data3/xiaoming
    local_umask=022
    :wq
    在相應的目錄下(data3)創建文件xiaoming:
    #mkdir -p /data3/xiaoming
    更改所屬主,組:
    #chown -R ftpuser:ftpuser /data3/xiaoming
  11. 生成數據庫
    #db_load -T -t hash -f /etc/vsftpd/vconf/vir_user /etc/vsftpd/vconf/vir_user.db  
    設置數據庫文件的訪問權限:
    #chmod 600 /etc/vsftpd/vconf/vir_user.db  
    #chmod 600 /etc/vsftpd/vconf/vir_user  
  12. 修改/etc/pam.d/vsftpd內容
    將/etc/pam.d/vsftpd文件裏的內容全部註釋掉(前面加#)或刪掉,在裏面添加如下內容:
    echo "auth required pam_userdb.so db=/etc/vsftpd/vconf/vir_user" >> /etc/pam.d/vsftpd  
    echo "account required pam_userdb.so db=/etc/vsftpd/vconf/vir_user" >> /etc/pam.d/vsftpd  
  13. 重啓ftp服務
    #service vsftpd restart
    #netstat -lnp|grep vsftpd
  14. 關於vsftpd的端口號的更改
    要求:vsftpd啓動後,默認的ftp端口是21,現在我想把ftp端口改成50100 ,修改後能保證用戶上傳下載不受影響。
    #vim /etc/vsftpd/vsftpd.conf
    ##在該配置文件中添加此行
    listen_port=50100
    :wq
    #vim /etc/services
    #ftp             21/tcp
    ftp             50100/tcp
    #ftp             21/udp          fsp fspd
    ftp             50100/udp          fsp fspd
    :wq
    #service vsftpd restart
    #netstat -lnp|grep vsftpd
  15. 一鍵部署腳本
    #!/bin/bash
    #輸入新建用戶名
    read -p "please input a username:" m
    #輸入新建用戶名的密碼
    read -p "please input a passwd:" n
    #建立虛擬用戶
    echo $m >> /etc/vsftpd/vconf/vir_user
    echo $n >> /etc/vsftpd/vconf/vir_user
    #chroot_list添加新建用戶名
    echo $m >> /etc/vsftpd/chroot_list
    #user_list添加新建用戶名
    echo $m >> /etc/vsftpd/user_list
    #創建虛擬用戶
    cd /etc/vsftpd/vconf
    touch $m
    cat >> /etc/vsftpd/vconf/$m << EOF
    local_root=/data3/$m
    local_umask=022
    EOF
    #創建虛擬用戶對應的目錄
    mkdir -p /data3/$m
    chown -R ftpuser:ftpuser /data3/$m
    #生成數據庫
    db_load -T -t hash -f /etc/vsftpd/vconf/vir_user /etc/vsftpd/vconf/vir_user.db
    #設置數據庫文件的訪問權限
    chmod 600 /etc/vsftpd/vconf/vir_user.db
    chmod 600 /etc/vsftpd/vconf/vir_user
    #修改/etc/pam.d/vsftpd內容
    echo "auth required pam_userdb.so db=/etc/vsftpd/vconf/vir_user" > /etc/pam.d/vsftpd
    echo "account required pam_userdb.so db=/etc/vsftpd/vconf/vir_user" >> /etc/pam.d/vsftpd
    #創建成功
    echo "Congratulations on creating a new user!"
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章