Дано
- Два домашних компьютера с ОС Linux Ubuntu, на одном из которых - две сетевые карты
- Подключение к интернету от провайдера, которое осуществляется через pppoe (вообще подключение к интернету может быть любым, это роли вообще никакой не играет)
- IP-адрес для подключения интернета - виртуальный, типа 192.168.x.x
Задача
Сделать так, чтобы интернет был на всех домашних компьютерах.
Решение
Для определённости будем называть компьютер с двумя сетевыми картами сервером, каковым он по сути и будет являться, а другой компьютер будет клиентом.
Чтобы решить одну большую задачу, нужно разбить её на много маленьких и решать постепенно. В нашем случае эти задачи выглядят следующим образом:
- Настроить подключение к интернету через pppoe на сервере
- Настроить подключение между домашними компьютерами (сервером и клиентом), это будет домашняя локальная сеть
- Настроить шлюз, то есть трансляцию пакетов между домашней локальной сетью и интернетом
Сейчас у нас на сервере следующие сетевые интерфейсы: локальная петля lo, первая сетевая карта eth0 и вторая сетевая карта eth1. Опять же, для определённости будем считать, что eth0 - это сетевая карта с интернетом (в неё воткнут кабель провайдера), а eth1 - сетевая карта с кабелем домашней локальной сети, то есть с кабелем от второго компьютера, от клиента.
Практически все настройки производятся на сервере.
Настройка подключения к интернету через pppoe
Запускаем в консоли от имени суперпользователя:
Начнётся процедура настройки, в которой нам предстоит ответить на несколько вопросов. Процедура понятная и не очень сложная. Важнее то, что после настройки у нас появится новый сетевой интерфейс: ppp0.
Сетевой интерфейс ppp0 работает на интерфейсе eth0. Его можно включить и выключить следующими командами:
При включении ppp0 все необходимые сетевые настройки передаёт нам провайдер, вернее, его сервер pppoe. Для того, чтобы в отсутствие интернета безболезненно пользоваться локальной сетью провайдера, надо сделать ещё несколько телодвижений.
Настраиваем интерфейс eth0.
Файл /etc/network/interfaces
... auto eth0 iface eth0 inet static # Настройки для подключения, выданные провайдером: address ip_адрес netmask маска_подсети gateway ip_адрес_шлюза ...
Прописываем адреса DNS провайдера, чтобы иметь доступ к локальным ресурсам по именам.
Файл /etc/resolv.conf
# Снова настройки от провайдера: nameserver ip_адрес_DNS1 nameserver ip_адрес_DNS2
В моём случае для работы с провайдерской локалкой больше ничего и не надо.
Настройка подключения между домашними компьютерами
Соединяем домашние клиент и сервер кабелем, желательно обжатым по схеме crossover. Можно и обычным патчем, современные сетевые карты умеют работать и так.
Выбираем подсеть для домашней локальной сети, желательно чтобы она не пересекалась с адресами провайдера. Допустим, такую: 10.0.0.0/24. Это означает, что адреса нашей сети будут иметь вид 10.0.0.х, где х - число от 1 до 255, с маской подсети 255.255.255.0.
Задаём адреса из выбранной подсети клиенту и серверу. Когда связь между компьютерами появится - идём дальше.
Настройка трансляции пакетов между домашней локальной сетью и интернетом
Для этой задачи воспользуемся возможностями файрвола iptables.
Проверяем наличие iptables в системе (команда вернёт список пакетов, содержащих название iptables):
И если его нет - устанавливаем (от имени суперпользователя).
Настройка iptables требует достаточно специфичных навыков и знаний, так что нам очень повезло, что для дебианоподобных систем (а Ubuntu - как раз одна из них) есть пакет arno-iptables-firewall. Установим его, также от имени суперпользователя.
Ещё в процессе установки программа потребует ввода данных для настройки. Но эта настройка - предварительная и ответов на заданные вопросы будет недостаточно. Чтобы настроить iptables полностью, нужно будет запустить команду реконфигурирования:
При реконфигурировании окна с запросами будут частично дублировать те, что возникали при установке. В любом случае ориентируйтесь на снимки экрана ниже.
Основная настройка файрвола, которая подходит для большинства задач, может быть создана ответом на несколько вопросов. Эта опция будет предпочтительнее для тех, кто не чувствует себя уверенно в настройках файрвола.
Если ответите отрицательно, файрвол не заработает до тех пор, пока вы вручную не поменяете настройки в его конфигурации.
Хотите настроить файрвол с помощью конфигуратора пакетов?
Да, конечно хотим.
Внешние сетевые интерфейсы соединяют локальную машину с небезопасными сетями (например, с интернетом). Файрвол будет разрешать только те соединения, которые явно заданы комбинациями портов источника/назначения на этих интерфейсах. Вы должны задать все внешние интерфейсы (например, eth0 и/или ppp0).
Для интерфейса ppp, который пока ещё не существует, вы можете использовать маску устройства под именем «ppp+», но использование ppp+ возможно только тогда, когда нет никаких других интерфейсов ppp!
Если не будет задано никаких интерфейсов, никакие настройки файрвола не будут изменены.
Несколько интерфейсов может быть задано с помощью разделителя - пробела.
Предупреждение о том, что в следующем окне надо будет указать все внешние интерфейсы через пробел.
Внешние сетевые интерфейсы:
В нашем случае это ppp0 и eth0. Интерфейс ppp0 существует и используется при включенном интернете, eth0 для провайдерской локалки.
Данный компьютер может использовать DHCP для получения адреса от интернет-провайдера (ИП). Это верно практически всегда в том случае, если вы пользуетесь непостоянным (например, модемным) подключением.
Если использование DHCP не указано явно, файрвол будет блокировать весь сетевой трафик, связанный с запросами DHCP.
Если вы не уверены - оставьте эту настройку включенной.
Внешние интерфейсы используют DHCP?
Получает ли наш сервер внешний адрес по DHCP или он статический? В нашем конкретном случае это не имеет значения, но выберем динамику.
Политика файрвола по умолчанию - блокировать все входящие соединения на внешние интерфейсы. Если данный компьютер предоставляет службы внешнему миру (например, является веб-сервером интернета), они должны быть заданы явно.
Укажите пожалуйста номера портов TCP служб, которые должны быть доступны из внешнего мира. Часто используемые номера портов: 80 (http), 443 (https) или 22 (ssh).
Вы можете указать не только один порт, но и диапазон (например, 10000:11000). Несколько записей должны быть разделены пробелом.
Если сомневаетесь - не вводите ничего.
Открыть внешние порты TCP:
Какие TCP порты открываем для интернета? В подавляющем большинстве случаев, особенно в нашем - никакие, оставляем поле пустым.
Политика файрвола по умолчанию - блокировать все входящие соединения на внешние интерфейсы. Если данный компьютер предоставляет службы внешнему миру (например, является веб-сервером интернета), они должны быть заданы явно.
Укажите пожалуйста номера портов UDP служб, которые должны быть доступны из внешнего мира.
Вы можете указать не только один порт, но и диапазон (например, 10000:11000). Несколько записей должны быть разделены пробелом.
Если сомневаетесь - не вводите ничего.
Открыть внешние порты UDP:
Короче, то же самое для портов UDP.
В целях увеличения безопасности файрвол может быть настроен так, чтобы игнорировать широковещательные ICMP запросы (пинги). Иногда это может быть полезно (на первый взгляд хост кажется выключенным), иногда наоборот (затрудняет диагностику, по той же причине).
Если сомневаетесь - оставьте настройку выключенной.
Компьютер должен пинговаться из внешнего мира?
Выбираем можно ли пинговать сервер из интернета.
Внутренние сетевые интерфейсы соединяют данный компьютер с доверенными сетями (например, с офисной или домашней). Файрвол разрешит все попытки входящих соединений на эти интерфейсы. Если вы зададите эти интерфейсы, можно будет обеспечить доступ внутренним сетям к интернету через эту машину. Если таких интерфейсов нет оставьте поле пустым.
Несколько интерфейсов может быть задано с помощью разделителя - пробела.
Внутренние интерфейсы:
Выбираем внутренний сетевой интерфейс, у нас это eth1, как мы и договаривались раньше.
Вы должны задать подсети, которые подключены к внутренним сетевым интерфейсам. Узлы внутренних сетей могут подключаться ко всем службам данного компьютера.
Задайте подсети по правилам CIDR (например, 192.168.1.0/24). Если у вас несколько внутренних сетей, задайте каждую через пробел.
Внутренние сети:
Задаём подсеть нашей домашней локалки.
Если подключённые внутренние сети должны иметь доступ к внешнему миру (например, к интернету) через файрвол, должен быть включен маскарадинг (NAT).
При любых сомнениях оставьте эту настройку выключенной ради безопасности.
Вы хотите включить NAT?
Самое главное. Межсетевая трансляция пакетов, ради чего всё это и затевалось. Включаем обязательно.
Если вы хотите ограничить доступ ко внешним сетям, можно определить разрешённые внутренние подсети по правилам CIDR (например, 192.168.1.0/24). Также можно задать отдельные узлы по их IP-адресам. Если у вас много внутренних сетей и/или узлов, их можно задать через пробелы.
Если оставить значение пустым, оно автоматически приравнивается ко внутренней сети. В этом случае ВСЯ внутренняя сеть будет иметь доступ ко внешним сетям, так что будьте внимательны и задайте только те сети, которые должны иметь доступ к внешнему миру.
Если сомневаетесь - ничего не вводите.
Предупреждение о том, что сейчас мы должны будем ввести адреса локальной сети, которым будет разрешён выход в интернет.
Внутренние сети с доступом во внешние сети:
Задаём разрешённые адреса, в нашем случае это вся подсеть.
Из соображений безопасности новые настройки файрвола не применяются автоматически. Возможно, вы захотите проверить конфигурацию файрвола в /etc/arno-iptables-firewall/firewall.conf, особенно после обновления версии, так как переменные при этом могут измениться.
В случае, когда понадобится применить новые настройки файрвола вручную до следующей перезагрузки, введите: 'invoke-rc.d arno-iptables-firewall start'.
Если вам не нужна ручная проверка, настройки файрвола могут быть применены сейчас.
Должен ли файрвол быть (пере)запущен прямо сейчас?
Да, конечно. Почему бы и нет.
Добавление от 27.03.2011
По многочисленным просьбам трудящихся: «Как отказаться от arno-iptables-firewall».
Что теперь
Теперь у нас есть практически полноценный шлюз на убунте и доступ к интернету из домашней локальной сети.
Если нужно подключить к инету не две, а больше машин - используем вместо кроссовера свич и назначаем адреса в диапазоне от 10.0.0.3 до 10.0.0.255.
Можно использовать метод в организациях, но лучше делать шлюз на debian и таблицы iptables прописывать руками.
Ссылки
- Как отказаться от arno-iptables-firewall
- За «огненной стеной»: файрвол (брандмауэр) и шлюз в интернет в debian GNU/Linux 4.0 etch
Комментарии
Rostma
#cid469
Ответить
А еще можно управление iptables организовать с помощью firestarter (это gui для iptables)
denis
#cid602
Ответить
Спасибо огромное за статью! Помогала не раз. Подскажите как можно все запросы перенаправить на squid с портом 3128 ?
#cid604
Ответить
Пожалуйста )
Для таких операций надо отказаться от использования arno-iptables-firewall и настраивать iptables вручную.
Вот запись, которая может помочь: Проброс и перенаправление портов средствами iptables.
Хотя, насколько я понимаю, речь идёт о настройке прозрачного прокси, то есть перенаправление надо настроить не для внешних запросов, а для внутренних. Если так - не используйте ссылку выше как пошаговую инструкцию.
Symba
#cid708
Ответить
еще dns сервер поднять не помешает командой
apt-get install dnsmasq
Symba
#cid709
Ответить
спасибо большое за статью,очень помогла!!
#cid710
Ответить
Готовится отдельная запись по этому поводу ). Выложу в течение пары дней.
Пожалуйста!
Weitleintasty
#cid1565
Ответить
статья super, автору респект
andreyos
#cid1789
Ответить
Вопрос - как можно настроить к примеру отключение включение юзеров, допустим стоит сервак с 1С и он не должен ходить в инет и на него с инета не должно ничего ходить и интересует просмотр статистики по трафику и икто из пользователей допустип грузит канал, в графике или по логам, зарезка скорости htb не нужно, просто офисная сеть и все, буду рад советам.
andreyos
#cid1790
Ответить
Сейчас смотрю все логи по PRTG на винде, он по ip юзеров не показывает нагрузку сети, не могу больше жить с виндой, ну не понимаю я в ней ничего))
#cid1798
Ответить
Во-первых, все сервера, даже в сети с динамическими адресами, должны иметь адреса статические. Например, 1С сервер - 192.168.0.8, шлюз - 192.168.0.1.
Для того, чтобы виндовый сервер не ломился в инет - убираем у него из сетевых настроек шлюз, этого уже достаточно.
Во-вторых, arno-iptables-firewall для тонкой настройки не годится, надо пользоваться «голым» iptables.
Можно прописать на шлюзе (который у нас с Linux на борту и NAT-ом) два правила:
iptables -I FORWARD 1 -s 192.168.0.8 -j DROP
iptables -I FORWARD 2 -d 192.168.0.8 -j DROP
После этого все транзитные пакеты с адреса 192.168.0.8 и для этого адреса будут гарантированно дропаться.
Для сбора статистики лично я использую ulogd с самописной веб-мордой.
Ставится mysql-server, ulogd и ulogd-mysql. ulogd настраивается на хранение данных в mysql. В iptables прописываем правила для логирования (-j ULOG в нужных местах).
После этого информация обо всех интересующих пакетах начинает падать в базу.
Статистика собирается по всем адресам и портам. Просматривается/группируется запросами к mysql. В инете можно найти уже готовые веб-морды для просмотра такой статистики в удобном виде.
Вообще, перед любыми действиями советую вдумчиво прочитать руководство по iptables.
Шлюз на виндах - это пиздец.
valdemarin
#cid1922
Ответить
А я что-то не понял, "Задаём адреса из выбранной подсети клиенту и серверу", а как задать серверу этот (10.0.0.1) адрес? Прописать в /etc/network/interfaces ? Если да, то как? (шаблон)
valdemarin
#cid1924
Ответить
Все, спасибо, разобрался. Только диапазон адресов поставил 192.168.0.0/24, и прописал в /etc/network/interfaces:
auto eth1
iface eth1 inet static
address 192.168.0.1
netmask 255.255.255.0
шлюз не стал прописывать,
спасибо за статью, единственная в своем роде и нигде в гугле не нашел подобной.
пойду настраивать iptables.
#cid1926
Ответить
Да, всё так.
Настройка интерфейса - стандартная процедура, поэтому не стал заострять на ней внимания.
Пожалуйста )
Скоро выложу как без arno-iptables-firewall обойтись, давно уже просят.
#cid1933
Ответить
Выложил.
valdemarin
#cid1993
Ответить
Снова я к вам за помощью. Ерунда какая-то, все настроил, а в конце при перезапуске настроек arno пишет:
:~# dpkg-reconfigure arno-iptables-firewall
Restarting Arno's Iptables Firewall...
NOTE: External interface ppp0 does NOT exist (yet?)
/sbin/iptables: (2) iptables v1.4.8: host/network `eth1' not found
Try `iptables -h' or 'iptables --help' for more information.
/sbin/iptables: (2) iptables v1.4.8: host/network `eth1' not found
Try `iptables -h' or 'iptables --help' for more information.
Apr 02 20:51:49 WARNING: Not all firewall rules are applied.
FAILED!
invoke-rc.d: initscript arno-iptables-firewall, action "restart" failed.
что же это может быть, инет работает на eth0, а на eth1 не отдает, помогите....
#cid1995
Ответить
Предупреждение, что интерфейс ppp0 не поднялся. Это не хорошо (arno должен срабатывать после поднятия интерфейсов), но и не плохо (как только ppp0 появится, на его трафик начнут действовать настроенные фильтры)
А это уже хуже. Похоже, что не могут подняться правила для интерфейса eth1, потому что его не существует.
Надо проверить:
- сетевые настройки /etc/network/interfaces
- именование интерфейсов /etc/udev/rules.d/70-persistent-net.rules
Чтобы помочь, мне нужно содержимое этих двух файлов и вывод ifconfig сразу после загрузки.
Павел
#cid1996
Ответить
Что-то я этой записи найти на сайте не смог :(
#cid1997
Ответить
Да, да. У меня со сроками всегда так.
Черновик написан полгода назад. Никак в порядок не приведу, чтоб выложить.
tolstik
#cid2783
Ответить
Добрый день.
Установил, настроил. Инет есть. Можно ли как-то настроить запрет на некоторые ресурсы? Точнее мне нужно запретить все ресурсы в интернете и разрешить штук 15. Можно ли с помощью arno-iptables такое настроить?
#cid2785
Ответить
Добрый.
Теоретически это сделать можно: определить ip-адреса этих разрешённых ресурсов и разрешить соединения по 80 порту (http) только на них. Но, во-первых, адреса сайтов могут меняться, во-вторых, подключение может быть не только по http и в-третьих, сам такой подход в корне неправильный.
iptables работает с пакетами на низком уровне. С помощью него можно хорошо управлять адресами и службами, а именно ограничивать, перенаправлять, сбрасывать подключения по адресам и портам. По адресам, а не по именам, как требуется.
Поэтому лично я предпочитаю ограничивать ресурсы интернета или с помощью DNS (dnsmasq), или с помощью прокси (squid + sams).
L0ner
#cid3060
Ответить
У меня этот увлекательный процесс завершается на этапе запуска pppoeconf, который ничего не находит, хотя этот же шнурок прекрасно работает в виндах и dir-320 :(
#cid3071
Ответить
То есть, D-Link DIR-320 находит PPPoE сервер широковещательным запросом, и даже винда находит PPPoE сервер широковещательным запросом, а pppoeconf не находит?
Сетевой кабель нормальный? Сетевая карта исправна? Линк есть? Что выводит ifconfig до запуска pppoeconf?
Мария
#cid4712
Ответить
У меня та же проблема при запросе ifconfig выдает следующее
eth0 Link encap:Ethernet HWaddr 00:16:e6:67:b8:2d
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
Interrupt:27 Base address:0x6000
eth1 Link encap:Ethernet HWaddr 00:17:9a:09:95:01
inet addr:10.86.9.227 Bcast:10.86.9.255 Mask:255.255.255.0
inet6 addr: fe80::217:9aff:fe09:9501/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:3709 errors:0 dropped:0 overruns:0 frame:0
TX packets:3699 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:3520994 (3.5 MB) TX bytes:688858 (688.8 KB)
Interrupt:19
lo Link encap:Локальная петля (Loopback)
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:131156 errors:0 dropped:0 overruns:0 frame:0
TX packets:131156 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:6593459 (6.5 MB) TX bytes:6593459 (6.5 MB)
Мария
#cid4716
Ответить
Только у нас модем стоит g640t dlink
#cid4720
Ответить
А схема подключения какая?
Из этих данных невозможно даже понять какой интерфейс куда смотрит на шлюзе, не говоря уже о том, что к чему подключено.
И самый главный вопрос.
DSL-G640T сам по себе является шлюзом. Зачем вам понадобился второй?
Мария
#cid4780
Ответить
У нас 3 компьютерных класса, в каждом по 13-15 компьютеров и на каждом нужен интернет. Поэтому приходится делать 1 локалку внутри другой
eth1 - внешний
eth0 - внутренний
#cid4788
Ответить
45 компьютеров вполне могут находиться в одной локалке. Больше того, для такого количества компьютеров два шлюза, включенных последовательно — это очень, очень плохо.
В каждом классе ставится свич, 3 кабеля от каждого свича втыкаются в модем (он, по-моему, со встроенным свичом идёт). Получается простая звезда с единственным шлюзом.
При этом в модеме задаётся нужная внутренняя подсеть. Сейчас это 10.86.9.0/24, насколько я понимаю.
Обращаю внимание: на внутреннем интерфейсе не задан IP-адрес. А этот айпишник должен быть статическим (задаётся явно в /etc/network/interfaces), ведь он прописывается в качестве шлюза на простых компьютерах локалки.
Но повторяю: лично я бы два шлюза один в другой втыкать не стал.
Мария
#cid4903
Ответить
У нас по другому не получается потому, что от провайдера на нас выделено только 24 адреса. Пробовали больше но одновременно интернет могут выходить только 24 компьютера с определенными айпишниками.
#cid4915
Ответить
Провайдер не способен вас ограничивать, его вотчина кончается на дырке WAN модема. Сколько при этом он выдаёт адресов — абсолютно не важно.
Ваша локальная сеть может быть любой и состоять из любого количества узлов. Главное, чтобы адреса в ней не пересекались с адресами провайдера.
DSL-G640T — это шлюз. То есть, переводчик между локалкой и провайдером. Надо его правильно настроить.
Проверьте, как минимум:
1. Home → WAN (NAT должен быть Enabled)
2. Адрес шлюза в Home → LAN (Удостоверьтесь, что адреса локалки принадлежат той же подсети)
3. Удостоверьтесь, что ваша подсеть не пересекается с провайдерской.
omg
#cid7847
Ответить
Хороший блог, спс))
#cid7851
Ответить
Это не блог, это сайт.
Пожалуйста.
omg
#cid7852
Ответить
Ну на ворд-пейсе обычно блоги делают) да и судя по статьям похоже на блог) ну а так извиняй)
omg
#cid7858
Ответить
как с тобой связаться?)
#cid7861
Ответить
Не трави душу ).
#cid7862
Ответить
Нанокомментсы на главной или электропочта: info@it-simple.ru
Maxfield
#cid8177
Ответить
подскажите плиз!! Если eth 0 настоен на ип адрес провайдера, он вводится в ручную, а 2 интерфей смотрит на локальную сеть, а именно на сервер, кот ипмеет ип адрес. Данный сервер всем остальным пользователям раздаёт настройки автоматически.
Maxfield
#cid8178
Ответить
Вопрос в том, что бы у всех пользователей был инет.... Зарание спасибо за помощь
#cid8185
Ответить
Не смог понять в чём проблема.
Maxfield
#cid8214
Ответить
настроить так чтоб у пользователей был инет, в ПК на Ubunte 2 сетевые карты, одна смотрит в инет другая в сеть, чтоб в сети был тоже интернет, через ту сетевуху которая на инет смотрит
#cid8216
Ответить
Такой ПК называется шлюзом.
В этой статье написано, как его поднять.
sol
#cid13816
Ответить
У меня линия выделенная от провайдера идёт к компьютеру, модема нет. В начале при команде в терминале pppoeconf ни чего от провайдера не приходит. Когда выхожу в интернет, поднимаю VPN. Подскажите пожалуйста метод как обойти это? Заранее благодарен.
#cid13829
Ответить
#cid13816, sol
pppoeconf нужен только в том случае, когда доступ к интернету осуществляется через сервер PPPoE.
У провайдера есть сервер PPPoE?
Или всё-таки провайдер использует VPN?
Пока что непонятно как вообще осуществляется доступ к интернету.
Помогут настройки провайдера. Без логинов-паролей и конкретных айпишников, естественно.
Xaeno
#cid14320
Ответить
Здраствуйте, подскажите пожалуйсто: стоит линукс, после перетаскивания компа с одного на другое место слетели настройки на локальную сеть и настройки на Proxy. Так как в линуксе я совсем ничего не разбираюсь хотя и пробовал методом тыка настроить локалку заново, ничего не вышло, а в данной ситуации интернет от провайдера подключон к данному серверу, а сам провайдер лет 5 назад подключался и данные на интернет неизвестно где брать. Так вот проблема: возможно ли вытащить IP, DNS, и всё остальное на провайдера из линукса, хочу переставить на сервер 2008-й
Владимир
#cid14365
Ответить
#cid14320, Xaeno
Если настраивал сетевую карту на статический IP, то
В командной строке:
/sbin/ifconfig это для определения IP-адреса
/sbin/route это для определения шлюза (можно ещё netstat -rn для тех же целей)
cat /etc/resolv.conf это для определения DNS-сервера
Владимир
#cid14366
Ответить
#cid14320, Xaeno
Правда непонятно, как могли слететь настройки сети в Линуксе. Может проблема всё-таки с сетевым кабелем?
#cid14453
Ответить
#cid14320, Xaeno
Не надо.
petro_f
#cid15895
Ответить
Добрый день у меня задача такая: стоит комп 3 сетевые карты, надо с одной на другую переправлять инет "сквозняком" (eth0 -> eth1), но при этом инет с карты eth0 не должен быть на этом компе, т.к. интернет приходит по 3 сетевушке eth3 от другого шлюза. Возможно ли так сделать средствами IPTABLES?
#cid15958
Ответить
#cid15895, petro_f
Можно подробнее?
Куда что подключено и как должны двигаться пакеты?
Максим
#cid47443
Ответить
Автору большое спасибо за подробное и простое изложение материала буквально "на апельсинах".)
У меня есть лишь одно дополнение.
Использовал эту схему на связке Ubuntu + WinXP (XP-стоит клиентом). Инет на клиентской машине не пошел пока я не прописал на ней DNS провайдера, взятые из /etc/resolv.conf
VAV
#cid50429
Ответить
Помогите уже два дня бьюс не могу разобраться!
eth0-локалка
eth1-inetppp0e
# network interface
auto lo
iface lo inet loopback
auto eth1
iface eth1 inet static
address 80.XXX.XXX.XXX (дал провайдер, получаю при соединении PPP0E)
netmask 255.255.255.255
gateway 80.XXX.XXX.XXX
auto eth0
iface eth0 inet static
address 10.23.2.1
netmask 255.255.255.0
auto dsl-provider
iface dsl-provider inet ppp
pre-up /sbin/ifconfig eth1 up # line maintained by pppoeconf
provider dsl-provider
post-up /etc/nat
(файл нат) #!/bin/sh
# Включаем форвардинг пакетов
echo 1 > /proc/sys/net/ipv4/ip_forward
# Разрешаем трафик на loopback-интерфейсе
iptables -A INPUT -i lo -j ACCEPT
# Разрешаем доступ из внутренней сети наружу
iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT
# Включаем NAT
iptables -t nat -A POSTROUTING -o ppp0 -s 10.23.2.0/24 -j MASQUERADE
# Разрешаем ответы из внешней сети
iptables -A FORWARD -i eth1 -m state --state ESTABLISHED,RELATED -j ACCEPT
#Разрешаем входящие подключения на 3389
iptables -A FORWARD -i eth1 -p tcp --dport 3389 -j ACCEPT
# Форвардинг 3389
iptables -t nat -A PREROUTING -p tcp -d 80.XXX.XXX.XXX --dport 3389 -j DNAT --to-destination 10.23.2.14:3389
iptables -t nat -A POSTROUTING -p tcp --dst 10.23.2.14 --dport 3389 -j SNAT --to-source 80.XXX.XXX.XXX
# Запрещаем доступ снаружи во внутреннюю сеть
iptables -A FORWARD -i eth1 -o eth0 -j REJECT
Нет ни интернета, ни удалённого подключения!
Пож подскажите где ошибка!
Спасибо!
#cid50445
Ответить
#cid50429, VAV
Ошибка в том, что все интернет-пакеты идут по интерфейсу ppp0, а разрешающих правил для него нет.
iptables -A FORWARD -i eth0 -o ppp0 -j ACCEPT
iptables -A FORWARD -i ppp0 -o eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
+ для проброса RDP
iptables -A FORWARD -i ppp0 -o eth0 -p tcp --dport 3389 -j ACCEPT
BornCesh
#cid62340
Ответить
Статья действительно сильная и хорошая... Автору респект... я хотел бы спросить у меня тот же шаблон внутренней сети... Можно ли поподробней описать как на сквиде можно урезать скорость раздачи нета пользователям сети... а то скок материала перелопатил и всё пох... филькина грамота и всё.... Спасибо заранее буду очень благодарен...)))
imen
#cid62344
Ответить
#cid62340, BornCesh
Ой ли?
Может дело в навыках понимания результатов поиска (в свою очередь требующих знаний)?
tldp.org/HOWTO/Bandwidth-Limiting-HOWTO/install.html
/DELAY POOLS
stroncium
#cid90828
Ответить
доброго времени суток!
дайте совет как поступить.
есть комп-шлюз на ubuntu 10, у него 3 интерфейса etho. eth1. eth2. eth0 смотрит в инет, eth1 и eth2 в локалку. у eth1 подсеть 192.168.1.1 у eth2 192.168.10.1 в локалке 20 компов с адресами 192.168.1.X и дренной вайфай роутер 192.168.10.1. вайфай сделан для гостей. задача настроить шлюз так чтобы интернет был у всех(и в локалке и на вафле) а вот доступ в локалку пользователи вайфая не имели. понимаю вопрос наверно глупый но покачто не могу разобратся с сетями( по неволе вынужден временно исполнять обязанности админа.
#cid90829
Ответить
#cid90828, stroncium
И тебе добрый [день/вечер/ночь, нужное подчеркнуть].
Отвратительное приветствие :)
По твоим словам, у тебя адреса eth2 и роутера совпадают.
По идее, у тебя между подсетями и так не должно быть доступа. Для того, чтобы доступ был, надо специально его обеспечить — подняв сетевой мост между eth1 и eth2 или средствами iptables (связь подсеть-подсеть делается по сути так же, как подсеть-интернет).
Тебе нужно найти эту настройку и убрать её.
Более подробную информацию ищи в интернете по словам "сетевой мост bridge", "brctl", и "демилитаризованная зона" (это про принцип построения того, что тебе нужно).
stroncium
#cid90830
Ответить
за приветствие извини!у меня вечер и дождь :) . про роутер конечно опечатался у него адрес 192.168.10.10. доступ между сетями повсе видимости обеспечен arno-iptables-firewall. просто проматывал последние команды админа и наткнулся на него в числе последних. попытался посмотреть чтонить в /etc/iptables.up.rules но там содержымое по умолчанию. можно ли как то добавить правило через этот ARNO чтоб пользователи вайфая у них адреса вроде как 192.168.10.x немогли лезть в локалку. ну чтоб если пакет с eth1 на eth0 то пропускает, а если на eth2 то нет, ну или по ip както отделить. админ сволочь уволился со скандалом а на нового у начальства денег нет, вот и приходится экономисту подрабатывать админом :) так что извиняюсь за глупость вопросов, пришлось все осваивать за 2 ночи :)
#cid90832
Ответить
#cid90830, stroncium
Теперь и у меня та же хрень!!! :)
Не надо arno, он не позволяет всё контролировать.
Здесь написано, как его безболезненно убрать: http://www.it-simple.ru/?p=5948
Здесь — как создать сервис iptables для облегчения администрирования: http://www.it-simple.ru/?p=7610
Здесь — небольшое практическое введение в iptables со ссылками: http://www.it-simple.ru/?p=2250
Про сетевые мосты у меня заметка в черновиках, поэтому есть смысл поискать на других ресурсах.
Я ж говорю: по умолчанию это и так нельзя. То есть, админ где-то сознательно организовал доступ между подсетями — либо через iptables, либо через сетевой мост. Теперь эту настройку надо найти и убрать.
Избавься от arno, сделай свой сервис и сможешь легко видеть и контролировать правила, то есть все движения пакетов в сети.
Если организован мост, то правка iptables тебе не поможет: мост работает на более низком, канальном уровне.
https://ru.wikipedia.org/wiki/%D0%A1%D0%B5%D1%82%D0%B5%D0%B2%D0%B0%D1%8F_%D0%BC%D0%BE%D0%B4%D0%B5%D0%BB%D1%8C_OSI
И надо будет настраивать его.
Обычно такое бывает, когда в руководстве сидят идиоты. Портят отношения с админом, не нанимают нового — а потом удивляются, что инфраструктура постепенно приходит в состояние Жопы. Кем надо быть, чтобы не видеть причинно-следственную связь между этими событиями? :)
Моё почтение. Очень редкое и дорогостоящее сочетание навыков.
Если нормально освоишь — можешь смело менять руководство на более адекватное, с кратным увеличением зарплаты.
#cid90833
Ответить
#cid90830, stroncium
#cid90832,
С другой стороны — хз. Пакеты всё равно будут идти через ядро, т.е. их содержимое будет "вскрываться".
Пришли мне вывод iptables-save. Если там слишком много всего, зашли только таблицу filter без chain-ов (содержимое между строчками "*filter" и завершающим "COMMIT")
А ещё кинь "/etc/network/interfaces", только замени реальный внешний айпишник на "1.2.3.4".
stroncium
#cid90834
Ответить
отправил на мыло info@it-simple.ru
stroncium
#cid90835
Ответить
в любом случае спасибо за помощ :)
#cid90836
Ответить
#cid90834, stroncium
Обычно по почте не отвечаю. Но количество правил у тебя действительно зашкаливающее, хорошо что не слил в комменты. В виде исключения ответил, но кратко, а подробнее — только за большие деньги :)
#cid90835, stroncium
На здоровье!
ЗЫ. Почему всё выглядит так, будто ты настраиваешь шлюз авантела?!
Не сиди всю ночь ;)