SSH: 약한 암호를 비활성화하는 방법은 무엇입니까?

SSH: 약한 암호를 비활성화하는 방법은 무엇입니까?

우리 조직의 보안 팀에서는 취약한 키를 발급하므로 취약한 비밀번호를 비활성화하라고 지시합니다.

  arcfour
  arcfour128
  arcfour256

하지만 ssh_config 및 sshd_config 파일에서 이러한 비밀번호를 찾아보았고 해당 비밀번호에 주석이 달린 것을 발견했습니다.

 grep arcfour *
ssh_config:#   Ciphers aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-cbc,3des-cbc

SSH에서 이러한 암호를 비활성화하려면 어디를 확인해야 합니까?

답변1

ssh_config키워드를 사용할 때 암호 목록을 명시적으로 설정하지 않으면 (클라이언트 측) 및 (서버 측) Ciphers에 따른 기본값은 다음과 같습니다.man 5 ssh_configman 5 sshd_config

            aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,
            [email protected],[email protected],
            [email protected],
            aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,aes192-cbc,
            aes256-cbc,arcfour

arcfour 비밀번호가 있는지 확인하세요. 따라서 더 제한적인 값을 명시적으로 설정해야 할 수도 있습니다 Ciphers.

ssh -Q cipher고객이 제공하는 정보를 통해 고객이 지원할 수 있는 시나리오를 알 수 있습니다. 이 목록은 에 지정된 암호 목록의 영향을 받지 않습니다 ssh_config. 에서 비밀번호를 제거해도 ssh_config출력에서는 제거되지 않습니다 ssh -Q cipher. 또한 비밀번호를 ssh명시적 으로 지정하는 옵션을 사용하면 -c설정한 비밀번호 제한 목록이 무시되고 ssh_config취약한 비밀번호를 사용할 수 있습니다. 이 기능을 사용하면 클라이언트를 사용하여 ssh더 새롭고 강력한 암호를 지원하지 않는 오래된 SSH 서버와 통신할 수 있습니다.

nmap --script ssh2-enum-algos -sV -p <port> <host>귀하의 서버가 어떤 솔루션을 지원하는지 알려줄 것입니다.

답변2

RC4를 비활성화하고 SSH 서버에서 보안 비밀번호를 사용하려면 다음을 하드코딩하세요./etc/ssh/sshd_config

ciphers [email protected],[email protected],[email protected],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\|[email protected]\)\,\?//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 [email protected],[email protected],[email protected],aes256-ctr,aes192-ctr,aes128-ctr

위 스니펫의 출처는 다음과 같습니다.여기
서버 설정을 테스트하려면 다음을 사용할 수 있습니다.SSH 감사

답변3

비밀번호 목록을 명시적으로 지정할 때의 문제점은 새 비밀번호가 나타날 때 수동으로 추가해야 한다는 것입니다. 대신, 삭제하려는 비밀번호를 나열하고 목록 앞에 "-" 문자를 추가하세요(개별 비밀번호가 아님). 따라서 이 경우 Ciphers 라인은 다음과 같아야 합니다.

Ciphers -arcfour*

또는 원하는 경우:

Ciphers -arcfour,arcfour128,arcfour256

sshd_config 매뉴얼 페이지에서비밀번호옵션(2017-03-20에 출시된 OpenSSH 7.5 이후):

지정된 값이 "+" 문자로 시작하는 경우 지정된 비밀번호는 비밀번호를 바꾸는 대신 기본 설정에 추가됩니다. 지정된 값이 "-" 문자로 시작하는 경우 지정된 비밀번호(와일드카드 포함)가 기본 세트에서 대체되는 대신 제거됩니다.

이는 다음에도 적용됩니다.Kex 알고리즘그리고옵션.

답변4

비밀번호를 활성화/비활성화하려면 /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

관련 정보