Jak zapobiec dostępowi do całej konsoli, z wyjątkiem SSH z uwierzytelnieniem kluczowym?

5

Mam środowisko serwera, dla którego jedynymi metodami logowania byłyby SSH lub lokalny terminal w centrum danych. Skonfigurowałem to, aby umożliwić konkretnemu użytkownikowi logowanie się tylko za pomocą klucza, a nie hasła (jawnie wyłączone). Ten użytkownik również nie ma ustawionego hasła.

Ze względu na rzeczy, które ten użytkownik musi zrobić na serwerze, przyznałem dostęp do sudo bez hasła, używając (w pliku sudoers):

username ALL=(ALL) NOPASSWD: ALL

Oczywiście może to być problem z bezpieczeństwem. Muszę upewnić się, że użytkownik nie może zalogować się do serwera w żaden inny sposób niż SSH, używając naszych ściśle strzeżonych kluczy SSH. Wszystkie loginy SSH są wyjątkowo dobrze chronione i blokowane również na określonym adresie IP, dzięki czemu w połączeniu z logowaniem na podstawie klucza są bezpieczne (jak to możliwe). Chcę wyeliminować możliwość logowania za pośrednictwem naszego centrum danych, aby zapewnić, że użytkownik nie będzie mógł się zalogować z tego miejsca, a tylko SSH.

Jak zapobiec próbom nieautoryzowanego dostępu?

John Porter
źródło
„Ten użytkownik również nie ma ustawionego hasła”. To znaczy...?
Ignacio Vazquez-Abrams
Użytkownik linuksa nie musi mieć hasła
John Porter
To nie odpowiada na pytanie.
Ignacio Vazquez-Abrams
Czy zastanawiałeś się nad ustawieniem hasła dla ponad 30 losowych znaków (niektóre prawie niemożliwe do wpisania), aby zapobiec logowaniu innym niż SSH?
killermist
To jest dobry pomysł.
John Porter

Odpowiedzi:

1

Możesz ustawić hasło dla użytkownika, które ma ponad 30 losowych znaków (niektóre prawie niemożliwe do wpisania), aby zapobiec logowaniu innym niż SSH.

Nie powstrzymałoby to jednak użytkownika przed zmianą hasła za pośrednictwem SSH, a następnie użyciem terminalu centrum danych w celu uzyskania bezpośredniego dostępu.

killermist
źródło
Użyłem masowego pomysłu na hasło i jest ono bezpieczniejsze. Jak dodano w komentarzu powyżej, SSH jest bezpieczny, ponieważ jest oparty na kluczach, a maszyna z kluczem znajduje się w moim biurze. Dzięki za pomoc.
John Porter
2

Zawsze uważałem, że lepszym rozwiązaniem jest ustawienie wartości skrótu hasła (w / etc / shadow) na niepoprawną wartość. Zwykle używam ciągu %% NP %%. To skutecznie wyłącza uwierzytelnianie hasła dla tego użytkownika i zabrania wszelkiego rodzaju brutalnego łamania hasła. Biorąc pod uwagę, że żadne dane wejściowe do algorytmu skrótu hasła nigdy nie będą pasować do skrótu w pliku cienia, jest to wyjątkowo bezpieczne.

W systemie Linux zamiast (lub oprócz) powyższego można ustawić parametry kontroli dostępu w /etc/security/access.conf. W tym pliku znajduje się kilka przykładów, które powinny zapewnić ci to, czego potrzebujesz. Jednym z zastrzeżeń dotyczących tego podejścia jest to, że można bardzo łatwo zablokować root przed zalogowaniem się z konsoli, co jest bardzo złym pomysłem w nagłych przypadkach.

Michael
źródło