Ogranicz SSH do jednego interfejsu

10

Jak mogę ograniczyć przychodzące żądanie połączenia SSH tylko do jednego interfejsu? Używam Ubuntu Server 10.04 LST.

Chcę zablokować dostęp do SSH tylko do jednego interfejsu, ponieważ używam serwera jako bramy do mojej sieci domowej. Jeden interfejs jest podłączony do modemu / routera DSL, a drugi do sieci domowej. Chcę tylko zezwolić na dostęp do formularza SSH w sieci domowej.

Czy ograniczenie SSH do jednego adresu IP w tym przypadku jest wystarczające? Czy też muszę go zablokować do jednego interfejsu?

wowpatrick
źródło
1
Czy możesz wyjaśnić, co rozumiesz przez „tylko jeden interfejs”? Czy masz na myśli, że urządzenie ma więcej niż jeden adres IP i chcesz, aby SSH nasłuchiwał tylko na jednym adresie IP? Czy masz na myśli, że chcesz, aby pakiety przychodzące do portu SSH na innych interfejsach były usuwane? (Twoja prośba jest bardzo nietypowa i możliwe, że zadajesz złe pytanie).
David Schwartz
@DavidSchwartz Poprosiłem o ograniczenie interfejsu, ponieważ nie byłem pewien, czy wystarczające jest ograniczenie dostępu SSH tylko do jednego adresu IP. Uzupełniłem również moje pytanie bardziej szczegółowo.
wowpatrick

Odpowiedzi:

12

W następującym pliku:

 /etc/ssh/sshd_config 

Zobaczysz wiersz taki jak:

#ListenAddress 0.0.0.0

Jest to skomentowane, ale jest domyślne, aby wyświetlić listę wszystkich adresów IP dla żądań ssh. Możesz to zmienić, aby był to adres IP interfejsu, na którym chcesz akceptować połączenia, a więc tylko ten adres IP zaakceptuje połączenia ssh:

ListenAddress 111.222.111.222

Uruchom ponownie usługę sshd po zmianie.

Paweł
źródło
4
Nie ograniczy to interfejsów, na których może działać SSH, tylko docelowy adres IP. (Być może tego właśnie OP chciał. Ale OP nie o to prosił.)
David Schwartz
@DavidSchwartz dzięki - czy możesz to wyjaśnić? Jeśli adres IP jest powiązany z interfejsem, czy inny interfejs może jakoś zaakceptować połączenie z tą konfiguracją (przypuszczam, że jeśli włączone było przekazywanie, mogłoby to działać).
Paul
@DavidSchwartz ah, widzę twój komentarz powyżej.
Paul
1
Przekazywanie dotyczy tylko pakietu odebranego na jednym interfejsie, który musi być przesłany przez inny. Nie jest wymagane zaakceptowanie pakietu odebranego przez interfejs inny niż ten, do którego przypisany jest adres docelowy. Linux używa modelu, w którym adresy IP należą do systemu, a nie do interfejsów - wszystkie interfejsy łączą jeden host.
David Schwartz
2

Spróbuj zainstalować zaporę ogniową i zezwól na SSH tylko na jednym interfejsie. Moje preferencje to Shorewall, który jest instalowalnym pakietem na Ubuntu. Musisz go skonfigurować przed uruchomieniem, ale jest dobrze udokumentowany i zawiera kilka przykładowych konfiguracji.

Używam głównie zamkniętej zapory ogniowej z otwartymi tylko portami. Jeśli wszystko, co chcesz zrobić, to ograniczyć interfejs SSH jest dozwolony, możesz użyć akcji REJECT lub DROP dla ssh na innych interfejsach. Sugerowałbym, jeśli budujesz zaporę ogniową, to przynajmniej ograniczasz dostęp do interfejsów internetowych.

BillThor
źródło