Чи можна змусити SFTP замість того, щоб дозволити резервне копіювання SCP?


3

У мене є сервер Red Hat 5.4 з openssh OpenSSH_4.3p2 і намагаюся налаштувати журнали scp / sftp на своєму сервері, але у мене виникають деякі проблеми.

Я дотримувався вказівок у цьому іншому пості . Вони чудово спрацьовують, якщо користувачі вирішують передавати файли за допомогою pscp або SFTP-клієнта, таких як cyberduck, filezilla, wincp тощо. У таких випадках я можу знати дерево каталогів, яким керувались.

Однак якщо користувачі вирішили зробити rsync (з scp як протоколом) або якщо вони чітко викликають команду scp, єдине, що отримує реєстрацію, - це подія входу / виходу. Фактичне дерево, яке перебуває для передачі файлів, не відображається в протоколі журналу.

Чи є спосіб відключити scp, при цьому дозволити sftp? Або є спосіб змусити команди scp поводитись як sftp?

Можливо, цієї проблеми не існує в останніх портах opensh. Однак, оскільки Red Hat не випускає нових оновлень для моєї версії ОС 5.4 (і ми не хочемо оновити сервер), я застряг у тому, що у мене є.

Будь-які пропозиції ?

Відповіді:


6

Я не впевнений у реєстрації SCP . Мені довелося розібратися в цьому. Все scpце - дзвінок scpна іншому кінці в дещо іншому режимі. sshdповинен мати можливість записувати те, що воно виконує. З коду, схоже, sshdпотрібно LogLevel=DEBUGнаписати exec, але це не є результатом для мене на DEBUG або на більш високому рівні (6.1p1). На жаль, колись sshdвиконав те, що запущений бінарний файл може робити все, що хоче, під ним, тож це допоможе, якщо двійковий файл також реалізує ведення журналів. Там немає реальної реєстрації вscp , так що буде потрібно патч деяких сортів.

Це негайно призводить мій мозок до злому написання обгортки, scpщоб хоча б отримати якусь інформацію.

mv /usr/bin/scp /usr/bin/scp.ori; touch /usr/bin/scp; chmod 755 /usr/bin/scp;

Потім помістіть наступне /usr/bin/scp

#!/bin/sh

logger -i -p auth.info "scp ran with [$*]"
/usr/bin/scp.ori "$@"

Сценарій буде видалений релізами, але це трохи хитро. Ви дійсно бачите лише одну сторону команди scp, яка може бути трохи короткою (наприклад scp -r user@host:/home/user/ ./, -r -f /home/matt/на хості)

Також варто зазначити, що якщо у людей є доступ до оболонки, вони можуть копіювати все, що завгодно, не використовуючи scp або sftp.

<закінчити редагувати>

Можна примусити a Subsytemдо входу. Далі йдеться про членів групи, sftponlyякі я хочу лише переїхати до певного місця chroot, щоб їхні користувачі мали оболонку /usr/sbin/nologin. Я не думаю, що вам знадобиться більше, ніж ForceCommandу конфігурації sshd.

Subsystem       sftp    internal-sftp
Match group sftponly
         ChrootDirectory /pub/user/%u
         X11Forwarding no
         AllowTcpForwarding no
         ForceCommand internal-sftp
         PasswordAuthentication yes

Сподіваємось, ви зможете додати свій журнал, і ви не їдете.


Дякуємо за відповідь. Це означає, що користувачі групи sftponly не дозволили б ssh в систему правильно? У моєму випадку вони повинні так, що це не вирішує для мене. Я просто хочу переконатися, що я можу перевірити файли, які вони приймають додому.
ммгм

@mmgm Можливо, це можливість використовувати два входи на користувача або два запущені екземпляри sshd, щоб користувачі міняли або логін, або порт, залежно від того, чи хочуть вони входити або переносити файли. Для користувачів, які не співпрацюють, це вимагатиме можливості запобігання передачі файлів для звичайних входів.
Hauke ​​Laging

@mmgm Після дозволу термінального доступу (ssh) до сервера, користувач може взяти все, що йому подобається.
Мартін Прикрил
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.