Commit a451d9e

bryfry <bryon.fryer@gmail.com>
2020-10-03 23:05:51
quick commit
1 parent 04c21c9
Changed files (1)
slides.md
@@ -0,0 +1,91 @@
+# Slides
+ - Define terms: 
+
+     ssh words: 
+      - Client (ssh, starts connection)
+      - Server (sshd, listening)
+
+     Tunnel words: 
+      - Bind (interface/port)
+      - Target (address/port)
+
+ - (-L) Client listener, New connection via Server
+
+    -L bind_interface:bind_port:target_address:target_port
+
+    The `-L` creates a new listening socket at the specificied bind_interface and 
+    bind_port on the CLIENT side that will shuttle packets received at that 
+    CLIENT side socket listener through the secure ssh connection all the way to the 
+    ssh SERVER where the SERVER then iniitiates a new connection to the target_host
+    and target_port
+
+    Jargon: this is often called a Forward Tunnel
+
+    Use Case: 
+      I would like to connect to an RDP server (192.168.34.35) that is only
+      accessible on a closed network that an ssh server (example.com) that I 
+      have access to is also on. I will create a forward tunnel that listens on 
+      the clients interface (127.0.0.1) at port 3389 which will transit the 
+      secure connection. Once on the other side the ssh server will create a new 
+      connection to the target RDP server on port 3389. 
+
+      ssh example.com -L 127.0.0.1:3389:192.168.34.35:3389
+ 
+    Jargon: This example tunnel is often called a Straight Through Tunnel 
+            because the client listening port is the same as the target port
+      
+
+ - (-R) Server listener, New connection via Client
+   
+    -R bind_interface:bind_port:target_address:target_port
+
+    The `-R` creates a new listening socket at the specificied bind_interface and 
+    bind_port on the SERVER side that will shuttle packets received at that 
+    SERVER side socket listener through the secure ssh connection all the way to the 
+    ssh CLIENT where the CLIENT then iniitiates a new connection to the target_host
+    and target_port
+
+    Jargon: this is often called a Reverse Tunnel
+
+    Use Case: 
+      There is an existing web service that is running on example.com.  It is 
+      configured to connect to its mysql instance at 127.0.0.1 and port 3306.
+      I want to stop the mysql service running on example.com and run a test 
+      against a different set of data that is only on my ssh client machine.  
+      This database is 3TB so I definitely don't want to send it up to the 
+      server just to do this test.  After stopping the existing mysql service 
+      I connect into example.com with a reverse tunnel that listens on the 
+      servers interface (127.0.0.1) at port 3306 which will transit the secure
+      connection. Once on the other side the ssh client will create a new 
+      connection to the target mysql server on port 5555 because this is where
+      I have this specific mysql instance listening. 
+  
+      ssh example.com -R 127.0.0.1:3306:127.0.0.1:5555
+
+ - (-D) Client socks listener, Multiple connections via Server
+
+    -D bind_interface:bind_port
+
+    The `-D` creates a new listening socket at the specificied bind_interface 
+    and bind_port on the CLIENT side which is a SOCKS PROXY listener. 
+    APPLICATION TRAFFIC sent to this the CLIENT side SOCKS PROXY listener will 
+    transit the secure ssh connection all the way to the ssh SERVER where the 
+    SERVER then iniitiates a new connection to the APPLICATION SPECIFIED targets
+
+    Jargon: this is often called a Dynamic Proxy
+
+    Use Case:
+      I want to browse an internal website that requires multiple connections 
+      to multiple domains and IP addresses on many different ports.  The ssh 
+      server (example.com) has the appropriate network connectivity to initiate
+      all of these connections. I will create a dynamic tunnel proxy at port
+      9050. I will then configure my web browser to use that tunnel as a socks
+      proxy. After this is setup all connections from firefox will be sent to 
+      the socks proxy listener, transit the secure connection, and egress to the
+      correct target hosts and ports on the server's network.
+   
+      ssh example.com -D 127.0.0.1:8080
+
+
+  - QUIZ:
+    - If a target_host is specified as a dns name, where is that name resolved?