LINUX.ORG.RU
решено ФорумAdmin

Router из ubuntu 14.04

 , ,


0

1

Собрал во едино все необходимое, что надо сделать на голой ubuntu 14.04.4, что бы она раздавала интернет для локалки. Всё это работает на боевой машине.

После установки настраиваем сеть: eth1 - внутренний интерфейс, eth0 - внешний

Разрешим направление пакетов:

sudo echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf
Для вступления в силу до перезагрузки:
sudo sysctl -w net.ipv4.ip_forward="1"

Установим необходимые и удобные пакеты:

sudo apt-get install -y dnsmasq mc iptables-persistent sysv-rc-conf

Настроим фаервол не только на проброс локалки наружу, но и необходимые порты снаружи внутрь:

sudo mcedit /etc/iptables/rules.v4:
*nat
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]

-A PREROUTING  -p tcp --source [ip/mask внешние адреса для доступа] -d [ip внешнего интерфейса eth0] --dport [внешний порт] -j DNAT --to [ip внутренней машины]:[порт внутренней машины]
-A POSTROUTING -p tcp -d [ip внутренней машины]  -j MASQUERADE
# 2 правила для проброса порта из-вне
-A POSTROUTING -o eth0 -j MASQUERADE
# последнее для доступа локальных клиентов наружу

COMMIT

*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]

-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i eth1 -j ACCEPT
-A FORWARD -i eth1 -j ACCEPT
-A FORWARD -o eth1 -j ACCEPT
# последние 2 правила для прохождения ответных пакетов локальным клиентам

COMMIT
Применяем правила и рестарт фаервола:
 sudo iptables-restore < /etc/iptables/rules.v4
 sudo service ufw restart
 
Конфиг DHCP (при необходимости) /etc/dnsmasq.conf добавляем в конец:
 interface=eth1
 listen-address=192.168.0.1 
 bind-interfaces
 dhcp-range=192.168.0.20,192.168.0.50,24h
 dhcp-option=3,192.168.0.1 # 3 опция это шлюз, 6 опция - dhs через запятую
 
Т.к. у меня сеть настроена через графику NM (NetworkManager) служба dnsmasq пытается стартовать раньше сети, но тщетно, поэтому выключаем dnsmasq из автозагрузки:
sudo sysv-rc-conf
Прописываем старт dnsmasq например в /etc/rc.local с задержкой 5 сек (если служба dnsmasq после загрузки лежит, то можно это значение увеличить):
sleep 5; service dnsmasq start

Добавим webmin для удобства просмотра логов и не только:

echo deb http://download.webmin.com/download/repository sarge contrib >> /etc/apt/sources.list
cd /root
wget http://www.webmin.com/jcameron-key.asc && apt-key add jcameron-key.asc && rm jcameron-key.asc && apt-get update && apt-get install -y webmin
Для просмотра нагрузки на сеть установим ntop:
apt-get install -y ntop
Просмотр статистики ntop в веб морде на 3000 порту. Мне больше всего нравится: Summary -> Network Load

Вроде всё ))) Удачи.



Последнее исправление: Dimarius (всего исправлений: 2)

Разрешим направление пакетов:
sudo net.ipv4.ip_forward=1 >> /etc/sysctl.conf

echo пропустил и в кавычки взять. Кроме того, а нет ли там закомментированной строчки соответствующей ? Или с «=0».

AS ★★★★★
()
Ответ на: комментарий от AS

Исправил, спасибо. Да, такая строка с # там есть.

Dimarius
() автор топика
Ответ на: комментарий от ionanahin

Каждый своё безобразие устраивает )) Дело вкуса ))

Dimarius
() автор топика

Т.к. у меня сеть настроена через графику NM (NetworkManager) служба dnsmasq пытается стартовать раньше сети

В systemd такого бы не было

http://webmin.mirror.somersettechsolutions.co.uk/repository

Этот реп сдох и разложился.

wget http://www.webmin.com/jcameron-key.asc && apt-key add jcameron-key.asc && rm jcameron-key.asc

curl http://www.webmin.com/jcameron-key.asc| sudo apt-key add -

или

wget -O - http://www.webmin.com/jcameron-key.asc| sudo apt-key add -

dnsmasq

А не лучше ли поставить отдельные dhcp и dns серверы, если машина позволяет?

Radjah ★★★★★
()
Ответ на: комментарий от Radjah

Реп удалил, спс. Ключ можно и вашим методом добавить, хорошая идея. А какой смысл ставить отдельные dhcp и dns если машина работает в режиме шлюза и не более?

Dimarius
() автор топика
Ответ на: комментарий от Dimarius

Захочешь ты более тонко настроить отдаваемые настройки сети, а вот хрен там плавал.

Надоест компы в сети по адресам тыкать, захочешь свою зону чисто для локалки, и привет мутные конфиги москита.

И нафига вообще лепить туда webmin?

Radjah ★★★★★
()
Ответ на: комментарий от Dimarius

Ну на дворе как бы 2016 год. И какой смысл городить костыли, если можно всё сделать без них?

Ну и еще в LSB можно впихнуть зависимости для сервисов, например.

Radjah ★★★★★
()
Ответ на: комментарий от Radjah

dnsmasq

А не лучше ли поставить отдельные dhcp и dns серверы, если машина позволяет?

Не всегда удобно. Например при домашнем инете когда от прова снаружи ты не получишь адрес доступный только из лан прова, проще пользовать dnsmasq.

anc ★★★★★
()

sudo echo «net.ipv4.ip_forward=1» >> /etc/sysctl.conf

Неа. Не заработает. По крайней мере на ubuntu 14.04.

Надо

sudo su -
echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf

alchemist
()
Ответ на: комментарий от Radjah

Захочешь ты более тонко настроить отдаваемые настройки сети, а вот хрен там плавал.Надоест компы в сети по адресам тыкать, захочешь свою зону чисто для локалки, и привет мутные конфиги москита.И нафига вообще лепить туда webmin?

DHCP актуально в домашнем варианте и там маскита достаточно, а в продакшн не актуально вовсе. А DNS в моските только для проброса, для зон в продакшн есть отдельный сервер ;) Webmin мне нравится для просмотра логов по большей части, подобная реализация мне интересна как замена аппаратных маршрутизаторов, а в них иногда логи смотреть тоже приходится.

Ну на дворе как бы 2016 год. И какой смысл городить костыли, если можно всё сделать без них? Ну и еще в LSB можно впихнуть зависимости для сервисов, например.

Да можно и на 16.04 это все сделать через systemd, но я не ищу легких путей. В 16.04 что пробовал не поднялись нужные мне wifi карты, поэтому пока что 14.04.

Dimarius
() автор топика
Ответ на: комментарий от Radjah

Да, с bash -с работает. Но в шапке исправить уже не могу.

Dimarius
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.