Общий интернет, 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 для типовых задач (тут есть скрипты для очистки правил и для раздачи)
Установка 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
Настройка сквида описана хорошо здесь
Еще по настройке
Опубликовано