Блог пользователя df-nix

Настройка параметров запуска tmux

Если я пользуюсь tmux на рабочем компьютере, то при его включении запускаю один и тот же набор окон в tmux. Чтобы не выполнять каждый раз одни и те же команды в tmux, можно настроить его поведение при запуске сессии. Для этого создаем файл
~/.tmux.conf примерно такого вида

# initialize sessions
new -s session01 'exec mc'
neww 'exec mc'
neww 'exec mc'
neww
neww
neww
neww 'exec top'
# split window vertically and run command in secod window
splitw -h 'vnstat -l -i enp1s0 -ru'
# set active the window '4'

Использование бесплатного сертификата Let'sEncrypt для postfix

Ранее я написал кратко о способах получения и использования сертификатов Let'sEncrypt.
Эти сертификаты можно использовать не только для работы веб-сервера, но и для почты.
Например, можно установить бесплатный сертификат Let'sEncrypt для работы с postfix.
Для этого в конфигурационном файле main.cf небходимо использовать следующие опции

smtpd_tls_cert_file = /usr/local/etc/letsencrypt/live/mydomain.com/fullchain.pem                                                                                                          

Сравнение клавиатурных комбинаций screen и tmux

screen и tmux являются терминальными мультиплексорами, которые позволяют в одном физическом терминале создавать

n-ное количество виртуальных или псевдо терминалов, каждый из которых работает независимо друг от друга, а их совокупность

образуюет сессию. После создания сессии от нее можно отключиться, причем все терминалы будут продолжать работать, а затем, в любое время подключиться к ней.

При уничтожении ( закрытии, завершении ) всех виртуальных терминалов во всех сессиях, screen или tmux завершают свою работу.

Копирование и вставка в screen

Одной из удобных возможностей screen является режим копирования текста из одного окна в буфер обмена и вставки его в нужном месте другого окна.
Для того чтобы скопировать и вставить в screen, нужно перейти в режим копирования, нажав Ctrl-A+[

Adobe Flash Player для windows

Тем, у кого не получается загрузить Adobe Flash Player для windows с официального сайта -
можно взять тут:
https://yadi.sk/d/Impq5Mrfnm-cqA
По ссылке размещен архив с установщиком, который поможет тем, у кого не получается установить Adobe Flash Player с официального сайта. Скачайте, распакуйте и запустите файл, следуйте инструкциям установщика.

Двухфакторная аутентификация ssh

Обычно при подключении по ssh при авторизации используется пароль пользователя. Для повышения безопасности можно сгенерировать на клиенте пару ключей и передать публичный ключ на сервер

ssh-keygen -b 4096
ssh-copy-id user@myserver.com

Для дополнительной безопасности, рекомендую в файле сервера
/home/user/.ssh/authorized_keys в начале строки, куда был помещен публичный ключ клиента, добавить ip адрес клиента, при подключении с которого будет разрешено использовать этот ключ:
from="123.234.123.234"

Как предотвратить разрыв ssh сессии

Чтобы ssh сессия на разрывалась при отсутствии активности, в настройках сервера sshd_config прописываем:

# Промежуток времени в секундах между отправкой alive пакетов внутри ssh соединения при отсутствии активности
ClientAliveInterval 120
# Количество alive пакетов без ответа клиента до разрыва сессии
ClientAliveCountMax 720

и аналогично в настройках клиента в ssh_config:
# Промежуток времени в секундах между отправкой alive пакетов внутри ssh соединения при отсутствии активности
ServerAliveInterval 120

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

Выборочное обновление портов в 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` в конце, а

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