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

Исходное сообщение
"iptables, я чего-то не понимаю :-("

Отправлено Димастый , 16-Сен-05 11:59 
     Ситуация стандартная: Сеть с левыми IP + Шлюз для хождения в Inet.
     Шлюз: Linux Slackware v10.1
     Настройка шлюза:
         - Маршрут по умолчанию указывает на следующий за шлюзом маршрутизатор
         - IP_FORVARD включен
         - eth0: сеть 100.100.100.0  eth1 - реальный internet-ip

Делаю:

      iptables -A FORWARD -s 100.100.100.0/24 -j ACCEPT
      iptables -A FORWARD -d 100.100.100.0/24 -j ACCEPT
      iptables -t nat -A POSTROUTING -p tcp -j SNAT --to-source 100.100.100.1-100.100.100.10

      Из локалки в Инет ничего не ходит. :-(
      Где грабли-то?
        


Содержание

Сообщения в этом обсуждении
"iptables, я чего-то не понимаю :-("
Отправлено Dmitry Labutckt , 16-Сен-05 15:15 
>     Ситуация стандартная: Сеть с левыми IP +
>Шлюз для хождения в Inet.
>     Шлюз: Linux Slackware v10.1
>     Настройка шлюза:
>         - Маршрут по
>умолчанию указывает на следующий за шлюзом маршрутизатор
>         - IP_FORVARD включен
>
>         - eth0: сеть
>100.100.100.0  eth1 - реальный internet-ip
>
>Делаю:
>
>      iptables -A FORWARD -s 100.100.100.0/24 -j
>ACCEPT
>      iptables -A FORWARD -d 100.100.100.0/24 -j
>ACCEPT
>      iptables -t nat -A POSTROUTING -p
>tcp -j SNAT --to-source 100.100.100.1-100.100.100.10
>

попробуй так:

iptables -A FORWARD -s 100.100.100.0/24 -j ACCEPT
iptables -A FORWARD -d 100.100.100.0/24 -j ACCEPT
iptables -t nat -A POSTROUTING -s 100.100.100.0/24 -o eth1 -j SNAT --to-source internet_ip

>      Из локалки в Инет ничего не
>ходит. :-(
>      Где грабли-то?
>



"iptables, я чего-то не понимаю :-("
Отправлено Димастый , 17-Сен-05 14:00 
      Попробывал. Не работает. С eth1 (InternetIP) пакет уходит со своим старым адресом отправителя (посмотрел в iptraf).
      НАРОД ХЕЛПАЙТЕ!

"iptables, я чего-то не понимаю :-("
Отправлено FreeMan , 17-Сен-05 15:34 
>      Попробывал. Не работает. С eth1 (InternetIP)
>пакет уходит со своим старым адресом отправителя (посмотрел в iptraf).
>      НАРОД ХЕЛПАЙТЕ!

выложи все от
service iptables status

поглядим что у тя вообще за правила!


"iptables, я чего-то не понимаю :-("
Отправлено Димастый , 17-Сен-05 16:23 

>выложи все от
>service iptables status
^^^^^^^          ^^^^^^
  
     Немного не понял. service - это что?

iptables -L

     Chain INPUT (policy ACCEPT)
     target    prot opt source           destination

     Chain FORWARD(policy ACCEPT)
     target    prot opt source           destination
     ACCEPT    all  --  192.168.200.0/24 anywhere
     ACCEPT    all  --  anywhere         192.168.200.0/24

     Chain OUTPUT (policy ACCEPT)
     target    prot opt source           destination

iptables -L -t nat

     Chain PREROUTING (policy ACCEPT)
     target    prot opt source           destination
    
     Chain POSTROUTING (policy ACCEPT)
     target    prot opt source           destination
     SNAT      all  --  192.168.200.0/24 anywhere        to:<InternetIP>

     Chain OUTPUT (policy ACCEPT)
     target    prot opt source           destination


"iptables, я чего-то не понимаю :-("
Отправлено FreeMan , 18-Сен-05 07:13 
service iptables status - в мандраке эта команды выведет список правил (то что ты и сделал). про слаку незнаю.

в принципе тебе не нужны правила в цепочке FORWARD потому что у тебя политика по умолчанию стоит ACCEPT, тобишь форвардить все!

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

если все это у тебя присутствует, то надо думать!


"iptables, я чего-то не понимаю :-("
Отправлено Morph , 18-Сен-05 22:56 
>service iptables status - в мандраке эта команды выведет список правил (то
>что ты и сделал). про слаку незнаю.
>
>в принципе тебе не нужны правила в цепочке FORWARD потому что у
>тебя политика по умолчанию стоит ACCEPT, тобишь форвардить все!
>
>по тем правилам что у тя в цепочке nat, у тебя все
>должно снатиться. проверь на всякий случай:
>1) echo "1" > /proc/sys/net/ipv4/ip_forward
>2) должны быть загружены модули, погляди lsmod и там поищи iptable_nat.
>
>если все это у тебя присутствует, то надо думать!

что тут думать: правило в nat неправильно написано
+ на клиентах основной шлюз(default route) не указан ;) скорее всего :). он должен быть равен ip интерфейса линуха, смотрящего в локалку ;)
+я надеюсь ip 100.100.100.x ты просто так написал? Надеюсь сеть у тебя что нить типа 192.168.0.0/24 ?


Смотри мою статью:
http://lug.kmv.ru/content.php?article.65
там про iptables. есть скриптик, только подгони под свои адреса.
если чего пиши, отвечу ;)

p.s. и еще есть iptables-tutorial =) ищи...не помню ссылу.
p.p.s. И нормальные юзеры делают так:

echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -A FORWARD -s 100.100.100.0/24 -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -t nat -A POSTROUTING -o $INET_IFACE -j SNAT --to-source $INET_IP

или если ip динамический(в инете) то так:

echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -A FORWARD -s 100.100.100.0/24 -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -t nat -A POSTROUTING -o $INET_IFACE -j MASQUERADE

p.p.p.s. а нормальные админы так не делают, если пекутся об экономии трафика и админят тачки юзеров :)
если всю локалку надо пустить таким образом - надо зафильтровать forward.
хотя если тебе не надо думать о клиентах в локалке - тогда вперед...только сервер прикрой ;) с обоих сторон.


"iptables, я чего-то не понимаю :-("
Отправлено Димастый , 19-Сен-05 09:21 

>что тут думать: правило в nat неправильно написано
>+ на клиентах основной шлюз(default route) не указан ;) скорее всего :).
>он должен быть равен ip интерфейса линуха, смотрящего в локалку ;)

     Указан, указан :-)

>+я надеюсь ip 100.100.100.x ты просто так написал? Надеюсь сеть у тебя
>что нить типа 192.168.0.0/24 ?

     Да. Я сначала на это и думал, и потом поставил правильные "левые" адреса.

#iptables -t nat -A POSTROUTING -o $INET_IFACE -j SNAT --to-source
$INET_IP

      В общем-то, у меня все заработало. Всем спасибо! :)

      Но, вот такая вещь: У меня было все то-же самое, только с указанием опции -s <локальная сеть> - и не работало(!). Я правильно понимаю, что этой опцией я описываю адреса отправителей, которые нужно маскарадить?


"iptables, я чего-то не понимаю :-("
Отправлено Morph , 18-Сен-05 22:59 
>>      Попробывал. Не работает. С eth1 (InternetIP)
>>пакет уходит со своим старым адресом отправителя (посмотрел в iptraf).
>>      НАРОД ХЕЛПАЙТЕ!
>
>выложи все от
>service iptables status
>
>поглядим что у тя вообще за правила!

что-то не припоминаю, чтобы в слаке была service ;)



"iptables, я чего-то не понимаю :-("
Отправлено m1m1n0 , 19-Сен-05 20:19 
>
>что-то не припоминаю, чтобы в слаке была service ;)
ее там нет и никогда не было