- Установка и использование 3proxy на Ubuntu
- Настройка брандмауэра
- Установка и запуск 3proxy
- Настройка браузера
- Настройка автозапуска
- Настройка аутентификации
- SOCKS
- Настройка анонимности
- Дополнительные настройки
- Настройка портов и прокси-интерфейсов
- Ограничение пропускной способности
- Ограничения доступа
- Возможные ошибки
- Unable to set gid Command: ‘setgid’ failed with code 1
- Настройка proxy в Linux через терминал
- Рассмотрим настройку переменных для использования прокси
- Тестирование работы
- Отключение
- Упрощенное использование прокси
- Прокси для команды apt
- Прокси для команды wget
- Настройка proxy в Ubuntu
- RSS
Установка и использование 3proxy на Ubuntu
Обновлено: 13.05.2022 Опубликовано: 08.06.2019
Настройка брандмауэра
По умолчанию, в Ubuntu брандмауэр разрешает все подключения. Однако, если у нас настроен фаервол для запрета лишних соединений, необходимо открыть порт для прокси. а) если используем Iptables.
* если система вернет ошибку при вводе команды для сохранения правил, устанавливаем пакет командой apt-get install iptables-persistent. б) если у нас firewalld.
Установка и запуск 3proxy
3proxy отсутствует в репозиториях Ubuntu, поэтому для установки сначала необходимо скачать его исходник. Для начала устанавливаем пакет программ для компиляции пакетов:
Переходим на официальную страницу загрузки 3proxy и копируем ссылку на версию пакета для Linux: . используя ссылку, скачиваем пакет:
* где 109 — идентификатор пользователя; 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:
Настройка браузера
Проверяем работоспособность нашего 3proxy. Для этого настраиваем браузер для работы через прокси-сервер, например, Mozilla Firefox: . пробуем открыть сайты.
Настройка автозапуска
[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
Настройка аутентификации
users 3APA3A:CL:3apa3a «test:CR:$1$qwer$CHFTUFGqkjue9HyhcMHEe1»
users dmosk1:CL:password
users «dmosk2:CR:$1$UsbY5l$ufEATFfFVL3xZieuMtmqC0»
Чтобы включить запрос логина, необходимо поменять значение для опции auth на strong:
* возможные варианты для auth:
- none — без авторизации.
- iponly — авторизация по IP-адресу клиента.
- nbname — по Netbios имени.
- strong — по логину и паролю.
Также можно использовать двойную авторизацию, например:
После внесения изменений, перезапускаем службу:
SOCKS
Для прозрачного прохождения пакетов через прокси можно настроить SOCKS5. В конфигурационном файле добавляем:
* запускаем socks на порту 1080.
socks -p8083 -i192.168.1.23 -e111.111.111.111
* запускаем socks на порту 8083; внутренний интерфейс — 192.168.1.23, внешний — 111.111.111.111.
После перезапускаем сервис:
Настройка анонимности
Для обеспечения полной анонимности при использовании прокси-сервера, делаем дополнительные настройки.
1. Меняем порты, которые используются по умолчанию — 3128, 1080. Данные порты известны, как порты для прокси. Открываем конфигурационный файл 3proxy:
socks -p1088
proxy -n -p3111
* в данном примере мы укажем серверу работать на портах 3111 и 1088.
После перезапускаем сервис:
2. Необходимо, чтобы время на сервере совпадало с временем на компьютере.
На стороне сервера необходимо задать часовой пояс, например, если наш прокси находится в Германии, вводим:
timedatectl set-timezone Europe/Berlin
На стороне клиента либо меняем часовой пояс в системе, либо устанавливаем плагин для браузера, например, для Mozilla Firefox и меняем часовой пояс уже в нем.
3. Отключение icmp. По времени ответа на ping можно определить отдаленноесть клиента от прокси. Чтобы проверку нельзя было выполнить, отключаем на сервере icmp. Для этого создаем правило в брандмауэре:
iptables -I INPUT -p icmp —icmp-type 8 -j REJECT
Открываем браузер, который работает через прокси и переходим на страницу 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 порт).
Ограничение пропускной способности
При необходимости, можно ограничить скорость.
bandlimin 1000000 user1,user3
bandlimin 5000000 user2,user4
* в данном примере пользователям user1 и user3 установлено ограничение в 1000000 бит/сек (1 мбит); для user2 и user4 — 5 мбит/сек.
Ограничения доступа
Можно ограничить доступ и разрешить только для определенных портов, сетей и пользователей.
- 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.
Возможные ошибки
Рассмотрим ошибки, с которыми можно столкнуться при настройке 3proxy.
Unable to set gid Command: ‘setgid’ failed with code 1
Ошибка появляется при попытке запустить 3proxy.
Причина: до ввода команды setgid должна быть введена команда setuid. Ошибка возникает, если в конфигурационном файле наружен порядок.
Решение: откроем конфигурационный файл:
Убедимся, что сначала идет setgid, а за ним setuid:
Настройка proxy в Linux через терминал
В этой статье поговорим о том, как можно настроить прокси в системе Linux через терминал.
Проще всего для использования прокси в командной строке, определить переменные окружения http_proxy, https_proxy, socks_proxy или ftp_proxy.
Практически все утилиты командной строки, такие как curl, ssh, ftp и прочие, используют данные переменные.
Рассмотрим настройку переменных для использования прокси
Используйте следующий синтаксис для настройки таких типов трафика как http, https, socks и ftp из командной строки:
export ftp_proxy="http://proxy-server:port" export http_proxy="http://proxy-server:port" export https_proxy="https://proxy-server:port" export socks_proxy="socks://proxy-server:port"
Используйте следующий синтаксис, если прокси-сервер требует аутентификацию:
export ftp_proxy="ftp://user:password@proxy-server:port" export http_proxy="http://user:password@proxy-server:port" export https_proxy="https://user:password@proxy-server:port" export socks_proxy="socks://user:password@proxy-server:port"
Если Ваш пароль содержит спец. символы, Вы должны заменить их на ASCII коды.
Например символ собаки @, должен быть заменен на «%40».
Настроить прокси на системном уровне можно и через конфигурационные файлы (True UNIX-way). Для этого нужно открыть на редактирования с правами root файл /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/"
Если прокси без авторизации, то строки должны быть вида:
ftp_proxy="http://proxy-server:port" http_proxy="http://proxy-server:port" https_proxy="https://proxy-server:port" socks_proxy="socks://proxy-server:port"
Для применения настроек придется перезагрузит систему, изменения в файле /etc/environment вступили в силу при запуске процесса init – родителя всех процессов в системе и именно от него все дочерние процессы унаследуют настройки прокси в переменных окружения.
Тестирование работы
Используйте следующую команду для проверки текущих переменных прокси:
Можно проверить работу прокси, узнав ваш внешний IP адрес из командной строки:
Отключение
Используйте следующие команды для отключения прокси:
unset http_proxy unset https_proxy unset ftp_proxy
Упрощенное использование прокси
Если у Вас один и тот же прокси-сервер для http, https и ftp трафика, Вы можете использовать следующие команды для включения и отключения прокси:
export _proxy="http://proxy-server:port"
unset _proxy
Если Вам приходится очень часто пользоваться прокси, Вы можете создать следующие bash функции (добавьте в Ваш ~/.bashrc) :
# Включить прокси function setproxy() < export _proxy="http://proxy-server:port" > # Выключить прокси function unsetproxy() < unset _proxy >
Примените настройки, перезагрузив ~/.bashrc.
Теперь, для включения и отключения прокси можно использовать команды setproxy и unsetproxy.
Как правила глобальной настройки прокси достаточно для того что бы все остальные приложения работали через прокси без необходимости настраивать прокси внутри приложения. Однако некоторые приложения не умеют работать с глобальными настройками или им нужны особенные настройки.
Прокси для команды apt
В новых версиях умеет работать с глобальными настройками, но в более старых мог работать только с персональными настройками. Для внесения нашего прокси открываем файл:
В нем указываем наш прокси и выключаем данную настройку последней строчкой:
Acquire::http::proxy "http://proxy-server:port/"; Acquire::https::proxy "https://proxy-server:port/"; Acquire::ftp::proxy "ftp://proxy-server:port/"; Acquire::socks::proxy "socks://proxy-server:port/"; Acquire. Proxy "true";
Если сервер с авторизацией, то необходимо добавить логин:пароль@ по аналогии с предыдущими примерами.
Прокси для команды wget
И в конце дописываем необходимый прокси:
proxy-user = username proxy-password = password http_proxy = http://xxx.xxx.xxx.xxx:8080/ ftp_proxy = http://xxx.xxx.xxx.xxx:8080/ use_proxy = on
Если прокси без авторизации, то proxy-user и proxy-password нужно убрать
Настройка proxy в Ubuntu
Все настройки среды рабочего стола в Ubuntu хранятся в базе данных DConf, в том числе и настройки прокси сервера. Настройки записываются в виде пар ключ значение. Если изменить какой либо параметр из меню настроек системы все изменения сразу же запишутся в DConf. Из командной строки настройками DConf можно управлять с помощью команд gsettings и dconf. Дальше я покажу как настроить прокси в Ubuntu из терминала с помощью gsettings.
Базовое использование gsettings для работы с базой данных Dconf выглядит следующим образом. Для чтения данных используем:
gsettings set org.gnome.system.proxy.http host 'http://proxy-server' gsettings set org.gnome.system.proxy.http port 8080 gsettings set org.gnome.system.proxy mode 'manual'
Если вы хотите использовать HTTPS прокси то вам нужно выполнить:
gsettings set org.gnome.system.proxy.https host 'http://proxy-server' gsettings set org.gnome.system.proxy.https port 8080 gsettings set org.gnome.system.proxy mode 'manual'
Для других протоколов я думаю вы поняли что необходимо поменять в данных командах.
Если есть вопросы, то пишем в комментариях.
Также можете вступить в Телеграм канал, ВКонтакте или подписаться на Twitter. Ссылки в шапке страницы.
Заранее всем спасибо.
RSS
Добавление RSS-ленты на главную страницу этого сайта не поддерживается, так как это может привести к зацикливанию, замедляющему работу вашего сайта. Попробуйте использовать другой блок, например блок Последние записи, для отображения записей сайта.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
Начиная с сентября 2017 года удостоверяющим центрам предписано обязательно проверять CAA-записи в DNS перед генерацией сертификата
Сегодня установим и настроим наш файловый сервер Samba на Ubuntu Server 20.04. Расшарим директории для нашего сервера и установим на Читать
В этой статье я вам расскажу как изменить hostname в Debian/Ubuntu (обычно имя компьютера в сети). Существует два способа изменения Читать
В этой статье рассмотрим пример как можно переименовать сетевые интерфейсы в дистрибутивах Linux. После обновления systemd (частью которого является udev) Читать