421

AntiduPb пишет:

Можете пояснить

с такими правилами ВСЁ проходит.

AntiduPb пишет:

У меня с этим правилами торент отлично качается

ещё бы.

iAlexandre пишет:

Так? И какой IP нужно тут писать?

-s это источник, -d это приёмник. В принципе вы всё правильно написали, если
1. у вас постоянный IP.
2. вы работаете с одним сервером (с постоянным IP).
3. вы забыли политику DROP, или правило DROP. (без них ваши правила не будут иметь эффект)

Но вы наверняка про другое? Сначала разберитесь с основными понятиями.

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)

422

помогите пожалуйста правильно написать iptables
дано -
eth1
eth0
wlan0
pppoe подключен через eth1
задача - как правильно настроить маршрутизацию чтобы интернет пошел в локалку через eth0 и по wlan0
и как правильно настроить так чтобы локалка была открыта для локалки но недоступна из интернета

423 (27.09.2014 20:27:05 отредактировано Aleksey.Margasov)

По поводу запуска правил в Debian, рекомендую прочитай статью pivpav.ru/post/134

424

thugws пишет:

задача - как правильно настроить маршрутизацию чтобы интернет пошел в локалку через eth0 и по wlan0
и как правильно настроить так чтобы локалка была открыта для локалки но недоступна из интернета

вам нужен NAT

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)

425

Добрый вечер, коллеги :-) Вопрос элементарный, наверное - но что-то не могу разобраться: вот конфиг iptables сетевого шлюза:

*filter
-A FORWARD -s 192.168.1.0/24 -i eth0 -o eth1 -j ACCEPT
-A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -d 192.168.1.10/32 -i eth1 -p tcp -m tcp --dport 3389 -j ACCEPT
-A FORWARD -d 192.168.1.20/32 -i eth1 -p tcp -m tcp --dport 3390 -j ACCEPT
COMMIT
*nat
-A PREROUTING -d 192.168.0.178/32 -i eth1 -p tcp -m tcp --dport 3389 -j DNAT --to-destination 192.168.1.10:3389
-A PREROUTING -d 192.168.0.178/32 -i eth1 -p tcp -m tcp --dport 3390 -j DNAT --to-destination 192.168.1.20:3390
-A POSTROUTING -s 192.168.1.0/24 -o eth1 -j MASQUERADE
COMMIT

Политика такая - разрешено все, проброшены 2 порта на 2 рабочих станции, шлюз объединяет 2 сети - внутренняя (192.168.1.0/24) и «внешний мир», 192.168.0.0/24. Мне нужно в этот скрипт вписать правило для OUTPUT, чтобы на определенный внешний IP пакеты не проходили. Попробовал вот так (для упрощения - нужно заблокировать 8.8.8.8):


*filter
-A FORWARD -s 192.168.1.0/24 -i eth0 -o eth1 -j ACCEPT
-A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -d 192.168.1.10/32 -i eth1 -p tcp -m tcp --dport 3389 -j ACCEPT
-A FORWARD -d 192.168.1.20/32 -i eth1 -p tcp -m tcp --dport 3390 -j ACCEPT
-A OUTPUT -d 8.8.8.8 -j REJECT
COMMIT

Но в таком виде не сработало, пакеты успешно продолжают ходить. В чем тут ошибка, подскажите, пожалуйста :-)

426

garett пишет:

Мне нужно в этот скрипт вписать правило для OUTPUT, чтобы на определенный внешний IP пакеты не проходили.

речл про КАКОЙ порт? На какой системе?

garett пишет:

-A OUTPUT -d 8.8.8.8 -j REJECT

это правило не сработает по двум причинам:
1. оно действует на сам шлюз, а вам видимо хочется заблокировать рабочие станции? Надо цепочку FORWARD.
2. правила с -A обрабатываются в порядке поступления. Если вы что-то разрешили, оно УЖЕ разрешено, и запрещать уже бесполезно. Надо сначала DROP'нуть, а потом,то что останется, разрешать.

PS: не забудьте дефолтные политики, что-бы запретить то, что явно не разрешено.

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)

427

drBatty пишет:

речь про КАКОЙ порт? На какой системе?

Имеются в виду все порты

это правило не сработает по двум причинам:
1. оно действует на сам шлюз, а вам видимо хочется заблокировать рабочие станции? Надо цепочку FORWARD.
2. правила с -A обрабатываются в порядке поступления. Если вы что-то разрешили, оно УЖЕ разрешено, и запрещать уже бесполезно. Надо сначала DROP'нуть, а потом,то что останется, разрешать.

PS: не забудьте дефолтные политики, что-бы запретить то, что явно не разрешено.

А как это будет выглядеть применительно к цепочке FORWARD в моем случае?

428

garett пишет:

А как это будет выглядеть применительно к цепочке FORWARD в моем случае?

garett, я же вам уже ответил на Linux.org.ru. Что вам непонятно?

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

Т.е. в вашем случае

*filter 
-A FORWARD -s 192.168.1.0/24 -i eth0 -o eth1 -j ACCEPT 
-A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT 
-A FORWARD -d 192.168.1.10/32 -i eth1 -p tcp -m tcp --dport 3389 -j ACCEPT 
-A FORWARD -d 192.168.1.20/32 -i eth1 -p tcp -m tcp --dport 3390 -j ACCEPT 
-A OUTPUT -d 8.8.8.8 -j REJECT 
COMMIT

заместо OUTPUT должна быть цепочка FORWARD, это раз, два, правило должно быть первым, потому как транзитный пакет в начале будет обработан правилами

-A FORWARD -s 192.168.1.0/24 -i eth0 -o eth1 -j ACCEPT 
-A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT

и последующие правила работать не будут.

К тому же у вас сейчас вот эти два правила не обрабатывются:

-A FORWARD -d 192.168.1.10/32 -i eth1 -p tcp -m tcp --dport 3389 -j ACCEPT 
-A FORWARD -d 192.168.1.20/32 -i eth1 -p tcp -m tcp --dport 3390 -j ACCEPT 

Т.к. транзитный пакет выходит из цепочки по правилу

-A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT

429

garett пишет:

Имеются в виду все порты

на всех системах и на всех шлюзах?

garett пишет:

А как это будет выглядеть применительно к цепочке FORWARD в моем случае?

вам ужеответили на этот вопрос.

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)

430 (04.12.2014 21:28:33 отредактировано Kettler)

Советуя не забываем про общее правило DROP для всей цепочки.

Ищу дополнительный заработок (удалёнка).
Пьянка без секса – признак алкоголизма.

431 (09.01.2015 22:35:32 отредактировано vlad)

Здравствуйте! Подскажите, в чём отличие этих цепочек: -A INPUT -i lo -j ACCEPT и -I INPUT -i lo -j ACCEPT?
Как будут выполнятся эти цепочки, если они идут в таком (и в обратном) порядке:
-A INPUT -i br0 -o ppp0 -j ACCEPT
-A INPUT -i br0 -j ACCEPT

Ещё, эти оба варианты правильны:
-t nat -A POSTROUTING -o ppp0 -s 192.168.0.0/24 -j MASQUERADE и -t nat -A POSTROUTING -o ppp0 -j MASQUERADE ? На br0 сеть через DHCP настроена именно в этом диапазоне.

И самый главный вопрос, есть скрипт:

#! /bin/bash
# Сброс правил iptables
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT

# Разрешаем трафик на внутреннем петлевом интерфейсе (lo)
iptables -A INPUT -i lo -j ACCEPT

# Разрешаем доступ из внутренней сети в интернет
iptables -A FORWARD -i br0 -o ppp0 -j ACCEPT

# Включаем маскарадинг
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.0.0/24 -j MASQUERADE

# Разрешаем ответы из внешней сети
iptables -A FORWARD -i ppp0 -m state --state ESTABLISHED,RELATED -j ACCEPT

# Запрещаем доступ из и-нет во внутреннюю сеть
iptables -A FORWARD -i ppp0 -o br0 -j REJECT

В нём политика по умолчанию принимать всё, при этом у сервера есть доступ в инет и его клиентам, есть доступ через ssh и доступ к веб-странице, в которой можно посмотреть статистику трафика и webmin. Никаких портов для этого не открывал, всё это с этим скриптом сразу заработало. Хотелось бы сделать чтобы политика была, принимать только то что разрешено, остальное запретить. Если просто добавить -A INPUT DROP и -A FORWARD DROP, то ничего не работает и приходиться перезагружаться.

432 (09.01.2015 23:41:37 отредактировано drBatty)

vlad пишет:

Подскажите, в чём отличие этих цепочек: -A INPUT -i lo -j ACCEPT и -I INPUT

-A append, добавить в конец.
-I insert, вставить вперёд.

в том и разница.

vlad пишет:

Если просто добавить -A INPUT DROP и -A FORWARD DROP, то ничего не работает и приходиться перезагружаться.

правила работают от начала и до конца. Если вы добавите в конце "похЪить", то ничего работать не будет.

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)

433

drBatty пишет:

Если вы добавите в конце "похЪить", то ничего работать не будет.

Прошу прощения, ввёл в заблуждение, добавлял я конечно -P INPUT (-P FORWARD) - политика по умолчанию.

434

vlad пишет:

Прошу прощения, ввёл в заблуждение

покажите

 Консоль:
# iptables -L

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)

435 (10.01.2015 01:22:54 отредактировано vlad)

К сожалению, не знаю как текст скопировать из putty  до изменения (скрипт из первого моего поста): https://yadi.sk/i/Itxn8YiddsWpj, и после: https://yadi.sk/i/07Kzz2fHdsWx3 (скрип тот же, только -P INPUT DROP и -P FORWARD DROP вместо ACCEPT в начале скрипта).
Сразу после выполнения скрипта, теряется доступ к серверу (через ssh), перестаёт работать и-нет (торрент как ни странно работает). Восстанавливаю работу только после запуска прежнего скрипта и передёргиванием соединения (poff/pon) с консоли сервера.

436

как текст скопировать из putty

нажать левую кнопку мыши с одного края выделяемого куска, протащить с нажатой кнопкой до другого края, отпустить кнопку -- всё, выделение уже скопировано в буфер обмена, можно вставлять куда следует.

437 (10.01.2015 10:26:54 отредактировано bormant)

Сразу после выполнения скрипта, теряется доступ к серверу (через ssh)

настраивать фаервол по ssh то ещё удовольствие, любая ошибка в работе головой чревата работой ногами :-)

Могу дать такой совет. Сделайте сценарий, который приводит сетевую подсистему в заведомо рабочее состояние, то есть выполняет вот это вот:

запуска прежнего скрипта и передёргиванием соединения (poff/pon)

условно назовём его /etc/rst.sh. Условно назовем трестируемый сценарий /etc/fwtest.sh.

Наверняка уже догадались, к чему клоню ab
Для запуска тестируемого сценария удобно использовать:

 Консоль:
# /etc/fwtest.sh; sleep 60; /etc/rst.sh

Если ошиблись, достаточно подождать минуту, соединение будет восстановлено без помощи ног. Если тестовый сценарий не рушит работоспособность соединений (не забыть отдельно проверить возможность нового подключения!), можно брать его за основу. Если 60 секунд мало для проверки, изменить параметр sleep соответственно.

438

Подскажите, хочу заблокировать oconner.biz:8041 именно по доменному имени и по порту. Пока использую такое правило:

iptables  -t raw -A PREROUTING -p tcp -d oconner.biz --dport 8041 -j DROP

Но по

iptables -t raw -L PREROUTING -v --line-numbers

вижу что домен разрешается в ip и их несколько на тот момент, таким образом иногда уже позже блокировка может не срабатывать. Да и вообще, блокировать по ip не хочу.

439

Настраиваю сервер и прописываю правила для iptables. Не взглянете, ничего не намудрил?
Все компьютеры работают через прокси и парочку напрямую. Что то меня смущает.

#!/bin/bash

export IPT="iptables"

# Внешний интерфейс
export WAN=enp2s0
export WAN_IP=XXX.XXX.XXX.XXX

# Локальная сеть
export LAN1=enp3s0
export LAN1_IP_RANGE=192.168.88.0/24

# Очищаем правила
$IPT -F
$IPT -F -t nat
$IPT -F -t mangle
$IPT -X
$IPT -t nat -X
$IPT -t mangle -X

# Запрещаем все, что не разрешено
$IPT -P INPUT DROP
$IPT -P OUTPUT ACCEPT
$IPT -P FORWARD DROP

# Разрешаем localhost и локалку
$IPT -A INPUT -i lo -j ACCEPT
$IPT -A INPUT -i $LAN1 -j ACCEPT
$IPT -A OUTPUT -o lo -j ACCEPT
$IPT -A OUTPUT -o $LAN1 -j ACCEPT

echo "  Прокидываем порт 2222 на ssh NAS сервера"
$IPT -t nat -A PREROUTING --dst $WAN_IP -p tcp --dport 2222 -j DNAT --to-destination 192.168.88.180:22
$IPT -I FORWARD -i $WAN -o $LAN1 -d 192.168.88.180 -p tcp -m tcp --dport 22 -j ACCEPT

echo "  Включаем NAT"
$IPT -t nat -A POSTROUTING -s $LAN1_IP_RANGE -o $WAN -j SNAT --to-source $WAN_IP

$IPT -A INPUT -i $LAN1 -j ACCEPT

$IPT -A INPUT -p icmp --icmp-type echo-reply -j ACCEPT
$IPT -A INPUT -p icmp --icmp-type destination-unreachable -j ACCEPT
$IPT -A INPUT -p icmp --icmp-type time-exceeded -j ACCEPT
$IPT -A INPUT -p icmp --icmp-type echo-request -j ACCEPT

# Отбрасываем неопознанные пакеты
$IPT -A INPUT -m state --state INVALID -j DROP
$IPT -A FORWARD -m state --state INVALID -j DROP

# Отбрасываем нулевые пакеты
$IPT -A INPUT -p tcp --tcp-flags ALL NONE -j DROP

# Закрываемся от syn-flood атак
$IPT -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
$IPT -A OUTPUT -p tcp ! --syn -m state --state NEW -j DROP

#$IPT -A INPUT -i $WAN -j ACCEPT
$IPT -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
$IPT -A INPUT -p tcp -m tcp ! --tcp-flags FIN,SYN,RST,ACK SYN -m state --state NEW -j DROP

echo "  Открываем порт для доступа по ssh"
$IPT -A INPUT -i $WAN -p tcp -m tcp --dport 22 -j ACCEPT
$IPT -A INPUT -i $WAN -p tcp -m tcp --dport 2222 -j ACCEPT

#$IPT -A INPUT -p tcp -m tcp --dport 25 -j ACCEPT
#$IPT -A INPUT -p tcp -m tcp --dport 465 -j ACCEPT
#$IPT -A INPUT -p tcp -m tcp --dport 110 -j ACCEPT
#$IPT -A INPUT -p tcp -m tcp --dport 995 -j ACCEPT
#$IPT -A INPUT -p tcp -m tcp --dport 143 -j ACCEPT
#$IPT -A INPUT -p tcp -m tcp --dport 993 -j ACCEPT

$IPT -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT

#$IPT -A FORWARD -i $LAN1 -o $WAN -s 192.168.88.0/24 -j ACCEPT
#$IPT -A FORWARD -i $WAN -o $LAN1 -s 192.168.88.0/24 -j ACCEPT

echo "  Отрываем порты для почты и Viber"
$IPT -A FORWARD -i $LAN1 -o $WAN -p tcp -m multiport --dports 5242,4244 -j ACCEPT
$IPT -A FORWARD -i $LAN1 -o $WAN -p udp -m multiport --dports 5243,9785 -j ACCEPT
$IPT -A FORWARD -i $LAN1 -o $WAN -p tcp -m multiport --dports 25,465,110,995,143,993 -j ACCEPT

#echo "  Открываем порт для ssh сервера файлпомойки"
#$IPT -A FORWARD -i $LAN1 -o $WAN -p tcp -m multiport --dport 2222 -m conntrack --ctstate NEW -j ACCEPT

echo "  Интернет на прямую бухгалтеру"
$IPT -A FORWARD -s 192.168.88.91/32 -i $LAN1 -o $WAN -j ACCEPT

echo "  Интернет на прямую файлпомойке"
$IPT -A FORWARD -s 192.168.88.180/32 -i $LAN1 -o $WAN -j ACCEPT

$IPT -A OUTPUT -o $LAN1 -j ACCEPT
$IPT -A OUTPUT -o $WAN -j ACCEPT
$IPT -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
$IPT -A OUTPUT -p tcp -m tcp ! --tcp-flags FIN,SYN,RST,ACK SYN -m state --state NEW -j DROP
MX Linux 21.2 x86_64
Чем больше я работаю админом, тем больше понимаю, насколько волшебна фраза - "Нет технической возможности!"

440 (20.10.2023 09:12:40 отредактировано facebreaker)

Всегда считал, что популярные схемы прохождения пакетов через iptables не очень понятны. Особенно в части цепочек и таблиц которые почему то показывают внутри цепочек. Набросал как вижу сам. Правильно ли?

+ схема

https://snipboard.io/Crp6wk.jpg

Аннушка уже разлила масло…