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

Firewall_ (сеть)

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

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

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

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

iptables -A ВЫВОД -o eth0 -p tcp –sport 80 -m состояние –состояние УСТАНОВЛЕНО -j ПРИНЯТЬ
-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. Права: в любое время вы можете ограничить, восстановить и удалить свою информацию.