Cześć, oto sytuacja Mam serwer w korporacyjnym centrum danych dla projektu. Mam dostęp SSH do tej maszyny na porcie 22. Istnieją pewne maszyny wirtualne działające na tym serwerze, a następnie z tyłu każdej rzeczy działa wiele innych systemów operacyjnych. Teraz, ponieważ jestem za zaporą centrów danych, mój przełożony zapytał mnie, czy mogę coś zrobić, dzięki czemu mogę dać wielu osobom dostęp do Internetu bezpośrednio do tych maszyn wirtualnych. Wiem, że jeśli pozwolono mi uzyskać ruch na porcie innym niż 22, mogę wykonać przekierowanie portów. Ale ponieważ nie wolno mi tego, co może być rozwiązaniem w tym przypadku. Ludzie, którzy chcieliby się połączyć, mogą być kompletnymi idiotami, którzy mogą być szczęśliwi, otwierając szpachlę na swoich komputerach, a nawet Filezillę.
Nie mam firewalla w moich rękach ani żadnego portu innego niż 22 otwarty i w rzeczywistości nawet jeśli poproszę, że nie pozwolą na otwarcie. 2 razy SSH nie jest czymś, czego chce mój przełożony.
Odpowiedzi:
Powinieneś otworzyć tunel ssh z komputera na serwer w centrum danych. Nazwijmy to jako „server1”. Jeśli używasz openssh, możesz po prostu uruchomić
Spowoduje to otwarcie połączenia z komputera przez port 8080 do serwera, port 8080, pomijając zaporę pomiędzy nimi. Zakładając, że twój apache nasłuchuje na porcie 8080. Format przekierowania portów nasłuchuje IP: port lokalny: adres zdalny: port zdalny. Oczywiście w przypadku pojedynczego serwera można również użyć
Należy pamiętać, że parametr localhost w parametrze -L odnosi się do server1. Innymi słowy, serwer widzi połączenia przychodzące z hosta lokalnego, podczas gdy w rzeczywistości przychodzą one z twojego komputera przez połączenie ssh.
Potrzebujesz również parametru
w konfiguracji ssh serwera (zazwyczaj / etc / ssh / sshd_config).
Następnie inni mogą połączyć się z komputerem na porcie 8080, aby uzyskać połączenie za pośrednictwem Apache Reverse Proxy. Jeśli potrzebujesz ogólnego proxy (aby użytkownicy mogli wybrać adres, a nie tylko konkretne adresy w konfiguracji Apache), powinieneś zainstalować squid na serwerze server1 i użyć tunelu ssh do portu squid.
źródło
ssh -L0.0.0.0:8080:localhost:8080 you_username@server1
czy połączenie będzie nadal przechodzić przez port 22 zapory (ponieważ jeśli tak się nie stanie, nie mogę nic zrobić), a tunel ssh zostanie ustanowiony między maszyną lokalną a maszyną zdalną na określonych portach, ale cały ruch byłby kontynuowany (port 22) w zaporze.ssh -L0.0.0.0:8080:remote_server_address:8080 you_username@server1
wydasz to polecenie , chcę wiedzieć, co można ustawić jako adres_zdalny_serwera, to adres IP komputera wewnętrznego, na którym chcę używać server1 jako pośredniego. Czy zrozumiałem to poprawnie?Być może możesz użyć czegoś takiego jak SshMeIn . Jest to system webowy typu open source, który sprawi, że tunel ssh przejdzie przez zapory ogniowe, nawet nie musisz otwierać portów.
źródło