+0 000-000-00-00

Общий интернет, squid3 и apt-cacher на ubuntu

Компьютер с 2 сетевыми картами. Настройка через Network-manager (через иконку в системном трее). После настройки проверяем

# ifconfig -a

и смотрим как называются интерфейсы и куда они смотрят. У меня eth0 cмотрит на провайдера, eth1 - в локальную сеть.

Раздача интернета

Все очень просто делается (если, конечно, знать как - а на это уходят часы перелопачивания информации в интернете. Советов очень много, но не все они подходят). Так как наконец-то Network Manager работает без глюков, необходимости писать настройки вручную в /etc/network/interfaces нет.

Для начала устанавливаем iptables.

Для начала включим форвардинг:

echo 1 > /proc/sys/net/ipv4/ip_forward

Чтобы форвардинг автоматически включался при запуске системы

Открываем файл:

sudo nano /etc/sysctl.conf

и добавляем в негорасскомментируем строчку:

net.ipv4.ip_forward = 1

Затем включаем NAT
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Где eth0 название  интерфейса через который выходите в интернет.

Следующим шагом сохраняем правила:

sudo iptables-save

и проверив все ли правильно записано сохраняем правила в файл:

sudo sh -c "iptables-save > /etc/iptables.up.rules"

Для того, чтобы правила запускались при загрузке системы создаем скрипт с любым названием в папке /etc/network/if-up.d со следующим содержимым:

#!/bin/sh
iptables-restore < /etc/iptables.up.rules

Если возникнет необходимость очистить iptables, необходимо в консоли выполнить следующее:

sudo iptables -F
sudo iptables -t nat -F

Минимальный набор правил Iptables для типовых задач  (тут есть скрипты для очистки правил и для раздачи)

Источники: 1 2

Установка apt-cacher

UPD. apt-cacher-ng гораздо проще в настройке и удобнее, и не нужен сервер apache. Информация ниже - только на память о мучениях с apt-cacher

==========

Для работы apt-cacher необходим WEB-сервер Apache, поэтому, если его нет, устанавливаем:
sudo apt-get install apache2

Установка самого apt-cacher тривиальна:
sudo apt-get install apt-cacher

Создадим папку для хранения кэша(т.е. самих пакетов) и назначим ей права
sudo mkdir /var/cache/apt-cacher
sudo chown www-data:www-data /var/cache/apt-cacher/*


Вы можете создать папку в любом месте
под юзером и группой www-data будет запускаться наш apt-cacher, так же под ним надо будет запускать Apache.

Откроем для редактирования файл /etc/apt-cacher/apt-cacher.conf:
sudo nano /etc/apt-cacher/apt-cacher.conf

Рассмотрим пример конф. файла:

cache_dir=/var/cache/apt-cacher #директория которую мы создали и в котрой будет храниться кэш.
admin_email=root@localhost # мыло админа :)
daemon_port=9999 #порт на котором будет висеть наш apt-cacher
group=www-data #группа под которой будет запускаться наш apt-cacher
user=www-data #юзер под которой будет запускаться наш apt-cacher

allowed_hosts=* #хосты доступ с которых разрешен на наш сервер(по-умолчанию разрешено всем)
denied_hosts= #соответственно запрещен.

generate_reports=1 # раз в сутки будут генерироваться отчеты об использовании apt-cacher`a(1-генерить, 0 - нет) 

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

allowed_hosts=*

path_map = rubuntu ru.archive.ubuntu.com/ubuntu ; ubuntu archive.ubuntu.com/ubuntu ; canonical archive.canonical.com/ubuntu ; security security.ubuntu.com/ubuntu ; extras extras.ubuntu.com/ubuntu ; opera deb.opera.com/opera ; libreoffice ppa.launchpad.net/libreoffice/libreoffice-5-1/ubuntu

ubuntu_release_names = dapper, edgy, feisty, gutsy, hardy, intrepid, jaunty, karmic, lucid, maverick, natty, oneiric, precise, quantal, trusty, xenial

На этом все. Рестарт, старт и стоп делается командами

/etc/init.d/apt-cacher restart (start, stop)
или
service apt-cacher start (restart, stop)

Очистка кеша от старых пакетов:

sudo service apt-cacher stop
sudo rm -rf /var/cache/apt-cacher/
sudo mkdir -p /var/cache/apt-cacher/{headers,import,packages,private,temp}
sudo service apt-cacher start

(можно просто очистить  папку apt-cacher, после запуска внутренние папки пересоздадутся сами.

Теперь нужно установить автозапуск:
sudo nano /etc/default/apt-cacher
И исправляем в файле AUTOSTART=0 на AUTOSTART=1.

Перезапускаем:
sudo /etc/init.d/apt-cacher restart

Сервер готов к работе.

На клиентах в файле sources.list комментируем "прямые" репозитории и добавляем

deb http://apt-cacher:3142/rubuntu trusty main restricted universe multiverse
 deb http://apt-cacher:3142/rubuntu trusty-updates main restricted
 deb http://apt-cacher:3142/rubuntu trusty-backports main restricted universe multiverse
 deb http://apt-cacher:3142/security trusty-security main restricted
 deb http://apt-cacher:3142/security trusty-security universe
 deb http://apt-cacher:3142/security trusty-security multiverse

(естественно, в /etc/hosts нужно прописать IP машины с apt-cacher)

===============

Установка squid3

 Для прозрачного прокси на squid добавляем правила (источник Прозрачный прокси и исключения из правил редиректа)

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

iptables -t nat -A PREROUTING -s 172.18.4.7 -p tcp -m tcp --dport 80 -j RETURN
iptables -t nat -A PREROUTING -d domain.ru,domain.com -p tcp -m tcp --dport 80 -j RETURN
iptables -t nat -A PREROUTING -i enp3s0 -p tcp -m multiport --dport 80 -j REDIRECT --to-port 3128

Управление в ubuntu-server 14.04

sudo start/stop/restart squid3 
или
sudo service squid3 start/stop/restart

Настройка сквида описана хорошо здесь

Еще по настройке

  1.  «Прозрачный» Squid с разграничением доступа 
  2. https://losst.ru/ustanovka-squid-v-ubuntu-15-10
  3.  Работа с Linux firewall через Webmin

    Опубликовано

    Menu