Jak skonfigurować SSH, aby był ograniczony do mojej sieci lokalnej?

33

Próbuję połączyć mój nowy laptop z systemem 11.10 ze starym laptopem z wersją 8.04 przez mój router za pomocą SSH.

To pytanie jest zadawane i udzielane na ubuntuforums tutaj:

http://ubuntuforums.org/showthread.php?t=1648965

Pomyślałem, że przydałaby się tutaj bardziej jednoznaczna odpowiedź.

Uwaga: Musiałem najpierw zainstalować serwer openssh na laptopie, z którym próbowałem się połączyć i otworzyć port SSH w mojej zaporze ogniowej za pomocą firestarter.

klenwell
źródło
czy możesz nam powiedzieć, co nie jest wystarczająco „ostateczne” w odpowiedzi slooow na ten wątek? W przeciwnym razie twoje pytanie wydaje się niejednoznaczne.
d_inevitable
@d_inevitable Po pierwsze, nie jest to jedyna odpowiedź i nie jest wskazana jako poprawna. Wybrałbym to, ale dlatego pomyślałem, że przydałaby się migracja tego pytania. Pomocne może być również podanie ogólnych wskazówek lub pomocnego łącza do konfiguracji SSH między dwoma lokalnymi komputerami.
klenwell

Odpowiedzi:

46

Możesz ograniczyć dostęp do swojego serwera ssh na wiele sposobów.

IMO najważniejsze jest użycie kluczy ssh i wyłączenie uwierzytelniania hasła.

Szczegółowe informacje można znaleźć na następujących stronach wiki

https://help.ubuntu.com/community/SSH/OpenSSH/Keys

https://help.ubuntu.com/community/SSH/OpenSSH/Configuring#Disable_Password_Authentication

Możesz ograniczyć dostęp do określonej podsieci na kilka sposobów. Zakładam, że twój serwer ssh znajduje się w podsieci 192.168.0.0/16 z adresem IP 192.168.0.10, dostosuj odpowiednio;)

Router

Jedną z linii obrony jest użycie routera. Pamiętaj, aby wyłączyć UPnP i nie zezwalać na przekierowywanie portów.

Konfiguracja SSH

Możesz ustawić kilka opcji w /etc/ssh/sshd_config. Jednym z nich jest adres nasłuchiwania. Jeśli ustawisz adres nasłuchiwania w swojej podsieci. Prywatny adres IP nie może być routowany przez Internet.

http://compnetworking.about.com/od/workingwithipaddresses/f/privateipaddr.htm

ListenAddress 192.168.0.10

Możesz także użyć AllowUsers

AllowUsers [email protected]/16

W pewien sposób możesz również zmienić port

Port 1234

Zobacz http://manpages.ubuntu.com/manpages/precise/man5/sshd_config.5.html

Opakowanie TCP

Jak opisano w poście na forach, możesz użyć TCP Wrapper. Opakowanie TCP używa 2 plików /etc/hosts.allowi/etc/hosts.deny

Edytuj /etc/hosts.allowi dodaj swoją podsieć

sshd : 192.168.0.

Edytuj /etc/hosts.denyi odrzuć wszystko

ALL : ALL

Zobacz także http://ubuntu-tutorials.com/2007/09/02/network-security-with-tcpwrappers-hostsallow-and-hostsdeny/

Zapora ogniowa

Na koniec możesz zaporę ogniową swojego serwera. Możesz użyć iptables, ufw lub gufw.

iptables

sudo iptables -I INPUT -p tcp --dport 22 -s 192.168.0.0/16 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 22 -j REJECT

Proszę nie używać DROP w iptables, patrz http://www.chiark.greenend.org.uk/~peterb/network/drop-vs-reject

ufw

sudo ufw allow from 192.168.0.0/16 to any port 22

gufw ma interfejs graficzny

GUFW

Zobacz https://help.ubuntu.com/community/UFW

https://help.ubuntu.com/community/IptablesHowTo

Pantera
źródło
Niektóre sieci używają 10.0.0.0 jako adresu IP, w takim przypadku zastąp 192.068.0.0/24 10.0.0.0/8, aby umożliwić zakres 10.0.0.0-10.255.255.255. Jeśli chcesz zezwolić tylko na jeden adres IP, użyj czegoś takiego jak 192.168.1.2/32. Bardzo pełne wyjaśnienie można znaleźć na [ serverfault.com/q/49765/51929](Jak działa Subnetting?)
Lekensteyn
1
Proszę nie używać DROP w iptables - patrz chiark.greenend.org.uk/~peterb/network/drop-vs-reject
Panther
Ta strona nie wymienia sfałszowanych adresów IP jako możliwego powodu, aby używać DROP zamiast REJECT. Ta odpowiedź na Sec.SE wyjaśnia, dlaczego nie jest tak naprawdę istotna (pakiety źródłowe są większe niż pakiety zwrócone).
Lekensteyn,
@Lekensteyn - W tym łączu nie widziałem dyskusji na temat sfałszowanego adresu IP. Jak sugerujesz, DDoS i sfałszowane adresy IP są poza tą dyskusją i nie jestem przekonany, że DROP jest lepszy od REJECT. DDos są złożone i bez informacji o przyczynie DDos nie można się bronić. Na przykład widziałem WP używaną jako DDoS i rozwiązanie problemu polega na właściwej konfiguracji WP i ma niewiele lub nie ma nic wspólnego z iptables.
Panther
ListenAddresswydaje się najprostszym i najbardziej eleganckim rozwiązaniem
code_monk
1

ssh (bezpieczna powłoka) służy do bezpiecznego uzyskiwania dostępu i przesyłania danych (używana para RSA_KEYS). Dostęp do danych można uzyskać za pomocą ssh na dwa sposoby: 1. Wiersz poleceń 2. za pomocą przeglądarki plików

Wiersz poleceń: w tym celu nie musisz niczego instalować. Pierwszym zadaniem jest zalogowanie się na innym komputerze.

ssh other_computer_username@other_computer_ip

To polecenie poprosi o podanie hasła, które jest hasłem drugiego komputera (dla konkretnej nazwy użytkownika). Właśnie zalogowałeś się do powłoki innego komputera. Myśl, że ten terminal jest jak terminal powłoki komputera. Możesz zrobić wszystko, używając powłoki na innym komputerze, co możesz zrobić na swoim komputerze

Przeglądarka plików: Musisz zainstalować openssh-server

sudo apt-get install openssh-server

Aby się zalogować, przejdź do file-> connectToServer

wprowadź opis zdjęcia tutaj

shantanu
źródło
Kierunki linii poleceń były pierwszą rzeczą, której spróbowałem. Byłem w stanie pingować mój drugi komputer w jego sieci LAN. Ale kiedy próbuję SSH, zawiesza się. Zakładam więc, że muszę skonfigurować mój drugi komputer, aby najpierw zezwolić na dostęp SSH.
klenwell
upewnij się, że router nie blokuje portu 22 ani ssh
shantanu
dzięki. Wiedziałem już wszystko, co wspomniałeś z doświadczenia, ale bardzo łatwo było usłyszeć to proste i uporządkowane od kogoś innego.
jeziora