Коли мова заходить про проксі-сервера під Unix-подібні ОС, першим завжди згадують Squid. Проте коли нам не потрібно цілого комбайну наворочених функцій, авторизацій і іншого, а потрібно, скажімо, просто з інтернету потрапити у свою локалку потрібно щось маленьке і швидке що буде собі висіти в пам‘яті і не віджирати левову частку серверних ресурсів. Раніше я вже писав про проксі-сервер tinyproxy, та ось натрапив на ще один легенький проксі. Він мені сподобався тож я вирішив і про нього написати.
Отже 3proxy - це маленький і швидкий набір проксі-серверів! Саме набір, тобто модульність приваблює до цього продукту. Ви можете проксувати тільки http і буде завантажений тільки http-модуль, а можете налаштувати проксування http, pop3 і imap з авторизацією за логіном/паролем або IP-адресою і 3proxy завантажить модулі http, pop3 і imap. Нічого зайвого і все дуже швидко.
Встановлюємо 3proxy за допомогою менеджера пакунків:
pkg install 3proxy
І редагуємо файлик з настройками /usr/local/etc/3proxy.cfg
#!/usr/local/bin/3proxy
nserver 10.15.1.1
nserver 8.8.8.8
nscache 65536
timeouts 1 5 30 60 180 1800 15 60
users admin:CL:password
daemon
log /var/log/3proxy.log D
logformat "G%d-%m-%Y %H:%M:%S | %U | %C | %R:%r | %O | %I | %n"
archiver gz /usr/bin/gzip %F
rotate 9
auth strong
external 193.84.22.241
internal 10.15.1.1
proxy -n -p8087
setgid 65534
setuid 65534
Розберемо що в нас тут є:
nserver - вказує адресу DNS
nscache - вказує використовувати кеш DNS-запитів і його розмір
timeouts - якщо чесно я так і не зрозумів що воно міняє, тому лишив як бкло в прикладі)
users - тут створюєм користувачів які матимуть доступ до сервера в форматі <ім‘я>:CL:<пароль>
daemon - запускає проксі в фоні як системний даемон
log - шлях до лог-файлу (буква D в кінці строчки означає поденне створення лог-файлу)
logformat - формат ведеггя логу
archiver - архіватор для ротації лог-файлів
rotate - увімкнення ротації логів і визнічення кількості архівних копій
auth - початок блоку опису проксі-модуля і визначення типу авторизації для нього
external - вибір IP-адреси для вихідних запитів
internal - вибір IP-адреси для клієнтських запитів
proxy - власне запуск http-proxy параметр p вказує порт на якому слухатимуться запити
setgid і setuid - встановлення користувача і групи від яких працюватиме проксі (в мене nobody)
Таким от чином в нас получився простий http проксі сервер з авторизацією. Але можливості 3proxy цим не обмежується. В прикладі конфігурації на github-репозиторії ви можете побачити що він вміє також проксувати mail-сервіси (pop3, smtp), dns, і навіть вміє portmap! Та я цими його можливостями не користувався тож і не описую)
Отож. Настройки ми зробили, і тепер пора нам запускати нашоно сервера. Додаємо запис в /etc/rc.conf:
echo 'threeproxy_enable="YES"' >> /etc/rc.conf
Запускаємо сервіс:
service 3proxy start
і наш проксі готовий!
Лишається настроїти браузер на використання нашого проксі і ціль досягнуто.
П.С. Паролі при такому налаштуванні лежать в файлі відкритим текстом. Тож краще виставити на нього chmod 600.
Гарного адміністрування!
Коментарі