Денис Колисниченко - Linux-сервер своими руками Страница 61
Денис Колисниченко - Linux-сервер своими руками читать онлайн бесплатно
man socks5.conf
man libsocks5.conf
В этой главе будет рассмотрена только базовая настройка сервера socks5.
Сначала нужно загрузить последнюю версию прокси-сервера (http://www.socks.nec.com/cgi-bin/download.pl) — на данный момент это v1.0 release 11. То есть вам нужно выкачать файл socks5-v1.0r11. Желательно также скачать socks5tools — в нем находится сценарий для обработки протоколов сервера. После распаковки выполните привычную последовательность команд:
./configure
make
make install
При корректной сборке в каталоге /etc будет создан файл socks5.conf, в котором и содержатся все настройки сервера.
В большинстве случаев параметры по умолчанию являются вполне приемлемыми. Сейчас рассмотрим пример конфигурационного файла (см. листинг 8.13), а потом разберемся, что все это означает.
Листинг 8.13. Файл /etc/socks5.confset SOCKS5_NOREVERSEMAP
set SOCKS5_NOSERVICENAME
set SOCKS5_NOIDENT
set SOCKS5_MAXCHILD 128
set SOCKS5_TIMEOUT 10
auth - – u
permit u – – - - - -
interface 192.168.0. – eth0
В первой строке мы отменяем обратный резолвинг адресов, благодаря чему сервер будет работать заметно быстрее. Вторая строка означает, что мы будем протоколировать номера портов вместо имен сервисов. Теоретически это тоже должно повысить эффективность работы сервера. Параметр SOCKS5_NOIDENT запрещает рассылку клиентам ident-запросов. Четвертая строка устанавливает максимально допустимое число потомков сервера — не жадничайте. Пятая строка, как вы уже успели догадаться, устанавливает тайм-аут (10 секунд).
Практически вся настройка сервера выполняется с помощью манипулирования командами auth и permit. Первая устанавливает тип аутентификации, а вторая — разрешает доступ определенным хостам/пользователям. Полный формат команды auth такой:
auth исходный_хост исходный_порт метод_аутентификации
В данном случае мы будем запрашивать пароль со всех пользователей (точнее, клиентов).
Формат команды permit:
permit аутентификация команда исх_хост хост_назнач исх_порт порт_назнач [список_польз]
В примере я разрешаю доступ всем и отовсюду с использованием аутентификации. Если вас интересует более расширенный пример использования команды permit, который демонстрирует всю гибкость этого прокси-сервера, обратите внимание на этот:
permit u cpubt 192.168.-.– [100,1000] user
В данном случае мы разрешаем доступ пользователю user (с использованием пароля, конечно). Пользователь user имеет право использовать Connect, Ping, Udp, Bind и Traceroute (cpubt) с адресов 192.168.*.*. Диапазон входящих (первый «-») и входящих (второй «-») портов — 100…1000.
Директива interface (листинг 8.13) разрешает все соединения от компьютеров с адресами 192.168.0.* (наша внутренняя сеть) ко всем портам интерфейса eth0. Кроме команды permit существует противоположная ей команда deny с аналогичными параметрами.
Создайте файл /etc/socks5.passwd — в нем содержатся имена пользователей и их пароли. Например:
petrov 123456
ivanov paswd
За этим все! Вы уже настроили ваш сервер. Осталось его запустить:
# /usr/local/bin/socks5 –f –s
При этом демон должен перейти в фоновый режим и выводить диагностические сообщения на стандартный вывод (в нашем случае это экран).
Если сервер сконфигурирован правильно, вы должны увидеть примерно следующее:
11410: Socks5 starting at Mon Mar 4 19:13:55 2002 in normal mode
После удачного запуска остановите сервер и добавьте его в скрипты автозагрузки системы:
# killall socks5
8.8.2. Альтернативные серверы Socks5
В качестве альтернативы серверу socks5 вы можете использовать прокси-сервер dante-socks, который доступен по адресу http://www.inet.no/dante/. Данный сервер использует файл конфигурации sockd.conf (см. листинг 8.14).
Листинг 8.14. Файл /etc/sockd.confinternal: 192.168.0.1 port = 1080
external: 111.111.111.111
client pass {
from: 192.168.0.0/16 to: 0.0.0.0/0
}
pass {
from: 0.0.0.0/0 to: 192.168.0.0/16
command: bindreply udpreply
log: connect error
}
Параметр internal определяет ваш внутренний интерфейс (точнее, внутренний IP-адрес), a external — ваш настоящий IP (111.111.111.111.111). В блоке client pass указываются возможные клиенты вашего сервера (сеть 192.168.0.0), а в блоке pass указываются имена узлов, которые могут «общаться» с вашими клиентами. В приведенном примере разрешается отвечать клиентам со всех узлов (0.0.0.0). Протоколироваться будут только ошибки соединения.
8.8.3. Настройка клиента Socks5 (licq)
Настройку клиентов будем рассматривать на примере двух, наверное самых популярных, Socks-клиентов. Сначала рассмотрим настройку программы ICQ для Windows, а потом licq — ICQ-клиент для Linux.
Запустите программу ICQ и нажмите на кнопку «ICQ», которая находится ниже кнопки «Services» (рис. 8.12). Затем из появившегося меню выберите команду Preferences и перейдите в раздел Connections на вкладку Server. Включите режим использования прокси-сервера и установите тип прокси-сервера — Socks5 (см. рис. 8.13).
Рис. 8.12. Программа icq
Рис. 8.13. Свойства соединения icq
Потом перейдите на вкладку Firewall и установите параметры прокси-сервера: имя, порт, тип (socks5), имя пользователя и пароль (см. рис. 8.14). Нажмите на кнопку «Apply» и на этом настройка клиента ICQ для Windows завершена.
Рис. 8.14. Параметры прокси-сервера
С программой licq будет немножко сложнее. Во-первых, нужно установить программу runsocks, которая входит в состав прокси-сервера (эту программу можно также найти в Интернет отдельно), на компьютере пользователя и перекомпилировать licq, включив поддержку socks5. Для этого перейдите в каталог, содержащий исходные тексты licq и запустите скрипт configure с параметром –enable-socks5:
./configure –enable-socks5
После этого выполните привычные команды:
make; make install
Теперь нужно создать файл /etc/libsocks5.conf и добавить в него строку:
socks5 – – – 192 .168.0.1:port
192.168.0.1 — это адрес вашего socks5-сервера, port — порт, необходимый клиенту (обычно 1080).
8.9. Система обнаружения и защиты от вторжения
8.9.1. Что такое LIDS?
LIDS (Linux Intrusion Detection System) — система обнаружения вторжения. Данная система представляет собой патч к ядру, который позволяет обнаружить и защитить вашу систему от вторжения.
Система LIDS была создана китайским и французским разработчиками Xie Huagang и Philippe Biondi и доступна на сайте http://www.Iids.org. На этом сайте доступна как сама система LIDS, так и документация к ней. Однако разработчики системы не спешат обновлять документацию к новым версиям системы. А документация по версии 0.8.x ничем вам не поможет, если вы используете версию 0.9.x. Поэтому в этой главе я не буду рассматривать одну определенную версию, так как при выходе следующей версии этот материал безнадежно устареет, а рассмотрю общую настройку LIDS — все написанное в этой главе должно работать у вас вне зависимости от версии LIDS.
Система LIDS позволяет запретить или просто ограничить доступ пользователя root к файлам, сетевым интерфейсам, памяти, блочным устройствам. Почему именно пользователя root, я думаю, вы уже догадались: ограничить доступ любого пользователя можно с помощью стандартных средств самой Linux. В первую очередь система защищает систему от злоумышленника, который, воспользовавшись багом («дырой» или функцией на языке Microsoft) какой-нибудь программы, получил права root.
Основным преимуществом системы LIDS является то, что ее нельзя отключить обычными способами.
Во-первых, для отключения LIDS необходимо находиться непосредственно за компьютером жертвы, а такое могут себе позволить не все хакеры.
Примечание. Значение слова «хакер» значительно объемнее, чем просто «вандал», пытающийся разрушить вашу систему. Подробнее вы можете прочитать об этом в документе Hacker-HOWTO, который вы найдете на прилагаемом к книге CD.
Во-вторых, чтобы снять защиту с определенного объекта, например, файла /etc/passwd, нужно знать пароль администратора LIDS, а не пользователя root. Этот пароль хранится в зашифрованном виде в специальном файле. А этот файл, в свою очередь, «виден» только программе LIDS, вы его не увидите, даже если введете команду Is –l. Таким образом можно защитить не только файл паролей LIDS, но и файл /etc/passwd, предварительно разрешив доступ к нему только программам login, su и passwd, то есть тем программам, которым действительно этот файл нужен. Ограничить доступ можно по-разному, например, разрешив одной программе только читать файл, а другой — записывать в него.
LIDS может запретить загрузку или выгрузку модулей ядра, защитив вас таким образом от модулей-троянов. С помощью LIDS также можно запретить перезагрузку системы.
Жалоба
Напишите нам, и мы в срочном порядке примем меры.