SSH: Как отключить слабые шифры?

Есть несколько описаний терминалов, которые можно использовать для консоли 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 :

example of linux-16color

49
30.12.2016, 14:06
5 ответов

Если у вас нет явного списка шифров, установленного в 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 сообщит вам, какие схемы поддерживает ваш сервер.

51
27.01.2020, 19:33

Чтобы отключить 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

45
27.01.2020, 19:33

включить/отключить шифр нужно добавить/удалить в файле /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
4
27.01.2020, 19:33

Как отключить слабый шифр 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
3
27.01.2020, 19:33

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
0
18.01.2021, 21:12

Теги

Похожие вопросы