Защита подключения через SSH

Настройка сетевых служб, маршрутизации, фаерволлов. Проблемы с сетевым оборудованием.
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
devastator
проходил мимо
Сообщения: 7
Зарегистрирован: 2007-11-23 11:57:18

Защита подключения через SSH

Непрочитанное сообщение devastator » 2007-11-23 12:17:59

Вобщем суть вопроса достаточно проста, но пока к сожалению не смог реализовать.
Необходимо завести учетную запись на сервере Free-BSD при входе на которую в фаервол будет добавляться нужное правило, при отключение пользователя правило удалялось. При этом пользователь не должен получать доступ к файловой системе машины, просто получал сообщение что типо адес с которого Вы выходите добавлено в фаервол, можете осуществлять дальнейшие подлкючения к серверам!
Все это делаеться для того чтобы обезопасить второй сервер, который находиться уже в Вашей внутренней сети! Например

Имеем Сервер windows 2003 в локальной закрытой от внешнего мира сети, сервер Unix-FreeBSD с реальным ип адресом. Сеть без домена.
Предположим что нам нужно получить доступ к rdp серверу к win2003.
Для этого подстраиваем natd.conf и прописываем там redirect_port tcp *.*.*.*:3389 внеш.ний.ип.ад.рес:порт.
Но для того чтобы обезопасить подключение следует создать пользователей, которые при входе будут открывать скрипт, который в свою очередь будет добавлять правило в фаервол с разрешением доступа именно с того адреса с которого эти пользователи в данный момент подключены.
Вот собственно эта задача требует решения. Я пока не силен в программировании (к великому сожалению), но все еще впереди. Так что буду рад если кто откликнеться и поможет с данной задачей.

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2460 рублей (8 CPU, 8Gb RAM, 2x500Gb HDD, RAID 3ware 9750):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
schizoid
подполковник
Сообщения: 3228
Зарегистрирован: 2007-03-03 17:32:31
Откуда: Украина, Чернигов
Контактная информация:

Re: Защита подключения через SSH

Непрочитанное сообщение schizoid » 2007-11-23 17:30:06

Knock

В переводе это означает 'стук', ну во входную дверь к примеру.
Это весьма оригинальное средство защиты, и управления удаленным компьютером.

Принцип его таков: knock сервер слушает кто стучиться, а knock клиент стучит по портам. При этом эти порты находятся в закрытом состоянии.

Knock сервер слушает сразу все порты на указанном интерфейсе, и отлавливает пакеты приходящие на определенные порты в определенной последовательности. Как только последовательность совпадет с заданной в конфигурационном файле выполняется соответствующая команда. Любая. То есть появляется возможность просто постучав клиентом по портам запустить к примеру синхронизацию серверов или еще чего. Хотя чаще всего используют для открытия доступа к сервисам. В комплекте с пакетом идет пример конфигурационного файл knockd.conf:
[options]
UseSyslog

[openSSH]
sequence = 7000,8000,9000
seq_timeout = 5
command = /bin/ipfwadm -I -i accept -P tcp -S %IP% -D 0/0 22
tcpflags = syn

[closeSSH]
sequence = 9000,8000,7000
seq_timeout = 5
command = /bin/ipfwadm -I -d accept -P tcp -S %IP% -D 0/0 22
tcpflags = syn
как видите, при стуке по портам 7000 8000 9000 открывается доступ к 22 порту, а если постучать в обратном порядке то закрывается...

Не уверен насчет наличия knock сервера под виндовз но клиент точно есть. Ну и естественно под nix клиент тоже есть :)
knock 7000 8000 9000
И все, дверь открылась :) Кстати стучать можно многими инструментами их хватает как под винду, так и под nix. Тот же nmap к примеру...

Так как узнать какие именно порты слушает сервер почти не реально, то это еще один неплохой рубеж в защите вашего роутера. Пакет под фриску ставить так:
pkg -i ftp://ftp.linux.kiev.ua/pub/Linux/frees ... -lightning
клиента под винду забирать здесь:
ftp://ftp.linux.kiev.ua/pub/Linux/frees ... /knock.exe
ядерный взрыв...смертельно красиво...жаль, что не вечно...

prud
рядовой
Сообщения: 47
Зарегистрирован: 2007-09-28 14:18:24

Re: Защита подключения через SSH

Непрочитанное сообщение prud » 2007-11-23 17:48:59

Ставь OpenVPN (или другое по вкусу, но с этим наименьшая вероятность возникновения проблем на этапе настройки). Таким образом и тот сервис, который ты хочешь открыть, будет ходить по шифрованому соединению.


devastator
проходил мимо
Сообщения: 7
Зарегистрирован: 2007-11-23 11:57:18

Re: Защита подключения через SSH

Непрочитанное сообщение devastator » 2007-11-26 14:26:09

Спасибо за помощь в решении данного вопроса! Однако есть еще один нюанс. Использую knocking хочеться добалять правила в ipfw с разными номерами в определенном диапазоне допустим с 4300 по 4400! Как это сделать? и естественно при отключении юзера от сервака чтобы именно его правило удалялось и не сбрасывало подключение других!?

Аватара пользователя
dikens3
подполковник
Сообщения: 4856
Зарегистрирован: 2006-09-06 16:24:08
Откуда: Нижний Новгород
Контактная информация:

Re: Защита подключения через SSH

Непрочитанное сообщение dikens3 » 2007-11-27 0:22:57

devastator писал(а):Спасибо за помощь в решении данного вопроса! Однако есть еще один нюанс. Использую knocking хочеться добалять правила в ipfw с разными номерами в определенном диапазоне допустим с 4300 по 4400! Как это сделать? и естественно при отключении юзера от сервака чтобы именно его правило удалялось и не сбрасывало подключение других!?
Зачем тебе разные?
1. Разрешать коннектиться только своим IP на 22 порт (knock)
2. Тебе нужно блокировать ВСЕ SYN пакеты на 22 порт (свои уже пропущены)
3. Пропусти уже установленный трафик на 22 порт (allow from any to me 22 established)

Коннекты не рвутся.

А если совсем правильно - используй таблицы, а не правила. :-) И Добавляй/удаляй всё что пожелаешь. Удачи.
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.

devastator
проходил мимо
Сообщения: 7
Зарегистрирован: 2007-11-23 11:57:18

Re: Защита подключения через SSH

Непрочитанное сообщение devastator » 2007-11-27 18:00:49

dikens3 писал(а):
devastator писал(а):Спасибо за помощь в решении данного вопроса! Однако есть еще один нюанс. Использую knocking хочеться добалять правила в ipfw с разными номерами в определенном диапазоне допустим с 4300 по 4400! Как это сделать? и естественно при отключении юзера от сервака чтобы именно его правило удалялось и не сбрасывало подключение других!?
Зачем тебе разные?
1. Разрешать коннектиться только своим IP на 22 порт (knock)
2. Тебе нужно блокировать ВСЕ SYN пакеты на 22 порт (свои уже пропущены)
3. Пропусти уже установленный трафик на 22 порт (allow from any to me 22 established)

Коннекты не рвутся.

А если совсем правильно - используй таблицы, а не правила. :-) И Добавляй/удаляй всё что пожелаешь. Удачи.
Да нет же! Дело в том, что с помощью knock я открываю совершенно не 22 порт! 22 -порт у меня по умолчанию открыт! мне нужно чтобы при "стуке" из любой точки мира открывался нужный порт и в фаервол добалялось правило с разрешением ходить пакетам именно от того адреса с которого был произведен стук! И естественно чтобы после выхода постучавшегося в фаерволе это правило удалялось! А если к примеру заходит не один пользователь а 5, то нужно чтобы фаервол закрывал только его входящее соединение! Вот в чем суть вопроса! Может быть есть возможность через другую программу это реализовать!? Если да то какие?

Аватара пользователя
schizoid
подполковник
Сообщения: 3228
Зарегистрирован: 2007-03-03 17:32:31
Откуда: Украина, Чернигов
Контактная информация:

Re: Защита подключения через SSH

Непрочитанное сообщение schizoid » 2007-11-28 15:18:52

а параметр %IP% что передает? разве не адрес подключившегося?
а на отключение, скрипт повесь, который парсит фаер по определенному ИП , узнает номер правила и удаляет его.
ядерный взрыв...смертельно красиво...жаль, что не вечно...

cvetkovme
проходил мимо
Сообщения: 2
Зарегистрирован: 2008-01-20 20:20:51

Re: Защита подключения через SSH

Непрочитанное сообщение cvetkovme » 2008-01-20 20:44:38

Приветствую всех.

Я не так давно начал использовать knockd. Очень простая и в тоже время полезная программа.
На сайте lissyara отличная статья про неё и не только...
C ее использованием не возникало проблем, пока мне не понадобилось поставить ее на виртуальный интерфейс netgraph.
Виртуальный интерфейс ngeth: на физическом rl0.
Может кто сталкивался, или просто знает почему knockd не воспринимает стуки.
Посоветуйте куда капнуть.

Всего доброго.

Аватара пользователя
dikens3
подполковник
Сообщения: 4856
Зарегистрирован: 2006-09-06 16:24:08
Откуда: Нижний Новгород
Контактная информация:

Re: Защита подключения через SSH

Непрочитанное сообщение dikens3 » 2008-01-20 20:58:00

Виртуальный интерфейс ngeth: на физическом rl0
knockd не всемогущ. К примеру не работает на tun интерфейсах.

Почитай что он поддерживает.
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.

cvetkovme
проходил мимо
Сообщения: 2
Зарегистрирован: 2008-01-20 20:20:51

Re: Защита подключения через SSH

Непрочитанное сообщение cvetkovme » 2008-01-25 23:54:29

Здравствуйте.

Я по поводу knock на виртуальных интерфейсах...
Суть такова:
На шлюзе - Виртуальный интерфейс(для подмены ARP, для кривого прова) у меня висит на физическом интерфейсе который смотрит в мир, само собой все блочит файервол, и с наружи шлюз не виден и не пингуется не телнетится. И еще хочется доступ к ssh с помощью knock.
Так вот, суть, после долгих рабочих дней и собирания дублирующего шлюза случайно обнаружил, что на ngeth интерфейсах knock не запускается и не слушает. Но, если например на физическом интерфейсе не имеем ip а на виртуальном(ngeth) имеем(пример 0.0.0.0).
Можно обхитрить knock вешаем на физический интерфейс IP 0.0.0.0(такойже как на ngeth), запускаем knock слушать физический интерфейс, убираем -alias 0.0.0.0 c Физического интерфейса.
Как это работает и почему я не разобрался, но после запуска knock и удаления ip, knock прикрасно слушает на ngeth интерфейсе с адресом 0.0.0.0, и выполняет все свои функции.
Если намудрил с объяснением - спрашивайте.
Может кому и понадобиться...