Jak mogę określić obsługiwane MAC, szyfry, długość klucza i KexAlogrithms obsługiwane przez moje serwery ssh?
Muszę utworzyć listę do zewnętrznego audytu bezpieczeństwa. Szukam czegoś podobnego do openssl s_client -connect example.com:443 -showcerts
. Z moich badań ssh
używa domyślnych szyfrów wymienionych w man sshd_config
. Potrzebuję jednak rozwiązania, którego mogę użyć w skrypcie i . Muszę się tutaj poprawić: możesz podać man sshd_config
nie zawiera informacji o długości kluczaServerKeyBits
w sshd_config
.
Myślę, że to ssh -vv localhost &> ssh_connection_specs.out
zwraca potrzebne informacje, ale nie jestem pewien, czy wymienione szyfry są szyframi obsługiwanymi przez klienta czy przez serwer. Nie jestem również pewien, jak uruchomić ten nieinteraktywny skrypt.
Czy istnieje wygodny sposób na uzyskanie SSH
informacji o połączeniu?
sshd -T | grep "\(ciphers\|macs\|kexalgorithms\)"
jak sugeruje @Jakuje działa tylko na hostach RHEL7, ale nie RHEL6. Skończyło się na tymnmap --script SSH2-hostkey localhost
inmap --script ssh-hostkey localhost
ssh -vv
wyświetla obsługiwaną funkcjonalność jako klient do serwera (ctos) i serwer do klienta (stoc). Wydaje się jednak, że wyniki te są ograniczone do tego, co wspierają obie strony, co czyni je mniej przydatnymi do audytu bezpieczeństwa.Odpowiedzi:
W swoim pytaniu brakuje kilku punktów:
ServerKeyBits
jest opcją dla protokołu w wersji 1, który, mam nadzieję, został wyłączony!Obsługiwane szyfry, MAC i KexAlgorytmy są zawsze dostępne w instrukcji i nie ma to nic wspólnego z długościami kluczy.
Włączone chipery, MAC i KexAlgorytmy to te, które są oferowane przy użyciu połączenia, jak wskazałeś. Ale można je zdobyć także na inne sposoby, na przykład za pomocą
sshd -T | grep "\(ciphers\|macs\|kexalgorithms\)"
Aby uzyskać długość klucza twoich kluczy serwerowych, możesz użyć ssh-keygen:
ssh-keygen -lf /etc/ssh/ssh_host_rsa_key.pub
ale prawdopodobnie będziesz chciał także rozmiarów modułów, które są oferowane i używane podczas wymiany kluczy, ale tak naprawdę zależy to od metody wymiany kluczy, ale powinien być również możliwy do odczytania z danych wyjściowych debugowania
ssh -vvv host
.źródło
sshd -T | grep "\(ciphers\|macs\|kexalgorithms\)"
działało tylko moje hosty RHEL7, ale nie RHEL6. Skończyło się na tymnmap --script SSH2-hostkey localhost
inmap --script ssh-hostkey localhost
Wygląda na to, że odpowiedź na /superuser//a/1219759/173408 jest również odpowiedzią na twoje pytanie. Pasuje do jednej linii:
Oto dane wyjściowe na zwykłym komputerze Debian 9.4 z bieżącą wersją SSH:
źródło
PORT STATE SERVICE VERSION 22/tcp filtered ssh
polecenie - chociaż mogę zalogować się do tego samego serwera za pośrednictwem ssh.1.2.3.4
IP swojego serwera?