По мотивам моей вчерашней заметки про ддос, который непонятно кем и для чего был сделан. Я там не упомянул, чем всё в итоге закончилось, потому что написал её сразу по горячим следам. В итоге заблокировал весь входящий трафик, мог себе такое позволить. И спам запросов прекратился только часов через 12. А до этого так и шло в районе 8000-10000 rps на заблокированные порты. И даже полное выключение хоста не помогало.
Если бы ддос не прекратился, пришлось бы либо IP адрес менять, либо просить помощи у провайдера. И ещё не факт, что он бы пошёл на встречу. Это не арендованная VPS, а физическое подключение.
Эта история заставила меня в очередной раз призадуматься над тем, как безопаснее организовать подключение к инфраструктуре, даже непубличной для широкого круга лиц, но доступной через интернет. На IP частенько много всего завязано в плане доступов, а не только DNS записей. И менять очень не хочется. А сразу подключать постоянную защиту накладно, потому что она стоит немало денег и иногда годами может быть не нужна. IP закрывать защитой надо постоянно, потому что как только ты его засветил, тебе уже банально туда даже в отключенное оборудование могут слать трафик и блокировать работу, и никакая защита не поможет, пока не поменяешь адрес.
Вариантов защиты от этого несколько:
1️⃣ Самое простое и дорогое, как я уже сказал, сразу же как только у вас появляется инфраструктура с внешним IP адресом, закрываете её сервисом по защите от DDOS. Сервис даст вам свой IP адрес, будет с него пробрасывать запросы на ваши IP. А вы со своих адресов разрешите входящие пакеты только с IP адресов защиты. Это самый безопасный вариант. Про доступы к вашей инфраструктуре не знает никто, кроме сервиса защиты.
2️⃣ Арендуете недорогую VPS, на ней поднимаете необходимые службы, которые будут принимать трафик от клиентов и пересылать уже в вашу инфраструктуру. Она, соответственно, принимает запросы только с VPS. На все остальные запросы не отвечает даже по icmp. Это дёшево и достаточно эффективно. Если вас кто-то начнёт ддосить, вы хотя бы не теряете основной канал в инфраструктуру, про который никто не знает. Можете параллельно настроить альтернативные маршруты, в то время как кто-то будет долбиться в арендованную VPS.
Технически это очень просто сделать. Возможно будет достаточно стандартного Nginx/Angie, который может проксировать как HTTP трафик, так и весь остальной через модуль Stream. Через него можно пустить запросы к OVPN, RDP, IMAP и т.д. Причём распределить потоки можно не по портам, а по доменным именам. Модуль распознаёт имя домена SNI в TLS запросах и на его основании перенаправлять трафик в заданных направлениях.
Если по какой-то причине этот вариант не подойдёт, то можно связать VPS с инфрой по VPN и настроить прямой forward пакетов. Я так тоже делал, рабочий вариант. Можно вообще 1 в 1 зеркалить весь трафик с VPS к себе и обратно.
К этому же способу относится настройка Apache Guacamole или Nexterm для доступа в инфраструктуру. Их так же можно выносить на внешние хосты.
3️⃣ Настроить Port Knocking в любой подходящей вам реализации (раз, два, три, четыре, пять). Это тоже безопасный и простой в настройке вариант, но не очень удобный в эксплуатации, особенно если его надо настраивать и поддерживать для широкого круга лиц. Никому ни на какие запросы не отвечаем, пока не сработает условие Port Knocking.
Я в разное время и в разных местах настраивал все 3 способа. Первый актуален для коммерческих проектов, у которых прибыль зависит от доступности сервисов. Для технических хостов актуальнее будет вариант 2 и 3. Второй будет более удобен для доступа более-менее масштабной группы лиц. А третий способ можно оставить себе или ещё нескольким админам, которым нужен доступ к инфре. Тут не нужны никакие лишние сущности и затраты, только локальные настройки.
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
———
ServerAdmin: 📱 Telegram | 🌐 Сайт | 📲 MAX 😩
#security #gateway
Post #5810
7.06K