Muszę ograniczyć, które porty mogą być ssh -R
przekazywane dalej przez użytkownika.
Wiem o permitopen
opcji na uprawnionych kluczach, ale jak napisano na stronie podręcznika, ogranicza ona tylko ssh -L
przekierowanie portów lokalnych
Jak omówiono tutaj, użytkownik uzyskałby to samo netcat
lub podobne, ale w tym przypadku użytkownik nie ma dostępu do powłoki
Znalazłem też ten wątek, który mówi o używaniu selinux lub LD_PRELOAD
, ale nigdy wcześniej nie konfigurowałem selinux i nie mogę znaleźć informacji, jak to zrobić LD_PRELOAD
.
może ktoś zrobił łatkę dla openssh, żeby to zaimplementować?
EDYCJA: Znalazłem ten raport o błędach, więc chyba nie został jeszcze zaimplementowany
ssh
security
port-forwarding
Lluís
źródło
źródło
Odpowiedzi:
Zostało to zaimplementowane w OpenSSH 7.8p1, który został wydany 24.08.2018. Cytat z informacji o wersji:
źródło
Istnieje opcja
no-port-forwarding
, której można użyć, która uniemożliwia przekierowanie portów. Obecny przynajmniej od OpenSSH 4.3p2 (CentOS 5.3 - najstarsza maszyna, do której mam dostęp). Połóż to w tym samym miejscu, w którym byś znalazłpermitopen
.źródło
Nie można tego ograniczyć za pomocą ssh. Być może do tego celu można wykorzystać selinux lub iptables. Istnieje jednak alternatywna strategia, która może, ale nie musi, odpowiadać Twoim potrzebom. Użyj powiązania z gniazdami UNIX. Powinno być dostępne od wersji openssh 6.8.
Korzystając z gniazd, masz do dyspozycji system plików ACL (chociaż gniazda bardziej zależą od * nix) do dyspozycji i możesz go użyć, aby uniemożliwić jednemu użytkownikowi powiązanie z innymi gniazdami. Jednak nie zapobiega w żaden sposób powiązaniu z portami, więc w zależności od przypadku użycia może nie pomóc, ale być może porty nie mają znaczenia, jeśli możesz konsekwentnie używać tylko gniazd.
W przypadku gniazd UNIX obsługa wiszących plików gniazd może być problematyczna, ponieważ wydawcy odwrotni próbują połączyć się ponownie. Mam inne pytanie (i odpowiedź) na ten problem. Krótko mówiąc, prawdopodobnie chcesz również użyć
StreamLocalBindUnlink yes
:Jak wyczyścić gniazdo tunelu zwrotnego SSH po zamknięciu połączenia?
źródło
Duplikat: /superuser/516417/how-to-restrict-ssh-port-forwarding-without-denying-it
Wygląda na to, że możesz użyć następujących?
Edycja: Więc w konfiguracji serwera dodaj następujące
źródło