FreeBSD

Заметки о 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 сервер

Выборочное обновление портов в FreeBSD

Возникла необходимость обновить только php56 одной командой. В принципе, такой вариант возможен не только для php56.
Выполняем:

 pkg info | grep php | awk '{print $1}' | sed 's/-5.6.38//' | xargs pkg upgrade -y

Здесь
pkg info | grep php - выводит совпадения только для установленных пакетов, содержащих php56, что-то вроде
php56-5.6.38                   PHP Scripting Language

awk '{print $1}' выводит только название пакета без его описания
sed 's/-5.6.38//' - обрезает `-5.6.38` в конце, а

dmidecode

dmidecode - утилита для экспорта информации DMI в удобочитаемый формат.
DMI - Desktop Management Interface. Как пишет мануал, DMI иначе называют SMBIOS - System Management BIOS.
С помощью этой утилиты можно получить информацию о компьютерном железе, не вскрывая его, что бывает очень удобно.
Вывод достаточно большой, но его можно сократить, если использовать ключ --type, которым сужается тип выводимой информации:

Type   Information
       --------------------------------------------
          0   BIOS
          1   System
          2   Baseboard
          3   Chassis
          4   Processor

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

Получение сертификатов Let'sEncrypt

Как сказано на главной странице letsencrypt.org :
"Let’s Encrypt is a free, automated, and open Certificate Authority" то есть это бесплатный, автоматизированный и открытый Центр Сертификации.
В нем можно получить бесплатный сертификат для работы домена по https протоколу, который будет поддерживаться всеми современными браузерами, причем процесс обновления сертификата можно автоматизировать. Естественно, существуют ограничения, подробнее тут https://letsencrypt.org/docs/rate-limits.
Как это работает, в двух словах.

Транслитерация в командной строке

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

#! /bin/sh
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin
#
# транслитерация по  ГОСТ 7.79.2000 (Транслитерация по системе Б)

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 - работать в фоновом режиме, т.е. позже нужно будет уничтожить запущенный процесс.

Обновление samba 3.6 --> samba 4.3

Для обновления более не поддерживаемой версии samba 3.6 на 4-ку:

portmaster -o net/samba43 samba36-3.6.25_3

копируем /usr/local/etc/smb.conf в /usr/local/etc/smb4.conf
копируем каталог /usr/local/etc/samba в /var/db/samba4/private
копируем каталог /var/db/samba /var/db/samba4
изменяем в /etc/rc.conf
samba_enable="YES" на samba_server_enable="YES"
убиваем работающие процессы nmbd и smbd
Запускаем
service samba_server start

см.
http://www.itsacon.net/computers/unix/upgrading-samba-3-to-4/
https://forums.freebsd.org/threads/56260/

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

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

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