squid+NAT+DHCP на ubuntu 14.04

В первую очередь отредактируем сетевые соеденения. Вводим в консоли :

sudo mcedit /etc/network/interfaces

Пока там прописан единственный интерфейс eth0, настроенный на работу по DHCP. К eth0 у нас подключен ADSL модем (или любая сеть провайдера), а eth1 смотрит во внутреннюю сеть. IP адрес на внешнем интерфейсе 192.168.1.2, шлюз (ADSL модем) 192.168.1.1, внутренняя сеть лежит в диапазоне 10.0.0.1 - 254. Тогда настройки будут выглядеть следующим образом:

auto eth0
  iface eth0 inet static
    address 192.168.1.2
    netmask 255.255.255.0
    gateway 192.168.1.1

auto eth1
  iface eth1 inet static
    address 10.0.0.1
    netmask 255.255.255.0

для автоматического запуска скрипта снова открываем /etc/network/interfaces и в самый конец файла дописываем:

post-up /etc/nat

Потом создадим файл скрипта:

sudo touch /etc/nat

Также не забываем дать нашему скрипту права на исполнение:

sudo chmod +x /etc/nat

Перезапускаем сеть:

sudo /etc/init.d/networking restart

Задаем пароль супер пользователю:

sudo passwd root

Теперь нужно настроить DNS, для этого выполняем:

sudo mcedit /etc/resolv.conf

В этом файле необходимо указать адреса DNS серверов, лучше всего указать DNS провайдера или, как в нашем случае, OpenDNS.

sudo mcedit /etc/resolvconf/resolv.conf.d/head

nameserver 208.67.222.222
nameserver 208.67.220.220

Сохраняем. Теперь нужно перезапустить сетевые службы (либо перезагрузиться):

sudo /etc/init.d/networking restart

 

Собственно сеть настроена, можно переходить к следующему этапу, однако мы рекомендуем установить еще несколько пакетов для удобства администрирования. Сначала обновим список доступных пакетов:

sudo apt-get update

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

sudo apt-get upgrade

Теперь установим Midnight Commander (mc), файловый менеджер по образу и подобию Norton Commander или Far:

sudo apt-get install mc

Для запуска Midnight Commander достаточно набрать в консоли его краткое имя: mc. Сразу рекомендуем включить встроенный редактор, более удобный чем nano: F9 - Настройки - Конфигурация - Встроенный редактор.

Для удаленного управления сервером (не бегать же к нему каждый раз) установим OpenSSH, что позволит подключаться к нему из любого места, даже из дома, по защищенному протоколу:

sudo apt-get install ssh

Для подключения с Windows станций можно использовать программу PuTTY (скачать), для корректного отображения символов перед подключением необходимо на закладке Window - Translation выбрать кодировку UTF8

                                             Настраиваем NAT

Для организации общего доступа к интернет необходимо настроить трансляцию сетевых адресов (NAT), что позволит сетевым службам внутренней сети получать доступ к внешней сети. Для этого достаточно выполнить всего одну команду, но есть одна тонкость: все будет работать только до перезагрузки. На настоящий момент в Linux нет механизма, который бы сохранял настойки iptables при перезагрузке сервера или сети. Поэтому мы пойдем другим путем и вынесем эти настройки в отдельный скрипт, запускаемый при загрузке системы. 

Потом откроем его в редакторе Midnight Commander (F4) и внесем следующий текст:

#!/bin/sh

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

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

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

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

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

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

                       Установим пакет DHCP сервера:

ИЛИ

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

В любой большой сети определенная часть трафика повторяется от пользователя к пользователю и порой его доля доходит до 50%. Логично бы было кэшировать наиболее повторяющиеся запросы и тем самым снизить нагрузку на канал, сэкономить входящий трафик и ускорить выдачу страниц конечному пользователю. Для этих задач мы используем Squid - кэширующий прокси с широчайшими возможностями.
sudo apt-get install squid3

 

  1. squid3 на ubuntu to 12.04

  2. squid3 на ubuntu to 14.04

 

Остается настроить прозрачную работу прокси-сервера, чтобы http трафик заворачивался на Squid автоматически, без прописывания прокси на клиенте. Для этого открываем /etc/nat и дописываем в конец строку:

# Заворачиваем http на прокси
iptables -t nat -A PREROUTING -i eth1 ! -d 10.0.0.0/24 -p tcp -m multiport --dport 80,8080 -j DNAT --to 10.0.0.1:3128

Перезапускаем сеть:
sudo /etc/init.d/networking restart