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

Ограничения прав пользователя 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.

Копрование файла с удаленного хоста на локальный с использованием ssh

Есть задача безопасно скопировать файл с сервера на рабочий компьютер который находится за файрволом. Сервер доступен по ssh.

scp username@remotehost:filename /localpath/filename

Можно и так:

ssh -f username@10.11.12.13 -L 45678:10.11.12.13:22 -N
scp -P 45678 username@localhost:/home/username/file.txt .

Здесь сначала создается туннель в котором порт 22 сервера перенаправляется на порт 45678 локальной машины, N - означает не выполнять команд на сервере, f - работать в фоновом режиме, т.е. позже нужно будет уничтожить запущенный процесс.

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

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

Создание самоподписного сертификата openssl

Для создания самоподписного сертификата с помощью OpenSSL:

openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout server.key -out server.crt

openssl: основной инструмент командной строки для создания и управления сертификатами, ключами и другими файлами OpenSSL.

req: This subcommand specifies that we want to use X.509 certificate signing request (CSR) management. The "X.509" is a public key infrastructure standard that SSL and TLS adheres to for its key and certificate management. We want to create a new X.509 cert, so we are using this subcommand.

SquidClamav

SquidClamav - антивирус для squid на основе ClamAv. По информации с сайта разработчика
http://squidclamav.darold.net/ :
Использование SquidClamav позволяет повысить безопасность web трафика в сети. SquidClamav наиболее эффективный squid реддиректор и icap антивирус для http траффика который доступен бесплатно, написан на С и может обрабатывать тысячи содинений. SquidClamav создан с учетом скорости и безопасности, впервые использован и протестирован для обеспечения безопасности сети с более чем 2500 пользователей. Известно также что он быстро работает с 15000+ пользователями.

sftp chroot

Для ограничения пользователей при работе по sftp через ssh можно использовать chroot.
В /etc/ssh/sshd_config добавить

Subsystem   sftp   /usr/libexec/sftp-server
AllowUsers user1
Match user user1
ChrootDirectory /home/user1
X11Forwarding no
AllowTcpForwarding no    
ForceCommand internal-sftp

Все каталоги от корня до домашнего каталога пользователя включительно должны быть доступны для записи только руту, иначе chroot не будет работать, в нашем случае каталог /home/user1 должен быть
drwxr-xr-x  5 root       wheel      512  3 apr 07:54 user1

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