Ср, 20.09.2017, 06:59
Форум інформатиків України
Головна Реєстрація Вхід
Вітаю Вас, Гість · RSS
Вітання на форумі
Незнайомець
Вітаємо на форумі,
Незнайомцю!

   
зареєструйтесь
Перед реєстрацією обов’язково прочитайте:
Оновлення Учасники Пошук
Особисті повідомлення
Видавництво ’’Аспект’’ Видавництво

Сторінка 1 з 11
Модератор форуму: НІКОЛЯ, Ktara, Bandalak, volevikt 
Форум інформатиків » РОЗДІЛ V: ПРОГРАМНЕ ЗАБЕЗПЕЧЕННЯ » 5.4 ОС Linux » Linux в качестве маршрутизатора между лок сетью и интернетом (настройка, спец дистрибутивы)
Linux в качестве маршрутизатора между лок сетью и интернетом
Andrey123q Дата: Ср, 28.07.2010, 15:47 | Повідомлення № 1
Досвідчений учасник
Повідомлень: 1236
Нагороди: 3
Рейтинг: 84
Один из вариантов раздачи интернета в локальную сеть: настройка Linux в качестве сервера NAT.
NAT (Network Address Translation) - это система трансляции сетевых адресов.
NAT фактически перехватывает пакеты из локальной сети и заменяет в них адрес отправителя реальным внешним IP-адресом. При получении пакетов из интернета адреса преобразуются во внутреннюю адресацию и передаются в локальную сеть. Система хранит таблицу преобразований между внутренними и внешними адресами. NAT работает на транспортном (4) уровне модели OSI, в отличие от прокси, который работает на прикладном (7) уровне.

Для настройки NAT используем сетевой экран iptables (см. http://informatic.org.ua/forum/73-746-1 ).
Настройка.
Пусть eth0 - это интерфейс интернета, eth1 - интерфейс локальной сети.
Сначала нужно разрешить маршрутизацию в ядре Linux командой:
echo 1 > /proc/sys/net/ipv4/ip_forward
(в файл ip_forward записывается параметр 1 вместо 0)

Затем нужно:
1) разрешить пересылку пакетов с интерфейса на интерфейс. Я добавил следующие строки:
iptables -t filter -I FORWARD -o eth1 -i eth0 -j ACCEPT
iptables -t filter -I FORWARD -o eth0 -i eth1 -j ACCEPT

(-о ethN можно опустить)

2) разрешить пересылку пакетов с трансляцией адресов:
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Вместо действия MASQUERADE можно использовать SNAT.
SNAT работает аналогично MASQUERADE, однако позволяет указать адрес «внешнего» интерфейса (опция --to-source), например, если на внешнем интерфейсе шлюза «висит» несколько статических адресов, например, 208.77.188.166, 208.77.188.167 и 208.77.188.168, можно использовать балансировку между этими адресами:
iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source 208.77.188.166-208.77.188.168

3) сохранить правила (иначе при перезагрузке ПК или файервола выполненные настройки удалятся):
iptables-save

На хостах локальной сети нужно указать IP шлюза (внутреннего интерфейса eth1 маршрутизатора) - можно прописать командой route или в свойствах интерфейса.
Если в локальной сети есть win машины дополнительно нужно настроить samba.
Все, Linux готов для работы в качестве маршрутизатора.

Для маршрутизаторов можно использовать специальные дистрибутивы на основе Linux: SmoothWall (бесплатное), MikroTik (платное) и т.п. Их удобно устанавливать на устаревших ПК, с широкими возможностями дистанционного управления.
Возможно что-то упустил или допустил неточность - пишите.

Ссылки.
http://ru.wikipedia.org/wiki/Iptables
http://ru.wikipedia.org/wiki/NAT

Відредаговано: Andrey123q - Чт, 29.07.2010, 03:03
novachok Дата: Ср, 28.09.2011, 20:58 | Повідомлення № 2
Прописаний назавжди
Повідомлень: 247
Нагороди: 0
Рейтинг: 9
Если у меня ppp0 - это интерфейс интернета, а eth0 - интерфейс локальной сети.
Тогда мне надо:
echo 1 > /proc/sys/net/ipv4/ip_forward

1) разрешить пересылку пакетов с интерфейса на интерфейс.
iptables -t filter -I FORWARD -o eth0 -i ppp0 -j ACCEPT
iptables -t filter -I FORWARD -o ppp0 -i eth0 -j ACCEPT

2) разрешить пересылку пакетов с трансляцией адресов:
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE

3) сохранить правила
iptables-save

Я правильно думаю?
Andrey123q Дата: Чт, 29.09.2011, 10:15 | Повідомлення № 3
Досвідчений учасник
Повідомлень: 1236
Нагороди: 3
Рейтинг: 84
Да. Только вместо
Code
echo 1 > /proc/sys/net/ipv4/ip_forward

лучше сделать
Code
sudo su -c "echo 0 > /proc/sys/net/ipv4/ip_forward"


т.к. первый вариант действует только до перезагрузки, а второй и после. И правила iptables нужно так же восстанавливать при перезагрузке - в разных дистрибутивах это реализовано по разному, в SUSE можно прописать чтобы правила сохранялись, а в Ubuntu/Debian их нужно либо автозагрузочным скрипом поднимать, например, в rc.local прописать
Code
iptables-restore < /etc/iptables.rules

либо прописать в /etc/network/interfaces для нужного интерфейса, см. пример:
Code
auto eth0
iface eth0 inet dhcp
pre-up iptables-restore < /etc/iptables.rules
post-down iptables-save -c > /etc/iptables.rules
GarryPotter Дата: Чт, 29.09.2011, 21:34 | Повідомлення № 4
Прописаний назавжди
Повідомлень: 357
Нагороди: 2
Рейтинг: 20
Quote (novachok)
Я правильно думаю?


Необходимо установить iptables и dnsmasq-base (если не установлено)

Получить подключение к интернету - например через USB-модем

ppp0 - интерфейс на котором "поднят" интернет
eth0 - интерфейс локальной сети

Настройки eth0 на компьютере-шлюзе
IP: 192.168.0.1 (обязательно)
Netmask: 255.255.255.0

На прочих компьютерах:
IP: 192.168.0.2 - 192.168.0. (сколько есть)
Netmask/Маска: 255.255.255.0
Gateway/Шлюз: 192.168.0.1 (обязательно)
DNS: 192.168.0.1 (обязательно)

Разрешить направление пакетов.
У файле /etc/sysctl.conf раскомментируйте (или вставьте) строчку (c правами администратора!)
net.ipv4.ip_forward=1

То же сделаем для текущего сеанса, выполните в консоли:

sudo sysctl -w net.ipv4.ip_forward="1"

(чтоб применить это правило без перезагрузки)

sudo iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE

Запустить dnsmasq (без него у меня ничего не работало)
Andrey123q Дата: Сб, 01.10.2011, 05:34 | Повідомлення № 5
Досвідчений учасник
Повідомлень: 1236
Нагороди: 3
Рейтинг: 84
GarryPotter, практически, то что написал я. Единственное правила iptables нужно сохранять, иначе после рестарта сбросятся.

Quote (GarryPotter)
Запустить dnsmasq (без него у меня ничего не работало)

возможно вы не прописали днс сервера в /etc/resolv.conf
скорее так и есть, т.к. dnsmasq это в т.ч. ДНС сервер, он вам инет-адреса и резолвит. Попроуйте его остановить и пропинговать какой-нибудь хост сначала по доменному имени, а потом по его IP-адресу (IP-шник определите до остановки dnsmasq).

Додано (01.10.2011, 04:34)
---------------------------------------------
Хотя в принципе да, кэширующий днс для мини-локалки за nat'ом как раз то что нужно. %)
А не работало, потому что вы днс на клиентах указывали шлюз, а шлюз фактически таковым не являлся. Потому на клиентах нужно было указать днс прова или любой публичный, но свой кэширующий днс конечно лучше.

Вообще, эти правила iptables слишком минимальны и абсолютно не безопасны, как минимум нужно пускать только по нужным портам, а все остальные по умолчанию резать.


Відредаговано: Andrey123q - Сб, 01.10.2011, 05:42
novachok Дата: Нд, 02.10.2011, 17:53 | Повідомлення № 6
Прописаний назавжди
Повідомлень: 247
Нагороди: 0
Рейтинг: 9
Как буд-то все понятно.
А нет ли простенькой програмки, которая запрашивала бы интерфейс откуда брать интернет (ppp0 или eth1 - к примеру) и интерфейс куда следует "раздавать" (eth0 - к примеру), а все прочие "телодвижения" делались бы незаметно для пользователя (как у Виндовс)
Andrey123q Дата: Пн, 03.10.2011, 16:06 | Повідомлення № 7
Досвідчений учасник
Повідомлень: 1236
Нагороди: 3
Рейтинг: 84
как вариант можно через webmin.

Quote (novachok)
все прочие "телодвижения" делались бы незаметно для пользователя (как у Виндовс)

ну вы ж не пользователь, а админ :) шучу
Anna_teacher Дата: Вт, 03.06.2014, 23:56 | Повідомлення № 8
Новий користувач
Повідомлень: 3
Нагороди: 0
Рейтинг: 0
Доброго дня! Я працюю в організації я ка переїхала в нову будівлю. і мені потрібно розрахувати локальну мережу на три поверхи. на приблизно 35 компютерів. 20 з я ких компютерний клас. а інші ПК  - адміністрації. з обладнанням начеб-то розібралась. скоро підведуть інтернет. хочу адмініструвати це все з допомогою Linux. чи складно це зробити? і як це все організувати. мені підказали що можна використати Ubunty)направте будь-ласка мене в правильному напрямку.

Додано (03.06.2014, 22:56)
---------------------------------------------
ось так і поговорила) вже зробила мережу. інтернет працює. якщо кому потрібна допомога звертайтесь)

Форум інформатиків » РОЗДІЛ V: ПРОГРАМНЕ ЗАБЕЗПЕЧЕННЯ » 5.4 ОС Linux » Linux в качестве маршрутизатора между лок сетью и интернетом (настройка, спец дистрибутивы)
Сторінка 1 з 11
Пошук:


© Форум інформатиків України, 2007-2017.