Вопрос: Разрешить вход root только с одного IP-адреса


У меня есть centos5.

Есть ли способ, чтобы я мог войти в мой сервер vps с пользователем root только из определенного IP-адреса.

Я прочитал, что я могу использовать закрытый ключ для входа в sshd. Но проблема в том, что я использую SFTP для всех своих веб-мастеров, и я не хочу, чтобы не ИТ-пользователи использовали ключи для входа в SFTP.

ИЛИ существует ли способ, которым только root может использовать ключи для входа в оболочку, а для других - обычный пароль


12
2017-10-10 23:44


Источник




Ответы:


Лучше всего использовать ключевое слово Match:

Match Host myworkstation
        PermitRootLogin yes

или

Match Address 192.168.1.100
        PermitRootLogin yes

Таким образом, вы можете оставить PermitRootLogin установленным на «нет», но вы все равно можете войти в систему с правами root с вашей рабочей станции.

Это также можно использовать, например, чтобы разрешить root для rsync данных между двумя хостами.


12
2017-07-31 05:33



ваш пример rsync - это пример использования, для которого я искал этот вопрос. Спасибо! ;) - Jan
Имейте в виду, что это работает только с использованием обратного DNS исходного IP-адреса. (по крайней мере, для меня это был единственный способ) - mveroone


Как правило, лучше всего войти в систему как пользователь, не имеющий привилегий, а затем использовать «su» или «sudo» для получения привилегий root, но ...

Вы всегда можете установить ограничение IP на свой ключ в ~ root / .ssh / authorized_keys:

from="192.168.1.100" ssh-rsa AAAAh9uif...auwehuf== yourkey@yourhost.com

Это позволит ssh использовать ключ yourkey@yourhost.com только с 192.168.1.100.


9
2017-10-11 07:31



Согласовано, хотя это сложнее сделать для таких вещей, как sftp, rsync, sshfs ... - mveroone


Использование:

PermitRootLogin без пароля

В / etc / ssh / sshd_config. Каждому пользователю, исключая root, будет разрешено использовать пароли для входа в систему. Корень должен использовать ключи для входа.


3
2017-10-16 01:09



Будет ли это сокращение работать? ты это пробовал?
Я использую эту настройку на каждом сервере, который я поддерживаю. Он предотвращает атаки root bruteforce / dict. unixhelp.ed.ac.uk/CGI/man-cgi?sshd_config+5 - rubiojr
Кажется, это ломается git pull хотя: / etc / ssh / ssh_config: строка 68: неправильная конфигурация: allowrootlogin - geoidesic
Также PermitRootLogin не отображается в man ssh_config - geoidesic
Также легко переопределяется ssh -o PreferredAuthentications=password - geoidesic


редактировать sshd_config (обычно в /etc/ssh), а также добавить или изменить следующие директивы

  PermitRootLogin yes
  AllowUsers root@thehosttoallow

Затем перезапустите демон

  service ssh restart

2
2017-10-11 00:34



Я считаю, что если бы ОП захотел использовать AllowUsers, ему нужно будет указать всех пользователей, которых он хочет получить. Ваш пример разрешил бы root аутентифицироваться через ssh. - EEAA♦
Да, это специально. Чтобы разрешить любому пользователю, *@thehosttoallow действительно, пусть любой пользователь в. - Ring Ø
Также легко переопределяется ssh -o PreferredAuthentications=password - geoidesic


Во-первых, почему вы хотите запретить пользователям использовать ключ auth? Для меня это не имеет смысла.

Во-вторых, не разрешайте вход root через ssh. Просто не делайте этого - нет веских оснований для этого. Это идет вразрез с любой лучшей практикой, и не зря. Если вам необходимо предоставить разрешения для чтения / записи определенных файлов, вы должны иметь возможность сделать это через стандартные разрешения файловой системы Linux. Если вам требуется более мелкомасштабное управление доступом, загляните в систему ACL Linux.


0
2017-10-11 00:21



что, если я отключу регистрацию root, и ни один пользователь не имеет доступа к некоторому основному файлу конфигурации. Тогда я заблокирован, так как я не могу войти через root
Когда вы отключите регистрацию root через ssh, root все равно сможет войти в систему через консоль. Кроме того, у вас всегда есть возможность предоставить обычные права root-esque пользователя через sudo. Это не будет работать для sftp, но в случае отказа в случае, если вам нужно исправить ситуацию, он будет работать нормально и является предпочтительным способом предоставления разрешений. - EEAA♦
@ErikA Разрешение root из уникальный хост небезопасен. Наблюдалась тенденция к root доступ через telnet несколько лет назад (besore ssh был обычным явлением), но root с помощью ssh в только один хост не выглядит таким небезопасным. - Ring Ø
Конечно, это может быть «безопасно», но я все же буду спорить, что это плохая идея. Я говорю это в основном из-за того, что, когда людям предоставляется простой способ получить доступ root, они будут использовать его, а не использовать более безопасный, более правильный способ получить доступ (sudo). - EEAA♦
Учитывая авторский вопрос, можно предположить, что он хочет выполнять административные задачи через root пользователь. Разрешение прямого root доступ с одного хоста в этом случае является разумной альтернативой. - Ring Ø