Как настроить подключение через прокси-сервер в ubuntu

Эта статья предназначена для тех, кому нужно быстро настроить SQUID в своей локальной сети на шлюзе для выхода в Интернет.

Книги

  • Интернет: от «чайника» к пользователю. — 3-е изд Книга предназначена для начинающего домашнего пользователя, поможет ему самостоятельно освоить основы Интернета и начать уверенную работу. Рассмотрены все аспекты работы в Интернете: выбор подключения, настройка подключения обычного, ADSL- и 3G-модем
  • Планшет и смартфон на базе Android для ваших родителей, 2-е изд. Книга знакомит читателя с мобильными устройствами на базе Android. Она написана простым и понятным языком для людей среднего и старшего возраста
  • PHP 5/6 и MySQL 6. Разработка Web-приложений. 3-е изд Даны начала программирования на PHP: установка и настройка PHP и MySQL, выбор редактора PHP-кода, основы синтаксиса и самые полезные функции PHP.
  • Безопасный Android: защищаем свои деньги и данные от кражи Рассмотрены различные способы обеспечения безопасности Android-устройств: шифрование персональной информации, хранящейся на устройстве, шифрование передаваемых данных, VPN-соединения, анонимизация трафика
  • Mac OS X Lion. Руководство пользователя (PDF) Эта книга — практическое руководство по использованию компьютеров компании Apple с операционной системой Mac OS X Lion. В ней рассказывается, как работать в этой ОС, какие возможности она предоставляет пользователю, как ее правильно настроить. Рассмо

Настрайка NAT

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

Читайте также:  iOS 14.3 Release Candidate. Что добавили нового?

sudo touch /etc/nat

Потом откроем его в редакторе 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

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

post-up /etc/nat

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

sudo chmod +x /etc/nat

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

sudo /etc/init.d/networking restart

Если нигде не допущено ошибок все должно работать. Для проверки укажем на машинах внутренней сети в качестве шлюза и DNS адрес нашего роутера: 10.0.0.1 и пропингуем любой внешний адрес, например один из OpenDNS серверов: Но интернет пока работать не будет. Почему? Да потому, что мы указали в качестве DNS сервера наш роутер, который пока таковым не является. Можно конечно явно прописать DNS на клиентской машине,однако, это не наш метод, если вдруг DNS сервера изменятся, нам что, бегать перепрописывать? Одно из решений: поднять на нашем роутере полноценный DNS сервер, но в большинстве случаев это избыточно, поэтому мы ограничимся простым кэширующим DNS (а также и DHCP) сервером Dnsmasq.

sudo apt-get install dnsmasq

После установки открываем /etc/, находим, раскомментируем и изменяем следующим образом строку, чтобы разрешить серверу принимать DNS запросы из внутренней сети.:

Читайте также:  Откат iOS или как вернуть предыдущую версию

listen-address=127.0.0.1, 10.0.0.1

Перезапускаем DNS сервер:

sudo /etc/init.d/dnsmasq restart

После чего на клиентских машинах должен заработать интернет.

Кэширование контента в Squid

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

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

# Запретить кэширование cache deny all

Если необходим дисковый кэш, добавляем в следующие параметры:

# Кэш: формат, размещение, размер в мегабайтах, число папок первой и второй вложенности # Указанный размер кэша не учитывает издержки файловой системы и должен быть примерно на 20% меньше доступного дискового пространства # Директиву cache_dir, можно указать несколько раз, выделив под кэш дополнительные разделы cache_dir ufs /var/squid/cache 3000 16 256 # Не кэшировать файлы больше заданного размера # По умолчанию 4Мб maximum_object_size 320 MB # Продолжить загрузку при отключении клиента, если осталось загрузить менее указанного объема данных # Позволяет сохранить объект в кэше при отмене загрузки клиентом # Значение 0 для quick_abort_min и quick_abort_max отменяют докачку # Значение -1 включает полную закачку объекта, не зависимо от оставшегося объема, повышает нагрузку на канал # По умолчанию 16 Кб quick_abort_min 5 MB

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

mkdir -p /usr/local/squid/cache chown root:squid /usr/local/squid/cache chmod 770 /usr/local/squid/cache

Создаем структуру кэша:

/usr/local/sbin/squid -z

Обновление Ubuntu через прокси

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

Настройка сводится к выполнению нескольких консольных команд. В Ubuntu для управления пакетами используется утилита apt, ее и будем настраивать. Как вы поняли, в данной статье мы рассмотрим как настроить apt через прокси, а точнее, как выполняется настройка обновления через прокси ubuntu

Читайте также:  Знакомство с программой Microsoft OneNote

Настройка работы Apt через прокси

Как я уже сказал, в Ubuntu загрузкой, поиском и установкой пакетов занимается утилита apt. Таким образом, нам нужно заставить apt работать через прокси. Для этого будем использовать каталог /etc/apt/, создайте в нем файл 10proxy:

sudo vi /etc/apt/

  • Синтаксис записей в файле выглядит следующим образом:
  • Acquire::http { Proxy «http://username:[email protected]:port»; };
  • Вообще говоря, название файлу можно дать какое угодно, а выбрано именно это чтобы вы сразу посмотрев на имя, поняли для чего этот файл.
  • http — протокол, на котором работает прокси;
  • — адрес прокси сервера;
  • port — порт;
  • username — имя пользователя, если для прокси используется аутентификация;
  • password — пароль от прокси.

Например, зададим три прокси, которые работают на протоколах http, https, ftp и socks, затем разрешим использование прокси серверов:

Acquire::http::proxy «http://username:[email protected]:port/»; Acquire::https::proxy «https://username:[email protected]:port/»; Acquire::ftp::proxy «http://username:[email protected]:port/»; Acquire::socks::proxy «socks://username:[email protected]:port/»;

  1. Acquire::::Proxy «true»;
  2. Прокси применяются так, как они расположены в списке, если первый не работает применяется второй и так далее. Сохраните изменения и теперь можно обновлять систему или устанавливать программное обеспечение:
  3. sudo apt update
  4. $ sudo apt upgrade
  5. Или установка пакетов ubuntu через прокси:
  6. sudo apt install gimp
  7. Если захотите отключить обновление Ubuntu через прокси просто удалите файл 10proxy:

sudo rm /etc/apt/

Выводы

Вот и все, теперь вы знаете как выполняется настройка apt через прокси Ubuntu. Для работы apt того что описано в статье достаточно, но если нужно заставить работать другие приложения, придется выполнить еще пару настроек, задать прокси в настройках системы, а также установить переменную http_proxy в файле ~/.bashrc. Если у вас остались вопросы, спрашивайте в х!

(3