sshd: разные настройки авторизации для интерфейсов [РЕШЕНО]

Хочется на рабочей машине настроить ssh так, чтоб внутри локалки (на одном интерфейсе) машина была доступна на 22-м порту с авторизацией по паролю, а снаружи — скажем, по порту 2222, и только по ключу. Вопрос с портами разрешается через ListenAddress, а вот можно ли разрулить по интерфейсам типы авторизации?

Запусти два ssh демона с

Запусти два ssh демона с разными конфигами и будет тебе счастье :)

Working on Gentoo Linux for Asus P535 and Qtopia :-)

Это явное и безусловное

Это явное и безусловное извращение, я не намерен иметь к такому отношение.

Текстовый редактор vi имеет два режима работы: в первом он пищит, а во втором — всё портит.

Это абсолютно нормальное

Это абсолютно нормальное решение в *NIX мире.

«В *NIX мире»? Нет,

«В *NIX мире»? Нет, FreeBSD-шники всякие и шлаковарщики могут наслаждаться такими решениями, а я люблю, когда portage следит за моими init-скриптами и конфигами, спасибо.

Текстовый редактор vi имеет два режима работы: в первом он пищит, а во втором — всё портит.

Похоже, это делается через

Похоже, это делается через Match, осталось понять, как именно.

Текстовый редактор vi имеет два режима работы: в первом он пищит, а во втором — всё портит.

.

krigstask написал(а):
«В *NIX мире»? Нет,FreeBSD-шники всякие и шлаковарщики могут наслаждаться такими решениями, а я люблю, когда portage следит за моими init-скриптами и конфигами, спасибо.

У portage, простите, откуда "ноги растут"? openssh - чья разработка?

И что из этого следует? Когда

И что из этого следует? Когда я захочу делать «как в *BSD», я их и поставлю, а пока у меня нет желания бегать на костылях.

Текстовый редактор vi имеет два режима работы: в первом он пищит, а во втором — всё портит.

krigstask написал(а): И что

krigstask написал(а):
И что из этого следует? Когда я захочу делать «как в *BSD», я их и поставлю, а пока у меня нет желания бегать на костылях.

Простите, а как в *BSD? Чем там хуже система инициализации? Мне, к примеру, пришлось править скрипт /etc/init.d/local, так как его "нативная" реализация
не позволяет запускать скрипты с #!/sbin/runscript из директории /etc/local.d/.
Спрашивается, зачем писать скрипты запуска "демонов" с #!/bin/bash на "борту", если логичней и удобней пользоваться возможностями /sbin/rc?
Костылик, как говорится, налиццо :)
По сути вопроса: как быть с диапазоном адресов в секции Match?
пишу: Address 10.24.12.2/28-10.24.12.12/28 && /etc/init.d/sshd restart, всё прекрасно, но не работает :D
Без диапазонов как-то грустно...

willy написал(а): Мне, к

willy написал(а):
Мне, к примеру, пришлось править скрипт /etc/init.d/local, так как его "нативная" реализация не позволяет запускать скрипты с #!/sbin/runscript из директории /etc/local.d/

И не должна. Оно рассчитано на одноразовый запуск команд после старта системы, которые стартовым скриптам отношения не имеют. Если нужно что-то пускать через #!/sbin/runscript то скорее всего это init-скрипт который нужно делать как инитскрипт а не костылём его запускать как команду.

.

evadim написал(а):
И не должна. Оно рассчитано на одноразовый запуск команд после старта системы, которые стартовым скриптам отношения не имеют. Если нужно что-то пускать через #!/sbin/runscript то скорее всего это init-скрипт который нужно делать как инитскрипт а не костылём его запускать как команду.

Об этом можно многа и - в итоге, безрезультатно спорить.
Пример: имею скриптик автозапуска net.ppp0, в котором проверяю, поднялся ли интерфейс net.eth0:
if service_started net.eth0 ; then ... (#!/sbin/runscript).
Можно, конечно, использовать конструкцию: if /etc/init.d/net.eth0 --quiet status ; then ..., (#!/bin/bash) но зачем, если есть более удобная, на мой взгляд, альтернатива?
Скажете - "пиши скрипт, добавляй его в /etc/runlevels" - отвечу: зачем городить огород из start() stop() depend() restart(), если мне нужна лишь проверка
доступности линка прова №1 и при его недоступности подключение к прову №2?
Или ещё: нужно запустить NFS, но после запуска всех сервисов и установки интернет-соединения. Опять писать "init-роман" если можно обойтись небольшим
скриптиком в /etc/local.d/, с проверкой условий?
Что целесообразней?

willy написал(а): Что

willy написал(а):
Что целесообразней?

Целесообразнее настраивать всё что касается сети, включая зависимости, в conf.d/net а зависмости разных сервисов в rc.conf и не городить костыли с подпорками. Впрочем, видимо тебя это занятие сильно завораживает и в него самозабвенно погрузился - в этой ситуации соглашусь с тобой о безрезультатности спора из-за хронического не чтения документации/желания сделать из gentoo BSD

.

evadim написал(а):
Целесообразнее настраивать всё что касается сети, включая зависимости, в conf.d/net а зависмости разных сервисов в rc.conf и не городить костыли с подпорками. Впрочем, видимо тебя это занятие сильно завораживает и в него самозабвенно погрузился - в этой ситуации соглашусь с тобой о безрезультатности спора из-за хронического не чтения документации/желания сделать из gentoo BSD

evadim, а с помощью какого телепатического инструмента ты увидел моё "хроническое не чтение документации"?
С чего ты взял, что я не знаю про возможности preup(), postup().. в /etc/conf.d/net, про фичи /etc/rc.conf?
И не стоит думать, что эти костыли и подпорки - моё самодурство, ибо в моём околотке, не смотря на то, что 21-й век на дворе,
веерные отключения электроэнергии - "это нормально".
Мне что в ручную проверять, есть ли линк до провайдера, пингуя его DNS, после чего пытаться запустить pptp-туннель, далее,
проверить (опять же вручную), есть ли связь со "внешкой" и на основе этого, принять решение: переходить или нет на альтернативного прова?
Почему я не могу этого сделать с помощью скрипта /etc/local.d/10-ppp.start, пользуясь при этом возможностями /sbin/rc?
Не спорю, можно использовать "канонический" bash-script, но мне удобнее пользоваться /sbin/runscript.

Вообще, я думаю, пора завязывать с этим делом, так как топик - был :D - о совсем другом.

За сим откланиваюсь.

Как там в бсд, тут никого не

Как там в бсд, тут никого не колышет ( в 2011 году рц система без депендов сдалась только бсдшникам). Тут говорят про гентоо, и вопрос тоже был как сделать в гентоо.

Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)

willy написал(а): krigstask

willy написал(а):
krigstask написал(а):
И что из этого следует? Когда я захочу делать «как в *BSD», я их и поставлю, а пока у меня нет желания бегать на костылях.

Простите, а как в *BSD? Чем там хуже система инициализации?

А я не про неё. Я хочу, чтоб у меня был один конфиг в /etc/ssh/ и один сценарий инициализации в /etc/init.d/, и чтоб их обновлял portage при обновлении пакета.

Текстовый редактор vi имеет два режима работы: в первом он пищит, а во втором — всё портит.

у меня сделано так, но только

krigstask написал(а):
а вот можно ли разрулить по интерфейсам типы авторизации?

у меня сделано так, но только для возможности логина под root:

1) запрет логина под root "в целом"

2) в конце конфига разрешение для конкретной подсети

Match Address 192.168.0.0/24,2001:0470:1f0b:243::/64
PermitRootLogin yes
PubkeyAuthentication yes
RSAAuthentication yes

Хм.

Прописал

PasswordAuthentication no
UsePAM no
 ...
Match Address 192.168.50.*
    PasswordAuthentication yes

С "UsePAM yes" пускало всё равно. Теперь работает, как надо.

Текстовый редактор vi имеет два режима работы: в первом он пищит, а во втором — всё портит.

.

Поздно прочитал данное обсуждение, но меня так же интересует подобная проблема.
1. Не понял, чем закончилось решение с организацией двух портов.
2. Интересует безопасность доступа root из локальной сети (для организации бэкапирования с редко включаемого компа). Ситуацию запутывает то, что пробросом портов с белого IP занимается роутер, и на сервере включен форвардинг портов.
То, что в описанных обстоятельствах придется запретить аудентификацию по паролю, это понятно. Но может стоит развернуть sshd на двух портах, чтобы один использовать для приема проброшенных с роутера соединений, а второй для входов с локальной сети?

1. Так man sshd_config и там

1. Так man sshd_config и там почитать про ListenAddress. Когда прочухается связь с рабочей машины, могу написать конкретно, как там сделано.
2. Не понял, но наверное, я бы запретил заходить по ssh корнем и настроил sudo.

Текстовый редактор vi имеет два режима работы: в первом он пищит, а во втором — всё портит.

2. Для этого root не нужен

2. Для этого root не нужен

.

_SerEga_ написал(а):
2. Для этого root не нужен

А можно более развернуто?

krigstask написал(а):
2. Не понял

Серверок, что смотрит в интернет работает в режиме 24/7, но через пробос портов с роутера.
Мощность его совсем мала. Рассчитываю организовать инкрементарный бэкап интересующих областей, включая системные. Бэкапировать будет ББ, который включается совсем редко. В данном случае (как я понимаю), придется зайти аккаунтом рута с ББ на сервер.
В то же время, допускать возможность логина рута из интернета совсем не хочется.

sudo

sudo

Текстовый редактор vi имеет два режима работы: в первом он пищит, а во втором — всё портит.

Kevol написал(а): _SerEga_

Kevol написал(а):
_SerEga_ написал(а):
2. Для этого root не нужен

А можно более развернуто?

Именно root нужен, как правило, когда Вы хотите, что менять. Для бэкапа нужно только чтение, соответственно достаточно скрипта запускаемого через sudo, cron, при входе юзера делающего бэкап и т.д.

я бы сделал симлинк

я бы сделал симлинк init.d/sshd-local на init.d/sshd и добавил его в ранлевел. Сделал бы копию conf.d/sshd-local на conf.d/sshd, в нем поправил бы SSHD_CONFDIR и SSHD_PIDFILE. Таким образом у вас будут стартовать 2 демона, у которых 2 разные конфигурации. и обновение инитскрипта нормально будет проходить.

Вобщем почти тоже самое, что хендбук говорит делать с init.d/net.eth0 или init.d/emacs.username

Я аналогичным образом сделал себе 2 демона distcc, один для 64 бит, второй кросскомпилятор для 32бит.

В этом случае кстати можно запускать/останавливать эти демоны отдельно друг от друга, что может пригодиться.

? iptables krigstask

? iptables

krigstask написал(а):
Хочется на рабочей машине настроить ssh так, чтоб внутри локалки (на одном интерфейсе) машина была доступна на 22-м порту с авторизацией по паролю, а снаружи — скажем, по порту 2222, и только по ключу. Вопрос с портами разрешается через ListenAddress, а вот можно ли разрулить по интерфейсам типы авторизации?

drop на исходящие пакеты со словом password и клиент никогда не получит приглашения

что-то добрый я сегодня ....

Ну это вообще как-то странно.

Ну это вообще как-то странно.

Текстовый редактор vi имеет два режима работы: в первом он пищит, а во втором — всё портит.

может продемонстрируешь

может продемонстрируешь пример правила для анализа зашифрованного ssh траффика, и чтои бы работало по твоей схеме ? Или это был ляп ?

Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)

ляп

то, что трафик уйдет уже зашифрованным, не подумалось

что-то добрый я сегодня ....

это можно сделать в два

это можно сделать в два этапа
1. /etc/ssh/sshd_conf позволяет задать несколько портов
2. iptables - открыть разные порты на разных интерфейсах

P.S.: Linux - это красная таблетка :-) Windows - синяя...

Может перед тем, как писать

Может перед тем, как писать ответ перечитать весь топик? :)

Working on Gentoo Linux for Asus P535 and Qtopia :-)

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".