Издательский дом ООО "Гейм Лэнд"ЖУРНАЛ ХАКЕР #82, ОКТЯБРЬ 2005 г.

Поставь вардрайверов на колени

Andrey Matveev

Хакер, номер #082, стр. 082-106-2


[openssh: первый блокпост]

Несмотря на то, что бесплатно распространяемый пакет OpenSSH на протяжении последних лет успешно справляется с задачей предоставления защищенного доступа к удаленным компьютерам, в настройках по умолчанию он не способен обеспечить необходимый уровень безопасности. Чтобы усложнить хайджекеру проведение сетевой атаки с целью перехвата и подмены ssh-сессии, требуется переопределить некоторые дефолтные значения переменных sshd(8). За счет использования этих настроек мы будем уверены, что как только оболочка получит соответствующий сигнал, ssh-сессия аутентифицированного пользователя завершится должным образом, и не произойдет сохранение состояния соединений в таблице записей файервола.

# vi /etc/ssh/sshd_config

/* Работа по протоколу SSH2 обязательна */

Protocol 2

/* Мы не будем использовать IPv6 */

AddressFamily inet

/* Ожидаем подключения по беспроводному сетевому интерфейсу */

ListenAddress 192.168.2.1

/* Запрещаем регистрацию суперпользователя */

PermitRootLogin no

/* За счет использования SSH2 и этих двух опций усложняем проведение атак типа ARP- и IP-spoofing */

ClientAliveInterval 15

ClientAliveCountMax 3

/* Включение UseDNS создает больше проблем, чем решает */

UseDNS no

/* Определяем списки контроля доступом */

AllowGroups wheel wsrc users authpf

После внесения изменений даем указание демону перечитать конфиг:

# kill -HUP `sed q /var/run/sshd.pid`

[pf: швартовка в океане сыщиков хотспотов]

Мы давно уже привыкли к тому, что файервол работает со статическим набором правил. И действительно, для большинства задач этого вполне достаточно. Но когда в сети появляются кочующие пользователи и/или беспроводные клиенты, такая схема работы рушится, как карточный домик. Одна из замечательных возможностей pf(4) заключается в том, что можно подключать рулесеты к основному конфигу pf.conf(5) "на лету". Отвечают за эту фичу так называемые анчоры (якоря), работу которых проиллюстрируем в боевых условиях:

# vi /etc/pf.conf

/* Объявляем макросы */

enc_if = "enc0"

int_if = "ral0"

/* Подключаем правила для трансляции сетевых адресов */

nat-anchor "authpf/*"

/* Подключаем правила для корректной работы ftp- и p2p-клиентов */

rdr-anchor "authpf/*"

/* Разрешаем и регистрируем доступ к sshd (22/tcp), isakmpd (500/udp) */

pass in log quick on $int_if inet proto tcp from $int_if:network \

to $int_if port ssh keep state

pass in log quick on $int_if inet proto udp from $int_if:network \

to $int_if port isakmp keep state

/* Разрешаем прохождение зашифрованного трафика */

pass in quick on $int_if inet proto esp from $int_if:network to $int_if

pass in quick on $enc_if inet proto ipencap from $int_if:network to $int_if

pass in quick on $enc_if inet from $int_if:network to $int_if keep state

/* Разрешаем прохождение исходящего трафика */

pass out quick on $int_if inet from any to $int_if:network keep state

Назад на стр. 082-106-1  Содержание  Вперед на стр. 082-106-3