1. 程式人生 > >開啟sftp服務日誌並限制sftp訪問目錄

開啟sftp服務日誌並限制sftp訪問目錄

開啟sftp服務日誌並限制sftp訪問目錄

開啟sftp日誌


修改sshd_config

vim /etc/ssh/sshd_config

註釋掉Subsystem行,然後寫入新Subsystem,資訊如下

Subsystem       sftp    internal-sftp -l INFO -f local5
LogLevel INFO

效果如下:
enter description here

修改syslogs

vim /etc/rsyslog.conf

在最後增加如下配置

auth,authpriv.*,local5.* /var/log/sftp.log

重啟服務檢視日誌

/etc/init.d/rsyslog restart
/etc/init.d/sshd restart
tailf /var/log/sftp.log

限制sftp使用者操作目錄


前提說明

如果要讓sftp使用者只能使用規定的目錄,則需要再配置檔案中開啟ChrootDirectory,並限定目錄作為sftp使用者登入的根目錄.
但這裡規定的根目錄,屬主必須是root,資料夾許可權只能是755,因此sftp使用者對此根目錄只有讀取許可權,需要再在根目錄下建立一個屬主為改sftp使用者的資料夾,用於該使用者上傳資料
由此規則,可以產生兩種sftp方案

  1. home目錄做根目錄
    建立使用者時,不指定-M引數,預設會在home目錄下生產該使用者的家目錄,使用者對該目錄具有完全操作許可權,且不能訪問其他使用者的家目錄,因此適合作為sftp目錄
  • ChrootDirectory寫法
    • ChrootDirectory /home/
  1. 單獨建立目錄做根目錄
    單獨建立一個目錄做根目錄,然後再建立下級的操作目錄,此方法需要按要求配置主目錄及下級目錄的許可權和屬主等資訊
  • 使用者
    • 建立使用者 加-M引數
  • 主目錄
    • 建立主目錄 /data/sftp
    • 授權 755
    • 屬主 root.root
  • 下級目錄
    • 建立下級目錄 /data/sftp/test_sftp
    • 授權 755
    • 屬主 test_sftp.test_sftp
  • ChrootDirectory寫法
    • ChrootDirectory /data/sftp/

方法1實操

  • 建立使用者
useradd  test_sftp && echo "123456"|passwd --stdin test_sftp
  • 修改sshd_conf
vim /etc/ssh/sshd_config
# 在最後增加以下關鍵字
Match User test_sftp 
        ChrootDirectory /home
        X11Forwarding no
        AllowTcpForwarding no
        ForceCommand internal-sftp

重要說明:配置在Match User欄位中的使用者,會被禁止使用ssh方式登入系統

  • 重啟sshd服務
/etc/init.d/sshd restart

方法2實操

  • 建立使用者
useradd  test_sftp && echo "123456"|passwd --stdin test_sftp
  • 建立主目錄並授權
mkdir -p /data/sftp/
#chown -R root.root /data/sftp/
#chmod 755 /data/sftp/

說明:註釋掉的命令預設不用執行,寫出來是為了避免亂做其他授權

  • 建立操作目錄並操作
mkdir -p /data/sftp/test_sftp
chown -R test_sftp.test_sftp /data/sftp/test_sftp
#chmod 755 /data/sftp/test_sftp

說明:註釋掉的命令預設不用執行,寫出來是為了避免亂做其他授權

  • 修改sshd_conf
vim /etc/ssh/sshd_config
# 在最後增加以下關鍵字
Match User test_sftp 
        ChrootDirectory /data/sftp
        X11Forwarding no
        AllowTcpForwarding no
        ForceCommand internal-sftp
  • 重啟sshd服務
/etc/init.d/sshd restart