Logowanie do tunelu SSH?

13

Mam komputer z uruchomionym protokołem SSH, do którego chciałbym dać swoim znajomym dostęp, ale nie chcę, aby korzystali z mojego połączenia internetowego przez tunelowanie SSH (chociaż sam chciałbym to zrobić). Czy istnieje sposób, aby mieć dziennik, kiedy tworzone są tunele SSH i za pomocą których (lokalnych) użytkowników, a jeśli nie jest to możliwe, zezwalają na to tylko niektórym użytkownikom?

Frxstrem
źródło
chcesz odrzucać wszystkie dostępu do Internetu dla tych użytkowników, czy tylko przekierowanie portów?
JanC
1
Chcę tylko zabronić przekierowania portów i proxy SOCKS przez SSH.
Frxstrem,

Odpowiedzi:

10

Jeśli Twoi znajomi są w stanie SSH na twoim komputerze, wykorzystują część twojej przepustowości i dlatego niemożliwe jest całkowite zablokowanie im dostępu do twojego połączenia internetowego.

Biorąc to pod uwagę, jednym rozwiązaniem byłoby ograniczenie tego, co twoi znajomi mogą zrobić z twoim połączeniem. Możesz skonfigurować zaporę ogniową, która umieszcza na białej liście adresy IP twojego znajomego i umieszcza na czarnej liście wszystko inne. W ten sposób Twoi znajomi mogą SSH na twoim komputerze, ale stamtąd nie będą mogli uzyskać żadnego innego adresu IP niż własny.

Nigdy sam nie konfigurowałem zapory ogniowej dla konkretnego użytkownika , ale wierzę, że można to osiągnąć dzięki IPTables . Pamiętaj również, że użytkownicy mogą nadal pochłaniać dużą część przepustowości, przesyłając duże pliki na serwer. Jeśli chcesz temu zapobiec, musisz ograniczyć przepustowość na użytkownika .

Olivier Lalonde
źródło
9

Chcesz się upewnić, że plik / etc / ssh / sshd_config zawiera

AllowTcpForwarding no

a następnie na końcu umieszczenia pliku

Match User yourusername
    AllowTcpForwarding yes

To pozwoli Tobie i tylko Tobie na przesłanie zawartości do twojego serca, ale jak powiedział João, nie będziesz w stanie uniemożliwić im uruchamiania własnych programów, chyba że wyłączysz również dostęp do powłoki.


źródło
8

Pamiętaj, że chociaż możesz wyłączyć przekazywanie TCP przez sshd, musisz pójść o wiele dalej, aby ograniczyć aktywność wychodzącą użytkowników. Dawanie im muszli oznacza dawanie im dużej mocy.

Na przykład, jeśli potrafią scpować pliki na serwer i wykonywać pliki w / home, mogą po prostu przesłać plik binarny pppd i użyć go do uruchomienia PPP przez SSH. Jeśli zezwolisz na połączenia przychodzące, mogą one po prostu uruchomić /usr/sbin/sshd -p 9999 -f special_sshd_configserwer i korzystać z niego za pośrednictwem tego sshd.

Możesz zajrzeć do modułu właściciela iptables (man iptables, szukaj właściciela) i więzień chroot, ale jest to naprawdę trudne do rozwiązania bez zniszczenia ich doświadczenia z powłoką.

Spamapy
źródło
1

Jedyną opcją, którą mam, jest wyłączenie tunelowania na poziomie systemu.

Edytuj / etc / ssh / sshd_config i zmień / dodaj

AllowTcpForwarding no

Pamiętaj, że mając dostęp do powłoki, nie ma sposobu, aby uniemożliwić użytkownikom używanie własnych plików binarnych do przekazywania połączeń.

João Pinto
źródło
1
To nie jest do przyjęcia rozwiązanie, ponieważ sam muszę korzystać z tunelowania SSH (jak powiedziałem w moim pytaniu).
Frxstrem,
To faktycznie wyłącza to na poziomie aplikacji.
chiggsy,
0

Pierwsza iteracja:

Wyłącz dla nich przekazywanie ssh. w ssh

Państwo włączyć IPSec VPN dla siebie i dla swojego serwera. IPSec jest na poziomie sieci, więc ustawienia aplikacji SSH nie mają na niego wpływu.

chiggsy
źródło