Назад | Перейти на главную страницу

Использование системного пользователя для передачи файлов через scp / kerberos

Мне нужно задание cron для передачи файла между серверами с использованием аутентификации scp и kerberos. Системный пользователь для задания находится в / etc / passwd на обеих машинах, и для Kerberos auth был создан действительный keytab (с -randkey). Сценарий задания cron вызывает kinit, затем scp, затем kdestroy. Однако scp не будет работать, если я не изменю / sbin / nologin в / etc / passwd на допустимую оболочку, например / bin / bash.

Вопрос №1: это дыра в безопасности для указания оболочки?
Вопрос №2: это «правильный» способ сделать это?

заранее спасибо

вопрос №1 обычно не является проблемой, если только этот пользователь не является пользователем root. Есть также другие слои, которые вы можете использовать для ограничения доступа; iptables, tcpwrappers, from= параметр в .ssh / authorized_keys и pam_access, чтобы назвать несколько.

Вместо того, чтобы использовать scp, который является отдельной программой и должен вызываться с параметрами из оболочки, вы можете использовать sftp. На сервере установите оболочку учетной записи службы на sftp-server:

# RHEL systems
usermod -s /usr/libexec/openssh/sftp-server username
# debian systems
usermod -s /usr/lib/sftp-server username

Тогда позвони sftp в пакетном режиме (-b пакетный файл) для неинтерактивного использования.

Ответ 1: Может быть. Если вы отключите любой другой метод аутентификации и, следовательно, принудительно используете ключ, и вы считаете, что этот ключ надежен, то

Ответ 2: Без допустимой оболочки scp сбросит сеанс до передачи каких-либо файлов, что является позором. Вроде scponly делает то что хотите (http://www.sublimation.org/scponly/wiki/index.php/Main_Page).