Guns.ru Talks
Компьютеры и программы
Хелп, прошу помощи Ubuntu Linux, правила iptables

тема закрыта

Знакомства | вход | зарегистрироваться | поиск | картинки | календарь | поиск оружия, магазинов | фотоконкурсы | Аукцион

Хелп, прошу помощи Ubuntu Linux, правила iptables

Alex2355
P.M.
20-8-2019 17:31 Alex2355
Доброго дня, прошу помощи настроить фаервол в Ubuntu Linux 16.04, заранее благодарен всем, кто откликнется.
Мои задачи
1. запрещаем все входящие соединения;
2. открыть входящие соединения для HTTP/HTTPS (80 порт);
3. открываем нужные порты для входящих соединений;
4. разрешаем все исходящие пакеты
5. настройка таблицы NAT для RDP
6. POSTROUTING без фильтрации
7. MASQUERADE по умолчанию
8. сделать запись о пакете в лог файл
9. сохранить все правила в фаил (бэкап)

составил список основных команд с напоминалкой,

действующие интерфейсы
enp2s0 - провайдер
enp3s0 - шлюз (192.168.1.1)
Lo - Loopback (127.0.0.1)

Общие настройки
1. Сбрасываем текущие правила:
sudo serviceiptables-persistent flush
2. Запрашиваем список текущих правил, чтобы убедиться, что они сброшены:
sudo iptables -S
3.Проверяем Таблицу filter должны быть все политики по умолчанию для всех цепочек ACCEPT (справочно).
-P INPUT ACCEPT
-P FORWARD ACCEPT
-P OUTPUT ACCEPT

4. Определяем цепочки правил для трафика UDP, TCP и ICMP.
sudo iptables -N UDP
sudo iptables -N TCP
sudo iptables -N ICMP

5. После этого добавляем правила для трафика SSH.
поскольку SSH использует TCP, то добавить правило, разрешающее этот трафик на порт 22, в цепочку TCP.
sudo iptables -A TCP -p tcp --dport 22 -j ACCEPT
Для другие протоколов TCP, используем эту же команду, заменив только номер порта.
6. Создаем исключение, которое будет принимать трафик, относящийся к установленным соединениям.
sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -jACCEPT
7.Разрешаем весь трафик, исходящий от локального Lo интерфейса.
sudo iptables -A INPUT -i lo -j ACCEPT
8.Блокируем все недействительные пакеты.
sudo iptables -A INPUT -m conntrack --ctstate INVALID -j DROP
Настраиваем iptables
1. Чтобы трафик передавался в ту или иную цепочку, нужно настроить брандмауэр для передачи пакетов согласно типу протокола. При этом пакет будет представлять
собой новое соединение (любые установленные или родственные соединения должны быть обработаны ранее). ДляTCP-пакетов нужно добавить дополнительное требование:
такой пакет должен быть пакетом SYN, так как это единственный допустимый тип для начала соединения TCP.
sudo iptables-A INPUT -p udp -m conntrack --ctstate NEW -j UDP
sudo iptables -AINPUT -p tcp --syn -m conntrack --ctstate NEW -j TCP
sudo iptables -AINPUT -p icmp -m conntrack --ctstate NEW -j ICMP


2. Если пакет не совпал ни с одним правилом из цепочки для протоколов, он вернётся в цепочку INPUT. Любой пакет, достигший этой точки, будет заблокирован брандмауэром.
sudo iptables-A INPUT -p udp -j REJECT --reject-with icmp-port-unreachable
sudo iptables-A INPUT -p tcp -j REJECT --reject-with tcp-reset
sudo iptables-A INPUT -j REJECT --reject-with icmp-proto-unreachable


Настройка политик по умолчанию
Устанавливаем политику по умолчанию DROP в качестве меры предосторожности. Также устанавливаем эту политику в цепочке FORWARD,
sudo iptables -P INPUT DROP
sudo iptables -PFORWARD DROP
sudo iptables -P OUTPUT ACCEPT

1. Блокируем трафик IPv6,
sudoip6tables -P INPUT DROP
sudo ip6tables -PFORWARD DROP
sudo ip6tables -POUTPUT DROP

2. Сохраняем текущие правила IPv4 и IPv6,
sudoservice iptables-persistent save

Настройка правил NAT
1. Настраиваем на брандмауэре подмену IP, которая замаскирует узлы локальной сети под IP-адресом внешнего интерфейса брандмауэра (в данном случае, enp2s0)
iptables -t nat -A POSTROUTING -o enp2s0 -j MASQUERADE
2. Настраиваем перенаправление адреса для RDP
iptables -A PREROUTING -t nat -i enp2s0 -p tcp --dport33890 -j DNAT --to-destination 192.168.1.2:3389
3. Разрешаем порт 3389
iptables -t filter -A FORWARD-i enp2s0 -o enp2s0 -d 192.168.1.1 -m tcp -p tcp --dport 3389 -j ACCEPT

дальше туплю, не могу понять, как взаимодействуют между собой интерфейсы enp2s0 и enp3s0 ЕслИ и есть кто знающий, посмотрите пож.. та цепочку, что нет так на ваш взгляд?

Skunk
P.M.
21-8-2019 16:25 Skunk
Alex2355
Валяется у меня уже не помню откуда взявшийся и не факт, что когда-то исполнявшийся, скрипт: вроде, по виду должен делать сильно похожее на то, что нужно вам. Может позаимствуете какие идеи.

code:


#! /bin/sh
#
# Firewall scr1pt. Must be placed in /etc/init.d/ directory
# and linked by update-rc.d firewall start 60 S . (Note the '.' at the end!!!)
#
# PACKET IN ---;---PREROUTING---[ routing ]---;----FORWARD---[ routing ]---POSTROUTING---;--- PACKET OUT
# - mangle - mangle - mangle
# - nat (dst) - filter - nat (src)
#
#
# INPUT OUTPUT
# - mangle - mangle
# - filter - nat (dst)
# - filter
#
# `----;--[ application ]--;----'


# Define constants:
IPTABLES="/sbin/iptables"
LOCAL_NETWORK="192.168.0.0/24"
ROUTER="192.168.0.1"
FTP_PORT="21"
SSH_PORT="22"

# Drop previous settings:
#./iptables-flush
/etc/init.d/iptables-flush

# Create a LOGDROP chain to log and drop packets:
$IPTABLES -N LOGDROP
$IPTABLES -A LOGDROP -j LOG
$IPTABLES -A LOGDROP -j DROP

# By default - disable all traffic:
$IPTABLES -P INPUT DROP
$IPTABLES -P OUTPUT DROP
$IPTABLES -P FORWARD DROP

# Allow unlimited traffic on the loopback interface
$IPTABLES -A INPUT -i lo -j ACCEPT
$IPTABLES -A OUTPUT -o lo -j ACCEPT

# Disable new connections to local network, except the router:
$IPTABLES -A OUTPUT --destination $ROUTER -j ACCEPT
$IPTABLES -A OUTPUT --destination $LOCAL_NETWORK -m state --state NEW -j DROP

# Allow unlimited outbound traffic
$IPTABLES -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A OUTPUT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

# Enable incoming from local network
$IPTABLES -A INPUT --source $LOCAL_NETWORK -j ACCEPT

# Enable incoming to FTP port
$IPTABLES -A INPUT --protocol tcp --destination-port $FTP_PORT -j ACCEPT

# Enable incoming to SSH port
$IPTABLES -A INPUT --protocol tcp --destination-port $SSH_PORT -j ACCEPT

# Log and drop all other traffic
#$IPTABLES -A INPUT -j LOGDROP
#$IPTABLES -A OUTPUT -j LOGDROP
#$IPTABLES -A FORWARD -j LOGDROP

Alex2355
P.M.
21-8-2019 17:00 Alex2355
Skunk:

огромное спасибо, у Вас стандартный код + запись в лог, про который я кстати забыл, спасибо
но у меня немного сложней задача, да еще и NAT долбанный
Skunk
P.M.
21-8-2019 22:08 Skunk
Alex2355
Ну, тогда еще один хитровычурный вариант: взять раутер на DD-WRT, сконфигурировать его как вам хочется через UI - а потом посмотреть, что он написал а iptables.
Henri
P.M.
22-8-2019 04:50 Henri
не могу понять, как взаимодействуют между собой интерфейсы enp2s0 и enp3s0

Chain FORWARD

P.S.: самый простой способ решить задачу - прекратить маяться херней и нанять на работу системного администратора.

Alex2355
P.M.
23-8-2019 08:15 Alex2355
Henri:

Chain FORWARD

P.S.: самый простой способ решить задачу - прекратить маяться херней и нанять на работу системного администратора.


Здравая мысль, проходили уже, знаем
Задачу он выполнит за пару часов а зарплату ему платить каждый месяц исправно, да ещё и налоги по 36% государству...
А он потом каждый день приходит на работу и рубится с утра до вечера? В крупной канторе это может и выход, но для мелкой шаражки с 5тью компами слишком круто,
есть конечно вариант принять и через сутки уволить, но у меня как то совесть знаете.. . Лучше сам покапаюсь,
Henri
P.M.
23-8-2019 14:55 Henri
Alex2355:

Здравая мысль, проходили уже, знаем
Задачу он выполнит за пару часов а зарплату ему платить каждый месяц исправно, да ещё и налоги по 36% государству...
А он потом каждый день приходит на работу и рубится с утра до вечера? В крупной канторе это может и выход, но для мелкой шаражки с 5тью компами слишком круто,
есть конечно вариант принять и через сутки уволить, но у меня как то совесть знаете.. . Лучше сам покапаюсь,

Аутсорс/фриланс. 20 минут работы, из которых 15 минут - документирование работы.
Заплатите долларов 30, зато сколько сэкономленных ночей и закрытых уязвимостей.

Skunk
P.M.
23-8-2019 15:15 Skunk
Alex2355:
... мелкой шаражки с 5тью компами...

Купите обычный раутер, перепрожгите на уже помянутую DD-WRT - и получите то же самое: еще и с кучей дополнительных примочек.

>
Guns.ru Talks
Компьютеры и программы
Хелп, прошу помощи Ubuntu Linux, правила iptables