Защита подключения через SSH
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
-
- проходил мимо
- Сообщения: 7
- Зарегистрирован: 2007-11-23 11:57:18
Защита подключения через SSH
Вобщем суть вопроса достаточно проста, но пока к сожалению не смог реализовать.
Необходимо завести учетную запись на сервере Free-BSD при входе на которую в фаервол будет добавляться нужное правило, при отключение пользователя правило удалялось. При этом пользователь не должен получать доступ к файловой системе машины, просто получал сообщение что типо адес с которого Вы выходите добавлено в фаервол, можете осуществлять дальнейшие подлкючения к серверам!
Все это делаеться для того чтобы обезопасить второй сервер, который находиться уже в Вашей внутренней сети! Например
Имеем Сервер windows 2003 в локальной закрытой от внешнего мира сети, сервер Unix-FreeBSD с реальным ип адресом. Сеть без домена.
Предположим что нам нужно получить доступ к rdp серверу к win2003.
Для этого подстраиваем natd.conf и прописываем там redirect_port tcp *.*.*.*:3389 внеш.ний.ип.ад.рес:порт.
Но для того чтобы обезопасить подключение следует создать пользователей, которые при входе будут открывать скрипт, который в свою очередь будет добавлять правило в фаервол с разрешением доступа именно с того адреса с которого эти пользователи в данный момент подключены.
Вот собственно эта задача требует решения. Я пока не силен в программировании (к великому сожалению), но все еще впереди. Так что буду рад если кто откликнеться и поможет с данной задачей.
Необходимо завести учетную запись на сервере Free-BSD при входе на которую в фаервол будет добавляться нужное правило, при отключение пользователя правило удалялось. При этом пользователь не должен получать доступ к файловой системе машины, просто получал сообщение что типо адес с которого Вы выходите добавлено в фаервол, можете осуществлять дальнейшие подлкючения к серверам!
Все это делаеться для того чтобы обезопасить второй сервер, который находиться уже в Вашей внутренней сети! Например
Имеем Сервер windows 2003 в локальной закрытой от внешнего мира сети, сервер Unix-FreeBSD с реальным ип адресом. Сеть без домена.
Предположим что нам нужно получить доступ к rdp серверу к win2003.
Для этого подстраиваем natd.conf и прописываем там redirect_port tcp *.*.*.*:3389 внеш.ний.ип.ад.рес:порт.
Но для того чтобы обезопасить подключение следует создать пользователей, которые при входе будут открывать скрипт, который в свою очередь будет добавлять правило в фаервол с разрешением доступа именно с того адреса с которого эти пользователи в данный момент подключены.
Вот собственно эта задача требует решения. Я пока не силен в программировании (к великому сожалению), но все еще впереди. Так что буду рад если кто откликнеться и поможет с данной задачей.
Услуги хостинговой компании Host-Food.ru
Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
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
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
ядерный взрыв...смертельно красиво...жаль, что не вечно...
-
- рядовой
- Сообщения: 47
- Зарегистрирован: 2007-09-28 14:18:24
Re: Защита подключения через SSH
Ставь OpenVPN (или другое по вкусу, но с этим наименьшая вероятность возникновения проблем на этапе настройки). Таким образом и тот сервис, который ты хочешь открыть, будет ходить по шифрованому соединению.
-
- сержант
- Сообщения: 218
- Зарегистрирован: 2006-09-04 17:41:27
- Откуда: Москва
- Контактная информация:
-
- проходил мимо
- Сообщения: 7
- Зарегистрирован: 2007-11-23 11:57:18
Re: Защита подключения через SSH
Спасибо за помощь в решении данного вопроса! Однако есть еще один нюанс. Использую knocking хочеться добалять правила в ipfw с разными номерами в определенном диапазоне допустим с 4300 по 4400! Как это сделать? и естественно при отключении юзера от сервака чтобы именно его правило удалялось и не сбрасывало подключение других!?
- dikens3
- подполковник
- Сообщения: 4856
- Зарегистрирован: 2006-09-06 16:24:08
- Откуда: Нижний Новгород
- Контактная информация:
Re: Защита подключения через SSH
Зачем тебе разные?devastator писал(а):Спасибо за помощь в решении данного вопроса! Однако есть еще один нюанс. Использую knocking хочеться добалять правила в ipfw с разными номерами в определенном диапазоне допустим с 4300 по 4400! Как это сделать? и естественно при отключении юзера от сервака чтобы именно его правило удалялось и не сбрасывало подключение других!?
1. Разрешать коннектиться только своим IP на 22 порт (knock)
2. Тебе нужно блокировать ВСЕ SYN пакеты на 22 порт (свои уже пропущены)
3. Пропусти уже установленный трафик на 22 порт (allow from any to me 22 established)
Коннекты не рвутся.
А если совсем правильно - используй таблицы, а не правила. :-) И Добавляй/удаляй всё что пожелаешь. Удачи.
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.
-
- проходил мимо
- Сообщения: 7
- Зарегистрирован: 2007-11-23 11:57:18
Re: Защита подключения через SSH
Да нет же! Дело в том, что с помощью knock я открываю совершенно не 22 порт! 22 -порт у меня по умолчанию открыт! мне нужно чтобы при "стуке" из любой точки мира открывался нужный порт и в фаервол добалялось правило с разрешением ходить пакетам именно от того адреса с которого был произведен стук! И естественно чтобы после выхода постучавшегося в фаерволе это правило удалялось! А если к примеру заходит не один пользователь а 5, то нужно чтобы фаервол закрывал только его входящее соединение! Вот в чем суть вопроса! Может быть есть возможность через другую программу это реализовать!? Если да то какие?dikens3 писал(а):Зачем тебе разные?devastator писал(а):Спасибо за помощь в решении данного вопроса! Однако есть еще один нюанс. Использую knocking хочеться добалять правила в ipfw с разными номерами в определенном диапазоне допустим с 4300 по 4400! Как это сделать? и естественно при отключении юзера от сервака чтобы именно его правило удалялось и не сбрасывало подключение других!?
1. Разрешать коннектиться только своим IP на 22 порт (knock)
2. Тебе нужно блокировать ВСЕ SYN пакеты на 22 порт (свои уже пропущены)
3. Пропусти уже установленный трафик на 22 порт (allow from any to me 22 established)
Коннекты не рвутся.
А если совсем правильно - используй таблицы, а не правила. :-) И Добавляй/удаляй всё что пожелаешь. Удачи.
- schizoid
- подполковник
- Сообщения: 3228
- Зарегистрирован: 2007-03-03 17:32:31
- Откуда: Украина, Чернигов
- Контактная информация:
Re: Защита подключения через SSH
а параметр %IP% что передает? разве не адрес подключившегося?
а на отключение, скрипт повесь, который парсит фаер по определенному ИП , узнает номер правила и удаляет его.
а на отключение, скрипт повесь, который парсит фаер по определенному ИП , узнает номер правила и удаляет его.
ядерный взрыв...смертельно красиво...жаль, что не вечно...
-
- проходил мимо
- Сообщения: 2
- Зарегистрирован: 2008-01-20 20:20:51
Re: Защита подключения через SSH
Приветствую всех.
Я не так давно начал использовать knockd. Очень простая и в тоже время полезная программа.
На сайте lissyara отличная статья про неё и не только...
C ее использованием не возникало проблем, пока мне не понадобилось поставить ее на виртуальный интерфейс netgraph.
Виртуальный интерфейс ngeth: на физическом rl0.
Может кто сталкивался, или просто знает почему knockd не воспринимает стуки.
Посоветуйте куда капнуть.
Всего доброго.
Я не так давно начал использовать knockd. Очень простая и в тоже время полезная программа.
На сайте lissyara отличная статья про неё и не только...
C ее использованием не возникало проблем, пока мне не понадобилось поставить ее на виртуальный интерфейс netgraph.
Виртуальный интерфейс ngeth: на физическом rl0.
Может кто сталкивался, или просто знает почему knockd не воспринимает стуки.
Посоветуйте куда капнуть.
Всего доброго.
- dikens3
- подполковник
- Сообщения: 4856
- Зарегистрирован: 2006-09-06 16:24:08
- Откуда: Нижний Новгород
- Контактная информация:
Re: Защита подключения через SSH
knockd не всемогущ. К примеру не работает на tun интерфейсах.Виртуальный интерфейс ngeth: на физическом rl0
Почитай что он поддерживает.
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.
-
- проходил мимо
- Сообщения: 2
- Зарегистрирован: 2008-01-20 20:20:51
Re: Защита подключения через SSH
Здравствуйте.
Я по поводу 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, и выполняет все свои функции.
Если намудрил с объяснением - спрашивайте.
Может кому и понадобиться...
Я по поводу 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, и выполняет все свои функции.
Если намудрил с объяснением - спрашивайте.
Может кому и понадобиться...