SSH port Forwarding exempel

Vad är SSH Port Forwarding, aka SSH Tunneling?

SSH port forwarding är en mekanism i SSH för tunneling applikationsportar från klientdatorn till servermaskinen, eller vice versa. Den kan användas för att lägga till kryptering till äldre applikationer, gå igenom brandväggar, och vissa systemadministratörer och IT-proffs använder den för att öppna bakdörrar i det interna nätverket från sina hemmaskiner. Det kan också missbrukas av hackare och skadlig kod för att öppna åtkomst från Internet till det interna nätverket., Se SSH tunneling-sidan för en bredare översikt.

lokal vidarebefordran

Lokal vidarebefordran används för att vidarebefordra en port från klientdatorn till serverdatorn. I grund och botten lyssnar SSH-klienten på anslutningar på en konfigurerad port, och när den tar emot en anslutning tunnlar den anslutningen till en SSH-server. Servern ansluter till en konfigurerad destinationsport, eventuellt på en annan maskin än SSH-servern.,

Typiska användningsområden för lokal port forwarding inkluderar:

  • Tunnelsessioner och filöverföringar via hoppservrar

  • ansluta till en tjänst på ett internt nätverk från utsidan

  • ansluta till en fjärransluten fildelning via Internet

en hel del organisationer för all inkommande SSH-åtkomst via en enda hoppserver. Servern kan vara en vanlig Linux / Unix-låda, vanligtvis med lite extra härdning, intrångsdetektering och/eller loggning, eller det kan vara en kommersiell jump serverlösning.,

många hoppservrar tillåter inkommande portvidarebefordran, när anslutningen har autentiserats. Sådan port forwarding är bekväm, eftersom den tillåter tekniskt kunniga användare att använda interna resurser ganska öppet. Till exempel kan de vidarebefordra en port på sin lokala maskin till företagets intranät webbserver, till en intern e-postservers IMAP-port, till en lokal filservers 445 och 139 portar, till en skrivare, till en versionskontroll arkiv, eller till nästan alla andra system på det interna nätverket. Ofta tunnlas porten till en ssh-port på en intern maskin.,

i OpenSSH konfigureras lokal port forwarding med alternativet -L:

 ssh -L 80:intra.example.com:80 gw.example.com

det här exemplet öppnar en anslutning till jump-servern gw.example.com och vidarebefordrar All anslutning till port 80 på den lokala maskinen till port 80 på intra.example.com.

som standard kan alla (även på olika maskiner) ansluta till den angivna porten på SSH-klientdatorn., Detta kan dock begränsas till program på samma värd genom att ange en bind-adress:

 ssh -L 127.0.0.1:80:intra.example.com:80 gw.example.com

alternativet LocalForward I OpenSSH-klientkonfigurationsfilen kan användas för att konfigurera vidarebefordran utan att behöva ange det på kommandoraden.

fjärr vidarebefordran

i OpenSSH, fjärr SSH port forwardings anges med-R alternativet. Till exempel:

 ssh -R 8080:localhost:80 public.example.com

detta gör det möjligt för alla på fjärrservern att ansluta till TCP-port 8080 på fjärrservern., Anslutningen kommer sedan att tunnlas tillbaka till klientvärden, och klienten gör sedan en TCP-anslutning till port 80 på localhost. Alla andra värdnamn eller IP-adress kan användas istället för localhost för att ange värden som ska anslutas till.

det här exemplet skulle vara användbart för att ge någon på utsidan tillgång till en intern webbserver. Eller utsätta en intern webbapplikation för det offentliga Internet. Detta kan göras av en anställd som arbetar hemifrån, eller av en angripare.,

som standard tillåter OpenSSH endast att ansluta till fjärrstyrda portar från servervärden. AlternativetGatewayPorts I serverkonfigurationsfilen sshd_config kan dock användas för att styra detta. Följande alternativ är möjliga:

 GatewayPorts no

detta förhindrar anslutning till vidarebefordrade portar utanför serverdatorn.

 GatewayPorts yes

detta gör det möjligt för alla att ansluta till de vidarebefordrade portarna. Om servern är på det offentliga Internet kan någon på Internet ansluta till porten.,

 GatewayPorts clientspecified

det betyder att klienten kan ange en IP-adress från vilken anslutningar till porten är tillåtna. Syntaxen för detta är:

 ssh -R 52.194.1.73:8080:localhost:80 host147.aws.example.com

i det här exemplet är endast anslutningar från IP-adressen 52.194.1.73 till port 8080 tillåtna.

OpenSSH tillåter också den vidarebefordrade fjärrporten att anges som 0. I det här fallet allokerar servern dynamiskt en port och rapporterar den till klienten. När den används med alternativet -O forward skriver klienten ut det tilldelade portnumret till standardutmatning.,

öppna bakdörrar i företaget

Remote SSH port forwarding används ofta av anställda för att öppna bakdörrar i företaget. Till exempel kan den anställde ställa få en fri nivå server från Amazon AWS, och logga in från kontoret till den servern, ange fjärr vidarebefordran från en port på servern till någon server eller program på den interna enterprise-nätverket. Flera fjärr framåt kan anges för att öppna åtkomst till mer än ett program.,

medarbetaren skulle också angeGatewayPorts yes på servern (de flesta anställda har inte fasta IP-adresser hemma, så de kan inte begränsa IP-adressen).

till exempel öppnar följande kommando åtkomst till en intern Postgres-databas i port 5432 och en intern SSH-port i port 2222.

 ssh -R 2222:d76767.nyc.example.com:22 -R 5432:postgres3.nyc.example.com:5432 aws4.mydomain.net

konfiguration på serversidan

alternativetAllowTcpForwarding I konfigurationsfilen för OpenSSH-servern måste vara aktiverat på servern för att tillåta vidarebefordran av port. Som standard är vidarebefordran tillåten., Möjliga värden för det här alternativet är yes eller all för att tillåta all TCP-vidarebefordran, no för att förhindra all TCP-vidarebefordran, local för att tillåta lokala speditörer och remote för att tillåta fjärrspeditörer.

ett annat alternativ av intresse ärAllowStreamLocalForwarding, som kan användas för att vidarebefordra Unix-domänuttag. Det tillåter samma värden som AllowTcpForwarding. Standardvärdet är yes.,

till exempel:

 AllowTcpForwarding remote AllowStreamLocalForwarding no

konfigurationsalternativetGatewayPorts som beskrivits ovan påverkar också fjärrportens skotare. Möjliga värden var no (endast lokala anslutningar från servervärd tillåts; standard), yes (vem som helst på Internet kan ansluta till fjärr vidarebefordrade portar), och clientspecified (klienten kan ange en IP-adress som kan ansluta, vem som helst kan om inte anges).,

hur man förhindrar vidarebefordran av SSH-Port från att kringgå brandväggar

Vi rekommenderar att vidarebefordran av port uttryckligen inaktiveras när det inte behövs. Om portvidarebefordran är aktiverad kan organisationen utsättas för säkerhetsrisker och bakdörrar. Till exempel, om en server avsedd att endast tillhandahålla SFTP filöverföringar tillåter Port forwardings, dessa speditörer kan användas för att få oavsiktlig åtkomst till det interna nätverket från intranätet.

problemet är att portvidarebefordran i praktiken endast kan förhindras av en server eller brandvägg., Ett företag kan inte styra alla servrar på Internet. Brandväggsbaserad kontroll kan också vara knepig, eftersom de flesta organisationer har servrar i Amazon AWS och andra molntjänster, och dessa servrar brukar nås med SSH.

Leave a Comment