URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID10
Нить номер: 1841
[ Назад ]

Исходное сообщение
"как перевести маскарадинг с ipchains на iptables?"

Отправлено _RAW_ , 18-Янв-05 16:44 
В обще господа хорошие выручайте :)
Свершилось. Проаптгетил ядро и дистриб своего дебиана который на шлюзе в инет на 2.4.х и woody вместо древнего potato.
Поставил iptables, вместо старых ipchains.
Настроил файрвол.
Затык ждал в самом неожиданном месте. Маскарадинге.

Есть у меня сквид, и есть несколько машин в локальной сети которые должны ходить в обход сквида.
В чейнзах это решалось посредством
    ipchains -A forward -j MASQ -s 10.4.253.100 -d 0/0 >/dev/null

а тут, даже не знаю как поступить. перечитал ман по iptables, облазил список статей тут по информационной безопасности... На просмотр форума уже не хватает сил и времени. Сроки поджимают... Люди, дайте строчку правила к iptables которая пропустит в инет машину например с тем же адресом 10.4.253.100 в инет, через шлюз 82.209.212.10 на интерфейсе eth1 который смотрит в инет.

Не знаю что еще из подробностей дать... Знаю задача простецкая, люди ее решают не плюнув, но что то у меня не хватает.
по манам пишу
    iptables -t nat -A PREROUTING -s 10.4.253.100 -j SNAT  --to-source 82.209.212.10

не пашет...
Чаво прописать то надо? :)


Содержание

Сообщения в этом обсуждении
"как перевести маскарадинг с ipchains на iptables?"
Отправлено screepah , 18-Янв-05 17:06 
http://www.opennet.me/tips/info/379.shtml

Ты одну машину выпускаешь, а наверное нужно подсеть прописать? Типа 10.4.253.0/24 ну или какая она там у тебя?
--to-source - IP, который наружу смотрит
-o ethXX - тот интерфейс, который смотрит наружу

и не забыть про echo "1" > /proc/sys/net/ipv4/ip_forward


"как перевести маскарадинг с ipchains на iptables?"
Отправлено _RAW_ , 18-Янв-05 17:18 
>http://www.opennet.me/tips/info/379.shtml
>
>Ты одну машину выпускаешь, а наверное нужно подсеть прописать? Типа 10.4.253.0/24 ну
>или какая она там у тебя?

Не, как раз пропустить надо скажем 5 машин с фиксированными айпишниками.
ну допустим сведем задачу к пропуску одной машины. 10.4.253.100 - моей :)

>--to-source - IP, который наружу смотрит
ага. именно этот айпишник у меня пришит к интерфейсу который смотрит в инет.

>-o ethXX - тот интерфейс, который смотрит наружу
>
ага. в моем случае это eth1...

>и не забыть про echo "1" > /proc/sys/net/ipv4/ip_forward
прописано. еще с чейнзов осталось... проверял в процессах. наличествует.

выходит следующая строка
iptables -t nat -A POSTROUTING -s 10.4.253.100 -d 0/0 -o eth1 -j SNAT --to-source 82.209.212.10

сейчас пропишу проверю...


"как перевести маскарадинг с ipchains на iptables?"
Отправлено _RAW_ , 19-Янв-05 09:52 
>выходит следующая строка
>iptables -t nat -A POSTROUTING -s 10.4.253.100 -d 0/0 -o eth1 -j
>SNAT --to-source 82.209.212.10


не заработало. продолжает не пускать в инет. :(
чге я не то написал?

вот мой файрвол. писал практически по инструкции :)
может тут где чего не пущает тоже...

    iptables -P INPUT DROP
    iptables -P OUTPUT ACCEPT
    iptables -F
    iptables -X
    iptables -N bad_tcp_packets
    iptables -N allowed
    iptables -N tcp_packets
    iptables -N udp_packets
    iptables -N icmp_packets
    iptables -A bad_tcp_packets -p tcp --tcp-flags SYN,ACK SYN,ACK -m state --state NEW -j DROP
    iptables -A allowed -p tcp --syn -j ACCEPT
    iptables -A allowed -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT
    iptables -A allowed -j DROP
    iptables -A tcp_packets -p tcp -s 0/0 --dport 80 -j allowed
    iptables -A tcp_packets -p tcp -s 0/0 --dport 25 -j allowed
    iptables -A tcp_packets -p tcp -s 0/0 --dport 110 -j allowed
    iptables -A tcp_packets -p tcp -s 0/0 --dport 1024: -j allowed
    iptables -A udp_packets -p udp -s 0/0 --dport 1024: -j allowed
    iptables -A udp_packets -p udp -s 0/0 --sport 53 -j ACCEPT
    iptables -A icmp_packets -p icmp -s 0/0 --icmp-type 3 -j ACCEPT
    iptables -A icmp_packets -p icmp -s 0/0 --icmp-type 11 -j ACCEPT
    iptables -A icmp_packets -p icmp -s 0/0 --icmp-type 12 -j ACCEPT
    iptables -A icmp_packets -p icmp -s 0/0 --icmp-type 8 -j ACCEPT
    iptables -A INPUT -p tcp -j bad_tcp_packets
    iptables -A INPUT -p all -i eth1 -m state --state ESTABLISHED,RELATED -j ACCEPT
    iptables -A INPUT -p tcp -i eth1 -j tcp_packets
    iptables -A INPUT -p udp -i eth1 -j udp_packets
    iptables -A INPUT -p icmp -i eth1 -j icmp_packets


"как перевести маскарадинг с ipchains на iptables?"
Отправлено ref , 19-Янв-05 13:08 
>>выходит следующая строка
>>iptables -t nat -A POSTROUTING -s 10.4.253.100 -d 0/0 -o eth1 -j
>>SNAT --to-source 82.209.212.10
>
>
>не заработало. продолжает не пускать в инет. :(
>чге я не то написал?
>
>вот мой файрвол. писал практически по инструкции :)
>может тут где чего не пущает тоже...
>
>    iptables -P INPUT DROP
>    iptables -P OUTPUT ACCEPT
>    iptables -F
>    iptables -X
>    iptables -N bad_tcp_packets
>    iptables -N allowed
>    iptables -N tcp_packets
>    iptables -N udp_packets
>    iptables -N icmp_packets
     iptables -A FORWARD(или INPUT?) -j bad_tcp_packets(и все сазданные цепочки)
      
>    iptables -A bad_tcp_packets -p tcp --tcp-flags SYN,ACK SYN,ACK
>-m state --state NEW -j DROP
>    iptables -A allowed -p tcp --syn -j ACCEPT
>
>    iptables -A allowed -p tcp -m state --state
>ESTABLISHED,RELATED -j ACCEPT
>    iptables -A allowed -j DROP
>    iptables -A tcp_packets -p tcp -s 0/0 --dport
>80 -j allowed
>    iptables -A tcp_packets -p tcp -s 0/0 --dport
>25 -j allowed
>    iptables -A tcp_packets -p tcp -s 0/0 --dport
>110 -j allowed
>    iptables -A tcp_packets -p tcp -s 0/0 --dport
>1024: -j allowed
>    iptables -A udp_packets -p udp -s 0/0 --dport
>1024: -j allowed
>    iptables -A udp_packets -p udp -s 0/0 --sport
>53 -j ACCEPT
>    iptables -A icmp_packets -p icmp -s 0/0 --icmp-type
>3 -j ACCEPT
>    iptables -A icmp_packets -p icmp -s 0/0 --icmp-type
>11 -j ACCEPT
>    iptables -A icmp_packets -p icmp -s 0/0 --icmp-type
>12 -j ACCEPT
>    iptables -A icmp_packets -p icmp -s 0/0 --icmp-type
>8 -j ACCEPT
>    iptables -A INPUT -p tcp -j bad_tcp_packets
>    iptables -A INPUT -p all -i eth1 -m
>state --state ESTABLISHED,RELATED -j ACCEPT
>    iptables -A INPUT -p tcp -i eth1 -j
>tcp_packets
>    iptables -A INPUT -p udp -i eth1 -j
>udp_packets
>    iptables -A INPUT -p icmp -i eth1 -j
>icmp_packets

не забыть про:
echo "1" /proc/sys/net/ipv4/ip_forward
поправте если не прав :)


"как перевести маскарадинг с ipchains на iptables?"
Отправлено _RAW_ , 19-Янв-05 15:02 
>     iptables -A FORWARD(или INPUT?) -j bad_tcp_packets(и все
>сазданные цепочки)

>>    iptables -A INPUT -p tcp -j bad_tcp_packets
>>    iptables -A INPUT -p all -i eth1 -m
>>state --state ESTABLISHED,RELATED -j ACCEPT
>>    iptables -A INPUT -p tcp -i eth1 -j
>>tcp_packets
>>    iptables -A INPUT -p udp -i eth1 -j
>>udp_packets
>>    iptables -A INPUT -p icmp -i eth1 -j
>>icmp_packets

Так вот же оно. только ниже.

>не забыть про:
>echo "1" /proc/sys/net/ipv4/ip_forward
>поправте если не прав :)
это тоже есть. просто в другой секции. с маскарадами.


"как перевести маскарадинг с ipchains на iptables?"
Отправлено ref , 19-Янв-05 13:31 
и ещё ....
>iptables -t nat -A POSTROUTING -s 10.4.253.100 -d 0/0 -o eth1 -j SNAT  
--to-source 82.209.212.10<
сменить на: iptables -t nat -A POSTROUTING -o eth1 -p tcp -j SNAT --to-source 82.209.212.10
клиентов добавлять:
iptables -A FORWARD -i eth0 -s XXX -p tcp --dport YY -j ACCEPT
iptables -A FORWARD -i eth1 -d XXX -p tcp --sport YY -j ACCEPT  
может чтото упустил ... должно работать

"как перевести маскарадинг с ipchains на iptables?"
Отправлено _RAW_ , 19-Янв-05 15:07 
>>iptables -t nat -A POSTROUTING -s 10.4.253.100 -d 0/0 -o eth1 -j SNAT  
>--to-source 82.209.212.10<
>сменить на: iptables -t nat -A POSTROUTING -o eth1 -p tcp -j
>SNAT --to-source 82.209.212.10
>клиентов добавлять:
> iptables -A FORWARD -i eth0 -s XXX -p tcp --dport YY
>-j ACCEPT
> iptables -A FORWARD -i eth1 -d XXX -p tcp --sport YY
>-j ACCEPT
>может чтото упустил ... должно работать


м... это что же, по кажому порту такую канитель прописывать?
или я не понял двух нижних правил... пропускать по локальному интерфейсу клиента ххх по порту уу
форвардить в интерфейс внешний клиента по порту...
это же громоздко...


"как перевести маскарадинг с ipchains на iptables?"
Отправлено screepah , 20-Янв-05 10:47 
>не заработало. продолжает не пускать в инет. :(

Во-первых удали все правила, кроме POSTROUTING SNAT
Во-вторых не прописывай -s и -d
т.е. просто # iptables -t nat -A POSTROUTING -o eth1 -j SNAT --to-source 82.209.212.10

Ну и проверь лишний раз # cat /proc/sys/net/ipv4/ip_forward, чтоб 1 стояло


"как перевести маскарадинг с ipchains на iptables?"
Отправлено _RAW_ , 20-Янв-05 11:12 
>>не заработало. продолжает не пускать в инет. :(
>
>Во-первых удали все правила, кроме POSTROUTING SNAT
>Во-вторых не прописывай -s и -d
>т.е. просто # iptables -t nat -A POSTROUTING -o eth1 -j SNAT
>--to-source 82.209.212.10
>
>Ну и проверь лишний раз # cat /proc/sys/net/ipv4/ip_forward, чтоб 1 стояло


Этим я разрешу доступ в нет ВСЕМ машинам локалки. а я в начале говорил что хочу всем разрешить только через сквида. Собственно они так и ходят...
А пару машин насквозь... как у меня и было на ipchains


"как перевести маскарадинг с ipchains на iptables?"
Отправлено screepah , 20-Янв-05 14:02 
>Этим я разрешу доступ в нет ВСЕМ машинам локалки. а я в
>начале говорил что хочу всем разрешить только через сквида. Собственно они
>так и ходят...
>А пару машин насквозь... как у меня и было на ipchains

Ты можешь запретить доступ другим машинам. Просто как я понимаю с -s правило работает не так, как кажется. Для этого правила -s является ip, который у тебя на хостах в default маршруте прописан, скорее всего у тебя этот ip тот, который внутрь локалки смотрит с роутера.
Т.е. правило звучит, для всех пакетов, которые идут наружу, перед отправкой на роутер провайдера, преобразовывать ip источника в ip на внешнем интерфейсе.
Поэтому проще открыть доступ всем, перекрыть доступ к нужным сервисам тем, кому не нужно. Например перекрыть всем http, а открыть только отдельным машинам и т.д. Не ставить же в случае, когда все перекрыто pop/smtp proxy например.


"как перевести маскарадинг с ipchains на iptables?"
Отправлено _RAW_ , 21-Янв-05 15:35 
>Ты можешь запретить доступ другим машинам. Просто как я понимаю с -s
>правило работает не так, как кажется. Для этого правила -s является
>ip, который у тебя на хостах в default маршруте прописан, скорее
>всего у тебя этот ip тот, который внутрь локалки смотрит с
>роутера.
>Т.е. правило звучит, для всех пакетов, которые идут наружу, перед отправкой на
>роутер провайдера, преобразовывать ip источника в ip на внешнем интерфейсе.
>Поэтому проще открыть доступ всем, перекрыть доступ к нужным сервисам тем, кому
>не нужно. Например перекрыть всем http, а открыть только отдельным машинам
>и т.д. Не ставить же в случае, когда все перекрыто pop/smtp
>proxy например.


Беда в том что у меня виндовый домен с дхцп. народу туча сидит, айпишники динамические, кроме нескольких машин. плюс еще кроме канала на инет, есть еще канал на WAN где айпишники 10.0.0.0, и надо туда всех пускать, и еще есть модемный пул, где клиентов тоже надо в инет пропускать...

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