Longobard
написал 7 января 2004 года в 19:59 (875 просмотров)
Ведет себя
как мужчина; открыл 291 тему в форуме, оставил 2499 комментариев на сайте.
Есть задача: дан ноут и комп под Линем, подключенный к Инету. Надо чтобы ноут лез в инет через этот комп. Итак:
В карточку eth0 втыкаю витуху от инета
В eth1 — витуха от ноута
Как мне выполнить задачу? Я пробовал так:
ifconfig eth1 192.168.1.1 netmask 255.255.0.0 up iptables -A FORWARD -s 192.168.1.0 -j MASQ echo 1 > /proc/sys/net/ipv4/ip_forward
Такое не работает, хотя поддержка маскарадинга и прочих вкусностей включена монолитом. Дело в том, что iptables не хочет принимать такое правило. Он пишет:
Couldn`t load target 'MASQ: /lib/iptables/libpt_MASQ.so: cannot open shared object file: no such file or directory
Вот так. Обе машины друг друга видят и пингуются. В чем дело ? Может правило не такое ? Или надо как-то через route делать?
Последние комментарии
- OlegL, 17 декабря в 15:00 → Перекличка 21
- REDkiy, 8 июня 2023 года в 9:09 → Как «замокать» файл для юниттеста в Python? 2
- fhunter, 29 ноября 2022 года в 2:09 → Проблема с NO_PUBKEY: как получить GPG-ключ и добавить его в базу apt? 6
- Иванн, 9 апреля 2022 года в 8:31 → Ассоциация РАСПО провела первое учредительное собрание 1
- Kiri11.ADV1, 7 марта 2021 года в 12:01 → Логи catalina.out в TomCat 9 в формате JSON 1
ecobeing.ru
Экология и вегетарианство на благо всем живым существам Планеты.
Оторвать бы тебе чего-нить за такое неправильное правило с точки зрения безопасности :D
Давай сюда вывод iptables-save, а там уж и думать будем.
Еще есть такая полезная штука как iptraf, помогает очень сильно при диагностике таких настраиваний.
К тому же вопрос тебе для самообразования и размышления: в какую таблицу будет пытаться писать iptables приведенное тобой правило?
Да-да. В filter!!
А надо? Надо — в nat!
Итого, правильное правило (с учетом сааамого верхнего):
iptables -t nat -A FORWARD -i eth1 -s 192.168.1.0/24 -o eth0 -j MASQ
iptables -A FORWARD -m state --state ESTABLISHED -j ACCEPT
iptables -A FORWARD -i eth1 -s 192.168.1.0/24 -o eth0 -j ACCEPT
man iptables!! До просветления!
Как разрешить активный и пассивный фтп — это другая история.
Прописал такое правило:
Теперь такая трабла: с 192.168.1.0 инет есть. Но тока если писать сразу IP адрес. То есть глючит ДНС.
На машине 192.168.1.1 ДНС прописан такой: 80.70.224.2
Прописываю такой же на 192.168.1.0, но ДНС не работает. В чем лажа?
Может замутить на 192.168.1.1 ДНС??
Тьфу, и точно POSTROUTING цепочка :)
А ты чего, ноуту адрес 192.168.1.0 дал? Поменяй-ка на другое, 192.168.1.2, что ли.. А то, бывает, пучит их немного с таких адресочков…
Второе, что приходит в голову, это что не может что-то работать, а что-то — нет.
чего с ноута скажет `dig any nixp.ru @80.70.224.2`? Или `nslookup nixp.ru 80.70.224.2`?
Да я и не давал в принципе ноуту ничего. Я написал ifconfig eth1 192.168.1.1 up netmask 255.255.0.0 и ноут получил IP 192.168.1.0
Как мне дать ему адрес 192.168.1.2 ???
ifconfig eth0 192.168.1.2 netmask 255.255.0.0 ….
man ifconfig :)
не работает
ifconfig eth0 inet 192.168.1.2 netmask 255.255.0.0
да эта карточка то работает (т.е. выход в инет через eth0с 192.168.1.1 есть)
тут еще одна весч: замусорены таблицы route:
Как очистить таблицу route ? Я читал маны, пробовал командой del,нифига не получается. Может в этом дело?
route del default gw smin-gw.mns.ru
route add default gw 192.168.1.1
или одной командой
route change default gw 192.168.1.1
Что-то типа этого, man route!
А вообще, по ходу у тебя ноут взял из dhcp, раз говоришь воткнул, включил и он такой адрес получил. — Менять, по илее, лучше там.
Так. Стоп.. Это же на шлюзе? Так на шлюзе и не надо из этого ничего менять…
Смотри на ноуте.. :)
Да поменял я уже айпишники, просто голову клинило тогда :) Не, dhcp я не юзал. Просто поменял IP на ноуте. И маску поставил везде 255.255.255.0 Насчет route я понял — надо дать route те же команды что я ему давал через add, но тока вместо add написать del :)
Так что делаю cat .bash_history | grep route :) Короче с утра голова заварила хорошо.
Так что тьеперь почищу все рулесы в iptables/route и загоню в iptables одно правило :)
Блин, какая же тупая была ошибка! Похоже что у меня вечером
:)
Короче я сначала ведь делал такое правило
т.е говоря по русски сорс-адрес машин из подсетки менялся на ВНУТРЕСЕТЕВОЙ адрес шлюза. Вот в этом то и ошибка. А меняцца он должне на ВНЕШНИЙ адрес шлюза. Короче правило должно быть таким:
Вот и все. И все заработало. Вывод: садясь делать такие вещи убедитесь в нужной консистенции своих мозгов. А то я сидел вчера вечером до 23 часов и только хуже сделал, а с утра за полчаса все сделал нормально.
P.S.: Шуруп, можешь закрывать тему.
Хватит и этого..
iptables -t nat -A POSTROUTING -i eth1 -o eth0 -s 192.168.1.0/24 -d ! 192.168.1.0/24 -j MASQ
Ты читал ман? В цепочке пострутинга не проходит ключик -i :) Я тоже сначала так попробовал.
Короче все, ТЕМА ЗАКРЫТА! ЗАКРЫТА!