Ubuntu server не работает nat

Media UniX

freebsd команды, настройка, установка сервера и не только

nat в ubuntu server . Раздаём интернет в сеть

После установки ubuntu server и подключения её к интернету, хочется дать интернет всем остальным компьютерам в сети. Раздавать интернет будем с помощью простого NAT.
Интерфейс, который смотрит в локальную сеть у меня eth1 (ip 10.36.1.7).
Напомню, настройки интерфейса у меня такие:
auto eth1
iface eth1 inet static
address 10.36.1.7
netmask 255.255.255.0
network 10.36.1.0
broadcast 10.36.1.255
dns-nameservers 8.8.8.8 8.8.4.4

Приступим к настройкам раздачи интернета. Дописываем строку в наш уже полюбившийся /etc/network/interfaces в конце:
post-up /etc/nat

А теперь отредактируем этот самый /etc/nat
sudo nano /etc/nat

Для начала самый простой конфиг, который открывает всё и даёт интернет в сеть по nat. Вписываем:
#!/bin/bash

#Включаем форвардинг пакетов (обязательно . )
echo «1» > /proc/sys/net/ipv4/ip_forward
modprobe iptable_nat
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp
modprobe ip_nat_pptp

# Очищаем все правила
iptables -F
iptables -F -t nat
iptables -F -t mangle
iptables -X
iptables -t nat -X
iptables -t mangle -X

# Разрешаем сразу всё
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT

# Разрешаем доступ из внутренней сети наружу
iptables -A FORWARD -i eth1 -o ppp0 -j ACCEPT

# Разрешаем доступ снаружи во внутреннюю сеть
iptables -A FORWARD -i ppp0 -o eth1 -j ACCEPT

# Маскарадинг
iptables -t nat -A POSTROUTING -o ppp0 -s 10.36.1.7/24 -j MASQUERADE

Примечание:
1) Предвкушаю шуршания, по поводу не правильного решения открывать всё наружу.
2) У меня конфиг немного другой, потому что и физических интерфейсов у меня больше, и запрещающих правил тоже больше, но правила выше должны быть рабочими. Нужно лишь сверить свои интерфейсы. У меня:
ppp0 — соединение с интернетом, которое устанавливается через pppoe
eth1 — интерфейс смотрящий в локальную сеть

Сохраняем. Закрываем.
Выполняем:
sudo chmod 0777 /etc/nat
sudo chmod +x /etc/nat

Перегружаем сервер:
sudo reboot

На клиентских ПК настраиваем сетевое подключение, то есть даём клиентскому компьютеру ip адрес из той же сети, что и наш сервер, указываем маску такую же, как на сервере, шлюзом указываем ip адрес нашего сервера и в качестве dns серверов, можно указать 8.8.8.8 и 8.8.4.4
Проверяем интернет на клиенте. Должно работать.
На этом пока всё. Позже настроим автоматическую выдачу адресов клиентским устройствам с помощью dhcp.

Добавить комментарий Отменить ответ

Для отправки комментария вам необходимо авторизоваться.

Источник

Записки IT специалиста

Технический блог специалистов ООО»Интерфейс»

  • Главная
  • Ubuntu Server. Настраиваем роутер NAT + DHCP + Squid3

Ubuntu Server. Настраиваем роутер NAT + DHCP + Squid3

Более четырех лет назад мы опубликовали материал посвященный настройке роутера на базе Ubuntu Server. Тема оказалась весьма востребованной и популярной, но за прошедшее время некоторые настройки успели измениться, пусть и незначительно. В связи с этим мы решили вернуться к этой теме и опубликовать современную версию популярной статьи.

Читайте также:  Не работает абс мицубиси лансер

Мы не будем подробно останавливаться на установке системы и назначении тех или иных компонентов, об этом достаточно сказано в исходном материале, а уделим основное внимание отличиям в современных версиях Ubuntu Server и настраиваемых пакетах.

Настройка сети

В нашем примере внешний сетевой интерфейс — eth0 — имеет статические настройки, если же вы используете PPPoE или PPTP подключение, то для настройки подключения рекомендуем воспользоваться нашими материалами:

Начиная с версии 12.04 (мы рассматриваем только LTS версии и крайне не рекомендуем использовать на серверах промежуточные релизы) все сетевые настройки, в том числе и DNS-сервера указываются в одном месте, конфигурационном файле /etc/network/interfaces. Перед тем как приступать к настройке повысим права до суперпользователя:

затем откроем файл в штатном редакторе nano, работа с ним далека от удобства, но для изменения нескольких строк он вполне подойдет:

Приведем его к следующему виду (настройки внешнего интерфейса приведены исключительно для примера):

Для указания DNS-серверов теперь используется директива dns-nameservers, если серверов несколько, они указываются в одну строку, через пробел.

Если вы получаете сетевые настройки от провайдера по DHCP, то настройки будут иметь вид:

Последней строкой идет автоматическая загрузка правил iptables из файла /etc/nat, который мы создадим позже.

Если все сделано правильно, на сервере должен появиться интернет. После чего следует обновить пакеты на сервере и установить необходимый минимум утилит для администрирования:

Представлять двухпанельный менеджер с удобным редактором Midnight Commander (mc) мы думаем не нужно, как и SSH-сервер, дающий возможность удаленного администрирования.

Настройка NAT и брандмауэра

Технология сетевой трансляции адресов — NAT — позволяет организовать выход в интернет компьютеров локальной сети через один сетевой адрес. Данная технология абсолютно прозрачна для клиентских устройств и способна работать с любыми сетевыми приложениями и протоколами. За функции NAT в Ubuntu отвечает сетевой фильтр iptables, который предоставляет также функции брандмауэра.

В зависимости от политики сетевой безопасности существуют различные подходы к настройке брандмауэра. Мы предпочитаем задавать только базовые правила, исходя внутри сети из принципа: все что не запрещено — разрешено. Это позволяет свободно работать любым сетевым службам во внутренней сети и без помех выходить в интернет, обеспечивая при этом достаточный уровень безопасности. Для внешней сети запрещено все, что не разрешено и доступ к сетевым службам администратор должен разрешать явно.

Создадим файл настроек:

и внесем в него следующее содержимое:

Сохраним изменения и дадим нашему файлу права на исполнение:

Теперь если вручную задать сетевые настройки для рабочей станции, указав в качестве шлюза наш роутер и любой доступный DNS-сервер, то не ней должен появиться доступ в интернет.

Настройка DHCP и кэширующего DNS

В принципе мы уже можем использовать наш роутер по назначению, однако ручное указание сетевых настроек, это даже не вчерашний, а позавчерашний день, поэтому DHCP-сервер является неотъемлемой частью сетей любого размера. Также имеет смысл настроить собственный кэширующий DNS-сервер, который не только снизит нагрузку на вышестоящие сервера и уменьшит время отклика, но также позволит создавать собственные записи для хостов внутренней сети, что может оказаться полезным при развертывании иных сетевых сервисов.

Все эти функции реализованы в одном пакете dnsmasq, который предельно прост в установке и настройке:

Читайте также:  Сервер терминалов не работает клавиатура

Функции кэширующего DNS-сервера становятся доступны сразу после установки и в настройке не нуждаются, однако следует явно указать интерфейсы, которые будет обслуживать dnsmasq. Для этого откроем файл /etc/dnsmasq.conf и изменим следующую строку (не забываем раскомментировать при необходимости):

Для настройки DHCP сервера достаточно указать диапазон пула адресов и срок аренды:

После чего хосты внутренней сети будут получать все сетевые настройки автоматически.

Настройка кэширующего прокси-сервера Squid3

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

Squid поддерживает кэширование двух типов, в оперативной памяти и на диске. Сегодня можно встретить рекомендации отказаться от дискового кэша, мол проще скачать объект заново, чем искать его на диске. Однако мы считаем, что разумный размер дискового кэша при большом количестве клиентов позволяет эффективно использовать канал за счет хранения в кэше статических элементов: картинок, скриптов, CSS-файлов для часто посещаемых ресурсов.

Сразу предостережем от распространенной ошибки — использования для хранения кэша старых медленных дисков и выделения под кэш значительного пространства. В этом случае эффект будет прямо противоположен ожиданиям, время поиска объекта на диске при большой нагрузке будет занимать значительно больше времени, чем его повторное скачивание.

Но все преимущества Squid раскрываются тогда, когда появляется необходимость тонкой фильтрации трафика, здесь богатые возможности позволяют реализовывать самые разнообразные схемы, которые просто невозможно рассмотреть в рамках одного материала, получить все материалы по данной теме вы можете выполнив поиск по тегу squid.

Внимание! Начиная с Debian 9 и Ubuntu 16.04 вместо пакета squid3 снова используется squid, также аналогичным образом следует изменить все пути, т.е. вместо /etc/squid3 использовать /etc/squid.

Для установки squid выполните команду:

Перейдем к настройкам. Для новичка конфигурационный файл squid может показаться излишне сложным, на самом деле большую часть его занимают подробные комментарии и примеры. Поэтому мы пойдем по файлу от начала к концу, указывая какие строки надо добавить или изменить. Откроем файл конфигурации /etc/squid3/squid.conf и перейдем к указанию группы доступа (acl) для локальной сети. Раскомментируем и исправим или добавим ниже строку:

Затем, спускаясь далее по конфигурационному файлу найдем секцию отвечающую за правила доступа и убедимся, что она содержит следующие правила:

Данная секция разрешает доступ для клиентов локальной сети, собственно сервера и запрещает всем остальным.

Теперь укажем порт, интерфейс и режим работы прокси-сервера.

Параметр intercept указывает, что прокси работает в прозрачном режиме, т.е. не требует прямого указания прокси на клиентах.

Перейдем к указанию параметров кэша. Зададим доступный объем памяти и укажем максимальный объем кэшированного объекта в памяти:

При задании этих параметров исходите из доступной памяти сервера, но учтите, что кэш в памяти начинает эффективно работать только после «прогрева» и будет сброшен при перезагрузке или выключении сервера.

После чего укажем размер дискового кэша и его расположение:

Размер кэша указывается в МБ, в нашем случае 2048 МБ — 2 Гб, следующие два числа указывают количество директорий первого и второго уровня, рекомендуем оставтить эти параметры без изменения.

Следующий параметр задает максимальный размер объекта в дисковом кэше:

Читайте также:  Hp pavilion dv7 не работают динамики

Далее по файлу укажем место хранения логов и количество ротаций:

В нашем случае логи хранятся 31 день, указывая это значение исходите из размеров лога и свободного места на диске, в любом случае этот параметр можно всегда изменить.

Внимание! В Ubuntu Server 12.04 (Squid 3.1) указанная выше строка должна иметь вид: access_log /var/log/squid3/access.log squid

Остальные параметры оставляем без изменений, сохраняем файл настроек.

Перед тем как перезапускать службу выполним проверку файла конфигурации:

Если команда отрабатывает без вывода — ошибок нет, в противном случае изучаем вывод и исправляем допущенные ошибки. После этого перезапустим службу, чтобы применить внесенные изменения.

В том случае, когда были изменены параметры кэша следует его перестроить:

Затем в /etc/nat добавляем правило заворачивающее http-трафик на squid:

Сохраняем изменения, перезагружаем сервер.

Обращаем ваше внимание, что squid3 в прозрачном режиме, в отличие от предыдущей версии, не принимает соединения, если в настройках прямо указано использование прокси.

В этом случае вы получите сообщение, что доступ запрещен:

Как видим, настройка роутера на современной платформе, несмотря на отличия, остается весьма простой и доступна для повторения широкому кругу читателей. В наших будущих материалах мы также будем принимать за основу роутер, настроенный именно по данному материалу, в тоже время с данным роутером будут работать все решения, опубликованные нами ранее, хотя для некоторых из них могут понадобиться незначительные корректировки.

Дополнительные материалы:

Помогла статья? Поддержи автора и новые статьи будут выходить чаще:

Или подпишись на наш Телеграм-канал:

Источник

Настройка интернет шлюза на Ubuntu Server

Мы успешно проделали предыдущие шаги настройки: предварительную настройку, установку DHCP и DNS, теперь можем перейти к следующему небольшому шагу — настройке общего доступа к интернету для локальной сети, через Ubuntu Server используя NAT.

Создаем файл конфигурации NAT, командой:

и открываем его:

Вносим в файл следующий текст:
#!/bin/sh

#Включаем форвардинг пакетов
echo 1 > /proc/sys/net/ipv4/ip_forward

#Разрешаем траффик на lo
iptables -A INPUT -i lo -j ACCEPT

#Разрешаем доступ из внутренней сети наружу
iptables -A FORWARD -i enp9s0 -o enp14s0 -j ACCEPT

#Включаем NAT
iptables -t nat -A POSTROUTING -o enp14s0 -s 192.168.137.0 /24 -j MASQUERADE

#Разрешаем ответы из внешней сети
iptables -A FORWARD -i enp14s0 -m state —state ESTABLISHED,RELATED -j ACCEPT

#Запрещаем доступ снаружи во внутреннюю сеть
iptables -A FORWARD -i enp14s0 -o enp9s0 -j REJECT

Должно выглядеть вот так:

Ubuntu Server: Настройка NAT

Создаем из файла скрипт (преобразуем в запускаемый файл), командой:

Добавляем строку запуска скрипта post — up / etc / nat в файл конфигурации сетевых интерфейсов сервера, командой:

Файл конфигурации выглядит вот так:

Ubuntu Server: Включение загрузки NAT

Перезагружаем сервер, командой:

Если все сделано верно, то после перезапуска сервера и клиентских компьютеров, интернет появится на каждом компьютере вашей сети.

Большинство «не работает» вызвано невнимательностью! Внимательно проверяйте команды и не допускайте в файлах конфигурации лишних символов.

[nx_heading style=»coloredline» heading_tag=»h4″ size=»24″ align=»left»]От автора:[/nx_heading]

Если проблема решена, один из способов сказать «Спасибо» автору — здесь.

Если же проблему разрешить не удалось и появились дополнительные вопросы, задать их можно на нашем форуме, в специальном разделе.

Источник

Оцените статью