- Установка и использование 3proxy на Ubuntu
- Настройка брандмауэра
- Установка и запуск 3proxy
- Настройка браузера
- Настройка автозапуска
- Настройка аутентификации
- SOCKS
- Настройка анонимности
- Дополнительные настройки
- Настройка портов и прокси-интерфейсов
- Ограничение пропускной способности
- Ограничения доступа
- Лучшие прокси серверы Linux
- 1. Squid
- 2. Privoxy
- 3. Polipo
- 4. TinyProxy
- 5. 3Proxy
- 6. Gate.js
- 7. Varnish Cache
- 8. Nginx
- Выводы
Установка и использование 3proxy на Ubuntu
Настройка брандмауэра
По умолчанию, в Ubuntu брандмауэр разрешает все подключения. Однако, если у нас настроен фаервол для запрета лишних соединений, необходимо открыть порт для прокси.
а) если используем Iptables.
iptables -I INPUT 1 -p tcp —dport 3128 -j ACCEPT
* если система вернет ошибку при вводе команды для сохранения правил, устанавливаем пакет командой apt-get install iptables-persistent.
б) если у нас firewalld.
firewall-cmd —permanent —add-port=3128/tcp
* 3128 — порт по умолчанию, по которому работает 3proxy в режиме прокси;
Установка и запуск 3proxy
3proxy отсутствует в репозиториях Ubuntu, поэтому для установки сначала необходимо скачать его исходник.
Для начала устанавливаем пакет программ для компиляции пакетов:
apt-get install build-essential
Переходим на официальную страницу загрузки 3proxy и копируем ссылку на версию пакета для Linux:
. используя ссылку, скачиваем пакет:
* в моем случае будет скачена версия 0.9.3.
Распакуем скачанный архив:
tar xzf 0.9.3.tar.gz
Переходим в распакованный каталог:
Запускаем компиляцию 3proxy:
make -f Makefile.Linux
Создаем системную учетную запись:
adduser —system —disabled-login —no-create-home —group proxy3
Создаем каталоги и копируем файл 3proxy в /usr/bin:
mkdir -p /var/log/3proxy
cp bin/3proxy /usr/bin/
Задаем права на созданные каталоги:
chown proxy3:proxy3 -R /etc/3proxy
chown proxy3:proxy3 /usr/bin/3proxy
chown proxy3:proxy3 /var/log/3proxy
Смотрим uid и gid созданной учетной записи:
Получим, примерно, такой результат:
uid=109(proxy3) gid=113(proxy3) groups=113(proxy3)
* где 109 — идентификатор пользователя; 113 — идентификатор для группы.
Создаем конфигурационный файл:
setuid 109
setgid 113
nserver 77.88.8.8
nserver 8.8.8.8
nscache 65536
timeouts 1 5 30 60 180 1800 15 60
external 111.111.111.111
internal 111.111.111.111
log /var/log/3proxy/3proxy.log D
logformat «- +_L%t.%. %N.%p %E %U %C:%c %R:%r %O %I %h %T»
rotate 30
allow * * * 80-88,8080-8088 HTTP
allow * * * 443,8443 HTTPS
* необходимо обратить внимание на настройки setuid и setgid — это должны быть значения для созданной нами учетной записи; external и internal — внешний и внутренний интерфейсы (если наш прокси работает на одном адресе, то IP-адреса должны совпадать).
Настройка браузера
Проверяем работоспособность нашего 3proxy. Для этого настраиваем браузер для работы через прокси-сервер, например, Mozilla Firefox:
. пробуем открыть сайты.
Настройка автозапуска
Для автозагрузки 3proxy настроим его как сервис. Создаем файл в systemd:
[Unit]
Description=3proxy Proxy Server
[Service]
Type=simple
ExecStart=/usr/bin/3proxy /etc/3proxy/3proxy.cfg
ExecStop=/bin/kill `/usr/bin/pgrep -u proxy3`
RemainAfterExit=yes
Restart=on-failure
Обновляем конфигурацию systemd:
Разрешаем запуск сервиса и стартуем его:
systemctl enable 3proxy
systemctl start 3proxy
Настройка аутентификации
Для редактирования настроек открываем конфигурационный файл:
Добавляем опции users и добавляем пользователей:
users 3APA3A:CL:3apa3a «test:CR:$1$qwer$CHFTUFGqkjue9HyhcMHEe1»
users dmosk1:CL:password
users «dmosk2:CR:$1$UsbY5l$ufEATFfFVL3xZieuMtmqC0»
* в данном примере мы добавили 3-х пользователей: 3APA3A с паролем 3apa3a, dmosk1 с открытым паролем password и dmosk2 с паролем dmosk2 в виде md5 и солью UsbY5l (Для получения хэша пароля можно воспользоваться командой openssl passwd -1 -salt UsbY5l, где в качестве соли можно использовать любую комбинацию).
* обратите внимание, при использовании знака $, строчка пишется в кавычках.
* возможные типы паролей:
- CL — текстовый пароль
- CR — зашифрованный пароль (md5)
- NT — пароль в формате NT.
Чтобы включить запрос логина, необходимо поменять значение для опции auth на strong:
* возможные варианты для auth:
- none — без авторизации.
- iponly — авторизация по IP-адресу клиента.
- nbname — по Netbios имени.
- strong — по логину и паролю.
Также можно использовать двойную авторизацию, например:
auth nbname strong
После внесения изменений, перезапускаем службу:
systemctl restart 3proxy
SOCKS
Для прозрачного прохождения пакетов через прокси можно настроить SOCKS5. В конфигурационном файле добавляем:
* запускаем socks на порту 1080.
socks -p8083 -i192.168.1.23 -e111.111.111.111
* запускаем socks на порту 8083; внутренний интерфейс — 192.168.1.23, внешний — 111.111.111.111.
После перезапускаем сервис:
systemctl restart 3proxy
Настройка анонимности
Для обеспечения полной анонимности при использовании прокси-сервера, делаем дополнительные настройки.
1. Меняем порты, которые используются по умолчанию — 3128, 1080. Данные порты известны, как порты для прокси. Открываем конфигурационный файл 3proxy:
socks -p1088
proxy -n -p3111
* в данном примере мы укажем серверу работать на портах 3111 и 1088.
После перезапускаем сервис:
systemctl restart 3proxy
2. Необходимо, чтобы время на сервере совпадало с временем на компьютере.
На стороне сервера необходимо задать часовой пояс, например, если наш прокси находится в Германии, вводим:
timedatectl set-timezone Europe/Berlin
На стороне клиента либо меняем часовой пояс в системе, либо устанавливаем плагин для браузера, например, для Mozilla Firefox и меняем часовой пояс уже в нем.
3. Отключение icmp. По времени ответа на ping можно определить отдаленноесть клиента от прокси. Чтобы проверку нельзя было выполнить, отключаем на сервере icmp. Для этого создаем файл:
И применяем настройки:
sysctl -p /etc/sysctl.d/icmp.conf
4. Проверяем настройки.
Открываем браузер, который работает через прокси и переходим на страницу 2ip.ru/privacy — кликаем по Проверить:
Будет выполнена проверка анонимности нашего сервера.
Дополнительные настройки
Настройки, которые могут не понадобиться. Но они позволят настроить дополнительные возможности прокси-сервера.
Настройка портов и прокси-интерфейсов
При необходимости, можно настроить 3proxy на использование разных интерфейсов на разных портах:
proxy -n -a -p3128 -i192.168.0.23 -e222.222.222.222
proxy -n -a -p8080 -i192.168.1.23 -e111.111.111.111
* 3proxy будет слушать на порту 3128 с внутреннего интерфейса 192.168.0.23 и направлять пакеты в сеть Интернет через внешний интерфейс 222.222.222.222, а также, на порту 8080 для внутреннего и внешнего интерфейсов 192.168.1.23 и 111.111.111.111 соответственно.
* не забываем также настраивать брандмауэр (вначале инструкции мы открывали только 3128 порт).
systemctl restart 3proxy
Ограничение пропускной способности
При необходимости, можно ограничить скорость.
bandlimin 1000000 user1,user3
bandlimin 5000000 user2,user4
* в данном примере пользователям user1 и user3 установлено ограничение в 1000000 бит/сек (1 мбит); для user2 и user4 — 5 мбит/сек.
systemctl restart 3proxy
Ограничения доступа
Можно ограничить доступ и разрешить только для определенных портов, сетей и пользователей.
- userlist — список пользователей через запятую.
- sourcelist — сети клиентов через запятую.
- targetlist — сети назначения через запятую.
- targetportlist — порты назначения через запятую.
- commandlist — команды, к которым применяется правило.
- weekdays — в какие дни недели работает правило. 0 — 6 — Пн — Вс, 7 — тоже Вс.
- timeperiodslist — время, когда работает правило. Указываются диапазоны.
allow * * * 80 HTTP
allow * * * 443,8443 HTTPS
allow * * * 21 FTP
* в данном примере пользователям user1 и user3 установлено ограничение в 1000000 бит/сек (1 мбит); для user2 и user4 — 5 мбит/сек.
Также, ограничить доступ можно по количеству одновременных соединений для каждой службы:
maxconn 700
proxy -n -a -p3128 -i192.168.0.23 -e222.222.222.222
proxy -n -a -p8080 -i192.168.1.23 -e111.111.111.111
* таким образом, мы установим 700 максимальных соединений для прокси на порту 3128 и 700 — для proxy на порту 8080.
Источник
Лучшие прокси серверы Linux
В современных сетях прокси серверы используются достаточно часто. Особенно они полезны на предприятиях, здесь кэширующие прокси серверы могут применяться для снижения нагрузки на сеть, увеличения пропускной способности, экономии трафика и даже для отслеживания действий пользователей и блокировки нежелательных сайтов.
Другая сфера применения прокси серверов — это веб-сайты. Они используются для кэширования сгенерированных страниц, чтобы ускорить загрузку сайтов. В этой статье мы рассмотрим лучшие прокси серверы для Linux, которые вы можете использовать в своих конфигурациях.
1. Squid
Squid — это лучший прокси серевер для Linux с поддержкой таких протоколов, как: HTTP, HTTPS, FTP и многих других. Он позволяет повысить пропускную способность сети и сократить время отклика сайтов путем кэширования ресурсов и страниц. Страницы и файлы, которые запрашиваются часто могут быть использованы повторно. Вы можете настроить кэширование как в оперативную память, так и на жесткий диск, если нужно кэшировать много данных при медленном интернете.
Кроме того, в Squid есть очень широкие возможности контроля доступа к сетевым ресурсам. Вы можете блокировать не только банальные запросы к доменам или загрузку файлов определенных форматов, но и доступ к сети в определенное время, работу протоколов и портов, а также многое другое. Squid поддерживает не только операционную систему Linux, но и Windows. Изначально программа могла работать только в Linux, но затем была портирована и для Windows. Мы уже рассматривали настройку Squid в Ubuntu в одной из предыдущих статей.
2. Privoxy
Это ещё один кэширующий прокси сервер Linux, который устанавливается на стороне клиента. Поддерживаются все основные веб-протоколы. Но он направлен больше не на кэширование контента, а на фильтрацию и защиту конфиденциальности пользователей. С помощью него вы можете изменять интернет-страницы, вырезать рекламу, управлять cookies, ограничивать доступ к некоторым веб-сайтам, а также удалять любой нежелательный контент, управлять отправляемыми заголовками браузера.
В отличие от Squid программа настраивается через веб-интерфейс, и надо сказать, что достаточно удобный. Хотя в некоторых пунктах можно запутаться. При включенном прокси его настройка будет доступна по адресу config.privoxy.org. Кроме веб-интерфейса, можно использовать конфигурационный файл, но он намного сложнее.
3. Polipo
Небольшой, но быстрый кэширующий прокси сервер с открытым исходным кодом, поддерживающий протокол HTTP и DNS. Polipo можно использовать для фильтрации рекламы, повышения приватности или ускорения работы веб-сайтов с помощью кэширования страниц. Также как и Privoxy он рассчитан больше на обеспечение приватности. Настройка программы выполняется через веб-интерфейс, но кроме него, есть несколько графических оболочек, для интерактивного взаимодействия с программой. Поддерживается как Linux, так и Windows.
4. TinyProxy
TinyProxy — это очень простой и легкий прокси сервер с открытым исходным кодом для операционных систем Unix. Он разработан, чтобы быть маленьким и очень быстрым и поддерживает протоколы HTTP и HTTPS. Несмотря на легковесность этот прокси сервер linux поддерживает все необходимые функции, такие как удаленный доступ с помощью веб-интерфейса, фильтрация доступа к ресурсам, фильтрация на основе URL и другое.
5. 3Proxy
Это простой, универсальный прокси сервер, рассчитанный больше на контроль доступа к ресурсам. Поддерживаются протоколы работы HTTP, HTTPS, FTP и SOCKS причём для каждого протокола можно настроить и запустить отдельный сервис. Для контроля доступа можно использовать ACL списки. Доступ к прокси можно ограничивать по паролю. Для мониторинга активности пользователей можно использовать лог файл.
6. Gate.js
Gate.js — это что-то новое и очень интересное. Это полнофункциональный кэширующий прокси сервер, написанный на JavaScript с использованием Node.js. Он написан с нуля и призван заменить Squid и Nginx. Он позволяет кэшировать контент, облегчая работу веб-серверам, а также ускоряя загрузку сайтов на стороне клиента. Его главная особенность в масштабируемости, поскольку программа написана на интерпретируемом языке, она может быть легко дополнена.
7. Varnish Cache
В отличие от вышеперечисленных программ, этот прокси сервер рассчитан больше для работы на стороне сервера. Он предназначен для ускорения веб-сайтов. Его современная архитектура дает ему значительную производительность. Varnish Cache хранит веб-страницы в памяти сервера, чтобы программа веб-сервера Apache или Nginx не генерировала ее еще раз. Веб-сервер только обновляет страницы при изменении содержимого. Получение содержимого из памяти выполняется намного быстрее чем полная генерация.
8. Nginx
Все знают Nginx как отличный веб-сервер, рассчитанный на работу под большой нагрузкой. Но кроме этого, он может использоваться в качестве прокси сервера. Nginx не умеет кэшировать или фильтровать содержимое страниц. Но его задача принимать запросы от клиентов на сервере, передача их другим программам, а затем возврат ответа клиенту. Nginx выгодно использовать, потому что эта программа оптимизирована для максимальной производительности и может принимать до 10 000 запросов от пользователей одновременно.
Выводы
В этой статье мы рассмотрели лучшие прокси серверы Linux, возможно, это далеко не все программы, которые стоило бы добавить в этот список. Какие прокси серверы вы используете в своих системах? Какие считаете лучшими? Напишите в комментариях!
Источник