Есть несколько описаний терминалов, которые можно использовать для консоли Linux. Самая часто используемая из них, конечно же, устанавливается с помощью TERM = linux
.
В качестве альтернативы существует TERM = linux-16color
, в котором используются комбинации жирного шрифта / цвета, которые вы можете увидеть в ответе @angus.
Сравнение linux
и linux-16color
с infocmp
показывает следующее:
comparing linux to linux-16color.
comparing booleans.
comparing numbers.
colors: 8, 16.
ncv: 18, 63.
pairs: 64, 256.
comparing strings.
setab: '\E[4%p1%dm', '\E[4%p1%{8}%m%d%?%p1%{7}%>%t;5%e;25%;m'.
setaf: '\E[3%p1%dm', '\E[3%p1%{8}%m%d%?%p1%{7}%>%t;1%e;21%;m'.
% t; 5
и % t; 1
штук используют атрибуты blink- и bold (функция аппаратного обеспечения дисплея) для получения ярких цветов фона и переднего плана в зависимости от значения, подаваемого в tput setab
и tput setaf
.
Вот скриншот, сделанный с помощью тестовой программы ncurses с linux-16color
:
Если у вас нет явного списка шифров, установленного в ssh_config
с использованием ключевого слова Ciphers
, тогда значение по умолчанию согласно man 5 ssh_config
(на стороне клиента) и man 5 sshd_config
(на стороне сервера), это:
aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,
aes128-gcm@openssh.com,aes256-gcm@openssh.com,
chacha20-poly1305@openssh.com,
aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,aes192-cbc,
aes256-cbc,arcfour
Обратите внимание на наличие шифров arcfour. Поэтому вам, возможно, придется явно установить более ограничительное значение для Шифры
.
ssh -Q cipher
от клиента сообщит вам, какие схемы может поддерживать ваш клиент. Обратите внимание, что на этот список не влияет список шифров, указанный в ssh_config
. Удаление шифра из ssh_config
не удалит его из вывода ssh -Q cipher
. Кроме того, использование ssh
с параметром -c
для явного указания шифра переопределит ограниченный список шифров, который вы установили в ssh_config
, и, возможно, позволит вам использовать слабый шифр. Это функция, которая позволяет вам использовать ваш ssh
клиент для связи с устаревшими серверами SSH, которые не поддерживают более новые более надежные шифры.
nmap --script ssh2-enum-algos -sV -p
сообщит вам, какие схемы поддерживает ваш сервер.
Чтобы отключить RC4 и использовать безопасные шифры на сервере SSH, жестко запрограммируйте следующее в / etc / ssh / sshd_config
ciphers chacha20-poly1305@openssh.com,aes256-gcm@openssh.com,aes128-gcm@openssh.com,aes256-ctr,aes192-ctr,aes128-ctr
ИЛИ если вы предпочитаете не диктовать шифры, а просто хотите удалить небезопасные шифры, вместо этого запустите это в командной строке (в режиме sudo):
sshd -T | grep ciphers | sed -e "s/\(3des-cbc\|aes128-cbc\|aes192-cbc\|aes256-cbc\|arcfour\|arcfour128\|arcfour256\|blowfish-cbc\|cast128-cbc\|rijndael-cbc@lysator.liu.se\)\,\?//g" >> /etc/ssh/sshd_config
Вы можете проверить шифры, которые в настоящее время используются вашим сервером, с помощью:
sudo sshd -T | grep ciphers | perl -pe 's/,/\n/g' | sort -u
Убедитесь, что ваш ssh-клиент может используйте эти шифры, запустите
ssh -Q cipher | sort -u
, чтобы увидеть список.
Вы также можете указать своему SSH-клиенту согласовывать только безопасные шифры с удаленными серверами. В / etc / ssh / ssh_config
установите:
Host *
ciphers chacha20-poly1305@openssh.com,aes256-gcm@openssh.com,aes128-gcm@openssh.com,aes256-ctr,aes192-ctr,aes128-ctr
Вышеуказанные фрагменты взяты из здесь
Для проверки настроек вашего сервера вы можете использовать ssh-audit
включить/отключить шифр нужно добавить/удалить в файле /etc/ssh/sshd _config После редактирования этого файла сервис должен быть перезагружен
systemctl reload sshd
/etc/init.d/sshd reload
Затем, запустив эту команду из клиента, вы узнаете, какие схемы поддерживаются
ssh -Q cipher
Чтобы проверить, включен ли шифр arcfour на сервере запустите эту команду
ssh localhost -c arcfour
Чтобы проверить, включен ли шифр arcfour128 на сервере, выполните эту команду
ssh localhost -c arcfour128
Как отключить слабый шифр ssh, 100% работает, проверено на Fedora 29. Проблема :Nessus сообщает, что мой сервер samba4 использует ненадежные шифры aes256 -cbc и aes128 -cbc. Поэтому я поместил эти строки в/etc/ssh/sshd_config
MACs hmac-sha2-512,hmac-sha2-256
Ciphers aes256-ctr,aes192-ctr,aes128-ctr
KexAlgorithms diffie-hellman-group14-sha256,diffie-hellman-group16-sha512,diffie-hellman-group18-sha512,diffie-hellman-group-exchange-sha256,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,curve25519-sha256,curve25519-sha256@libssh.org
Et voilà!.. он по-прежнему использует шифр cbc, потому что эта команда работает:(
ssh -c aes256-cbc samba4
Итак, я проверяю полезный файл systemd и обнаруживаю, что служба sshd использует другой файл для шифрования
/etc/crypto-policies/back-ends/opensshserver.config
Сделайте резервную копию файла для безопасности
cp /etc/crypto-policies/back-ends/opensshserver.config /etc/crypto-policies/back-ends/opensshserver.config.old
Отредактируйте его и удалите шифр cbc. Перезапустите службу
systemctl restart sshd
И, наконец, тест, работает нормально.. cbc отключен.
ssh -c aes256-cbc samba4
Unable to negotiate with 192.168.0.48 port 22: no matching cipher found. Their offer: aes256-gcm@openssh.com,chacha20-poly1305@openssh.com,aes256-ctr,aes128-gcm@openssh.com,aes128-ctr
SSH: How to disable weak ciphers?
Asked 4 years ago
То, что вы спрашиваете, находится в /etc/ssh/sshd_config
.
Приведенный ниже файл взят из RHEL 7.9 и настроен на STIG , на сегодняшний день их последняя версия — 2.8. Они вызвали слабые шифры ssh и попросили их не использовать... поэтому у вас остается то, что указано для Ciphers
и MACs
.
Согласно веб-поиску:проблема с шифром cbc
The problem with CBC mode is that the decryption of blocks is dependant on the previous ciphertext block. This means attackers can manipulate the decryption of a block by tampering with the previous block using the commutative property of XOR.Oct 16, 2019. CBC Mode is Malleable. Don't trust it for Authentication...
Все эти вещи выше моего понимания, поэтому я не могу ручаться за то, насколько они точны или соответствуют контексту, все, что я знаю, они говорят, что это плохо.
Поэтому шифры aes ###-cbc удалены и используются только шифры aes ###-ctr . Чтобы полностью ответить на ваш вопрос, используйте только aes256-ctr
и hmac-sha2-512
, так как все остальное будет слабее .
# This is from RHEL 7.9 x86-64
#
# $OpenBSD: sshd_config,v 1.100 2016/08/15 12:32:04 naddy Exp $
# If you want to change the port on a SELinux system
# semanage port -a -t ssh_port_t -p tcp #PORTNUMBER
#
PermitEmptyPasswords no
PermitUserEnvironment no
HostbasedAuthentication no
Ciphers aes128-ctr,aes192-ctr,aes256-ctr
ClientAliveInterval 0
# ** depercated **
RhostsRSAAuthentication no
ClientAliveCountMax 3
IgnoreRhosts yes
PrintLastLog yes
PermitRootLogin no
IgnoreUserKnownHosts yes
Protocol 2
MACs hmac-sha2-256,hmac-sha2-512
GSSAPIAuthentication no
KerberosAuthentication no
StrictModes yes
UsePrivilegeSeparation sandbox
Compression no
X11Forwarding yes
Port 22
banner /etc/issue
UsePAM yes
LoginGraceTime 2m
MaxAuthTries 6
MaxSessions 10
TCPKeepAlive yes
UseLogin no
AddressFamily any
SyslogFacility AUTHPRIV
PubkeyAuthentication yes
SyslogFacility AUTH
LogLevel INFO
PrintMotd yes
PermitTunnel no
ShowPatchLevel no
UseDNS yes
#ListenAddress 0.0.0.0
#ListenAddress ::
#RekeyLimit default none
PasswordAuthentication yes
ChallengeResponseAuthentication no
KerberosOrLocalPasswd yes
KerberosTicketCleanup yes
KerberosGetAFSToken no
KerberosUseKuserok yes
GSSAPICleanupCredentials no
GSSAPIStrictAcceptorCheck yes
GSSAPIKeyExchange no
GSSAPIEnablek5users no
AllowAgentForwarding yes
AllowTcpForwarding yes
GatewayPorts no
X11DisplayOffset 10
X11UseLocalhost yes
PermitTTY yes
PidFile /var/run/sshd.pid
MaxStartups 10:30:100
ChrootDirectory none
VersionAddendum none
HostKey /etc/ssh/ssh_host_rsa_key
#HostKey /etc/ssh/ssh_host_dsa_key
HostKey /etc/ssh/ssh_host_ecdsa_key
HostKey /etc/ssh/ssh_host_ed25519_key
# The default is to check both.ssh/authorized_keys and.ssh/authorized_keys2
# but this is overridden so installations will only check.ssh/authorized_keys
AuthorizedKeysFile .ssh/authorized_keys
#AuthorizedPrincipalsFile none
#AuthorizedKeysCommand none
#AuthorizedKeysCommandUser nobody
# Accept locale-related environment variables
AcceptEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES
AcceptEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT
AcceptEnv LC_IDENTIFICATION LC_ALL LANGUAGE
AcceptEnv XMODIFIERS
# override default of no subsystems
Subsystem sftp /usr/libexec/openssh/sftp-server
# Example of overriding settings on a per-user basis
#Match User anoncvs
# X11Forwarding no
# AllowTcpForwarding no
# PermitTTY no
# ForceCommand cvs server