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 ★
()
Вы не можете добавлять комментарии в эту тему: топик перемещен в архив.