![SSH: 약한 암호를 비활성화하는 방법은 무엇입니까?](https://linux55.com/image/101956/SSH%3A%20%EC%95%BD%ED%95%9C%20%EC%95%94%ED%98%B8%EB%A5%BC%20%EB%B9%84%ED%99%9C%EC%84%B1%ED%99%94%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
우리 조직의 보안 팀에서는 취약한 키를 발급하므로 취약한 비밀번호를 비활성화하라고 지시합니다.
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_config
man 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
답변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