В статье рассмотрена базовая настройка прокси-сервера socks5, а также
клиента licq для работы с этим сервером. После прочтения этой статьи я
все-таки рекомендую вам прочитать документацию по socks5 (man
socks5.conf и man libsocks5.conf). В статье я не буду останавливаться
на таких вопросах как "Что такое socks5?", так как они довольно
подробно рассмотрены на сайте [2]www.socks.nec.com. Если же вас все же
интересуют подобные вопросы, рекомендую прочитать дополнительную
информацию.
Установка socks5
Прежде всего, нужно загрузить последнюю версию прокси-сервера
(http://www.socks.nec.com) - на данный момент это v1.0 release 11. То есть
вам нужно выкачать файл socks5-v1.0r11. Желательно также скачать
socks5tools - в нем находится сценарий для обработки протоколов
сервера.
После распаковки выполните привычную последовательность команд:
./configure
make
make install
При корректной сборке в каталоге /etc будет создан файл socks5.conf, в
котором и содержатся все настройки сервера.
Настройка socks5
В большинстве случаев параметры по умолчанию являются вполне
приемлемыми. Сейчас рассмотрим пример конфигурационного файла, а потом
разберемся, что все это означает:
Листинг 1. Файл /etc/socks5.conf
1. set SOCKS5_NOREVERSEMAP
2. set SOCKS5_NOSERVICENAME
3. set SOCKS5_NOIDENT
4. set SOCKS5_MAXCHILD 128
5. set SOCKS5_TIMEOUT 10
6. auth - - u
7. permit u - - - - - -
8. interface 192.168.0. - eth0
В первой строке мы отменяем обратный резолвинг адресов, благодаря чему
сервер будет работать заметно быстрее . Вторая строка означает, что мы
будем протоколировать номера портов вместо имен сервисов. Теоретически
это тоже должно повысить эффективность работы сервера. Параметр SOCKS5_NOIDENT
запрещает рассылку клиентам ident-запросов. Четвертая строка устанавливает
максимально допустимое число потомков сервера - не жадничайте. Пятая строка,
как вы уже успели догадаться, устанавливает тайм-аут (10 секунд).
Практически вся настройка сервера выполняется с помощью манипулирования
командами auth и permit. Первая устанавливает тип аутентификация, а вторая
- разрешает доступ определенным хостам/пользователям.
Полный формат команды auth такой:
auth source-host source-port auth-method
В данном случае мы будем запрашивать пароль со всех пользователей (точнее,
клиентов).
В примере я разрешаю доступ всем и отовсюду с использованием аутентификации.
Если вас интересует более расширенный пример использования команды permit,
который демонстрирует всю гибкость этого прокси-сервера, обратите внимание
на этот:
permit u cpubt 192.168. - - [100,1000] user
В данном случае мы разрешаем доступ пользователю user (с использованием
пароля, конечно). Пользователь user имеет право использовать Connect, Ping,
Udp, Bind и Traceroute с адресов 192.168.*.*. Диапазон входящих (первый
"-") и входящих (второй "-") портов - 100..1000.
Директива interface (листинг 1, строка 8) разрешает все соединения
от компьютеров с адресами 192.168.0.* (наша внутрення сеть) ко всем портам
на интерфейса eth0.
Кроме команды permit существует противоположная ей команда deny с аналогичными
параметрами.
Все! Мы уже настроили наш сервер. Осталось его запустить:
# /usr/local/bin/socks5 -f -s
При этом демон должен перейти в фоновый режим и выводить диагностические
сообщения на стандартный вывод (в нашем случае это экран) Если
сервер сконфигурирован правильно, вы должны увидеть примерно следующее:
11410: Socks5 starting at Mon Mar 4 19:13:55 2002 in normal mode
После удачного запуска остановим сервер и добавим его в скрипты автозагрузки
системы:
killall socks5
Чуть не забыл! Создайте файл /etc/socks5.passwd - в нем содержатся имена
пользователей и их пароли. Например,
user 123456
resu 654321
Настройка licq
Клиент licq настраивается предельно просто. После настройки и запуска
сервера socks5 нужно пересобрать licq с поддержкой socks5.
Для этого запустите скрипт configure с параметром --enable-socks5
./configure --enable-socks5
После этого выполните привычные команды: make; make install
Теперь нужно создать файл /etc/libsocks5.conf и добавить в него
строку:
socks5 - - - - 192.168.0.1:port
192.168.0.1 - это адрес нашего socks5-сервера, port - порт, необходимый
клиенту.
Альтернативные серверы socks5
В качестве альтернативы серверу socks5 вы можете использовать [9]dante-socks.
Данный сервер использует файл конфигурации sockd.conf.
Параметр internal определяет наш внутренний интерфейс (точнее, внутренний
IP-адрес), а external - наш настоящий IP (111.111.111.111.111). В блоке
client pass указываются возможные клиенты нашего сервера (сеть 192.168.0.0),
а в блоке pass указываются имена узлов, которые могут "общаться" с нашими
клиентами. В данном случае мы разрешаем отвечать клиентам всем узлам (0.0.0.0).
Протоколировать мы будем только ошибки соединения.
Дополнительная информация
Что такое socks? http://www.socks.nec.com/aboutsocks.html
Описание socks5 http://www.socks.nec.com/socksv5.html
FAQ socks5 http://www.socks.nec.com/socksfaq.html
Загрузить socks5 http://www.socks.nec.com/cgi-bin/download.pl