LinuxForum.Fans
Тема

прошу помощи со скриптом iptables для шлюза

Автор: Me_Shock 182 сообщений 27897 просмотров
#312930

kisil написал:
Да
Ну, так icmp и не выходит наружу, и уж тем более не входит :)
#312932
kisil написал:
Хорошо а если так, тока возмём для отдельного айпи
text
echo 1 > /proc/sys/net/ipv4/ip_forward
$IPT -t nat -A POSTROUTING -o $EXT_IF -j MASQUERADE
$IPT -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
$IPT -A FORWARD -p icmp -s 192.168.0.20 -o $EXT_IF -j ACCEPT

айпи свое ставите. И пробуйте будет ли идти пинг.
Не знаю как у вас а у меня такая система работает. При том что политики INPUT, FORWARD DROP, OUTPUT ACCEPT
И при такой конструкции вот такое правило работает.

text
iptables -A FORWARD -p icmp -i eth1 -o eth0 -j ACCEPT

Пинги идут

Ну дак при таких настройках выходит наружу и тем более входит. Сам проверял.

#312933

А да ТС а разрешыка ещё icmp в OUTPUT и INPUT

#312941

"kisil⇓" написал:
А да ТС а разрешыка ещё icmp в OUTPUT и INPUT
разрешил, упростил немного для наглядности:

Показать
text
#!/bin/bash
#
IPT=/sbin/iptables
# --------------------------- CLOSE ALL CHAINS --------------------------------
$IPT -P INPUT ACCEPT
$IPT -P OUTPUT 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 -m state --state RELATED,ESTABLISHED -j ACCEPT

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

не ходят!! Может мне еще ворвард в АЦЕПТ потсавить :D ?))

#312945
"Enzo_brn⇓" написал:
# $IPT -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT

Вот это разкоментируйте а тогда пробуйте.
И ещё вы пинговать интернет откуда пробуете. Если с робочей станцыи подключённой к этому серваку то верно лы вы настроили сеть на ней?

#312947

Я бы еще вот это добавил:

text
$IPT -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
$IPT -A OUTPUT -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
#312948

Верно. Это нужно для тех политик которые DROP

#313063

"kisil⇓" написал:
Вот это разкоментируйте а тогда пробуйте.
не помогло.

"kisil⇓" написал:
И ещё вы пинговать интернет откуда пробуете.
с рабочей станции, подкл. к этому шлюзу
"kisil⇓" написал:
верно лы вы настроили сеть на ней?
думаю, да. Ведь пакетики ходят, если правила рабочие. вот так работает:
Показать
text
#!/bin/bash
#
IPT=/sbin/iptables
# --------------------------- CLOSE ALL CHAINS --------------------------------
$IPT -P INPUT ACCEPT
$IPT -P OUTPUT 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 # -----------------------------------------------------------------------------

#313064

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
# -----------------------------------------------------------------------------
#313065

Если так работает, то дело за малым. Сделать так чтобы и после других шаманств из фаерволом пинги работали. *PARDON*
Ну берите набивайте другие правила и проверяйте иногда функцыонал.

#313066

urfin написал:
[quote=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
# -----------------------------------------------------------------------------
[/quote]
Так работать по логике не будет
Потому что у вас сначала идут правила на сандартные политики, а потом они сбрасываютса.

#313068

"urfin⇓" написал:
А так?
неа, "Превышен интервал ожидания для запроса."
"kisil⇓" написал:
Если так работает, то дело за малым.
kisil, urfin, а может: $IPT -A OUTPUT -p icmp -j ACCEPT + $IPT -A FORWARD -p icmp -j ACCEPT?
#313069

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

#313071

"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
#
#313073

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

#313074

"kisil⇓" написал:
Потому что у вас сначала идут правила на стандартные политики, а потом они сбрасываются.
не дошло где, но понял что последовательность нарушена.. Все заработало, как показал urfin
#313075

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

urfin написал:
[quote=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
# -----------------------------------------------------------------------------
[/quote]

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

#313077

"kisil⇓" написал:
ТС то что предложыл urfin, работает или нет.
да, работает!))
#313078
urfin написал:
[quote=kisil]Так это всё хорошо, но нам нужно пинг прокинуть наружу. А как извесно весь транзитный трафик фильтруетса в таблице filter цепочке FORWARD. INPUT&OUTPUT для локальных приложений.
Разве FORWARD используется не для проброса между интерфейсами, а уже INPUT и OUTPUT для внешнего? То есть, по-моему, FORWARD это внутренность насоса, а INPUT, OUTPUT это шланги.[/quote]
Я что то уже запуталса но по этому ману выходит что

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