91

urfin пишет:
Enzo_brn пишет:

вот так работает:

А так?

+ открыть спойлер

#!/bin/bash
#
IPT=/sbin/iptables
# --------------------------- CLOSE ALL CHAINS --------------------------------
$IPT -P INPUT DROP
$IPT -A INPUT -p icmp -j ACCEPT
$IPT -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
$IPT -P OUTPUT DROP
$IPT -A OUTPUT -p icmp -j ACCEPT
$IPT -A OUTPUT -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
#

$IPT -P FORWARD DROP


# ------------------ FLASHING RULES IN ALL DEFAULT TABLES ---------------------
$IPT -F
#
$IPT -t mangle -F
$IPT -t filter -F
$IPT -t nat -F


# --------------------------------- NAT ALL -----------------------------------
echo 1 > /proc/sys/net/ipv4/ip_forward
$IPT -t nat -A POSTROUTING -o eth0 -j MASQUERADE

# $IPT -A FORWARD -i eth1 -o eth0 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
# $IPT -A FORWARD -i eth0 -o eth1 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT

# $IPT -A FORWARD -p icmp --icmp-type any -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT # work 1st time
$IPT -A FORWARD -p icmp --icmp-type any -m state --state RELATED,ESTABLISHED -j ACCEPT # work in 2nd time (if do 1st rule first)

# $IPT -A FORWARD -p icmp -i eth1 -o eth0 -j ACCEPT
# $IPT -A FORWARD -p icmp -i eth0 -o eth1 -j ACCEPT
# -----------------------------------------------------------------------------

Так работать по логике не будет
Потому что у вас сначала идут правила на сандартные политики, а потом они сбрасываютса.

Trouble  in WINDOWS reboot, trouble in UNIX be root.

92 (03.04.2013 10:51:46 отредактировано Me_Shock)

urfin⇓ пишет:

А так?

неа, "Превышен интервал ожидания для запроса."

kisil⇓ пишет:

Если так работает, то дело за малым.

kisil, urfin, а может: $IPT -A OUTPUT -p icmp -j ACCEPT + $IPT -A FORWARD -p icmp -j ACCEPT?

надпись на двери старого трамвая: "ВЫХОДА НЕТ!" | ❤windows 8 enterprise

93

Хотя говорит то же самое, 100% потерь..

надпись на двери старого трамвая: "ВЫХОДА НЕТ!" | ❤windows 8 enterprise

94

kisil⇓ пишет:

Потому что у вас сначала идут правила на сандартные политики, а потом они сбрасываютса.

А, черт! Точно. Я просто скопировал у ТС и заменил политику INPUT и OTPUT с добавлением некоторых правил, а на все остальное не посмотрел. Надо тогда так:

+ открыть спойлер

#!/bin/bash
#
IPT=/sbin/iptables

# ------------------ FLASHING RULES IN ALL DEFAULT TABLES ---------------------
$IPT -F
#
$IPT -t mangle -F
$IPT -t filter -F
$IPT -t nat -F
# -----------------------------------------------------------
$IPT -P INPUT DROP
$IPT -A INPUT -p icmp -j ACCEPT
$IPT -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
$IPT -P OUTPUT DROP
$IPT -A OUTPUT -p icmp -j ACCEPT
$IPT -A OUTPUT -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
#
$IPT -P FORWARD DROP
$IPT -A FORWARD -p icmp -j ACCEPT
$IPT -A FORWARD -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
#

# --------------------------------- NAT ALL -----------------------------------
echo 1 > /proc/sys/net/ipv4/ip_forward
$IPT -t nat -A POSTROUTING -o eth0 -j MASQUERADE
#

95 (03.04.2013 11:06:39 отредактировано kisil)

Так это всё хорошо, но нам нужно пинг прокинуть наружу. А как извесно весь транзитный трафик фильтруетса в таблице filter цепочке FORWARD. INPUT&OUTPUT для локальных приложений.
Какаято мистика.
ТС то что предложыл urfin, работает или нет.

Trouble  in WINDOWS reboot, trouble in UNIX be root.

96

kisil⇓ пишет:

Потому что у вас сначала идут правила на стандартные политики, а потом они сбрасываются.

не дошло где, но понял что последовательность нарушена.. Все заработало, как показал urfin

надпись на двери старого трамвая: "ВЫХОДА НЕТ!" | ❤windows 8 enterprise

97

kisil пишет:

Так это всё хорошо, но нам нужно пинг прокинуть наружу. А как извесно весь транзитный трафик фильтруетса в таблице filter цепочке FORWARD. INPUT&OUTPUT для локальных приложений.

Разве FORWARD используется не для проброса между интерфейсами, а уже INPUT и OUTPUT для внешнего? То есть, по-моему, FORWARD это внутренность насоса, а INPUT, OUTPUT это шланги.

98

urfin пишет:
Enzo_brn пишет:

вот так работает:

А так?

+ открыть спойлер

#!/bin/bash
#
IPT=/sbin/iptables
# --------------------------- CLOSE ALL CHAINS --------------------------------
$IPT -P INPUT DROP
$IPT -A INPUT -p icmp -j ACCEPT
$IPT -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
$IPT -P OUTPUT DROP
$IPT -A OUTPUT -p icmp -j ACCEPT
$IPT -A OUTPUT -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
#

$IPT -P FORWARD DROP


# ------------------ FLASHING RULES IN ALL DEFAULT TABLES ---------------------
$IPT -F
#
$IPT -t mangle -F
$IPT -t filter -F
$IPT -t nat -F


# --------------------------------- NAT ALL -----------------------------------
echo 1 > /proc/sys/net/ipv4/ip_forward
$IPT -t nat -A POSTROUTING -o eth0 -j MASQUERADE

# $IPT -A FORWARD -i eth1 -o eth0 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
# $IPT -A FORWARD -i eth0 -o eth1 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT

# $IPT -A FORWARD -p icmp --icmp-type any -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT # work 1st time
$IPT -A FORWARD -p icmp --icmp-type any -m state --state RELATED,ESTABLISHED -j ACCEPT # work in 2nd time (if do 1st rule first)

# $IPT -A FORWARD -p icmp -i eth1 -o eth0 -j ACCEPT
# $IPT -A FORWARD -p icmp -i eth0 -o eth1 -j ACCEPT
# -----------------------------------------------------------------------------

Вот тут неправильно. В последнем сообщении всё верно. Ну и хорошо что работает. Теперь дальше набивайте те правила что вам нужно.

Trouble  in WINDOWS reboot, trouble in UNIX be root.

99

kisil⇓ пишет:

ТС то что предложыл urfin, работает или нет.

да, работает!))

надпись на двери старого трамвая: "ВЫХОДА НЕТ!" | ❤windows 8 enterprise

100

urfin пишет:
kisil пишет:

Так это всё хорошо, но нам нужно пинг прокинуть наружу. А как извесно весь транзитный трафик фильтруетса в таблице filter цепочке FORWARD. INPUT&OUTPUT для локальных приложений.

Разве FORWARD используется не для проброса между интерфейсами, а уже INPUT и OUTPUT для внешнего? То есть, по-моему, FORWARD это внутренность насоса, а INPUT, OUTPUT это шланги.

Я что то уже запуталса но по этому ману выходит что

urfin пишет:

А как извесно весь транзитный трафик фильтруетса в таблице filter цепочке FORWARD. INPUT&OUTPUT для локальных приложений.

Trouble  in WINDOWS reboot, trouble in UNIX be root.

101

И еще, с последними версиями iptables я, вместо -m state --state, использую -m conntrack --ctstate. Иначе вылазили какие-то недовольные сообщения.

102

urfin⇓ пишет:

по-моему, FORWARD это внутренность насоса

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

надпись на двери старого трамвая: "ВЫХОДА НЕТ!" | ❤windows 8 enterprise

103

urfin пишет:

И еще, с последними версиями iptables я, вместо -m state --state, использую -m conntrack --ctstate. Иначе вылазили какие-то недовольные сообщения.

Да всё меняетса. Мир не стои на месте.

Trouble  in WINDOWS reboot, trouble in UNIX be root.

104

urfin⇓ пишет:

И еще, с последними версиями iptables я, вместо -m state --state, использую -m conntrack --ctstate. Иначе вылазили какие-то недовольные сообщения.

не видел таких.

root@gw5:~# iptables --version
iptables v1.4.8
надпись на двери старого трамвая: "ВЫХОДА НЕТ!" | ❤windows 8 enterprise

105

Тем не менее у меня они были, и в openSUSE

# iptables --version
iptables v1.4.16.3

и в Sabayon'е. У Вас, в Debian'е, возможно, это все впереди ab

106

Всем спасибо, думаю тему можно закрывать!)))

надпись на двери старого трамвая: "ВЫХОДА НЕТ!" | ❤windows 8 enterprise

107

FORWARD от INPUT не зависит

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

108

Kettler⇓ пишет:

FORWARD от INPUT не зависит

в моем понимании - форвард это транзитные пакеты, но ведь когда пакет возвращается он же не может миновать цепочку INPUT, иначе он никогда не попадет в хост..?

надпись на двери старого трамвая: "ВЫХОДА НЕТ!" | ❤windows 8 enterprise

109

В цепочку INPUT попадают пакты _адресованные_ хосту, а в FORWARD -- _адресованные_ кому-либо другому, они цепочку INPUT не проходят.

110 (04.04.2013 08:32:20 отредактировано Me_Shock)

bormant, ок, просто я не понимаю как в таком случае это все работает, например пинг. Вот мой хост называется GW5, у него есть 2 сети (внутр. и внешняя) Если я выполню команду ping ya.ru подключенным клиентом к внутренней сети, то как эхо-реплай ко мне вернется, ведь он будет предназначен для моего хоста GW5?

надпись на двери старого трамвая: "ВЫХОДА НЕТ!" | ❤windows 8 enterprise

111

Enzo_brn пишет:

bormant, ок, просто я не понимаю как в таком случае это все работает, например пинг. Вот мой хост называется GW5, у него есть 2 сети (внутр. и внешняя) Если я выполню команду ping ya.ru подключенным клиентом к внутренней сети, то как эхо-реплай ко мне вернется, ведь он будет предназначен для моего хоста GW5?

Вкратце так. Ну если я сам верно понимаю.
Например есть ваш шлюз gw5. В нём всё настроено и он раздаёт тырнет в локалку с помощью NAT. Представим какомуто хосту из локалки нужно пингануть хост в интернете ukr.net. Что он делает? Он сначала выесняет что такого компа в пределах локалки нету. bn . Что же дальше делать, всё засада, такого компа нету. bw . Но тут, ЭВРИКА  bp , он додумываетса просмотреть свою таблицу маршрутизацыи и виесняет что у гланым шлюзом в сети есть GW5, значит нужно его спросить что это за комп и какой его айпи. Тоисть происходит DNS запрос и название преобразуетса в айпи. Ура комп выяснил какой айпи в нужного компа bo . Потом он пробует приконектитса к нужному компу по айпишке что он только что получил. И опять он спрашывает шлюза по умолчанию, что тыры-пыры мне мол нужен вот такой комп с таким айпи. Шлюз принимая соединение от вашего компа, смотрит в заголовок пакета и выясняет айпы адрес хоста назначения. Пошарив по своим таблицам аршрутизацыи шлюз находит путь к этому хосту. А теперь давайте уважаеые читатели разберёмся как этот первый пакет соединения проходит шлюз gw5 чтобы уйти к хосту назначения ukr.net. По ману iptables это есть транзитный пакет и он движетса так:
mangle   PREROUTING > nat     PREROUTING > mangle     FORWARD > Filter     FORWARD > mangle     POSTROUTING > nat     POSTROUTING. Тоисть в цепочку INPUT&OUTPUT таблицы  Filter  он не попадает. Ну так как у нас NAT то в nat     POSTROUTING в заголовке пакета айпи адрес компа который прислал этой пакет из локалки подменяетса на реальную (белую) айпишку шлюза и уже этот пакет уходит в интернет к адресату ukr.net. Потом когда приходит ответ на шлюз, он смотрит что этот пакет не для него а для компа с локалки и пакет движетса тем самым путём тока в обратную сторону. Перед этим nat     POSTROUTING пакету возращаетса айпишка того компа что инициализировал соединение.
Так вот проходят транзитные пакеты через шлюз.
Тут подробнее написано.
Не знаю прав ли я на 100 процентов, но как то всё так.

Trouble  in WINDOWS reboot, trouble in UNIX be root.

112

kisil⇓ пишет:

но как то всё так

А теперь дропните все INPUT и OUTPUT. И что получится? ab

kisil⇓ пишет:

А теперь давайте уважаеые читатели разберёмся как этот первый пакет соединения проходит шлюз gw5 чтобы уйти к хосту назначения ukr.net. По ману iptables это есть транзитный пакет и он движетса так:
mangle   PREROUTING > nat     PREROUTING > mangle     FORWARD > Filter     FORWARD > mangle     POSTROUTING > nat     POSTROUTING. Тоисть в цепочку INPUT&OUTPUT таблицы  Filter  он не попадает. Ну так как у нас NAT то в nat     POSTROUTING в заголовке пакета айпи адрес компа который прислал этой пакет из локалки подменяетса на реальную (белую) айпишку шлюза и уже этот пакет уходит в интернет к адресату ukr.net.

Все правильно. Но только, когда адрес локалки подменяется на белый адрес(вернее будет сказать, что не просто подменяется, а к заголовку добавляется белый адрес, в качестве основного, для глобальной сети, а локальный остается в заголовке, как дополнительный для обратной маршрутизации), он уже вываливается по правилам OUTPUT для белого адреса к ukr.net, когда ukr.net отвечает, то пакет приходит по нашему белому адресу и попадает сначала на правила INPUT, а уже после перенаправляется в nat и FORWARD, для обратного преобразования адреса в локальный и  проброса, а затем уже после преобразования снова должен попасть в OUTPUT, но уже для локального адреса. По-моему, так.

113 (04.04.2013 10:50:43 отредактировано kisil)

Может и так.
Это то что я понял из мана. Могу и неправильно понять.

Trouble  in WINDOWS reboot, trouble in UNIX be root.

114 (04.04.2013 12:44:02 отредактировано bormant)

urfin⇓ пишет:

вываливается по правилам OUTPUT
попадает сначала на правила INPUT

Отлично. Отлично от задокументированного поведения iptables.
Обратите внимание на http://www.opennet.ru/docs/RUS/iptables … NGOFTABLES , ссылку вам выше уже давали.

На машину пакет приходит не сразу в INPUT, и уходит не напрямую через OUTPUT.

На машину из локальной сети пакет приходит адресованным другой машине => FORWARD, в INPUT не попадает, в OUTPUT не попадает (не этой машиной порождён), в POSTROUTING mangle/nat адрес источника меняется на адрес машины.

Решение о том, адресован ли входящий пакет машине принимается после прохождения PREPROUTING mangle/nat, на момент принятия решения после правила DNAT пакет адресован уже другой машине в локальной сети => FORWARD, и в INPUT не попадает.


urfin⇓ пишет:

А теперь дропните все INPUT и OUTPUT. И что получится?

Локальная машина не сможет инициировать исходящие соединения и принимать входящие (например, на ней не сможет работать прокси). Транзитный трафик при наличии DNAT/SNAT/маскарадинга и разрешённом ip_forward будет ходить.

115

bormant пишет:

Транзитный трафик при наличии DNAT/SNAT/маскарадинга будет ходить.

Не ходит. Почему?

116

urfin⇓ пишет:

Не ходит. Почему?

Потому что не транзитный?

117 (04.04.2013 12:56:07 отредактировано urfin)

bormant пишет:
urfin⇓ пишет:

Не ходит. Почему?

Потому что не транзитный?

"PC"<-"lnet"->"Gate"<->"inet". На "Gate"  включен nat, а INPUT & OUTPUT в DROP. С "PC" в "inet" ничего не идет.
При OUTPUT & INPUT в ACCESS все ходит.

118 (04.04.2013 13:19:08 отредактировано bormant)

urfin,
можно увидеть на Gate:
cat /proc/sys/net/ipv4/ip_forward
iptables-save
route

NAT включен как-то так:
$IPT -t nat -A POSTROUTING -o $WAN_IF \
     -j SNAT --to-source $WAN_IP
echo "1" > /proc/sys/net/ipv4/ip_forward
?

119

Пожалуйста смотрите, вот так все ходит (некоторые DROP правила я убрал, как несущественные для обсуждения)

# cat /proc/sys/net/ipv4/ip_forward
1
#
+ iptables-save

# Generated by iptables-save v1.4.16.3 on Thu Apr  4 16:34:15 2013
*filter
:INPUT ACCEPT [32:3971]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [14:560]
-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -s 192.168.200.0/24 -o dsl0 -m conntrack --ctstate NEW -j ACCEPT
-A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A OUTPUT -m conntrack --ctstate NEW,RELATED,ESTABLISHED -j ACCEPT
COMMIT
# Completed on Thu Apr  4 16:34:15 2013
# Generated by iptables-save v1.4.16.3 on Thu Apr  4 16:34:15 2013
*nat
:PREROUTING ACCEPT [22:3497]
:INPUT ACCEPT [22:3497]
:OUTPUT ACCEPT [6593:442541]
:POSTROUTING ACCEPT [6593:442541]
-A POSTROUTING -s 192.168.200.0/24 -o dsl0 -j MASQUERADE
COMMIT
# Completed on Thu Apr  4 16:34:15 2013

+ route

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         *               0.0.0.0         U     0      0        0 dsl0
10.85.255.126   *               255.255.255.255 UH    0      0        0 dsl0
loopback        *               255.0.0.0       U     0      0        0 lo
192.168.200.0   *               255.255.255.0   U     0      0        0 lan0

Только мне помощь не нужна по правилам, УМВР, меня уже просто заинтересовало некоторое расхождение теории с практикой.

120 (04.04.2013 14:46:09 отредактировано Me_Shock)

urfin⇓ пишет:

Только мне помощь не нужна

а мне бы не помешала..)
Давайте проследим логику простой настройки файрвола на шлюзе для администратора с параноидальными синдромами:
1. Почистить таблицы.
2. Закрыть все цепочки.
3. Разрешить лупбэк трафик.
4. Разрешить на всех цепочка соединения, УЖЕ инициированные изнутри. (чтобы ИЦМП вернулся).
5. Разрешить во всех цепочках инициировать НОВЫЕ соединения по протоколу ИЦМП.
6. разрешить транзит ИЦМП-пакетов между внутр. и внешней сетью.

+ открыть спойлер
#!/bin/bash
#
# ------------------ FLASHING RULES IN ALL DEFAULT TABLES ---------------------
# 1.
$IPT -t mangle -F && $IPT -t filter -F && $IPT -t nat -F && $IPT -F && $IPT -X
# -----------------------------------------------------------------------------
#
# 2.
$IPT -P INPUT DROP
$IPT -P OUTPUT DROP
$IPT -P FORWARD DROP


# 3.
$IPT -A INPUT -i lo -j ACCEPT
$IPT -A OUTPUT -o lo -j ACCEPT


# 4.
$IPT -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
$IPT -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
$IPT -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT


# 5.
$IPT -A INPUT -p icmp -m state --state NEW -j ACCEPT
$IPT -A OUTPUT -p icmp -m state --state NEW -j ACCEPT
$IPT -A FORWARD -p icmp -m state --state NEW -j ACCEPT



# 6.
# Masquerade.
$IPT -t nat -A POSTROUTING -o $EXT_IF -j MASQUERADE

# Enable routing.
echo 1 > /proc/sys/net/ipv4/ip_forward

УМНР, пинги не ходят.. Все ли я правильно понимаю..?

надпись на двери старого трамвая: "ВЫХОДА НЕТ!" | ❤windows 8 enterprise