Перейти к содержанию

2024

Настройка rdp в Linux

Обычно, для управления удаленными системами на базе ОС Windows, используется протокол rdp. Но можно использовать этот же протокол для доступа и к Unix-системам. Это может быть удобно для администраторов, работающих с ПК под Windows.

Настройка работы в Linux через прокси

Если система расположена в сети за прокси-сервером, вы не сможете совсем "по-простому" обновлять систему, устанавливать пакеты и многое другое. Для решения этой проблемы необходимо выполнить небольшую настройку.

Многие приложения используют переменные среды http_proxy и https_proxy, например:

export http_proxy=http://username:password@proxy_address:proxy_port
export https_proxy=http://username:password@proxy_address:proxy_port

Иногда может быть нужно установить такие же переменные среды, но их имена - в верхнем регистре:

export HTTP_PROXY=http://username:password@proxy_address:proxy_port
export HTTPS_PROXY=http://username:password@proxy_address:proxy_port

Для работы устаревшего менеджера пакетов apt-get, нужно выполнить:

visudo

В открывшемся редакторе vi будет загружен файл конфигурации, в котором добавьте строку:

Defaults    env_keep="http_proxy"

Для работы консольного клиента git через прокси, нужно предварительно установить переменные конфигурации:

git config --global http.proxy http://username:password@server_ip_address:server_port_number
git config --global https.proxy https://username:password@server_ip_address:server_port_number

Установленные параметры будут записаны в файл .gitconfig в домашней директории пользователя и могут быть использованы повторно после перезагрузки.

Скрипт преобразования flac в MP3

Пришлось разбирать свою "аудиотеку", где часть файлов была сохранена в формате flac. Так как я не слух все-равно не понимаю разницу между этим форматом и MP3 от 48 кГц, то решил сэкономить дисковое пространство, переконвертировав файлы.

Заметка о fstab

fstab (file systems table) - один из конфигурационных файлов в UNIX-подобных системах, который содержит информацию о различных файловых системах и устройствах хранения информации компьютера; описывает, как диск (раздел) будет использоваться или как будет интегрирован в систему.

Настройка параметров безопасности SSH

Здесь перечисляются и кратко описываются параметры безопасности сервиса OpenSSH. Это может быть не критичным, но подразумевается, что настройка выполняется в только что установленной операционной системе. Набор рассматриваемых параметров характерен для OpenSSH 9.3p2 с OpenSSL 1.1.1t.

Монтирование ресурса сетевого хранилища HNS-B72765

Если есть старое устройство со встроенным Linux и, соответственно, устаревшими версиями сетевых сервисов, как например NAS HNS-B72765, можно использовать следующую команду для монтирования сетевого ресурса (нужно просто указать версию протокола).

Настройка защищенного SSH в Debian

Здесь кратко описана настройка сервера ssh, а также генерация и передача ключа пользователя на сервер. Для этого примера настройка выполнялась в Debian 12.

Генерация ключа пользователя

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

Генерацию ключа для пользователя системы, обрабатывающей чувствительные данные, следует выполнять в системе, которой вы доверяете. Это может быть как домашний компьютер, так и специализированный ПК в рамках удостоверяющего центра, да и все что угодно, если вы уверены в конфиденциальности данных. Не следует выполнять генерацию ключа на чужом ПК, или в системе, где устанавливается разнообразное ПО из недоверенных источников.

При генерации ключа будет создано два файла: один из них будет содержать секретную (закрытую/приватную) часть ключа, а другой - открытую (публичную) часть. Файл закрытой части ключа необходимо держать в надежном хранилище и исключать его распространения, а файл открытой части можно передавать на серверы, где вам необходимо проходить аутентификацию.

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

Выполним генерацию ключевой пары:

ssh-keygen -t ed25519 -C "COMMENT" -f "FILENAME"

Далее, чтобы сервер мог проверить подлинность клиента, нужно файл открытой части ключа передать на этот сервер.

Передача ключа на сервер

Есть несколько способов передачи файла с открытой частью ключа на сервер:

  • с использованием физического носителя;
  • с использованием утилиты ssh-copy-id;
  • с использованием буфера обмена;
  • путем копирования файла на сервер.

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

Конфигурация сервера ssh

Конфигурация сервера выполняется путем редактирования файла конфигурации /etc/ssh/sshd_config. В этом файле содержатся все необходимые параметры для работы.

Чтобы проверить корректность параметров конфигурации можно выполнить:

sshd -T

Если ошибок нет, можно применить настройки, перезапустив сервер:

systemctl restart sshd

Для просмотра статуса сервера выполните:

systemctl status sshd

Ниже приводится пример базового файла конфигурации:

AddressFamily inet
AllowAgentForwarding no
AllowStreamLocalForwarding no
AllowTcpForwarding no
# AllowUsers administrator@...
AuthenticationMethods publickey
AuthorizedKeysFile /etc/ssh/authorized-keys/%u
Banner none
DebianBanner no
Ciphers aes128-ctr,aes192-ctr,aes256-ctr,chacha20-poly1305@openssh.com,aes256-gcm@openssh.com,aes128-gcm@openssh.com
ClientAliveCountMax 1
ClientAliveInterval 300
DisableForwarding yes
KbdInteractiveAuthentication no
KexAlgorithms curve25519-sha256,curve25519-sha256@libssh.org,diffie-hellman-group14-sha256,diffie-hellman-group16-sha512,diffie-hellman-group18-sha512,diffie-hellman-group-exchange-sha256
HostKeyAlgorithms -ecdsa-sha2-nistp256
# ListenAddress ...
LoginGraceTime 20
LogLevel VERBOSE
MACs hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com,umac-128-etm@openssh.com
MaxAuthTries 3
PermitEmptyPasswords no
PermitRootLogin no
PubkeyAuthentication yes
SyslogFacility AUTHPRIV
# Subsystem sftp /usr/lib/openssh/sftp-server
Subsystem sftp internal-sftp
X11Forwarding no
X11UseLocalhost no
Compression no
MaxSessions 2
# Port ...
TCPKeepAlive no
UseDNS no
UsePAM yes
# Match User USERNAME
#  ChrootDirectory /home/...
#  AuthenticationMethods publickey password
#  PasswordAuthentication yes

Обратите внимание, в приведенном выше примере некоторые параметры закомментированы. Их вы можете настроить в соответствии с вашими потребностями, поэтому я счел нужным оставить их здесь без рекомендаций. Кроме этого, имейте в виду, что данная конфигурация зависит от версии сервера ssh и некоторые параметры могут быть неподходящими или небезопасными в вашем случае.

На сервере должна быть создана директория /etc/ssh/authorized-keys/, в которую необходимо помещать файлы с открытыми частами ключей пользователей. Имя каждого такого файла должно быть эквивалентным имени пользователя.

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

Файл закрытой части ключа следует делать доступным для чтения и записи только его владельцу. К файлу открытой части ключа такого требования не предъявляется. Вместо этого, необходимо установить корректные права на директорию и файл открытой части ключа, размещаемые на сервере.

Согласно указанной выше конфигурации, файлы открытых частей ключей всех пользователей размещаются в директории /etc/ssh/authorized-keys. Установите для этой директорию права 755 (владелец по-умолчанию "root" имеет полные права, группа и остальные - только чтение и выполнение):

chmod 755 /etc/ssh/authorized-keys

На файлы открытых частей ключей пользователей установите права владения и чтения только для соответствующих пользователей:

chown USERNAME:USERNAME /etc/ssh/authorized-keys/USERNAME
chmod 400 /etc/ssh/authorized-keys/USERNAME

Проверка безопасности

Для проверки настройки безопасности вашей конфигурации рекомендуется использование сканеров безопасности. Одним из таких сканеров являются ssh-audit и lynis, они входят в стандартный репозиторий Debian.

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