LINUX.ORG.RU
ФорумAdmin

разрешить ssh с только с определенных адресов


0

0

Как лучше это осуществить?

на ум приходит только кривой вариант с помощью iptables сделать так

ACCEPT tcp -- <allowed_ip> <router_ip> tcp dpt:22
ACCEPT tcp -- <allowed_ip> <router_ip> tcp dpt:22
DROP tcp -- 0.0.0.0/0 <router_ip> tcp dpt:22

Как это можно сделать правильнее?

anonymous

/etc/hosts.allow:

sshd: <allowed_ip>

/etc/hosts.deny:

sshd: ALL

Примечание: ssh-сервер должен быть собран с libwrap

Slavaz ★★★★★
()

В sshd_config есть такая опция -- AllowUsers, типа разрешить user1@host1, user2@host2, *@home, superencrypteduser@* и т.д.

см. man sshd_config

Ну или как выше сказали.

lodin ★★★★
()

Ну и метод с iptables, тоже не кривой. Вполне нормальный.

VirRaa ★★★
()
Ответ на: комментарий от lodin

По поводу hosts.allow
А если у меня за роутером прячутся еще тазики с sshd(тоесть у них есть белый айпишник, но трафик идет через роутер)? После изменения hosts.allow разливать его rsync-ом по всем боксам?
Наверное iptables-ом лучше будет.

anonymous
()
Ответ на: комментарий от anonymous

если роутер не DNATит в сервер, то нормально всё разруливается. Если DNATит - то и iptables не поможет... только конфиг самого sshd

Slavaz ★★★★★
()

Еще можно пользовать inetd/xinetd, это вариант libwrap.

Еще можно биндить ssh не ко всем интерфейсам, а только к нужному. Скажем биндишь к 192.168.0.1 и снаружи не зайдешь. Хотя наверное это не твой случай, тебе судя по всему надо именно снаружи.

Вообще, неплохо, когда не менее двух способов ограничения доступа. Скажем iptables+libwrap(xinetd).

ansky ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.