LINUX.ORG.RU
ФорумAdmin

nat,iptables,трабы


0

0

в общем:

есть инет - ppp0

есть модем, через который выход в инет - eth0

есть сеть - eth1

нужно настроить nat пользователю 192.168.10.130

вот все мои правила в iptables:

ipt="iptables"

inet="ppp0"

local="eth1"

modem="eth0"

ports="1025:65535"

echo 1 > /proc/sys/net/ipv4/ip_forward

$ipt -F

$ipt -X

$ipt -t nat -F

$ipt -t mangle -F

$ipt -P INPUT DROP

$ipt -P OUTPUT ACCEPT

$ipt -P FORWARD ACCEPT

$ipt -A INPUT -i lo -j ACCEPT

$ipt -A INPUT -i $modem -j ACCEPT

$ipt -A INPUT -m state --state INVALID -j DROP

$ipt -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

$ipt -A INPUT -p tcp -m tcp -i $inet --dport $ports -j ACCEPT $ipt -A INPUT -p tcp -m tcp -i $local --dport $ports -j ACCEPT

$ipt -A INPUT -p icmp --icmp-type echo-request -i $inet -j DROP

$ipt -A INPUT -p icmp --icmp-type echo-request -i $local -j DROP

$ipt -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s -j RETURN

$ipt -A INPUT -p icmp -j ACCEPT

$ipt -A INPUT -p udp -m udp -i $inet --sport 53 -j ACCEPT

$ipt -A INPUT -p tcp -m tcp -i $inet --sport 53 -j ACCEPT

$ipt -A INPUT -p udp -m udp -i $local --sport 53 -j ACCEPT

$ipt -A INPUT -p tcp -m tcp -i $local --sport 53 -j ACCEPT

iptables -t nat -A POSTROUTING -s 192.168.10.130 -o ppp0 -j MASQUERADE

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

anonymous

MASQUERADE не всегда работает, попробуйте заменить его на SNAT. 

>tcpdump пишет, что все пакеты, якобы, доходят до адресата, но сам адресат не получает

Переведите на нормальный язык. Кто в вашем случае адресат? Что значит не получает? У адресата тоже запускался дампер пакетов?

А это вобще зачётные правила:

$ipt -A INPUT -p icmp --icmp-type echo-request -i $inet -j DROP
$ipt -A INPUT -p icmp --icmp-type echo-request -i $local -j DROP
$ipt -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s -j RETURN 

Запрещает ping-пакеты из инета, из локалки, и с остальных интерфейсов
(причем один пакет в секунду запрещаем, а остальные разрешаем).

mky ★★★★★
()
Ответ на: комментарий от mky

Гм. На самом деле вот так: $ipt -A INPUT -p icmp --icmp-type echo-request -i $inet -j DROP $ipt -A INPUT -p icmp --icmp-type echo-request -i $local -j DROP $ipt -A INPUT -p icmp -j ACCEPT

На SNAT менять пробовал, тоже безрезультатно.

Насчет tcpdump: при пинге ya.ru: tcpdump -i eth1(лок. сеть): IP 192.168.10.130 > ya.ru: ICMP echo request, id 22329, seq 30, length 64 IP ya.ru > 192.168.10.130: ICMP echo reply, id 22329, seq 30, length 64

То же самое пишет и tcpdump -i ppp0, только от моего внешнего айпи.

anonymous
()

Бррррр... Для начала, проверка на номера портов в INPUT бессмысленна - INPUT это ТОЛЬКО то, что адресовано непосредственно данной машине. Всё что пойдёт через неё куда-то ещё - это FORWARD. Который у тебя полностью открыт и так через -P.

В общем убрать всю херню и сделать для теста игрушечные правила:

echo 1 > /proc/sys/net/ipv4/ip_forward

$ipt -F

$ipt -X

$ipt -t nat -F

$ipt -t mangle -F

$ipt -P INPUT ACCEPT

$ipt -P OUTPUT ACCEPT

$ipt -P FORWARD ACCEPT

iptables -t nat -A POSTROUTING -s 192.168.10.130 -o ppp0 -j MASQUERADE

Да, а ppp0 и егойный адрес надеюсь в default route прописывается??? iptables сам НЕ ЗАНИМАЕТСЯ роутингом, он только подменяет адреса и запоминает их.

anonymous
()
Ответ на: комментарий от anonymous_num_0

У меня арч. Во-вторых, я знаю, что input - это только то, что адресовано данному компу. Но этот комп испольузется не только в режиме роутера, я и так кинул уже очень упрощенный вариант скрипта, на котором произвожу сейчас тесты. И я тоже знаю, что дефолтный роут(или для отдельного хоста) нужно прописывать на машине клиента. Игрушечные правила прописывал - та же трабла.

anonymous
()
Ответ на: комментарий от anonymous_num_0

>apt-get install dnsmasq ipmasq

>Все.

Че все?) У меня арч, ввожу и ничего не меняется %)) Кроме убунты дистра нет, ага?

holka
()
Ответ на: комментарий от anonymous

> Игрушечные правила прописывал - та же трабла.

iptables -v -L и iptables -v -L -t nat

Посмотри эти таблички, пигнани чего-нибудь с компа в локалке, снова посмотри... На сайт какой зайди, опять эти таблички посмотри. Там счётчик у каждого правила, сколько пакетов через какое правило прошло... Ну и результат в студию.

Глупый вопрос, конечно, но всё же. А с самого роутера интернет вообще работает? lynx там, ftp...

anonymous
()
Ответ на: комментарий от anonymous

>Насчет tcpdump:
при пинге ya.ru: tcpdump -i eth1(лок. сеть):
IP 192.168.10.130 > ya.ru: ICMP echo request, id 22329, seq 30, length 64
IP ya.ru > 192.168.10.130: ICMP echo reply, id 22329, seq 30, length 64

Ну дак на маршрутизаторе все нормально работает, смотрите что наделано на этой самой машине 192.168.10.130, там поди винда с криво настроеным файерволом. Может попробовать на этой машине запустить wireshark, но не знаю, поможет ли это...

mky ★★★★★
()
Ответ на: комментарий от mky

> Ну дак на маршрутизаторе все нормально работает, смотрите что наделано на этой самой машине 192.168.10.130, там поди винда с криво настроеным файерволом. Может попробовать на этой машине запустить wireshark, но не знаю, поможет ли это...

Не, там не винда, это мой тач с арчем. На фаере закрыт 80 порт и настроен нат. Вот что делаю и вижу:

[holocaust@holocaust-pc lib]$ ping ya.ru

PING ya.ru (213.180.204.8) 56(84) bytes of data.

64 bytes from ya.ru (213.180.204.8): icmp_seq=1 ttl=53 time=56.3 ms

1 packets transmitted, 1 received, 0% packet loss, time 0ms

[root@holocaust-pc ~]# route add ya.ru gw 192.168.10.237

[holocaust@holocaust-pc lib]$ ping ya.ru

PING ya.ru (213.180.204.8) 56(84) bytes of data.

^C

--- ya.ru ping statistics ---

61 packets transmitted, 0 received, 100% packet loss, time 60000ms

holka
()
Ответ на: комментарий от mky

>Покажите настройки iptables на 192.168.10.130, запустите на своей таче tcpdump.

Разобрались.. Оказывается, все дело в том, что роутеры в нашей локальной сети запрещают обмен перенаправленными пакетами. Видимо, админы сети избегают появления левых компьютеров, за которые никто не понесет абонентскую плату. Спасибо за помощь!

holka
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.