sub2-02-SFTP_log_Aggregate 無法log chrooted user的activities

353 views
Skip to first unread message

張程翔

unread,
Nov 8, 2024, 5:15:46 AM11/8/24
to NYCU NASA 課程討論區
我是使用FreeBSD
已經嘗試了許多方法,而目前是跟著:
https://forums.freebsd.org/threads/logging-in-chroot-directory-for-sftp.52408/ 的方式去做,但無論如何就是沒有辦法log到chrooted users的指令。
但又看身邊很多朋友一樣是使用FreeBSD卻完全沒有遇到這種問題,也不需要這種複雜的設定。
想請問助教們能不能給我一些提示呢...
已經嘗試很久又重感冒的我快撐不住了QQ

王皓平

unread,
Nov 8, 2024, 7:23:19 AM11/8/24
to NYCU NASA 課程討論區
bless you🤧

tsukimi...@nycu.edu.tw 在 2024年11月8日 星期五下午6:15:46 [UTC+8] 的信中寫道:

wkhsia...@nycu.edu.tw

unread,
Nov 8, 2024, 3:53:08 PM11/8/24
to NYCU NASA 課程討論區
同學你好,
不確定你具體上是做了那些設定,但邏輯上大概是:
因為chroot的user不能寫入/dev/log,
所以要能成功寫入log首先要在chroot的環境下建立一個socket且必須要能寫入,
再來syslogd也必須要設定成監聽該socket,因此請先依照這個邏輯確認你的log是卡在哪一個步驟出現問題。

助教

bill9...@gmail.com 在 2024年11月8日 星期五晚上8:23:19 [UTC+8] 的信中寫道:

郭勝威

unread,
Nov 9, 2024, 12:35:49 AM11/9/24
to NYCU NASA 課程討論區
我好像有遇到類似的問題
我的情況是他只會要的是 /chroot/var/run/log 不是 /chroot/dev/log

你可以先sftp sysadm@...
然後 ps aux 拿到sftp的id
然後 truss 去看他,應該就會有這個東西
connect(3,{ AF_UNIX "/var/run/log" },106)  = 0 (0x0)


供參

張程翔

unread,
Nov 9, 2024, 2:34:05 AM11/9/24
to NYCU NASA 課程討論區
謝謝助教的回覆,也很抱歉我當初並沒有詳細說明自己做了些什麼設定。
我先在/home/sftp底下新增/dev的資料夾且權限設定為root,接下來在rc.conf的檔案裡面新增 syslogd_flags="-s -l /home/sftp/dev/log",根據我查到的這就是設定成監聽該socket。
另外重新啟動syslogd後/home/sftp/dev底下log檔也有被syslogd成功創出來,權限也確定沒有問題,但還是沒有辦法成功。
我在網路上也有查到需要在chroot分別建立/home/${user}的資料夾,並在底下創立dev資料夾然後調整syslogd_flags的設定。這個我也有試過但也沒有成功。

這些是我目前的設定,謝謝助教。

wkhsia...@nycu.edu.tw 在 2024年11月9日 星期六凌晨4:53:08 [UTC+8] 的信中寫道:

張程翔

unread,
Nov 9, 2024, 2:34:38 AM11/9/24
to NYCU NASA 課程討論區
謝謝同學,我會再試試看!

guosw...@nycu.edu.tw 在 2024年11月9日 星期六下午1:35:49 [UTC+8] 的信中寫道:

袁孟華

unread,
Nov 11, 2024, 2:04:12 AM11/11/24
to NYCU NASA 課程討論區
也是遇到無法 log 到chrooted users 的問題,我創了 /home/sftp/var/run/log 然後有 ln 到 /var/run/log,也改了 syslogd_flags

然後我有照樓上的作法去 truss
用 sysadm 登入之後也有看到

connect(3,{ AF_UNIX "/var/run/log" },106)  = 0 (0x0)

但是改用 sftp-u1 登入之後卻變成這個:
connect(3,{ AF_UNIX "/var/run/log" },106)        ERR#38 'Socket operation on non-socket'

不太知道原因...
guosw...@nycu.edu.tw 在 2024年11月9日 星期六下午1:35:49 [UTC+8] 的信中寫道:
我好像有遇到類似的問題

袁孟華

unread,
Nov 11, 2024, 2:14:14 PM11/11/24
to NYCU NASA 課程討論區
更,我再多看了幾次樓上的建議後,找到解決的方法了,提供我的當作參考:

1. 在  /home/sftp 底下創建 var/run 資料夾
2. 在 /etc/rc.conf 加上 syslogd_flags="-s -l /home/sftp/var/run/log"
3. 重啟 sshd 和 syslogd

印象中這樣就解決了,特別是第2步,我之前應該是直接 touch /home/sftp/var/run/log
但如果用 file 檢查的話那個 log 其實不是 socket,所以才造成了上面的   ERR#38 'Socket operation on non-socket' 的問題。

供參

袁孟華 在 2024年11月11日 星期一下午3:04:12 [UTC+8] 的信中寫道:
Reply all
Reply to author
Forward
0 new messages