Создайте свой собственный брандмауэр с iptables, используя этот простой сценарий, часть 2

Firewall_ (сеть)

Всем привет, сегодня я представляю вам вторую часть этой серии руководств по брандмауэру с iptables, очень простой, чтобы вы могли копировать и вставлять, я думаю, что в конце концов это то, что ищут все новички или даже самые опытные, зачем нам 100 раз изобретать велосипед, правда?

На этот раз я говорю им, чтобы они попытались сосредоточиться на очень конкретном случае, хотим ли мы, чтобы наш брандмауэр был более агрессивным с политикой OUTPUT DROP. Этот пост также сделан по просьбе читателя этой страницы и моего поста. (В моей голове wiiiiiiiiiiiii)

Давайте поговорим немного о «плюсах и минусах» установления политик Output Drop, против которого я могу вам сказать в основном то, что это делает работу намного более утомительной и трудоемкой, однако плюс в том, что на сетевом уровне у вас будет безопасность, чем если бы вы сели. Чтобы хорошо подумать, разработать и спланировать политики, у вас будет гораздо более безопасный сервер.

Чтобы не терять рассудок и не уходить от темы, я быстро объясню вам на примере, как ваши правила должны быть более или менее

iptables -A OUTPUT -o eth0 -p tcp –sport 80 -m state –state ESTABLISHED -j ACCEPT
-A потому что мы добавили правило
-o относится к исходящему трафику, то интерфейс размещается, если он не указан, потому что он соответствует всем им.
-спорт порт происхождения, играет важную роль, потому что в большинстве случаев мы не знаем, с какого порта они собираются сделать запрос, в таком случае мы могли бы использовать dport
–Dport порт назначения, когда мы заранее знаем, что исходящее соединение должно идти только на определенный порт. Это должно быть что-то очень конкретное, например, удаленный сервер mysql.
-m состояние –state УСТАНОВЛЕНО Это уже украшение поддержания уже установленных связей, мы могли бы углубиться в это в будущем посте.
-d чтобы говорить о пункте назначения, если он может быть указан, например, ssh на конкретную машину по ее ip

#!/bin/bash

# Очищаем таблицы iptables -F iptables -X # Очищаем NAT iptables -t nat -F iptables -t nat -X # таблица mangle для таких вещей, как PPPoE, PPP и ATM iptables -t mangle -F iptables -t mangle -X # Политики Я думаю, что это лучший способ для новичков и # все еще неплохо, я объясню вывод, потому что это исходящие соединения #, ввод мы все отбрасываем, и сервер не должен пересылать. iptables -P INPUT DROP iptables -P OUTPUT DROP iptables -P FORWARD DROP # Intranet LAN intranet = eth0 #Extranet wan extranet = eth1 # Сохранять состояние. Все, что уже подключено (установлено), оставляем так: iptables -A INPUT -m state --state ESTABLISHED, RELATED -j ACCEPT
iptables -A OUTPUT -m state --state УСТАНОВЛЕНО, СВЯЗАННО -j ПРИНЯТЬ
# Устройство петли. iptables -A INPUT -i lo -j ACCEPT
# Iptables вывод петли -A OUTPUT -o lo -j ACCEPT

# http, https, мы не указываем интерфейс, потому что # мы хотим, чтобы это были все iptables -A INPUT -p tcp --dport 80 -j ACCEPT iptables -A INPUT -p tcp --dport 443 -j ACCEPT
# Вылет из
# http, https, мы не указываем интерфейс, потому что
# мы хотим, чтобы это было для всех, но если мы укажем выходной порт
iptables -A ВЫХОД -p tcp --sport 80 -j ACCEPT iptables -A OUTPUT -p tcp --sport 443 -j ACCEPT

# ssh только внутри и из этого диапазона iptables -A INPUT -p tcp -s 192.168.xx / 24 -i $ intranet --dport 7659 -j ACCEPT
# вывод # ssh только внутренне и из этого диапазона ip
iptables -A ВЫХОД -p tcp -d 192.168.xx / 24 -o $ intranet --sport 7659 -j ПРИНЯТЬ
# мониторинг, например, если у них есть zabbix или другая служба snmp iptables -A INPUT -p tcp -s 192.168.1.1 -i $ intranet --dport 10050 -j ACCEPT
# Вылет из
# мониторинг, например, если у них есть zabbix или какой-нибудь другой сервис snmp
iptables -A ВЫХОД -p tcp -d 192.168.1.1 -o $ intranet --dport 10050 -j ПРИНЯТЬ

# icmp, ping хорошее, ваше решение iptables -A INPUT -p icmp -s 192.168.xx / 24 -i $ intranet -j ACCEPT
# Вылет из
# icmp, ping good - ваше решение
iptables -A ВЫХОД -p icmp -d 192.168.xx / 24 -o $ intranet -j ПРИНЯТЬ

#mysql с postgres - это порт 5432 iptables -A INPUT -p tcp -s 192.168.xx --sport 3306 -i $ intranet -j ACCEPT
# output - вопрос, который также задает пользователь, чтобы # создать очень специфический сервер правил: 192.168.1.2 mysql: 192.168.1.3
#mysql с postgres - это порт 5432
iptables -A ВЫХОД -p tcp -s 192.168.1.2 -d 192.168.1.3 --dport 3306 -o $ intranet -j ПРИНЯТЬ

#sendmail bueeeh, если вы хотите отправить почту #iptables -A OUTPUT -p tcp --dport 25 -j ACCEPT # Anti-SPOOFING 09 # SERVER_IP = "07.xxx" # IP-адрес сервера - настоящий WAN IP of your LAN_RANGE server = "2014.xx / 190" # Диапазон LAN вашей сети или вашего vlan # IP-адреса, которые никогда не должны входить в экстранет, # нужно использовать небольшую логику, если у нас чисто WAN-интерфейс, он никогда не должен введите # тип трафика LAN через этот интерфейс SPOOF_IPS = "192.168/21 0.0.0.0/8 127.0.0.0/8 10.0.0.0/8 172.16.0.0/12" # Действие по умолчанию - выполняется, когда любое правило соответствует ACTION = "DROP" # Пакеты с тем же IP, что и мой сервер, через wan iptables -A INPUT -i $ extranet -s $ SERVER_IP -j $ ACTION
iptables -A ВЫХОД -o $ extranet -s $ SERVER_IP -j $ ACTION

# Пакеты с диапазоном LAN для WAN, я выразился так, если у вас # какая-то конкретная сеть, но это избыточно со следующим # правилом внутри цикла "for" iptables -A INPUT -i $ extranet -s $ LAN_RANGE -j $ ДЕЙСТВИЕ
iptables -A ВЫХОД -o $ extranet -s $ LAN_RANGE -j $ ACTION

## Все сети SPOOF, не разрешенные wan для ip в $ SPOOF_IPS do iptables -A INPUT -i $ extranet -s $ ip -j $ ACTION
iptables -A ВЫХОД -o $ extranet -s $ ip -j $ ДЕЙСТВИЕ
сделанный

В следующем обзоре мы сделаем диапазон портов, а также установим политики, организованные по именам, среди прочего ... Жду ваших комментариев и запросов.


Содержание статьи соответствует нашим принципам редакционная этика. Чтобы сообщить об ошибке, нажмите здесь.

Будьте первым, чтобы комментировать

Оставьте свой комментарий

Ваш электронный адрес не будет опубликован. Обязательные для заполнения поля помечены *

*

*

  1. Ответственный за данные: Мигель Анхель Гатон
  2. Назначение данных: контроль спама, управление комментариями.
  3. Легитимация: ваше согласие
  4. Передача данных: данные не будут переданы третьим лицам, кроме как по закону.
  5. Хранение данных: база данных, размещенная в Occentus Networks (ЕС)
  6. Права: в любое время вы можете ограничить, восстановить и удалить свою информацию.