Перейти к содержанию

odin

Участники форума
  • Постов

    4
  • Зарегистрирован

  • Посещение

Весь контент odin

  1. предлагаю добавить функцию HoneyPotting например у вас наружу точно закрыт 21, 22, 23, 25, 80 порт боты в первую очередь будут сканировать эти порты если кто то поинтересовался этим портом сразу в бан
  2. Пробовал НО там вручную надо закрывать порт и нет ограничений по посторонним портам К тому же там приложение, здесь просто скрипт В моём решении порт открывается на 8ч и сам закрывается. Не надо лишних телодвижений по закрытию "двери" Добавлю knokd трогает только таблицу filter, Таблица nat не трогается открыв порт в таблице nat его тут же надо закрыть в таблице filter и потом отдельным правилом открывать/фильтровать итого, надо 2 правила вручную создавать, одно перманентно закрывает, второе при условии открывает, без скрипта ни как Так что их решение хорошо для локально открываемого порта. Здесь порт открываете средствами вебморды кинетика а блокируете и фильтруется средствами скрипта.
  3. Я в курсе, сам пользуюсь. НО , одно другому не мешает. Усиление безопасности никогда не помешает. Добавлю. Если есть открытый порт то уже вызывает интерес. Для кого то даже спортивный. Так что лучше открыть порт не привлекая излишнего внимания. Один мой знакомы рассказал мне такую историю У него была легковая машина. На очередном СТО автомеханик ему предложил поставить противоугонную систему. Суть её была в том что зажигание не сработает пока не провести руку рядом с некоторой поверхностью, даже не прикасаясь. И вот как то он ехал и остановили его ДПС, оказалось переодетые бандиты которые промышляли перепродажей отобранных машин. И лишь только потому что его машина никак не заводилась он остался в живых. Это я к тому что не стоит рассчитывать открытые решения, потайные тоже рулят. Ещё пример. у 99% населения на входной двери квартиры стоят секретки на 20мин работы медвежатника. Но это не значит что надо ставить супер дорогую секретку, этим вы только привлечёте ещё больше внимание, прямо бросите вызов. Единственно правильное решение, скрытый замок, например магнитный или радио. Проводите магнитом в некотором месте двери или стены и начинают работать основные замки.
  4. Стояла задача предоставить доступ пользователям к внутренниму сервису. Обеспечив минимальную безопасность сервиса - сокрытие самого порта от сканеров и брутфорсеров. С минимальным инструментарием клиента. Использовать только одну программу клиента, которая поддерживает множественность адресов подключения - резервные адреса. Клиент RAS Client (Parallels client) У клиента выставляем 5 адреса подключения 1) адрес роутера, порт пробрасываемого сервиса 2) адрес роутера, порт СТУК 1 3) адрес роутера, порт СТУК 2 4) адрес роутера, порт СТУК 3 5) адрес роутера, порт пробрасываемого сервиса Первое подключение происходит долго , идёт простукивание портов. Все последующие быстро, уже в белом списке. На роутере, предварительно, пробросить порт обычными средствами. #!/bin/sh # PORT KNOKING для пробрасываемого порта # класть в /opt/etc/ndm/netfilter.d/100portknok.sh # не забыть chmod +x /opt/etc/ndm/netfilter.d/100portknok.sh # # логика работы # требуется 3 стука # если между простуками будет обращение к постороннему порту доверие утрачивается # сделано для защиты от случайного срабатывания при массовом сканировании портов # пример # если сделать 3 массовых сканирования всех портов то без этой проверки попадёт в списко доверия - KKD # проверка для какой таблици запускается скрипт [ "$type" == "ip6tables" ] && exit 0 [ "$table" != "filter" ] && exit 0 # поверка на наличие правил в системе if iptables -С KNOCKING-LAST -j RETURN ; then exit 0 fi # переменные #WAN MYIF=eth3 # порты простука KK1=1111 KK2=2222 KK3=3333 # внутренний получатель пакетов TIP=192.168.0.2 # порт получателя пакетов TPORT=80 # интервал времени кежду портами MYIDLE=15 # вермя пропуска (28800 = 8ч) WT=28800 # цепочки iptables -N STATE0 iptables -N STATE1 iptables -N STATE2 iptables -N STATE3 iptables -N SUB_STATE1 iptables -N SUB_STATE2 iptables -N SUB_STATE3 iptables -N KNOCKING-LAST iptables -N KNOCKING-FIRST # для проверки когда выпадает #iptables -N SUB_KNOCKING-FIRST # white list iptables -I _NDM_INPUT -s 1.1.1.1 -m recent --set --name KKD --rsource # используются цепочки стоящие после проверок на безопасность echo "=== PORT KNOCKING ===" iptables -I _NDM_INPUT -m state --state NEW -i $MYIF -p tcp -j KNOCKING-FIRST iptables -I _NDM_FORWARD -m state --state NEW -i $MYIF -p tcp -j KNOCKING-LAST #============================================================================================== echo "=== KNOCKING-LAST===" # -=01=- пропущен на 8ч iptables -A KNOCKING-LAST -d $TIP -p tcp -m tcp --dport $TPORT \ -m recent --rcheck --seconds $WT --name KKD --rsource -j ACCEPT # -=02=- на 3й стадии iptables -A KNOCKING-LAST -d $TIP -p tcp -m tcp --dport $TPORT -j STATE3 # -=03=- время истекло 8ч или не в том списке iptables -A KNOCKING-LAST -m recent --remove --name KK1 --rsource iptables -A KNOCKING-LAST -m recent --remove --name KK2 --rsource iptables -A KNOCKING-LAST -m recent --remove --name KK3 --rsource iptables -A KNOCKING-LAST -m recent --remove --name KKD --rsource # -=04=- не наш пакет iptables -A KNOCKING-LAST -j RETURN #============================================================================================== echo "=== KNOCKING-FIRST===" # -=05=- на 2й стадии iptables -A KNOCKING-FIRST -p tcp -m tcp --dport $KK3 -j STATE2 # -=06=- на 1й стадии iptables -A KNOCKING-FIRST -p tcp -m tcp --dport $KK2 -j STATE1 # -=07=- на 0й стадии iptables -A KNOCKING-FIRST -p tcp -m tcp --dport $KK1 -j STATE0 # -=08=- промах по порту, удаление из списков iptables -A KNOCKING-FIRST -m recent --remove --name KK1 --rsource iptables -A KNOCKING-FIRST -m recent --remove --name KK2 --rsource iptables -A KNOCKING-FIRST -m recent --remove --name KK3 --rsource # для проверки когда выпадает #iptables -A KNOCKING-FIRST -m recent --rcheck --name KK1 --rsource -j SUB_KNOCKING-FIRST #iptables -A KNOCKING-FIRST -m recent --rcheck --name KK2 --rsource -j SUB_KNOCKING-FIRST #iptables -A KNOCKING-FIRST -m recent --rcheck --name KK3 --rsource -j SUB_KNOCKING-FIRST # -=09=- НЕ выбрал нужный порт, вернуть iptables -A KNOCKING-FIRST -j RETURN # для проверки когда выпадает #iptables -A SUB_KNOCKING-FIRST -m recent --set --name KK- --rsource -j ACCEPT #============================================================================================== echo "=== STATE0===" # === СТАДИЯ 1 порт $KK1 === # -=10=- елси он ещё в 1ом списке iptables -A STATE0 -m recent --update --seconds $MYIDLE --name KK1 --rsource -j DROP # -=11=- если не в списке, занести в 1й список iptables -A STATE0 -m recent --set --name KK1 --rsource # для включения счётчика времени и самоудалине ИП из списка iptables -A STATE0 -m recent --rcheck --seconds $MYIDLE --name KK1 --rsource -j DROP #============================================================================================== echo "=== STATE1 ===" # === СТАДИЯ 2 порт $KK2 (только если был $KK1) === # -=12=- если он уже во 2ом списке iptables -A STATE1 -m recent --update --seconds $MYIDLE --name KK2 --rsource -j DROP # -=13=- если он ещё в 1ом списке (первое попадание) iptables -A STATE1 -m recent --rcheck --seconds $MYIDLE --name KK1 --rsource -j SUB_STATE1 # -=14=- попал в нужный порт но оказался не в том списке (не та стадия) iptables -A STATE1 -j RETURN # -=15=- из 1го перенести во 2й список iptables -A SUB_STATE1 -m recent --remove --name KK1 --rsource iptables -A SUB_STATE1 -m recent --set --name KK2 --rsource # для включения счётчика времени и самоудалине ИП из списка iptables -A SUB_STATE1 -m recent --rcheck --seconds $MYIDLE --name KK2 --rsource -j DROP #============================================================================================== echo "=== STATE2 ===" # === СТАДИЯ 3 порт $KK3 (только если был $KK2) === # -=16=- если он уже во 3ем списке iptables -A STATE2 -m recent --update --seconds $MYIDLE --name KK3 --rsource -j DROP # -=17=- если он ещё в 2ем списке (первое попадание) iptables -A STATE2 -m recent --rcheck --seconds $MYIDLE --name KK2 --rsource -j SUB_STATE2 # -=18=- попал в нужный порт но оказался не в том списке (не та стадия) iptables -A STATE2 -j RETURN # -=19=- из 1го перенести во 2й список iptables -A SUB_STATE2 -m recent --remove --name KK2 --rsource iptables -A SUB_STATE2 -m recent --set --name KK3 --rsource # для включения счётчика времени и самоудалине ИП из списка iptables -A SUB_STATE2 -m recent --rcheck --seconds $MYIDLE --name KK3 --rsource -j DROP #============================================================================================== echo "=== STATE3 ===" # === СТАДИЯ 4 порт $TPORT (только если был $KK3) === # -=20=- если он ещё в 3ем списке (первое попадание) iptables -A STATE3 -m recent --rcheck --seconds $MYIDLE --name KK3 --rsource -j SUB_STATE3 # -=21=- попал в нужный порт но оказался не в том списке (не та стадия) iptables -A STATE3 -j DROP # -=22=- из 3го перенесли в 4й список iptables -A SUB_STATE3 -m recent --remove --name KK3 --rsource iptables -A SUB_STATE3 -m recent --set --name KKD --rsource # для включения счётчика времени и самоудалине ИП из списка iptables -A SUB_STATE3 -m recent --rcheck --seconds $MYIDLE --name KKD --rsource -j ACCEPT Первый раз пишу BASH скрипт, посему "не сильно бейте". Жду конструктивную критику и пожелания по улучшению.
×
×
  • Создать...

Важная информация

На этом сайте используются файлы cookie. Нажимая "Я принимаю" или продолжая просмотр сайта, вы разрешаете их использование: Политика конфиденциальности.