Б - безопасность [Межсетевой экран, knock]


Всем привет, сегодня я решил поднять тему безопасности. Многие из вас имеют белый IP-адрес (доступный из другой стороны интернета). Возможно даже свои сервера (VSD) для ботов и тд. А кто-нибудь задумывался из вас насколько это безопасно? Как быстро вас обнаружат в сети и попытаются взломать?

Атаки

Я думаю для вас не секрет, что в Интернете есть боты которые сканируют порты сети и фиксируют их. Алгоритм может быть таким:

  1. Поиск новых компов.
  2. Поиск на компе открытых портов.
  3. Если есть открытые порты то можно и хакнуть (Например как можно хакнуть 11211 порт можно прочесть тут).
  4. Получить доступ к системе и занести комп в БД.
  5. Продать доступ к компу.

Не помню уже где, этой весной я натыкался на пост где было написано новый компьютер в сети сканируется в первые 15 минут.

Хочу отметить простому пользователю не нужно срываться и греть голову, что же теперь делать? Обычно схема сети рядового пользователя выглядит так:
network.png
Конечно к роутеру подключаються и другие устройства например: телефон. ноутбук, телевизор и тд. В этом случае роутер выполняет первую защиту. Он не позволяет хакерам из "облака" сканировать ваши порты. Обычно роутеры настоены так чтобы извне вас не моги достать. Конечно иногда бывают уязвимости.

Заметка

Если вы прокидываете на роутере порты, то я думаю вы знаете, что делаете. И понимаете, что открываете лазейку для хакеров, помните это.

В этом посте я хотел бы затронут схему когда у вас есть арендованный сервер или вы на роутере прокидываете порты для своего компьютера или сервера. Это же так круто когда, твои друзья могут зайти по ip и заценить твой сайт.
network2.png
Итак у нас есть 2 сервера:

  1. Домашний сервер, который подключен к роутеру
  2. Арендованный сервер

Для того чтобы ваши друзья могли зайти на локальный сервер нужно пробросить порт на роутере. Например так все, что идет с 8080 порта мы отправляем на сервер 192.168.0.3 порт 80. И теперь вами друзья могут вбить в браузер ваш белый IP:8080 и посмотреть ваш сайт который развернуть на локальном сервере.
Теперь разберем второй вариант, когда у нас арендованный сервер. Конечно некоторые хостинги предоставляют как услугу защиту от атак. Но сейчас не об этом.
По умолчанию в линуксе есть много портов которые светят наружу и их нужно закрыть.
Что для этого нужно сделать?
Давайте посмотрим что у нас открыто sudo netstat -ntulp - команда покажет список активных портов.

Межсетевой экран

Теперь посмотрим, что у нас в межсетевом экране iptables -L -n -v
Снимок экрана - 30.10.2017 - 09:42:32.png
Межсетевой экран у нас пустой =(
Давайте попробуем ограничить доступ к портам.
Если у вас, что-то есть (рекомендую сохранить прошлые настройки) вы можете очисить все цепочки командой iptables -F
Теперь давайте добавим разрешающие правило "разрешить входящие соединение для уже существующих соединений" таким образом мы не сломаем существующие соединения.

iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

Добавим еще одно разрешающее правило для портов через которые мы будем заходит

iptables -A INPUT -m multiport -p tcp --dport 22, 8181 -j ACCEPT

Это правило открывает 22 порт для ssh соединений и 8181 для моего web-приложения.
Идем дальше, все остальные порты на вход нужно закрыть. Добавляем запещающие правило на вход

iptables -P INPUT DROP

Как вариант на все исходящии пакеты добавляем разрешающие правило

iptables -P OUTPUT ACCEPT

Что мы имеем?
Извне наш сервер доступен через 2 порта это 22 и 8181. Сам сервер может использовать любой порт(это как плюс так и минус, нужно быть винимательным). Межсетевой экран настроили.

knock

Еще один хороший иснтумен для защиты это knock. Суть такова по умолчанию вы можете закрыть в межсетевом экране 22 порт. Затем используя кнок вы отправляете в определенной последовательности пакеты на определленные порты. На стророне сервера приложение кнок не явно просматиривает входящие пакеты и если последовательность совпадает то открывает 22 порт. Ну или еще, что-то делает. Таким образом Вы повышаете уровень безопасности своего сервера еще на один уровень. Из минусов стоит отметить это наличие дополнительного приложения, чтобы подключиться к серверу.
Про кнок есть хорошая статейка на хабре.
Таким образом ваша сеть преобразовываеться вот в такую:
network3.png
Всем спасибо, желаю всем хорошей недели)


Comments 10


TEXT.RU - 100.00%

30.10.2017 06:08
0
30.10.2017 08:20
0

Ок, @onixred!

роботы @gemini, @btc-e и @upbot проголосовали за пост: Б - безопасность [Межсетевой экран, knock]

30.10.2017 08:24
0

@oinixred А какие порты открыты в Windows по умолчанию ?

30.10.2017 09:00
0

хм смотря какая Windows по умолчанию там сетеваой экран включен

30.10.2017 09:12
0

Интересует W7

31.10.2017 01:54
0

список открытых портов для windows 7, можно посмотреть командой netstat -a.
У меня он такой

123
135
137
138
139
445
1025
1027
1026
1900
4500
31.10.2017 02:35
0

Мне кажется сам Windows дырявый и имеет кучу бэкдоров, закрытие портов не особо поможет, но как простейший метод имеет право на существование.

31.10.2017 07:05
0

Я бы рекомендовал, как простейший метод, закрыть в Linux все стандартные порты, стандартные сервисы перевести на другие, например у меня под SSH у меня открыт порт 2223

31.10.2017 07:08
0