безопасность

Ограничения прав пользователя ssh туннеля

SSH туннели являются очень удобным средством для работы.
При использовании этой функциональности возникает естественное желание ограничить права пользователя, который может подключиться к серверу по ssh и создать туннель. Подразумевается использование файрвола для разрешения подключаться по ssh только с известных ip.
Для использования ssh туннелей создадим в системе пользователя tunuser без shell-a, без домашнего каталога.

pw useradd tunuser -s /usr/sbin/nologin -d /var/empty
# И зададим пользователю пароль
passwd tunuser

Заметки о ssh туннелях

SSH туннели.

Синтаксис, в общем виде:

ssh -L [bind address(начало тоннеля):]bindport:host(конец тоннеля):hostport sshserver.com -l sshuser

ssh -R [bind address(начало тоннеля):]bindport:host(конец тоннеля):hostport sshserver.com -l sshuser

[.] необязательный параметр

где под началом и концом туннеля имеется ввиду направление работы туннеля, т.е. откуда и куда форвардится tcp соединение через ssh

bindport- порт на котором слушает ssh клиент или ssh сервер

hostport - порт к которому подключается ssh клиент или ssh сервер

fwknop

fwknop - одна из реализаций Port knoсking.
Как сказано в документации на http://www.cipherdyne.org/fwknop/docs/fwknop-tutorial.html
fwknop использует Single Packet Authorization.
Механизм работы такой - в системе для подключения к какому-либо сервису извне ( чаще всего - ssh ) настраивается файрвол для разрешения прохождения только установленых соединений.
Например, для FreeBSD, примерно так:
ipfw add 5000 allow ip from any to any via em0 established

L2 туннели с помощью OpenVPN

(Статья в режиме правки)
OpenVPN позволяет создавать туннели в режиме не только routed vpn, но и bridged vpn.
Режим bridged подразумевает объединение в bridge(мост) ethernet интерфейса с одним или более виртуальным TAP интерфейсом, который по туннелю OpenVPN будет соединен с аналогичным bridg-ом на другой стороне туннеля. Это является программным аналогом физического коммутатора(свича) и позволяет логически соединить две (или более) расположенные отдельно друг от друга сети в одну так, как будто это одна сеть, т.е. объединить эти сети на уровне L2.

Подключение по rdp с использованием ssh туннелей через промежуточный сервер

Использование ssh туннеля для подключения к удаленному рабочему столу windows, в случае если ssh сервер находится в одной сети с компьютером, к рабочему столу которого нужно подключиться, достаточно тривиально.

OCSP stapling для nginx

OCSP - (Online Certificate Status Protocol) протокол для проверки валидности SSL сертификата, т.е. отозван он или нет. Был создан как альтернатива CRL для уменьшения времени SSL соединения. При работе по протоколу CRL (Certificate Revocation List) браузер загружает список серийных номеров отозванных сертификатов и проверяет текущий. При работе по протоколу OCSP браузер отправляет запрос по OCSP URL сертификата и получает ответ, содержащий статус сертификата.

ssl сертификаты от wosign.com

При очередном возвращении к вопросу обнаружил, что бесплатный ssl сертификат можно получить на китайском центре сертификации wosign.com. Информацию об этом нашел на хабре
http://habrahabr.ru/post/249529/
Чтобы не забыть, описываю процедуру которую пришлось выполнить для получения сертификата. Сразу замечу что часть страниц сайта на китайском, но компьютерный перевод помогает достаточно хорошо.
Итак, 1. Вначале надо зарегистрироваться на
https://login.wosign.com/reg.html

Уведомление на email при логине на сервер по ssh

Решил настроить отсылку уведомления на email админу в случае если на сервер кто-то залогинился по ssh. Погуглив вопрос, нашел метод с использованием PAM, если точнее, с использованием модуля pam_exec.so, который позволит выполнить скрипт, отсылающий уведомление.
Суть метода:
в файле /etc/pam.d/sshd секцию

# session
session         required        pam_permit.so
приводим к виду
# session
session         required        pam_permit.so
session         optional        pam_exec.so /root/scripts/pam/ssh.login.email.notify.sh

Openssl и libgost.so

Openssl согласно ГОСТ
Оригинал - http://www.cryptocom.ru/products/openssl-1-config-en.html
Цитата:
---------------------------
MAGPRO DNS. INSTALLATION AND CONFIGURING OpenSSL 1.0.0

Already installed
If you installed OpenSSL 1.0.0 from packages, be sure it compiled with the options:
shared, zlib, enable-rfc3779
Option shared is necessary!
If the libgost.so library presents in $PREFIX/lib/engines it should work.

Installation from FreeBSD ports
On FreeBSD you may install OpenSSL 1.0.0 from port collection.
$ cd /usr/ports/security/openssl

Ленты новостей