Невинные SSH'алости в сетях

Andrushock

Xakep, номер #057, стр. 057-078-2


<Щепетильная установка Step by Step>

Последняя версия OpenSSH может быть получена либо с официального ftp-сервера, либо с ближайшего к тебе миррора. Маленькая буква "р" в названии архива означает не "patch", как можно с уверенностью предположить, а "portable" - переносимая версия, предназначенная для операционных систем, отличных от OpenBSD. Для установки OpenSSH потребуется, помимо компилятора и стандартных средств разработки, библиотека zlib и пакет OpenSSL. Для установки OpenSSH проделай следующие действия в консоли:

$ wget ftp://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-3.6.1p2.tar.gz

$ tar zxvf openssh-3.6.1p2.tar.gz

$ cd openssh-3.6.1p2

# env CFLAGS="-O2 -pipe" ./configure --prefix=/usr --sysconfdir=/etc/ssh \

--mandir=/usr/share/man --libexecdir=/usr/lib/misc --with-privsep-path=/var/empty \

--with-privsep-user=sshd --with-md5-passwords --without-tcpwrappers --without-pam \

--with-ipv4-default --without-4in6 --with-ipaddr-display

Если ты предварительно включил в ядро и компилер поддержку ProPolice aka Stack Protector с целью предотвращения атак срыва стека (stack smashing attack) или используешь Trusted Debian (где это сделано за тебя), то чтобы получить некоторый прирост в производительности работы всех программ из пакета OpenSSH, перед сборкой через переменные окружения добавь к опциями компилятора параметр "-fno-stack-protector".

Итак, сценарий configure выдаст отчет со всеми заданными параметрами компиляции и с указанием месторасположения инсталлируемых файлов:

MD5 password support: yes

IP address in $DISPLAY hack: yes

Use IPv4 by default hack: yes

Random number source: OpenSSL internal ONLY

Сompiler flags: -O2 -pipe -Wall -Wpointer-arith -Wno-uninitialized

Libraries: -ldl -lutil -lz -lnsl -lcrypto

Для обеспечения поддержки PAM (Pluggable Authentication Modules - подгружаемые модули аутентификации; в системе должны быть установлены пакеты pam и pam-devel) на этапе конфигурирования скрипту необходимо передать дополнительный аргумент --with-pam, после чего список подключаемых при сборке библиотек будет выглядеть следующим образом: -lpam -ldl -lutil -lz -lnsl -lcrypto

# nice make

# make install

После выполнения последней цели команды make утилита ssh-keygen автоматически сгенерирует ключи RSA1 для работы по протоколу SSH1, а также RSA и DSA для SSH2.

Далее создаем группу и учетную запись для специального пользователя, с привилегиями которого будет выполняться большинство функций демона sshd. Механизм Privilege Separation (разделение привилегий), разработанный Нильсом Провосом (Niels Provos), как раз служит для уменьшения количества кода, выполняемого от имени суперпользователя, и снижает риск получения root привилегий при взломе privsep службы. Первые реализации не позволяли использовать в portable варианте Privilege Separation вместе с включенной компрессией передаваемых данных, однако это ограничение было снято в последних версиях OpenSSH.

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