Рейтинговые книги
Читем онлайн Linux: Полное руководство - Денис Колисниченко

Шрифт:

-
+

Интервал:

-
+

Закладка:

Сделать
1 ... 107 108 109 110 111 112 113 114 115 ... 158

В дополнение к директиве permit можно использовать директиву deny такого же формата, но противоположного назначения (запрет доступа).

Директива interface в приведенном примере разрешает все соединения от компьютеров с адресами 192.168.0.* (наша внутренняя сеть) ко всем портам интерфейса eth0.

Имена и пароли пользователей сервера socks5 содержатся в файле /etc/socks5.passwd в формате <имя> <незашифрованный_пароль>. После создания этого файла настройку socks5 можно считать законченной.

18.10.3. Запуск сервера socks5

Запускается сервер следующей командой:

# /usr/local/bin/socks5 -f -s

При запуске с этими ключами демон должен перейти в фоновый режим и выводить диагностические сообщения на стандартный вывод (в нашем случае это экран). Если сервер сконфигурирован правильно, вы должны увидеть примерно следующее:

11410: Socks5 starting at Mon Mar 4 19:13:55 2002 in normal mode

После удачного запуска остановите сервер (killall socks5) и добавьте его запуск в сценарий автозагрузки системы.

18.10.4. Dante — еще один сервер SOCKS5

Этот сервер считается более простым в настройке. Он использует файл конфигурации /etc/sockd.conf (листинг 18.2).

Листинг 18.2. Примерный файл /etc/sockd.conf

internal: 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). В блоке client pass указываются возможные клиенты вашего сервера (сеть 192.168.0.0), а в блоке pass — имена узлов, которые могут «общаться» с вашими клиентами. В приведенном примере разрешается отвечать клиентам со всех узлов (0.0.0.0). Протоколироваться будут только ошибки соединения.

18.10.5. Настройка клиентов SOCKS5 (ICQ и licq)

Настройку клиентов будем рассматривать на примере двух самых, наверное, популярных SOCKS-клиентов. Сначала рассмотрим настройку программы ICQ для Windows, а потом licq — ICQ-клиента для Linux.

Запустите программу ICQ и нажмите на кнопку ICQ. Из появившегося меню выберите команду Preferences и перейдите в раздел Connections на вкладку Server (рис.18.3). Включите режим использования прокси-сервера и установите тип прокси-сервера — SOCKS5. Потом перейдите на вкладку Firewall и установите параметры прокси-сервера: имя, порт, тип (socks5), имя пользователя и пароль (рис. 18.4).

Рис. 18.3. Свойства соединения ICQ

Рис. 18.4. Параметры прокси-сервера

С программой 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).

Глава 19

Маршрутизация и межсетевые экраны

19.1. Введение в маршрутизацию

Маршрутизация является очень ответственным механизмом, отвечающим за то, как будет происходить обмен данными, как будут пролегать информационные потоки. Скорость и эффективность обмена данными во многом зависят от того пути, по которому они следуют от одного компьютера сети к другому.

Маршрутизация имеет смысл в сильно разветвленных сетях и основывается на использовании таблиц маршрутизации. Такая таблица имеется на каждом узле, выступающем в роли маршрутизатора. В ней содержится информация об окружающих узлах и известных маршрутах, на основе которой маршрутизатор будет выбирать оптимальный путь для передачи данных.

При оценке и выборе маршрута используются так называемые метрики стоимости. В качестве такой метрики выступают какие-либо критерии, по которым можно оценить маршрут. Различные протоколы маршрутизации могут использовать различные метрики, то есть выбирать оптимальный маршрут, основываясь на анализе разных параметров. Рассмотрим основные протоколы маршрутизации:

♦ RIP — один из старейших протоколов маршрутизации, разработанный компанией Xerox. Метрикой стоимости у этого протокола является количество переходов, которое должен совершить пакет данных от отправителя к получателю. Этот протокол разрабатывался во времена небольших сетей, поэтому все узлы, находящиеся на расстоянии больше 15 переходов, он воспринимает как недосягаемые. Это значит, что в сетях, в которых в одну цепочку могут быть выстроены более 15 маршрутизаторов, использовать протокол RIP нельзя. Данный протокол использует в своей работе демон routed, который будет рассмотрен чуть позднее.

♦ RIP-2 представляет собой улучшенную версию протокола RIP. Одно из основных улучшений заключается в том, что вместе с адресом следующего перехода передается сетевая маска. Благодаря этому упрощается управление сетями, в которых есть подсети.

♦ OSFP является самым популярным и широко используемым протоколом маршрутизации. В его основе лежит специальный математический алгоритм, который позволяет высчитывать оптимальные маршруты. Этот протокол является топологическим, то есть учитывающим состояние канала. По сравнению с RIP он обладает следующими достоинствами: возможностью управления несколькими маршрутами и возможностью разделения сети на сегменты, которые будут предоставлять друг другу только высокоуровневые данные маршрутизации. Этот протокол рекомендуется использовать в сетях с разветвленной структурой, в которой может возникать большое количество дублирующихся маршрутов.

Следует понимать разницу между маршрутизацией и перенаправлением трафика. Маршрутизация представляет собой сложный процесс просчета и выбора наилучшего на данный момент маршрута. При этом используется большое количество входной информации, основывающейся как на предыдущем опыте работы маршрутизатора, так и на текущем состоянии сети. Значительная часть этой информации предоставляется соседними узлами, поэтому синхронизация таблиц маршрутизации у соседних узлов представляет собой существенную проблему.

Перенаправление трафика же является простой операций, направляющей пакеты данных в соответствии с определенным условием. Никакого выбора и расчета при этом не производится. Можно сказать, что перенаправление — это простейший (статический) метод маршрутизации. Мы рассмотрим его в параграфе, посвященном брандмауэрам.

19.2. Программы маршрутизации в Linux

19.2.1. Демон routed

Стандартной программой маршрутизации в Linux является демон routed. Этот демон, как правило, настраивается сам (динамически) и не требует конфигурирования. Обнаруженные маршруты он заносит в маршрутную таблицу ядра.

В своей работе демон routed использует протокол RIP. Чтобы воспользоваться преимуществами протоколов RIP-2 или OSFP, вы должны использовать другой демон — gated. Демон routed может работать либо в режиме сервера (-s), либо в режиме подавления сообщений. Во втором режиме он будет только получать от соседей маршрутную информацию, но сам ее отсылать не будет.

Для добавления статических маршрутов вручную служит команда route. Рассмотрим пример такого маршрута. Пусть у нас есть две сетевые платы eth0 и eth1:

# ifconfig eth0 192.168.1.1 up

# ifconfig eth0 192.168.2.1 up

и нам нужно обеспечить маршрутизацию между подсетями 192.168.1.0 и 192.168.2.0. С этой целью объявляем, что машины, которые находятся в вашем локальном сегменте 192.168.1.*, «сидят» на первом интерфейсе и общаться с ними нужно напрямую:

# route add net 192.168.1.0 192.168.1.1 netmask 255.255.255.0 0

А с машинами с адресами 192.168.2.* будем разговаривать через eth1:

# route add net 192.168.2.0 192.168.2.1 netmask 255.255.255.0 0

Последний аргумент команды route — это метрика. Ее можно понимать как «расстояние до шлюза назначения» или «сколько пересадок между шлюзами придется сделать пакету по пути туда и обратно». T.к. адреса 192.168.1.1 и 192.168.2.1 являются нашими собственными адресами, то это расстояние равно нулю.

Сетевые пакеты для IP-адресов, которые не лежат в нашей локальной сети, будем отправлять на машину 192.168.1.11, а она сама будет разбираться, что с ними делать:

1 ... 107 108 109 110 111 112 113 114 115 ... 158
На этой странице вы можете бесплатно читать книгу Linux: Полное руководство - Денис Колисниченко бесплатно.
Похожие на Linux: Полное руководство - Денис Колисниченко книги

Оставить комментарий