Установка и настройка 3proxy на Centos

Недавно Роскомнадзор стал вновь усиленно блокировать прокси Телеграма, поэтому установка собственного прокси как никогда стала актуальна :-)

Итак, посмотрим, как установить socks и http прокси-сервер 3proxy на CentOS 6.

Скажу сразу, собирать из исходников мне было лень и я нашел рабочий RPM с версией 3proxy 0.8.10 — достаточно свежая. Можно установить старую версию 0.6 из дистрибутивов EPEL, но это уже совсем нафталин…

Итак запускаем консоль и устанавливаем наш прокси-сервер

  1. rpm -Uvh ftp://ftp.pbone.net/mirror/rnd.rajven.net/centos/6.5/os/x86_64/3proxy-0.8.10-1cnt6.x86_64.rpm

Запускаем 3proxy

  1. service 3proxy start

Но это пол дела, нужно его еще правильно сконфигурировать. Я выкладываю урезанную версию конфига, если вы профессионал, то разберетесь сами в том конфиге, что идет вместе с 3proxy. Напоминаю, конфиг лежит в директории /etc

  1. # ip адрес DNS сервера провайдера или локального
  2. # я использую DNS от Google
  3. nserver 8.8.8.8
  4. #nserver 8.8.4.4
  5. nserver 77.88.8.8
  6. #nserver 77.88.8.1
  7. nscache 65536
  8. timeouts 1 5 30 60 180 1800 15 60
  9.  
  10. # создаем пользователя и назначаем пароль
  11. # естественно нужно использовать сложный пароль
  12. users имяпользователя:CL:сложныйпароль
  13.  
  14. daemon
  15.  
  16. # лог файл со списком запросов пользователей
  17. # будет создаваться каждый день новый
  18. log /var/log/3proxy/3proxy.log
  19. logformat "%d-%m-%Y %H:%M:%S %U %C:%c %R:%r %O %I %T"
  20.  
  21. archiver gz /bin/gzip %F
  22. rotate 30
  23.  
  24. auth iponly
  25.  
  26. # внешний интерфейс
  27. # (через который будут уходить запросы от сервера)
  28. # я использую ip адрес моего сервера
  29. external 0.0.0.0
  30.  
  31. # ip адрес интерфейса на котором будут приниматься
  32. # запросы от клиентов
  33. # я использую ip адрес моего сервера
  34. #internal 0.0.0.0
  35. internal 0.0.0.0
  36.  
  37. auth none
  38.  
  39. dnspr
  40.  
  41. auth strong
  42. # We want to protect internal interface
  43. deny * * 127.0.0.1,192.168.1.1
  44. # and llow HTTP and HTTPS traffic.
  45. allow * * * 80-88,8080-8088 HTTP
  46. allow * * * 443,8443 HTTPS
  47.  
  48. # запускаем службу HTTP proxy на порту (3128 и
  49. # -n c отключенной NTLM авторизацией)
  50. proxy -p3128 -n
  51.  
  52. auth strong
  53. flush
  54. allow имяпользователя
  55. maxconn 20
  56. # вместо 443 вы можете выбрать любое число от 1 до 65535
  57. socks -p443
  58.  
  59. auth strong
  60. flush
  61. internal 0.0.0.0
  62. allow имяпользователя
  63. maxconn 3
  64. admin
  65. # это доступ в админку 3proxy, но по моему там ничего интересного нет
  66.  
  67. pidfile /var/run/3proxy.pid
  68. # а вот это pid файл, он нам нужен, чтобы отслеживать работу 3proxy и перезапускать его в случае падения

После изменения конфига не забываем перезапустить 3proxy

  1. service 3proxy restart

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

  1. check process 3proxy with pidfile /var/run/3proxy.pid
  2. start program = "/etc/init.d/3proxy start"
  3. stop program = "/etc/init.d/3proxy stop"