И что при таком конфиге пинги не идут????
прошу помощи со скриптом iptables для шлюза
не идут, ходят только те, которые были установлены до запуска скрипта. и ssh работает, по тому же принципу..И что при таком конфиге пинги не идут????
Однако, добавление NEW заставляет все работать 100%
Показать
#
# ------------------ 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 NEW,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[/console]
В том-то все и дело. При такой конфигурации у Enzo_brn пинги не ходят, наперекор теории. Меняем ему правила:И что при таком конфиге пинги не идут????
Показать
#
# ------------------ 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 -p icmp -j ACCEPT
$IPT -A OUTPUT -p icmp -j ACCEPT
$IPT -A FORWARD -p icmp -j ACCEPT
# 5.
$IPT -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
$IPT -A OUTPUT -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
$IPT -A FORWARD -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
# 6.
# Masquerade.
$IPT -t nat -A POSTROUTING -o $EXT_IF -j MASQUERADE
# Enable routing.
echo 1 > /proc/sys/net/ipv4/ip_forward
2. Закрыть все цепочки.
3. Разрешить лупбэк трафик.
4. разрешить транзит ИЦМП-пакетов между внутр. и внешней сетью.
5. Разрешить на всех цепочках соединения, уже инициированные и новые
и команду
echo 1 > /proc/sys/net/ipv4/ip_forwardпоставить в начало скрипта.
urfin, ваш крайний пример скрипта пустит в инэт всю локальную сеть, а мне нужны только пинги, инэт ч/з сквид.
было достаточно только поставить NEW для цепочки FORWARD в п. 4. Непонятно только, почему то-же самое првило, только более узкое из п. 5 не принесло результатов.. $IPT -A FORWARD -p icmp -m state --state NEW -j ACCEPT
эх, вобщем и так ходит вся..(( Как побороть?)
ПОчему весь трафик? Разрешен только ICMP, то есть пинги. Для всех остальных протоколов DROP стоит.urfin, ваш крайний пример скрипта пустит в инэт всю локальную сеть, а мне нужны только пинги, инэт ч/з сквид.
было достаточно только поставить NEW для цепочки FORWARD в п. 4. Непонятно только, почему то-же самое првило, только более узкое из п. 5 не принесло результатов.. $IPT -A FORWARD -p icmp -m state --state NEW -j ACCEPT
А насчет $IPT -A FORWARD -p icmp -m state --state NEW -j ACCEPT, подобные правила почему-то не всегда срабатывают, не знаю почему.
вот и я не пойму как такое возможно, хотя..ПОчему весь трафик?
нам намекает что при обращении, скажем, к 80 порту соединение проинициализируется изнутри, т.к. правило "$IPT -A FORWARD -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT" пошлет политику: "$IPT -P FORWARD DROP" на все 4 стороны. или мне это только кажется?))$IPT -A FORWARD -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
Что вся локальная сеть ходит в инет?эх, вобщем и так ходит вся..(( Как побороть?)
Добавьте правила:
$IPT -A FORWARD -p tcp -j DROP
$IPT -A FORWARD -p udp -j DROP
Суть проблемы над которой я ломаю голову как раз таки сводится к тому: Как разрешить пинг не разрешая интернеты и еще 65534 ненужные мне пока порта..
именно, прям по 80 порту!Что вся локальная сеть ходит в инет?
urfin, крайний вариант скрипта:
Показать
#!/bin/bash
IPT="/sbin/iptables"
EXT_IF="eth0"
INT_IF="eth1"
#
# 1.
# Enable routing.
echo 1 > /proc/sys/net/ipv4/ip_forward
#
# ------------------ FLASHING RULES IN ALL DEFAULT TABLES ---------------------
# 2.
$IPT -t mangle -F && $IPT -t filter -F && $IPT -t nat -F && $IPT -F && $IPT -X
# -----------------------------------------------------------------------------
#
# 3.
$IPT -P INPUT DROP
$IPT -P OUTPUT DROP
$IPT -P FORWARD DROP
# 4.
$IPT -A INPUT -i lo -j ACCEPT
$IPT -A OUTPUT -o lo -j ACCEPT
# 5.
$IPT -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
$IPT -A OUTPUT -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
$IPT -A FORWARD -p icmp -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
# 6.
# Masquerade.
$IPT -t nat -A POSTROUTING -o $EXT_IF -j MASQUERADE
в таком варианте ни пинга, ни инэта в локалке нет. Убираем в п.[5], строка [3] -p icmp и инэт и пинги у всей ЛС
именно, прям по 80 порту![/quote][quote="urfin⇓"]Что вся локальная сеть ходит в инет?
Сделайте так, я беру Ваш скрипт и немного меняю:
Показать
#
# ------------------ 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 conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
$IPT -A OUTPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
$IPT -A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
# 5.
$IPT -A INPUT -m conntrack --ctproto icmp --ctstate NEW -j ACCEPT
$IPT -A OUTPUT -m conntrack --ctproto icmp--ctstate NEW -j ACCEPT
$IPT -A FORWARD -m conntrack --ctproto icmp --ctstate 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
Или так:
Показать
#
# ------------------ 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.
# 5.
$IPT -A INPUT -m conntrack --ctproto icmp --ctstate NEW,RELATED,ESTABLISHED -j ACCEPT
$IPT -A OUTPUT -m conntrack --ctproto icmp--ctstate NEW,RELATED,ESTABLISHED -j ACCEPT
$IPT -A FORWARD -m conntrack --ctproto icmp --ctstate NEW,RELATED,ESTABLISHED -j ACCEPT
# 6.
# Masquerade.
$IPT -t nat -A POSTROUTING -o $EXT_IF -j MASQUERADE
# Enable routing.
echo 1 > /proc/sys/net/ipv4/ip_forward
строчка в строчку. в ЛС есть интернет!((( (у меня не вкл. вайфай и браузер в режиме прямого соединения с Интернет)Сделайте так, я беру Ваш скрипт и немного меняю:
заинтересовало некоторое расхождение теории с практикой
Дано:
host1
# /etc/rc.d/rc.inet1 stop
# ifconfig eth0 192.168.8.10 up
# route add default gw 192.168.8.254
host2
# /etc/rc.d/rc.inet1 stop
# ifconfig eth0 192.168.9.10 up
# route add default gw 192.168.9.254
1) Обычная маршрутизация пакетов из сети в сеть
gw
# /etc/rc.d/rc.inet1 stop
# ifconfig eth0 192.168.8.254 up
# ifconfig eth1 192.168.9.254 up
# echo "1" > /proc/sys/net/ipv4/ip_forward
# iptables -P INPUT DROP
# iptables -P OUTPUT DROP
Делаем на host2
# tcpdump
и наблюдаем...
На host1
# ping -c1 192.168.9.10
64 bytes from 192.168.9.10: icmp_req=1 ttl=63 time=1.55
...
на host2 наблюдаем
ICMP echo request 192.168.8.10 > 192.168.9.10
ICMP echo reply 192.168.9.10 > 192.168.8.10
2) Трансляция сетевого адреса источника (SNAT)
Делаем:
на gw
# iptables -t nat -A POSTROUTING -s 192.168.8.0/24 -o eth1 -j SNAT --to-source 192.168.9.254
на host1
# ping -c1 192.168.9.10
64 bytes from 192.168.9.10: icmp_req=1 ttl=63 time=1.55
...
на host2 наблюдаем
ICMP echo request 192.168.9.254 > 192.168.9.10
ICMP echo reply 192.168.9.10 > 192.168.9.254
Вопросы, замечания, комментарии?
строчка в строчку. в ЛС есть интернет!((( (у меня не вкл. вайфай и браузер в режиме прямого соединения с Интернет)[/quote]А если закомментить FORWARD в 4 и 5?[quote="urfin⇓"]Сделайте так, я беру Ваш скрипт и немного меняю:
Нет пингов, нет интернета, отвалился ssh (перезапускал скрипт терминально)Или так:
Нет пингов, нет интернета, отвалился ssh (перезапускал скрипт терминально)[/quote]Ясно, а как с отключенным FORWARD'ом?[quote="urfin⇓"]Или так:
с откл. - вообще как в танке и как сейчас, нет инэтов, пингов, все недоступно. даже ip самого шлюза в ЛСЯсно, а как с отключенным FORWARD'ом?
(зы: дико извиняюсь, сегодня я ушел.)
с откл. - вообще как в танке и как сейчас, нет инэтов, пингов, все недоступно. даже ip самого шлюза в ЛС[/quote][quote="urfin⇓"]Ясно, а как с отключенным FORWARD'ом?
а что в таком случае?
IPT="/sbin/iptables"
EXT_IF="eth0"
INT_IF="eth1"
#
# ------------------ 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 -o $EXT_IF -p icmp -m state --state NEW -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
# 6.
# Masquerade.
$IPT -t nat -A POSTROUTING -o $EXT_IF -j MASQUERADE
# Enable routing.
echo 1 > /proc/sys/net/ipv4/ip_forward