Yaazard
написал 26 июня 2006 года в 00:12 (1107 просмотров)
Ведет себя
неопределенно; открыл 4 темы в форуме, оставил 51 комментарий на сайте.
Здравствуйте. Недавно поставил Debian и еще не очень в нем разобрался. Подключил VPN и все вроде бы хорошо… но вот тут пришла больная идея в голову. Настроить Линукс как шлюз. Т.е. есть сеть с выходом в интернет по VPN и есть домашняя сеть на 2 компьютера. Так вот хотелось бы что бы с тех 2х компьютеров можно было выходить в сеть и в инетрнет одновременно…. ммм че то я закрутил ну ладно думаю понятно=)… нашел способ через скрипт межсетевой защиты… тогда получается что линукс открывает доступ к сети но сам перестает подключаться к VPN(РРТР клиент)… так как не может создать динамический интерфейс ррр0…
есть какие нибудь способы чтоб исправить это положение? =)
Последние комментарии
- 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
Экология и вегетарианство на благо всем живым существам Планеты.
Способы наверняка есть ;).
Что за скрипт «межсетевой защиты» такой? Там, по идее, минимум, что надо для работоспособности твоего Дебиана в качестве шлюза, — это одно правило маскарадинга для iptables.
И что значит «не может создать динамический интерфейс ppp0"?
ну смысл такой… если запущен скрипт то не проходит конект по ppp0 т.е. вкрации пишет что устройство не найдено. модем не отвечает.
Скрипт генерил на каком то сайте=) только чуть чуть исправил на доступ к портам
начнём с того, что хотелось бы знать, а не телепатировать, как именно ты это делал.
поищи, тут на форуме я приводил конфиг домашнего шлюза (точнее для iptanles; поиск по сайту, слова «genie iptables конфиг»).
ну, если «выходить в инет» ещё понятно, но вот в приведённом контексте совершенно непонятно, куда же изначально компы имеют доступ и чего, собственно надо.
может подумаешь получше и сформулируешь точнее?
значит, что-то сделано не правильно.
что именно — будет понятно после того, как будут предоставлены тобой детали.
а за этим — надо смотреть /var/log/messages — что-нибудь полезного там да будет.
в логи, в логи. там будет объяснение.
ахха. «на каком-то сайте».. тебе не надпомнить, что пишут на каком-то заборе? :D
Дык, приоткрой уже завесу таинства и покажи нам этот скрипт ;).
Лана начнем =)
Подключился к VPN… делал все по схеме c сайта
http://pptpclient.sourceforge.net/howto-debian.phtml через pptpconfig
теперь насчет компов…. есть линукс, ноутбук, и еще один комп на котором винда…
между ними есть сетка… но линукс в своюб очередь подключен еще и к городской сети и имеет через нее доступ в инет по ВПН… так более понятнее? =)
скриптик вот http://yaazard.narod.ru/load/rc.fw =)
как я понял что вся фишка заключается в этом скриптике…
только еще не разобрался ЧТО нужно изменить=) просто бонально
привключенном скрипте влогах пишется вот
localhost pppd[7067]: pppd 2.4.3 started by root, uid 0
localhost pppd[7067]: Using interface ppp0
localhost pppd[7067]: Connect: ppp0 <--> /dev/pts/2
localhost pppd[7067]: Modem hangup
localhost pppd[7067]: Connection terminated.
localhost pppd[7067]: Exit.
при выключеном
localhost pppd[7362]: pppd 2.4.3 started by root, uid 0
localhost pppd[7362]: Using interface ppp0
localhost pppd[7362]: Connect: ppp0 <--> /dev/pts/2
localhost pppd[7362]: CHAP authentication succeeded: Welcome to scherbrout.
localhost pppd[7362]: local IP address 192.168.178.82
localhost pppd[7362]: remote IP address 192.168.9.254
localhost pppd[7362]: primary DNS address 195.42.162.55
localhost pppd[7362]: secondary DNS address 80.71.245.245
вывод косяк в этом скрипте… только где не могу понять
Лихой такой скриптик, для начала-то…
Ошибка прям в самом начале — INET_IFACE=«eth0». Что-то сомневаюсь, что он у тебя именно такой ;). Отсюда неработоспособность парвила для маскарадинга:
$IPT -t nat -A POSTROUTING -o $INET_IFACE -j MASQUERADE
Ну и твоим скриптом политики цепочек выставляются в DROP, а разрешающих правил для соединения к интерфейсу ppp0 нету — вот и не проходит коннект на ppp0.
В сеть с инетом
eth0 Link encap:Ethernet HWaddr 00:0E:A6:13:12:25
inet addr:172.20.78.82 Bcast:172.20.78.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:524026 errors:6 dropped:0 overruns:0 frame:6
TX packets:71022 errors:0 dropped:0 overruns:246 carrier:0
collisions:0
RX bytes:51314105 (48.9 MiB) TX bytes:61597147 (58.7 MiB)
домашняя сеть
eth1 Link encap:Ethernet HWaddr 00:15:E9:49:BB:5A
inet addr:192.168.1.230 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:5924 errors:0 dropped:0 overruns:0 frame:0
TX packets:4587 errors:0 dropped:0 overruns:0 carrier:0
collisions:0
RX bytes:601921 (587.8 KiB) TX bytes:3194240 (3.0 MiB)
это понятно
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
EtherTalk Phase 2 addr:0/0
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:1694 errors:0 dropped:0 overruns:0 frame:0
TX packets:1694 errors:0 dropped:0 overruns:0 carrier:0
collisions:0
RX bytes:869170 (848.7 KiB) TX bytes:869170 (848.7 KiB)
и наконец сам ВПН
ppp0 Link encap:Point-to-Point Protocol
inet addr:192.168.178.82 P-t-P:192.168.9.254 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1
RX packets:12356 errors:0 dropped:0 overruns:0 frame:0
TX packets:11993 errors:0 dropped:0 overruns:0 carrier:0
collisions:0
RX bytes:9191674 (8.7 MiB) TX bytes:1622988 (1.5 MiB)
Вообще, я бы для начала попробовал минимальный набор правил при установленных политиках цепочек iptables в ACCEPT:
Заработает, тогда и начнёшь городить всё, что понаписано в твоём скрипте.
ну а что можно еще написать во фкладке INET_IFACE=«eth0» ? тут же вроде ясно написано ипа интерфейс на инет=)
А разве не 'ppp0\′ у тебя «интерфейс на инет"?
Что за eth0? Куда он смотрит?
просто как бы я линукс вижу 4ый день в своей жизни=) поэтому еще не очень разобрался чего тут и как=)
смысл такой.. что я хотел что бы линукс был шлюзом для инета и для той сети но как мне кажется такого уже не произойдет… потому что как я понимаю можно сделать лиш одно
я выше написал че и куда с ifconfig’a
Для какой «той» сети?
Думаешь, набор этих цифр может внятно рассказть «че и куда"? ;) Не, я не настолько телепат… Тогда уж схемку сети какую-нибудь прикладывать надо.
http://yaazard.narod.ru/load/shem.jpg
типа потология сети вот=)
А, ну всё правильно. В сторону инета у тебя смотрит eth0. Однако при подключении к VPN у тебя поднимается интерфейс ppp0, через который и идёт работа в интернете. Маскарадить нужно именно через него, так что см. мой ответ за номером #9 в этой теме.
ага
только там надо nst на nat поменять. очепятался малость ;)
Ага, бывает. Успел-таки ещё до твоего поста ;)
т.е. не получиться сделать так что с моих компов через линукс был виден инетрнет и сеть одновременно? я так понимаю?
С чего это такой пессиместичный вывод?
Для начала удали свой скрипт. Вместо него последовательно введи команды, о которых я тебе уже говорил выше. Правда, для выхода в локальную сеть придётся перед правилом маскарадинга (-j MASQUERADE которое) добавить ещё одно правило:
Затем у своих компов в качестве шлюза по умолчанию укажи свой линукс. Будет тебе и интернет, и сеть.
т.е. тупо создать фаил зафигачить в него то что ты говариш и будет работать? или я че то опять не понимаю=)
Не. Это я тебе привёл команды. Пока их надо тупо ввести в консоли под рутом ;).
Если всё заработает, можно тупо зафигачивать в файл, неменее тупо дать права на исполнение, и будет тебе новый скрипт ;).
Да пожалуйста.
все вроед сделал но инета на других компах так и не появилось… о а может влиять то что в сети есть просто бешанная маршрутизация?
ну например вот пример моей маршрутки =) чтоб сидеть в сети
не спрашивайте че там так много всего=) иначе не чего просто не работает=)
сеть делали еще большие умельцы чем я=) потому что она на 1500 человек и ктому же одноранговая..
Бешенная, небешенная — главное, чтобы она была настроена верно. Ну, если твой линукс сам ходит в инет, то тут всё нормально.
Другой вопрос, а перезагружался ли ты перед тем, как вводил приведённые мной команды? А-то от старого скрипта мог остаться некоторый мусор. <font size=«-2»>можно и просто сбросить все цепочки, но пока проще перезагрузиться ;)</font>
А 'echo 1 > /proc/sys/net/ipv4/ip_forward' не забыл?
А может у тебя инет появился, но не резолвятся имена? Всмысле, на своих компах ты просто не прописал DNS-серверы?
ДНС прописал…и про
не забыл=)
я тот скрипт со вчерашнего дня не запускал=)) и 5 раз за день уже ребутнулся
фишка теперь в том что.. получается мне че надо
прописывать
для каждой подсети?? потому что сейчас с моих компов пошел пинг на 78ую подсеть
итак.. прописав маршруты на компах и лине сеть появилась…. но нет инета=(
Просто, кроме как о 78-ой подсети, больше в выводе ifconfig ни о чём сказано не было ;). Чтобы не прописывать все сети 172.20.*.* можно указать и '-d 172.20.0.0/16\′. Конечно, в этот диапазон попадёт гораздо большее количество сетей, чем есть у тебя, но, думаю, в твоём случае это нестрашно ;).
А как проверял, что его нет?
обычным пингом с ноута по яндексу по имени и по ip
А с самого линукса пингуется?
а с линуха я ща стобой разговарию=)
что означает что линукс инет воспринемает=)
Хм. А покажи вывод команды:
вот…. че то много правда получилось
Вообще-то правило с '-d 172.20.0.0/16\′ надо было писать вместо всех остальных ;). А маскарадинг нафиг столько раз прописывал?!
Что за адрес 80.252.133.78?
А это вообще зачем?!
В итоговых правилах у тебя должна быть одна строчка для SNAT и одна для MASQUERADE.
ну это были первые пробы=))
Хорош глумиться =)) я недавно в лине работать начал всетаки=)
Пробы, хоть и первые, ты ведь делал осмысленно? ;)
Да никто и не глумится…
Ладно, ты там где-то говорил, что прописал маршруты и на компах в сети. Показывай, как они выглядят на ноутбуке.
Провайдерский шлюз с ноута тоже не пингуется?
угу… с ноута нет пинга на шлюз…
так …. я наверно уже всех достал но всетаки получается мне надо еще прописать адрес 80.252.133.78 так как это адрес ВПНа…. и как я понимаю настройка будет примерно такой
если я не ошибаюсь вроде так … т.к впн прописывается под 255.255.255.255 маску сети
Нет. Этой строчки не надо, т.к. с VPN-сервером у тебя будет соединяться твой линуксовый шлюз, а не ноут и прочие компы в твоей сети.
Так чего там по поводу таблицы маршрутизации с ноута?
да она простая
route add -p 192.168.0.0 mask 255.255.0.0 192.168.1.230 и так же для 172.20.0.0
думаеш прописать маршрут на ноуте до впна?
ща прописал толку ноль
получается нуна на лине открывать доступ к впну если я не ошибаюсь опять=))
Нет, не надо.
Таблицу маршрутизации ты мне так и не показал. Вобщем, в качестве шлюза по умолчанию (default gateway) на ноуте должен быть твой линуксовый комп (а именно, IP 192.168.1.230).
ну так и есть
да кстати огромное спасибо за то что хоть так работает=)))
инет наверно придется пустить через проксю какую нибудь раз таким извратом не получается=)
ну и огород у тебя…
на линуксе:
поставить пакет iproute
инициализировать интерфейсы:
и не забудь в конфиге pptp/ppp указать defaultroute.
на локальных компах требуется ровно одно: прописать 192.168.1.230 в качестве шлюза по умолчанию.
ВПН всетаки понадобился для статистики=)
страно одно.. вроде как рртр всетаки разрешено но инета всетаки нет:/
роуты на компах прописаны так
Мммм азачем прописывать 2 маскарада :/
один — для того, чтобы работал инет на локальных машинках (-o ppp0)
второй — чтобы была доступна твоя большая домовая сетка (-o eth0)
И НЕПРАВИЛЬНО ЭТО ;)
убери с локальных компов маршрут до 80.252.133.78
и НАСТРОЙ ШЛЮЗ ПО УМОЛЧАНИЮ 192.168.1.230
в общем, всё, как я описал ранее.
маршрут к 80…. нужен так как там статистика на инет лежит=)
впрочем, ip (iproute) можно и не использовать…
ты не повериш но оно так и есть
ну и будет она тебе доступна.
потому как линуксовый шлюз сам разберётся, что, как, куда и зачем слать.
а так же подменит адрес при необходимости.
фишка в том что сеть уже видна и все отлично… тока инет не виден
и я лично просто уже не догоняю почему… потому что маскарад на него открыт
т.е. у тебя настроено так, как указано мной и не работает с локальных компов ни домовая сетка, ни инет нормально?
другого вида настроек по предоставленным тобой данным нет
на домашних компах видна сеть уже. маршрутизация прописана уже что линукс как шлюз… и все отлично пашет. только нет инета на домашних компах хотя маскарад на pptp стоит
После повтороной перезагрузки появился пинг на инетовские сайты по IP ребят как ДНС врубить.=))
на домашних компа линукс прописан как шлюз и как сервер днс
apt-get install bind9
ну или пропиши днс-ом тот же комп, что ты прописал на линуксе
ты имееш ввиду для подключения к инету.=)? самое интересное что в сети его нет=)
нуу. да, наверное.
его — это кого?
изъясняйся несколько более конкретно.
у нас в сети нет ДНС сервера или он есть но уе заграницами сервера ВПН
понятно.
ну, тогда ставь и настраивай bind9.
даже после простого «apt-get install bind9» будет работать.
однако, тогда тебе надо будет настроить на линуксовом шлюзе dns-сервер в 127.0.0.1 (в файле /etc/resolv.conf, читай внимательно «man resolv.conf») и в настройках pptp/ppp указать не использовать dns-провайдера (убрать usepeerdns)
а те ns, что выдавались vpn-провайдером, использовать в качестве forwarders на твоём bind9. но это уже тонкости настройки dns, работать будет и без этого.
прописал ДНС который присваевается ррр0 ……. все заработало =) огромное спасибо за помощ =)