Hildegard Meier
2021-Sep-29 08:42 UTC
Howto log multiple sftpd instances with their chroot shared via NFS
Hi, I tried now the following:
Add the following line to /etc/fstab:
/var/data/chroot /usr/local/sftp_chroot_bind_mount
none bind 0 2
Then:
mkdir /usr/local/sftp_chroot_bind_mount
mount /usr/local/sftp_chroot_bind_mount
to bind-mount the users's chroot home to /usr/local/sftp_chroot_bind_mount
Then replace in the syslog-ng config:
source s_chroot_<username> {
unix-stream("/var/data/chroot/<username>/dev/log" optional(yes)
); };
with
source s_chroot_<username> {
unix-stream("/usr/local/sftp_chroot_bind_mount/<username>/dev/log"
optional(yes) ); };
Restart syslog-ng
That would have been such a simple workaround.
But unfortunately, the problem is not solved with this.
The problem is the same, that there is sftp logging only on the sftp server
where syslog-ng was restarted least.
Douglas E Engert
2021-Sep-29 13:34 UTC
Howto log multiple sftpd instances with their chroot shared via NFS
Thanks for the info on the single NFS volume mount.
Another take on the direct bind mount:
If server1 did:
source s_chroot_<username> {
unix-stream("/var/data/chroot/<username>/dev/log_server1"
optional(yes) ); };
Then for each user server1 would also do (or have in fstab):
mount -bind /var/data/chroot/<username>/dev/log
/var/data/chroot/<username>/dev/log_server1
and server2 did:
source s_chroot_<username> {
unix-stream("/var/data/chroot/<username>/dev/log_server1"
optional(yes) ); };
and also do this:
mount -move /var/data/chroot/<username>/dev/log
/var/data/chroot/<username>/dev/log_server2
This would allow each server to have its own /dev/log_host so they would not
overwrite each others,
but when the libc went to write to the chrooted /dev/log, the kernel would
write to /dev/log_serverX because
the direct bind is in the host's kernel.
I have not tried this.
On 9/29/2021 3:42 AM, Hildegard Meier wrote:> Hi, I tried now the following:
>
> Add the following line to /etc/fstab:
>
> /var/data/chroot
/usr/local/sftp_chroot_bind_mount none bind 0 2
>
> Then:
> mkdir /usr/local/sftp_chroot_bind_mount
> mount /usr/local/sftp_chroot_bind_mount
>
> to bind-mount the users's chroot home to
/usr/local/sftp_chroot_bind_mount
>
> Then replace in the syslog-ng config:
>
> source s_chroot_<username> {
unix-stream("/var/data/chroot/<username>/dev/log" optional(yes)
); };
> with
> source s_chroot_<username> {
unix-stream("/usr/local/sftp_chroot_bind_mount/<username>/dev/log"
optional(yes) ); };
>
> Restart syslog-ng
>
> That would have been such a simple workaround.
> But unfortunately, the problem is not solved with this.
> The problem is the same, that there is sftp logging only on the sftp server
where syslog-ng was restarted least.
> _______________________________________________
> openssh-unix-dev mailing list
> openssh-unix-dev at mindrot.org
> https://lists.mindrot.org/mailman/listinfo/openssh-unix-dev
> .
>
--
Douglas E. Engert <DEEngert at gmail.com>