Настройка SOCKS5 прокси сервера в Ubuntu, через Dante и SSH
Для ускорения работы с некоторыми программами и парсерами, которые я использую, требуются прокси, сначала я арендовал их, но потом решил поднять свои SOKS5 прокси сервера на уже имеющихся серверах с сайтами.
На всех серверах стоит Ubuntu Server 14.04, может где-то и 12.04, но описание должно подойти и для всех остальных систем основанных на Debian.
Есть 2 известных мне способа организации работы SOKS5 сервера:
- SOCKS через SSH. Этот способ удобен своей простотой но неудобен при частом использовании, или использовании с разных машин;
- Установка SOCKS сервера. При использовании этого способа уйдет чуть больше времени на первоначальную настройку, но потом пользоваться прокси будет быстрее и удобнее.
SOCKS через SSH
Для того чтоб поднять SOCKS5 через SSH нужен только доступ к SSH сервера.
Вводим в терминале или SSH клиенте (PuTTY для Windows)
ssh -D 1080 user@server
Если запросит пароль, то нужно ввести пароль от SSH сервера.
-D – указывает порт по которому будет доступен SOKS5 сервер
Все, после этого вы можете подключиться к SOKS5 серверу по адресу localhost:1080 или 127.0.0.1:1080
Такой способ удобен тем что не нужно ничего дополнительно устанавливать и настраивать. Но перед каждым подключением или после разрыва ssh соединения, например из-за проблем с интернетом придется заново вводить эту команду.
Установка SOCKS сервера
Я знаю 2 SOCKS сервера 3proxy и Dante. У себя использовал Dante Server его настройку и опишу.
Установить Dante сервер можно с помощью apt-get, по умолчанию устанавливается старая версия (v.1.1). Ниже будут настройки для старой и новой (v.1.4) версий.
Установка новой версии Dante Server
sudo apt-get update sudo apt-get install software-properties-common python-software-properties sudo add-apt-repository ppa:dajhorn/dante sudo apt-get update sudo apt-get install dante-server
После этих действий Dante Server будет установлен, но ругнется и не сможет запуститься, видимо дефолтные настройки имеют ошибку.
Далее нужно отредактировать файл настроек
sudo nano /etc/danted.conf
Приведя его к такому виду
logoutput: syslog /var/log/danted.log internal: eth0 port = 1080 external: eth0 socksmethod: username user.privileged: root user.unprivileged: nobody client pass { from: 0.0.0.0/0 to: 0.0.0.0/0 log: error } socks pass { from: 0.0.0.0/0 to: 0.0.0.0/0 command: connect log: error method: username }
Расшифровка конфига:
- указываем лог файл который будет находиться по адресу /var/log/danted.log;
- eth0 — сетевой интерфейс на котором висит внешний IP сервера, узнать его можно воспользовавшись командой ifconfig, либо можно просто указать свой внешний IP вместо названия интерфейса;
- порт для SOKS5 прокси – 1080;
- socksmethod — метод авторизации. username — авторизация с указанием логина и пароля системных пользователей. Можно указать none если вы хотите не использовать авторизацию, но не советую оставлять открытым для порт для прокси т.к. сканеры прокси не дремлют, и у меня через открытый порт начали спам рассылать, после чего мне хостер отписал что у моего IP идет спам и надо что-то решать, можно использовать не дефолтный порт а какой-то другой, это позволит отсрочить нахождения вашего прокси сканерами;
- user.privileged — имя пользователя с расширенными правами;
- user.unprivileged — имя пользователя с обычными правами (как я понял dante работает от имени этих пользователей в зависимости от того какими правами нужно обладать для выполнения операции).
После сохранения настроек нужно перезагрузить Dante
sudo service danted restart
Все, теперь к SOKS5 прокси можно подключиться с любого устройства, указав IP сервера, порт – 1080, и данные для авторизации (имя и пароль пользователей которые зарегистрированы на сервере).
Я для доступа к прокси создал отдельного пользователя и указываю его данные. Создавал командой
sudo useradd -m soksuser && sudo passwd soksuser
Где soksuser – имя создаваемого пользователя.
Узнать подробнее о создании пользователей в Ubuntu.
Установка старой версии Dante Server
sudo apt-get update sudo apt-get install dante-server
Далее нужно отредактировать файл настроек
sudo nano /etc/danted.conf
Приведя его к такому виду
logoutput: syslog /var/log/danted.log internal: eth0 port = 1085 external: eth0 method: username user.privileged: root user.notprivileged: nobody client pass { from: 0.0.0.0/0 to: 0.0.0.0/0 log: error } pass { from: 0.0.0.0/0 to: 0.0.0.0/0 command: connect log: error method: username }
Дальше все так-же как и в новой версии о которой я писал выше.
Подключаемся к интернету через прокси сервер из консоли. Ubuntu Server 11.04
На этой неделе решил вплотную заняться настройкой Ubuntu Server и установкой необходимых ролей сервера (Samba, Print Server, FTP Server, Mail Server и т.п). В качестве испытуемого Ubuntu Server 11.04. Установка не вызывает вопросов. Установщик имеет русский интерфейс, что позволяет отвечая на вопросы постепенно установить систему. Но сейчас я бы хотел описать не это.
Сегодняшний пост посвящаю моим, достаточно длительным, попыткам подключения сервера Ubuntu к интернету. Интернет я получаю от прокси сервера имеющего ip — 192.168.1.167 и порт 81. Со стороны прокси сервера создана учетная запись для подключения, итак начнем!
Настройка сетевого адаптера
В процессе установки я указывал основные настройки для сетевого адаптера (ip, mask, gateway и dns), но так получилось, что по ошибке указанный мной IP для компьютера с Ubuntu Server уже был занят другим компьютером в сети. Теперь мне остается только поменять настройки сетевого адаптера в консоли Ubuntu, ведь кроме консоли Мы пока ничего не имеем.
Для настройки сети через консоль во всех Linux системах, включая Ubuntu, существует специальная команда ifconfig. (Напомню, об основных командах Linux Вы можете почитать в этой статье).
Итак в терминале пишем эту команду и консоль выдаст все сетевые интерфейсы, запущенные на этом компьютере. Вы увидите примерно такое окно:
Первый абзац отображает имя интерфейса, а второй показывает настройку соответствующего интерфейса. Если ввести команду ifconfig eth0 вам будут показаны настройки только интерфейса eth0.Так же командой ifconfig Вы можете включать или отключать необходимые сетевые интерфейсы, для этого достаточно ввести соответствующие команды:
# sudo ifconfig eth0 down |
или
Постепенно мы приблизились к изменению сетевых настроек. Для этого обязательно необходимо иметь права суперпользователя, для этого перед вводом команды либо используйте sudo либо сразу зарегистрируйтесь как root выполнив команду:
После выполнения этой команды введите пароль суперпользователя.
Меняем ip
В консоли вводим:
# sudo ifconfig eth0 inet 192.168.1.29 |
Этой командой мы поменяли Ip сетевого интерфейса eth0 на 192.168.1.29
# sudo ifconfig eth0 hw ether 05:15:68:70:65:99 |
Эта команда поменяет мак адрес поменяет мас адрес сетевого интерфейса eth0 на 00:15:68:70:65:99
# sudo ifconfig eth0 netmask 255.255.25.0 |
А вот эта команда поменяет маску подсети интерфейса eth0 на 255.255.25.0
Конечно все бы ничего, но сделанные таким способом настройки сбрасываются после перезагрузки компьютера.
Чтобы этого не избежать надо поменять настройки в конфигурационном файле сетевых интерфейсов, который находится /etc/network/interfaces
Редактируем файл с настройками сетевых интерфейсов
Выполняем команду:
# sudo nano /etc/network/interfaces |
Вот пример моего файла…
На мой взгляд тут все понятно…
- auto eth0 — наше сетевое устройство;
- netmask — маск;
- network и broadcast — диапазон ip адресов нашей сети;
- gateway — шлюз;
- dns-nameservers — имя dns сервера.
Правда я читал о том, что адрес DNS сервера правильнее задавать в файле /etc/resolv.conf, данный файл у меня выглядит так:
После изменения этих конфигурационных файлов перезагрузите сетевую службу командой:
# sudo /etc/init.d/networking restart |
Напомню, для остановки или запуска сетевой службы существуют соответствующие команды…
# sudo /etc/init.d/networking stop |
и
# sudo /etc/init.d/networking start |
Итак с сетью разобрались…Можете проверить работу сети выполнив команду:
# ping ip-адрес другого компьютера в сети |
идем дальше!
Настраиваем подключение к proxy
Скажем так, сеть у нас есть и теперь нам необходимо устанавить необходимые приложения из репозитариев находящихся в интернете. Для этого как мы помним используется команду apt-get.
Я расскажу о трех способах «подружить» apt-get с прокси сервером.
Временные сессии прокси (Temporary proxy session)
Этот метод Вы можете вручную использовать каждый раз, когда Вы хотите установить какое нибудь приложение из интернет используя команду apt-get и для этого необходимо получить доступ HTTP-прокси. Этот метод полезен, если Вам необходимо только временно получить доступ к HTTP-прокси.
Введите эту строку в терминале перед использованием apt-get (замените свои данные YourProxyAddress и ProxyPort):
# export http_proxy=http://yourproxyaddress:proxyport |
Если Вы авторизируететесь на прокси с помощью имени и пароля, то введите такую строку:
# export http_proxy=http://username:userpass@yourproxyaddress:proxyport |
Где:
- username — ваше имя регистрации на proxy;
- userpass — пароль к этому имени;
- yourproxyaddress— ip адрес proxy;
- proxyport — порт через который открыт доступ к http.
После перезагрузки вам снова придется подключаться к proxy в случае необходимости получить доступ к http.
Метод конфигурационного файла (configuration file method)
В этом методе используется файл apt.conf, который находится в папке /etc/apt/. Этот метод полезен, если Вы хотите использовать только команду apt-get (другие команды, например Wget работать не будут), чтобы использовать HTTP-прокси на постоянной основе.
Выполним команду:
# sudo nano /etc/apt/apt.conf |
И добавим эту строку (заменить свои данные для yourproxyaddress и proxyport):
Acquire::http::Proxy «http://yourproxyaddress:proxyport»;
Напомню, если авторизация на прокси у вас проходит не по мак адресу а по имени и паролю, то строка будет выглядеть так:
Acquire::http::Proxy «http://username:userpass@yourproxyaddress:proxyport»;
BASH rc метод (BASH rc method)
Этот метод добавляет две строки в конфигурационный файл в домашней директории $ HOME. Этот метод используют, если Вам необходимо дать доступ приложениям, например Wget, к HTTP-прокси.
В самом низу добавляем 2 строки…
http_proxy=http://yourproxyaddress:proxyport |
Напомню, если регистрация на прокси через имя и пароль то вам необходимо добавить и эти данные …
http_proxy=http://username:userpass@yourproxyaddress:proxyportexport http_proxy |
После этого сохраните изменения в файле и проверьте работу соединения с прокси, например выполнив команду:
Если вы увидите, что обновляются данные о репозитариях, то все получилось.
На этом пока все! Удачи !
Источники: network, proxy-server{odnaknopka}
Настройка кэширующего SSL прокси сервера на Ubuntu 16.04 | 17.04
В этой статье рассмотрим настройку, установку и сборку кэширующего прокси сервера Squid3 с поддержкой SSL сертификатов на Ubuntu Server 16.04 | 17.04. Так же будет показан пример фильтрации сайтов по протоколу https и http.
В данной статье рассматривается пример установки Squid-SSL на чистую операционную систему Ubuntu Server 16.04 | 17.04.
Для начала установки Squid3 из исходников нам потребуется скачать сами исходники, но для этого необходимо включить репозитории для исходников. Для этого набираем:
sudo nano /etc/apt/source.list
И снимаем коментарии со строчек начинающихся cо слов deb-src
Далее обнавляем репозиторий
sudo apt update && sudo apt upgrade -y
Сборка Squid с поддержкой SSl
После обнавления репозитория установим необходимые зависимости:
sudo apt install devscripts build-essential dpkg-dev libssl-dev -y
Теперь необходимо подгрузить зависимости:
sudo build-dep squid3
И теперь скачиваем сами исходники:
sudo source squid3
Если выдает ошибку:
Невозможно прочитать права на скачивания squid3_версия-squid.dsc
Для ее исправления назначим права 777 на данный файл:
sudo chmod 777 squid3_версия-squid.dsc
И повторяем скачку исходника squid
sudo source squid3
Далее переходим в директорию squid (в моем случае 3.5.12):
cd squid-3.5.12/
Откроем файл rules на редактировани:
sudo nano debian/rules
Добавим в него директивы для сборки с поддержкой SSL
—enable-ssl—enable-ssl-crtd —with-openssl
Теперь собираем пакет при помощи программы dpkg-buildpackage с ключом -D
sudo dpkg-buildpackage -d
Далее набираем:
cd ..sudo dpkg -i *.deb -y
При установке покетов установщик будет ругатся на нехватку зависимостей, давате исправим данную проблему. В терминале набираем:
sudo apt install -f -y
Теперь повторим предыдущюю команду
sudo dpkg -i *.deb
Вот теперь наш squid установлен.
Настройка Squid с поддержкой ssl
Для того чтобы наш squid мог работать с SSL нам потребуется создать сертификат. Давайте сделаем это следующей командой:
sudo openssl req -new -newkey rsa:2048 -days 365 -nodes x509 -keyout squidCA.pem
Теперь необходимо создать копию конфигурационного файл squid.conf, что бы в случае чего можно было восстановить оригинал.
sudo cp /etc/squid/squid.conf /etc/squid/squid.conf.bak
Теперь для облегчения процесса редактирования уберем все закоментированный строки из него
sudo cat /etc/squid/squid.conf | grep -v «#» | grep -v «&» > /etc/squid/squid.conf
Вот теперь можно открыть файл для редактирования
sudo nano /etc/squid/squid.conf
Допешите недастоющие строчки как у меня в примере
Пример конфигурационного файла squid.conf
# Создаем правило acl localnet src 10.5.5.0/24 # Ставим свой IP адерес который смотрит в локальную сеть acl SSL_ports port 443 acl Safe_ports port 80 # http acl Safe_ports port 21 # ftp acl Safe_ports port 443 # https acl Safe_ports port 70 # gopher acl Safe_ports port 210 # wais acl Safe_ports port 1025-65535 # unregistered ports acl Safe_ports port 280 # http-mgmt acl Safe_ports port 488 # gss-http acl Safe_ports port 591 # filemaker acl Safe_ports port 777 # multiling http acl CONNECT method CONNECT acl sites dstdomain «/etc/squid/bad_url» # Файл bad_url необходимо создать # Настраиваем правило блокировок и разрешенийhttp_access deny !Safe_portshttp_access deny CONNECT !SSL_portshttp_access allow localhost managerhttp_access deny managerhttp_access allow localnethttp_access deny siteshttp_access allow localhosthttp_access deny all #Настройка опций, интерфейсов и портов# intercept — прозрачное проксирование в старых версиях указываем transparent —-#### Для http протокола ###http_port 10.5.5.1:3128 intercept options=NO_SSLv3:NO_SSLv2### Для https протокола ###https_port 10.5.5.1:3129 intercept ssl-bump options=ALL:NO_SSLv3:NO_SSLv2 connection-auth=off key=/etc/squid/ssl/squid_CA.pem ### Настраиваем необходимые параметры для sslalways_direct allow allsslproxy_cert_error allow allsslproxy_flags DONT_VERIFY_PEERssl_bump client-first allssl_bump server-first allssl_bump none all# Параметры для старых версий squid'a#sslcrtd_program /usr/local/squid/libexec/ssl_crtd -s /usr/local/squid/var/lib/ssl_db -M 4MB#sslcrtd_children 32 startup=5 idle=1 # Расположения кэша на дискеcache_dir aufs /var/spool/squid 100 16 256maximum_object_size 10 MB minimum_object_size 3 KB# Параметры кэша на дискеcoredump_dir /var/spool/squidrefresh_pattern ftp: 1440 20% 10080refresh_pattern gopher: 1440 0% 1440refresh_pattern -i (/cgi-bin/|?) 0 0% 0refresh_pattern . 0 20% 4320 # Настройка кэша ОЗУ cache_mem 512 Mb## Загруженность кэше в процентахcache_swap_low 90cache_swap_high 95## Максимальный размер объекта в кэшеmaximum_object_size_in_memory 1 MB### Остаток объекта, при котором закачка будет прервана в случае обрыва соединенияquick_abort_max 1024 KBmemory_replacement_policy lru # Настройка лог файловlogfile_rotate 4
подробно о параметрах написано в этой статье (статья находится в разработке).
Пробуем запустить squid:
sudo systemctl start squid
И видим что сервис не запустился. Почему? Потому что checkinstall не включил в пакет файлы сервиса Squid. Но к большому нашему счастью этот файл расположен в исходниках squid’a.
Копируем его в необходимую директорию:
sudo cp /home/Ваш_Пользователь/squid-3.5.23/tools/systemd/squid.service /etc/systemd/system
Включаем сервис squid
sudo systemctl enable squid.service
И это еще не все. Создаем необходимые директории и файлы нужные для запуска squid’a.
1. Создаем файл для URL адресов, которые мы будем блокировать
sudo touch /etc/squid/bad_url
2. Создадим лог-файл squid’a и назначим ему необходимые права
sudo touch /var/log/squid/access.logsudo chown proxy /var/log/squid/access.log
3. После этого формируем дамп squid’a
squid -z
4. Далее необходимо занести все сайты которые хотите заблокировать в файл bad_url
sudo nano /etc/squid/bad_sires
в формате
.site.ru..com
5. Рестартуем сервис
sudo service squid restart
6. Перенаправляем весь трафик по портам 80, 8080, 443 через squid:
sudo iptables -t nat -A PREROUTING -s 10.5.5.0/24 -p tcp -m multiport —dports 80,8080 -j REDIRECT —to-ports 3128sudo iptables -t nat -A PREROUTING -s 10.5.5.0/24 -p tcp -m multiport —dports 443 -j REDIRECT —to-ports 3129
Все кэширующий сервер squid с поддержкой ssl запустился и готов к работе.
Попробуйте открыть сайт в вконтакте, запрос не должен проходить. Если все в порядке, то открываем файл bad_url и вписываем все необходимые сайты для их блокировки.
Установка и настройка прокси-сервера 3proxy на Debian/Ubuntu
В этой статье мы расскажем, как установить и настроить прокси-сервер.
Прокси-сервер (от англ. proxy — «представитель, уполномоченный»)
выступает в роли посредника в коммуникациях между вашим ПК/мобильным и Интернетом.
Причин использовать его может быть множество, включая:
- Обход ограничений доступа к определенным веб-ресурсам установленным администратором локальной сети.
- Обход региональных ограничений доступа у определённых веб-ресурсов.
- Анонимный доступ к веб-ресурсам путём сокрытия реального IP-адреса.
Среди всего многообразия прокси-серверов остановим свой выбор на открытом бесплатном кроссплатформенном сервере от Владимира '3APA3A' Дубровина — 3proxy опубликованный под BSD-подобной лицензией. Текст лицензии.
Официальный сайт — http://3proxy.ru/
Исходный код на GitHub — https://github.com/z3APA3A/3proxy
Среди альтернатив можно выделить Squid, но он:
- Сложен в настройках.
- Потребляет больше ресурсов.
- Не скомпилирован с поддержкой SSL по умолчанию и сложен для компиляции.
Также внимание заслуживает tinyproxy.
Он включает в себя:
- HTTP прокси с поддержкой HTTPS и FTP.
- SOCKSv4/SOCKSv4.5/SOCKSv5 прокси.
- POP3 прокси.
- SMTP прокси.
- AIM/ICQ прокси.
- MSN messenger / Live messenger прокси.
- FTP прокси.
- Кэширующий DNS прокси.
- TCP и UDP портмапперы.
Так же доступны дополнительные возможности, такие как:
- Управление доступом.
- Ограничение ширины потребляемого канала.
- Ограничение трафика на день, неделю и месяц.
- Перенаправление соединений.
- Построение цепочек соединений.
- Ротация лог-файлов.
- Ведение журналов через ODBC и syslog.
- Поддержка IPv6.
- и ряд других.
К недостаткам можно отнести:
- Отсутствие поддержки кеширования веб-страниц.
- Отсутствие в официальных репозиториях некоторых linux-дистрибутивов (включая Debian и Ubuntu), но в репозиториях Gentoo, RedHat, Alt Linux присутствует.
Технические требования
- Операционная система Debian GNU/Linux (версии с 7 по 9) или Ubuntu (версии с 14.04 по 17.04) любой разрядности (32/64 бита).
- Пользователь с привилегиями root (как вариант доступ через sudo).
Шаг 1. Подготавливаем инструментарий
В связи с тем что он отсутствует в официальных репозиториях Debian и Ubuntu, мы будем устанавливать его из исходников.
Но перед этим установим всё необходимое для дальнейшей работы.
sudo apt-get updatesudo apt-get install -y build-essential nano wget tar gzip
Шаг 2. Скачиваем и распаковываем исходники
Последняя версия 0.8.10 (на момент написания руководства).
Узнать последнюю версию можно на официальном сайте, при необходимости просто замените цифры на необходимые в следующих парах команд:
cd ~wget —no-check-certificate https://github.com/z3APA3A/3proxy/archive/0.8.10.tar.gz
tar xzf 0.8.10.tar.gz
Шаг 4. Устанавливаем
Копируем получившийся бинарный файл:
sudo mkdir /etc/3proxycd ~/3proxy-0.8.10/src
sudo cp 3proxy /usr/bin/
Создадим отдельного системного пользователя proxy3 от имени которого и будет работать сервер:
sudo adduser —system —no-create-home —disabled-login —group proxy3
Узнаём UID и GID пользователя командой:
id proxy3
В ответ, например, получим:
uid=109(proxy3) gid=115(proxy3) groups=115(proxy3)
Создаём файл настроек:
sudo nano /etc/3proxy/3proxy.cfg
Вставляем в него следующий код:
(вставка из буфера обмена возможна по клику правой кнопки мыши или Ctrl+U или F10)
# Запускаем сервер от пользователя proxy3# (возможно в вашей ОС uid и gid пользователя proxy3# будут другими. Для их определения воспользуйтесь командой id proxy3)setgid 115setuid 109## Пропишите правильные серверы имен посмотрев их# на своем сервере в /etc/resolv.confnserver 8.8.8.8nserver 77.88.8.8## Оставьте размер кэша для запросов DNS по умолчаниюnscache 65536## Равно как и таймаутыtimeouts 1 5 30 60 180 1800 15 60## Если несколько IP на одном сервере, указываем тот,# через который ходить во внешний мир.# Иначе эту строку игнорируем#external # Тоже самое, только указываем IP, который надо слушать# Если проигнорировать, то прокси слушает все адреса на сервере#internal ## Указываем на расположение файла с пользователями и паролямиusers $/etc/3proxy/.proxyauth## укажите режим запуска как deamondaemon## путь к логам и формат лога, к имени лога будет добавляться дата созданияlog /var/log/3proxy/3proxy.log Dlogformat «- +_L%t.%. %N.%p %E %U %C:%c %R:%r %O %I %h %T»## Включаем авторизацию по логинам и паролямauth cache strong## Конфигурация http(s) proxy# Запускаем анонимный (-a) HTTP-proxy на порту (-p) 3128 и# c отключенной NTLM-авторизацией (-n)
proxy -n -p3128 -a
(Для сохранения и закрытия нажмите CTRL+X затем Y)
Прозрачный прокси сервер SQUID на Ubuntu
Программный пакет squid — наиболее широко используемый в настоящее время прокси сервер, реализуемый на Linux. Отличается широким функционалом и достаточной сложностью конфигурации.
Основной файл с настройками содержит около 4 000 строк. Конфигурация «squid прозрачный прокси» является популярной администраторской задачей — процесс будет рассмотрен в рамках данного материала.
Режимы работы SQUID и идентификация
Режимы работы: обычный, анонимный прокси сервер, SQUID прозрачный прокси
Прозрачный прокси (transparent) подразумевает отсутствие необходимости указывать на использование прокси со стороны клиента (в интернет-браузерах на клиентских компьютерах). Трафик со стандартных портов (80, 8080, 443) переадресуется на порт, на котором работает SQUID.
Анонимный прокси сервер не предполагает авторизации. т.е. его может использовать кто-угодно в Интернете, знающий IP сервера, на котором установлено и сконфигурировано ПО.
SQUID поддерживает насколько способов идентификации пользователей — самый распространенный способ — по IP адресам
SQUID применяется в домашних и, чаще, корпоративных сетях для фильтрации трафика и установки ограничений на использование сетевых ресурсов. Также SQUID часто настраивается для возможности кэширования данных. Прокси серверы часто применяются в образовательных учреждениях: школах и ВУЗах.Сложность конфигурации squid, упомянутая ранее проявляется при необходимости выполнения программным продуктом специфических задач — многоуровневой фильтрации трафика по множеству правил.
Настройка же базового функционала довольно проста. Она и будет рассмотрена в рамках данного материала.
Устанавливаем необходимые пакеты стандартным способом — из репозитория
apt-get install squid squid-common
После установки с дефолтным конфигурационным файлом squid блокирует доступ в Интернет полностью.
В этом можно убедиться обратившись к какому-либо ресурсу в Интернете через браузер
Обращаемся к файлу, запускающему squid из консоли с ключом -v, таким образом мы сможем увидеть установленную версию программного пакета, в данном случае 3.2
/usr/sbin/squid -v
Делаем бэкап конфигурационного файла
cp /etc/sqid/squid.conf /etc/sqid/squid.conf.backup
Приступаем к редактированию файла
mcedit /etc/sqid/squid.conf
Находим закомментированную строку #TAG: visible_hostname, копируем visible_hostname и вставляем в тело конфига
#TAG: visible_hostname
visible_hostname remote-tech-support-ProxyServer
Вписываем имя прокси сервера. На его работы это влияния не окажет, данной строкой определяется имя, отображаемое на странице ошибки при попытке попасть на страницу, доступ к которой ограничен
Аналогичным образом поступаем с переменной, определяющей e-mail администратора прокси сервера, он также будет отображаться на странице с ошибкой, клиенты компании смогут направить на него письма с вопросами относительно разумности ограничения доступа к определенному веб-сайту)
#TAG: cache-mgr
cache-mgr admin@example.com
Переходим непосредственно к конфигурации. Находим строки содержащие acl localnet, раскомментируем при необходимости и редактируем их определяя сети, на пользователей, принадлежащих к которым будут распространяться правила, устанавливаемые в настройках прокси сервера
acl localnet 192.168.0.0/24
Маску можно задавать непосредственно как это показано строкой выше, можно задавать в виде нулейНапример, при указании следующего адреса к прокси смогут использовать клиенты из всей сети 192.Х.Х.Х
acl localnet 192.0.0.0
В конфигурационном файле может быть задано множество правил — например, ограничение на возможность использования сервера по времени:
acl hours time S M T W H F A 2:00-20:00
После задания правила — его нужно активировать используя директивы allow или deny
http_access allow network hours
Включение кэширования в SQUID
Чтобы включить кэширование необходимо найти и раскомментировать следующую строку:
cache_dir ufs /var/spool/squid 100 16 256
100 здесь — размер буфера под кэш в Мб, его можно изменить, максимальное адекватное значение параметра 1/3 объема жесткого диска
Кэш будет храниться в /var/spool/squid. Необходимо убедиться в том, что каталог существует и SQUID имеет достаточно прав для того чтобы записывать в файлы, в нем размещающиеся информацию
Останавливаем прокси
/etc/init.d/squid stop
Даем команду на создание дерева директорий
squid -z
Снова запускаем сервис
/etc/init.d/squid start
du -sh /var/spool/squid
Если все сделано правильно вывод последней команды изначально должен показывать приблизительно 70 Мб, в дальнейшем размер каталога с кэшем, естественно, должен увеличиваться
Чтобы изображения на сайтах, посещаемых пользователями, обновлялись несколько быстрее используем следующую директиву — в ее синтаксисе зададим форматы файлов, которые будут считаться изображениями и будут обновляться чаще
refresh_pattern -i .{gif|png|jpg|jpeg|ico}$ 3600 90% 43200
Также в конфиге присутствуют настройки безопасных портов — safe ports — портов, с которыми будет производиться работа и SSL портов (настройка squid для работы по https является несколько более сложной задачей, чем разбираемая сейчас — она будет рассмотрена в рамках другой статьи). Настройки портов можно изменить.
acl SSL_ports port 443
Следующая директива запрещает доступ со всех портов, которые не определены в качестве безопасных
http_access deny !Safe_ports
Аналогично можно установить обязательность использования защищенного соединения — сейчас в тестовой среде директиву не применяем — здесь они приведена для примера
http_access deny CONNECT !SSL_ports
Разрешаем доступ служебному пользователю manager, это сделает возможным, в частности, для него читать статистику — доступ даем только к localhost
http_access allow localhost manager
http_access deny manager
http_access allow localhost
Если необходимо быстро дать приостановить использование прокси можно раскомментировать одну из следующих строк конфига, закомментировав при этом все строки с ограничивающими доступ правилами#http_access allow localnet
#http_access allow all
Раскомментировав forwarded_for off
Системные настройки прокси-сервера, когда в сети Windows с паролем
Я использую Ubuntu в сети Windows. Я хочу подключиться к всемирной сети. Я выполнил шаги, которые я нашел очень полезными. Однако, когда я пытаюсь выполнить ping-сайт (например: ping www.wikipedia.org), я не получаю ответа. Я могу пинговать локальные компьютеры в своей сети, но мне нужно пройти через наш прокси-сервер, чтобы добраться до всемирной сети.
Я даже могу просматривать wikipedia, используя firefox, мне просто нужно было ввести расположение сценария прокси-сервера, мое имя пользователя и пароль.
Я совершенно уверен, что причина в том, что у меня такая проблема, потому что я не ввел имя пользователя и пароль. Я не уверен, как это сделать на системном уровне.
в конечном счете, я хотел бы иметь возможность использовать менеджеров пакетов, таких как synaptic, но сначала мне нужно, чтобы они могли подключаться к Интернету.
РЕДАКТИРОВАТЬ
Как я сказал, я создал файл /etc/apt/apt.conf, например
Acquire::http::Proxy «http://chrisav:password@myproxy.com.au:8080»; Acquire::https::Proxy «https://chrisav:password@myproxy.com.au:8080»; Acquire::ftp::Proxy «ftp://chrisav:password@myproxy.com.au:8080»; Acquire::socks::Proxy «socks://chrisav:password@myproxy.com.au:8080»;
Однако я все еще не могу пинг википедия
когда я пытаюсь установить материал, который я получаю
chris@chris-Ubuntu:~$ sudo apt-get install kate Reading package lists… Done Building dependency tree Reading state information… Done E: Unable to locate package kate
Related of «Системные настройки прокси-сервера, когда в сети Windows с паролем»
Прежде всего, если вы находитесь за веб-прокси, чтобы перейти в Интернет, вы не можете использовать ping для проверки подключения к Интернету.
Это связано с тем, что ping не может использовать какой-либо прокси-сервер для выполнения своей работы, он использует свой собственный протокол: ICMP для отправки и получения пакета.
Веб-прокси работает только для протокола TCP.
Поэтому, если вы можете открыть какой-либо веб-сайт в своем веб-браузере, вы можете быть уверены, что ваше подключение к Интернету работает, и нет причин делать ping, чтобы проверить его.
Теперь о вашей проблеме с менеджером пакетов, если вы перейдете в System Settings -> Network , вы можете определить конфигурацию веб-прокси и применить ее в общесистемной.
Когда я делаю это на своем ноутбуке, я могу использовать apt-get не вручную настраивая директивы Proxy в свои файлы конфигурации. Чтобы работать, вы должны открыть свой терминал после нажатия кнопки « Применить для всей системы» .
(Настройка не может быть применена к уже запущенной программе, только для тех, которые начинаются после применения настроек).
UPD: больше про прокси и аутентификацию
Другим источником проблем, так как вы находитесь в среде Windows, могут быть механизмы аутентификации, используемые в вашем веб-прокси. Если этот прокси настроен на использование NTLM, возможно, какое-то приложение не может его аутентифицировать.
В этом случае вы можете установить локальный прокси-сервер, поддерживающий NTLM, например cntlm , и запустить его на 127.0.0.1 достаточно, и указывая его на ваш настоящий веб-прокси.
Затем просто используйте этот локальный прокси-сервер в качестве прокси-сервера по умолчанию для вашей системы Ubuntu.
Используйте эту команду и проверьте правильность настроек прокси.
sudo gedit /etc/apt/apt.conf
Он содержит следующее содержание:
Acquire::http::Proxy «http://username:password@proxy-address:port/»; Acquire::https::Proxy «https://username:password@proxy-address:port/»; Acquire::ftp::Proxy «ftp://username:password@proxy-address:port/»; Acquire::socks::Proxy «socks://username:password@proxy-address:port/»;
Вы должны ввести свой proxy-address и port вместо этого идентификатора
Вам необходимо будет правильно изменить файл /etc/apt/apt.conf следующим образом:
Acquire::http::Proxy «http://username:password@proxy-address:port»; Acquire::https::Proxy «https://username:password@proxy-address:port»; Acquire::ftp::Proxy «ftp://username:password@proxy-address:port»; Acquire::socks::Proxy «socks://username:password@proxy-address:port»;
Обратите внимание на :: вместо : перед Proxy , заменив username , password, прокси-адрес and прокси-сервер на те, которые применимы к вам.
Также обратите внимание, что если у вас есть специальные символы, такие как @ , вам нужно будет заменить их соответствующими кодами HTML.И после того, как вы это сделаете, и если вы никогда не обновляли свою систему, вам нужно будет:
sudo apt-get update
и тогда вы сможете устанавливать пакеты.
Если это не помогает, откройте файл /etc/environment (с помощью gksudo gedit / etc / environment), а затем введите следующее:
export http_proxy=»http://username:password@proxy-address:port» export https_proxy=»https://username:password@proxy-address:port» export ftp_proxy=»ftp://username:password@proxy-address:port» export socks_proxy=»socks://username:password@proxy-address:port»
А затем создайте source /etc/environment а затем повторите попытку.
Настройка прокси-сервера в Убунту
Прокси-сервер представляет собой некий промежуточный ПК, являющийся посредником между компьютером пользователя и интернетом. Именно через этот компьютер и проходят все ваши интернет-запросы. Сервер их обрабатывает, и передаёт вам скачанные из internet файлы. Обычно в корпоративных сетях применяют прокси-сервер для выхода в интернет.
Чтобы утилиты понимали, что им нужно подключаться через прокси, важно произвести настройку системных переменных. Таким образом вы настроите большинство утилит на работу с прокси-сервером и, что не менее важно, такой процесс носит глобальный характер, а именно имеет отношение ко всем пользователям системы.
В этой статье детально разберём, как настроить подключение через прокси-сервер в Ubuntu. Давайте разбираться. Поехали!
Узнайте, как настроить подключение через прокси-сервер в Ubuntu правильно и самостоятельно
Чтобы настроить подключение в Убунту через прокси, необходимо открыть меню «Системные параметры», а затем перейти к разделу «Сеть».
Найдите раздел «Сеть» в операционной системе
Кликните по пункту «Сетевая прокси-служба» и установите способ «Вручную», после чего введите свои настройки.
В «Сетевой прокси-службе» и установите способ «Вручную»
Следующий шаг — внести свои настройки
Недостатком подобного способа является то, что, если у вас прокси с авторизацией по логину и паролю, то указать эти данные нельзя, и, как следствие, прокси работать не будет.
Произвести настройку на системном уровне можно также через файлы конфигурации. Чтобы сделать это, откройте с root-правами файл /etc/environment (делается это командой: sudo nano /etc/environment). В конце файла добавьте строки:
https_proxy=«https://user:pass@proxy:port/»http_proxy=«http://user:pass@proxy:port/»ftp_proxy=«ftp://user:pass@proxy:port/»
socks_proxy=«socks://user:pass@proxy:port/»
Если proxy без авторизации, то строчки должны иметь вид:
_proxy=«https://proxy:port/»
Чтобы внесённые в настройки изменения вступили в силу, перезагрузитесь.
Обычно для глобальной настройки прокси хватает, чтобы все остальные утилиты работали через него без необходимости вводить данные прокси внутри программы. Однако, некоторые утилиты не могут работать с глобальными параметрами либо они требуют специальные настройки.
- 1 Firefox
- 2 Chromium
- 3 APT
- 4 Bash
Firefox позволяет использовать не только глобальные настройки, но и собственные. Чтобы назначить прокси, перейдите к окну настроек браузера и откройте вкладку «Дополнительно», далее нажмите «Сеть» и щёлкните по кнопке «Настроить». Важной особенностью является то, что Firefox может использовать NTLM-аутентификацию. Это отличает Firefox от многих других браузеров.
Firefox может легко использовать собственные настройки
Chromium
Этот браузер тоже может использовать глобальные параметры, имея при этом собственные. Для назначения прокси откройте файл /etc/chromium-browser/default и добавьте туда строчку:
CHROMIUM_FLAGS=«-proxy-server=адрес:порт»
Теперь необходимо перезапустить Chromium
APT
Новые версии могут работать с глобальными параметрами, в отличие от старых, которые работали исключительно с персональными. В файле /etc/apt/apt.conf необходимо прописать:
Acquire::http::proxy «http://логин:пароль@ip_прокси:порт_прокси/»;Acquire::https::proxy «http://логин:пароль@ip_прокси:порт_прокси/»;Acquire::ftp::proxy «http://логин:пароль@ip_прокси:порт_прокси/»;Acquire::socks::proxy «http://логин:пароль@ip_прокси:порт_прокси/»;
Acquire::::Proxy «true»;
В случае, если сервер без авторизации, то логин и пароль придётся убрать.
Bash
Разумеется, вышеописанная настройка через /etc/environment будет работать для каждой утилиты, которая была запущена через терминал. Если же вам нужно задать параметры непосредственно для запускаемой утилиты, то прежде чем запустить её выполните:
export http_proxy=’http://логин:пароль@ip_прокси:порт_прокси/’
export ftp_proxy=’http://логин:пароль@ip_прокси:порт_прокси/’
wget
Допишите в файл /etc/wgetrc :
proxy-user = usernameproxy-password = passwordhttp_proxy = http://xxx.xxx.xxx.xxx:8080/ftp_proxy = http://xxx.xxx.xxx.xxx:8080/
use_proxy = on
Если прокси без авторизации, уберите proxy-user и proxy-password
apt-add-repository
Большинство учреждений блокируют все сомнительные, неизвестные порты наружу. Как правило, блокируется и порт номер 11371, который используется программой apt-add-repository для добавления репозиториев. Существует простое решение, позволяющее получать ключи репозиториев через 80-й порт, используемый для доступа к интернет-страницам.
Отредактируйте файл /usr/lib/python2.6/dist-packages/softwareproperties/ppa.py (требуются root-права, вместо /usr/lib/python2.6 может быть версия 2.7). Найдите строку keyserver.ubuntu.com и замените:hkp://keyserver.ubuntu.com
на