3proxy - компактный, зараза, но мощный. Установка и настройка 3proxy
Захотелось мне тут с работы получить доступ к своим двум локальным сетям, доступным из дома. Простой и легковесный прокси-сервер с авторизацией — неплохое решение, на мой взгляд. 3proxy многоплатформенный компактный прокси-сервер, просто находка, ну не ставить же для таких простых задач SQUID, в самом деле. Вот об установке и настройке 3proxy на домашнем сервере мы и поговорим сегодня. Постарался сделать комментарии в конфиге как можно более подробными.
Приступим, пожалуй.
Для сборки:
sudo apt-get install build-essential
Скачиваем стабильную версию:
cd /usr/src wget http://3proxy.ru/0.6.1/3proxy-0.6.1.tgz
Распаковываем:
tar zxvf 3proxy-0.6.1.tgz
Переходим в папку с исходниками:
cd 3proxy-0.6.1
Перед компиляцией добавим одну строчку, чтобы сервер был анонимным:
cd src nano proxy.h
Добавить строку:
#define ANONYMOUS 1
Возвращаемся на уровень выше
cd ../
Собираем
make -f Makefile.Linux
Создаем директорию под лог-файлы, копируем бинарник ‘3proxy’ и создаем конфиг ‘3proxy.cfg’ в ‘/usr/local/3proxy’
mkdir -p /usr/local/3proxy/logs cp 3proxy /usr/local/3proxy cd /usr/local/3proxy nano 3proxy.cfg
Пример моего конфига (изменен 25.09.2010):
#-------------3proxy.cfg------------ # ВНИМАНИЕ! Не должно быть пробелов # перед любыми опциями конфигурации. #-------------3proxy.cfg------------ # Важно указать данное значение, так как только при нем процесс 3proxy уйдет в background daemon # Записывать pid текущего процесса в файл pidfile /usr/local/3proxy/3proxy.pid # IP адреса # меняем 192.168.1.2 на ip адрес вашего сервера (internal и external) internal 192.168.1.2 external 192.168.1.2 # Пропишем правильные серверы имен, посмотрев их на своем сервере в /etc/resolv.conf nserver 192.168.1.1 # Оставим размер кэша для запросов DNS по умолчанию nscache 65536 # Равно как и таймауты timeouts 1 5 30 60 180 1800 15 60 # Создаем двух пользователей zerochaos и zchaos и назначаем им пароли users zerochaos:CL:password users zchaos:CL:password # Путь к логам и формат лога, к имени лога будет добавляться дата создания log /usr/local/3proxy/logs/3proxy.log D logformat "- +_L%t.%. %N.%p %E %U %C:%c %R:%r %O %I %h %T" rotate 30 # Конфигурация FTP (ftp и icq), Web-proxy (http и https), SOCKS5-proxy flush auth strong maxconn 32 # разрешим использовать прокси только тем пользователям, которых добавили в самом начале конфига и с определенным IP allow zerochaos,zchaos 192.168.1.4,95.95.95.95 * * * # запустим ftp прокси на порту 3127 #ftppr -p3127 # запустим web прокси на порту 3128 proxy -p3128 # запустим socks прокси на порту 3129 #socks -p3129 # Запустить административный веб-интерфейс на порту 8081 #admin -p8081 # Ограничиваем толщину канала для каждого пользователя, zerochaos и zchaos в 20000 bps #bandlimin 20000 zerochaos,zchaos #bandlimin 10000 test # Отслеживать изменения в файле конфигурации #monitor /usr/local/3proxy/3proxy.cfg # Запускаем сервер от пользователя nobody # (возможно в вашей ОС uid и gid пользователя nobody будут другими, для их определения воспользуйтесь командой id nobody) setgid 65534 setuid 65534
Выставляем права
chown -R nobody:nogroup /usr/local/3proxy
Создаем init-script ‘3proxy’ в ‘/etc/init.d’ (переписан с нуля 25.09.2010, идущий по умолчанию с дистрибутивом, иногда запускал 3proxy в двух экземплярах)
cd /etc/init.d nano 3proxy
#!/bin/sh PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin DAEMON=/usr/local/3proxy/3proxy DAEMON_OPTS=/usr/local/3proxy/3proxy.cfg NAME=3proxy DESC=3proxy test -f $DAEMON || exit 0 set -e case "$1" in start) echo -n "Starting $DESC: " start-stop-daemon --start --quiet --pidfile /usr/local/3proxy/$NAME.pid \ --exec $DAEMON $DAEMON_OPTS echo "done." ;; stop) echo -n "Stopping $DESC: " start-stop-daemon --stop --quiet --pidfile /usr/local/3proxy/$NAME.pid \ --exec $DAEMON echo "done." ;; *) N=/etc/init.d/$NAME # echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2 echo "Usage: $N {start|stop}" >&2 exit 1 ;; esac exit 0
Выставляем права и добавляем в автозагрузку:
sudo chmod +x /etc/init.d/3proxy sudo update-rc.d 3proxy defaults
Запускаем прокси-сервер
/etc/init.d/3proxy start
Проверяем слушается ли наш порт:
netstat -an | grep -i listen
Ну и проверим висит ли наш процесс:
ps ax | grep [3]proxy
На этом настройка закончена. Будут вопросы, задавайте в комментариях. Не смотря на подробные комментарии в конфиг-файле, советую почитать официальные маны на сайте, наверняка почерпнете что-то полезное для себя.