Dlaczego sshd wymaga bezwzględnej ścieżki?

23

Dlaczego sshdwymaga bezwzględnej ścieżki przy ponownym uruchomieniu, np. /usr/sbin/sshdZamiastsshd

Czy są jakieś konsekwencje dla bezpieczeństwa?

PS komunikat o błędzie:

# sshd
sshd re-exec requires execution with an absolute path
stokrotka
źródło

Odpowiedzi:

20

Dotyczy to OpenSSH od wersji 3.9.

Dla każdego nowego połączenia sshd uruchomi się ponownie, aby upewnić się, że wszystkie randomizacje w czasie wykonywania są generowane ponownie dla każdego nowego połączenia. Aby sshd mógł się ponownie uruchomić, musi znać pełną ścieżkę do siebie.

Oto cytat z informacji o wersji 3.9:

  • Spraw, aby sshd (8) uruchomił się ponownie po zaakceptowaniu nowego połączenia. Ten środek bezpieczeństwa zapewnia, że ​​wszystkie randomizacje w czasie wykonywania są ponownie stosowane dla każdego połączenia, a nie raz, przez cały czas trwania procesu głównego. Obejmuje to mapowania mmap i malloc, adresowanie bibliotek współdzielonych, kolejność mapowania bibliotek współdzielonych, pliki cookie ProPolice i StackGhost w systemach obsługujących takie rzeczy

W każdym razie zwykle lepiej jest zrestartować usługę przy użyciu skryptu inicjującego (np. /etc/init.d/sshd restart) Lub przy użyciu service sshd restart. Jeśli nic więcej, pomoże ci to sprawdzić, czy usługa uruchomi się poprawnie po następnym restarcie ...

( oryginalna odpowiedź, teraz nieistotna: Domyślam się, że /usr/sbinnie ma jej w $ PATH ).

Jenny D.
źródło
Oczywiście jest w $ PATH, w przeciwnym razie jak mogę uzyskać ten komunikat o błędzie z sshd ;-P
daisy
6
Masz na myśli komunikat o błędzie, o którym nie wspomniałeś w swoim poście?
Jenny D.
2
Mój zły, zredagował post
stokrotkę
6

Ma to na celu zapobieżenie iniekcji sshdprogramu gdzieś w jednym z katalogów w twoim PATH i nieumyślnym uruchomieniu go. Ten post z 2004 roku już opisuje ten problem.

Timo
źródło
Chociaż ten post poprawnie opisuje problem, wnioski wyciągnięte w wątku są błędne. To nie jest błąd, to funkcja :-)
Jenny D
@JennyD Dlaczego uważasz, że to błąd? Nigdy tego nie sugerowałem.
Timo,
W poście, do którego linkujesz, jedna odpowiedź brzmiała: „Błąd wkradł się przez aktualizację do najnowszego openssh”. Żadna z odpowiedzi w tym wątku nie wspomniała o prawdziwym celu wymagającym pełnej ścieżki - niektóre wspominały ten sam powód, co robisz, co jest bardzo prawdopodobne i pokazuje, dlaczego dobrym pomysłem jest użycie pełnej ścieżki do dowolnego programu otwierającego możliwości logowania. Ale to nie jest faktyczny powód, dla którego ten program ma takie wymaganie.
Jenny D.