Sending a connection to another machine...

Arne Sagnes ASagnes@Tickets.com
31 Jan 2002 15:03:37 -0500


Hello yet again....
  I finally managed to figure out what was needed.  A masquerade +
invidivual accepts for the returned connections.  If anyone at all is
interested in the final results, email me. :-)

Arne

On Thu, 2002-01-31 at 09:58, Arne Sagnes wrote:
> Hello again,
>   I was able to dig up a script and some help on getting SSH forwarding
> going.  Now that I have that working, I want to add to it.  I'd like to
> set up load balancing so that I can spread the SSH load between several
> different machines.  Now....  I've included the script in here, but
> simply changing the "-too" field from having one address to having
> "10.1.3.17-10.1.3.19" doesn't seem to work.  I see the connections
> coming through to the other boxes, but it doesn't look like I'm sending
> them back properly.  Does anyone have any ideas?  Thanks in advance.
> 
> Arne
> 
> On Wed, 2002-01-30 at 22:09, Arne Sagnes wrote:
> > Hello everyone,
> >   I've been trying to figure out how to simply send a connection to
> > machine1:22 to machine2:22.  I've read through the FAQs and searched the
> > archives, but I can not find a solution to my problem.  My problem is
> > this: when I attempt to use SSH (or simply 'telnet machine1:22'), the
> > connection just hangs.  I log all packets coming in to machine2, and it
> > does not show any evidence that the connection is going through.  Here's
> > the line I use to forward the connection:
> > 
> > ---SNIP---
> > iptables -t nat -F
> > iptables -t nat -A PREROUTING -i eth0 -p tcp -d 10.1.3.17 --dport 22 -j
> > DNAT --to-destination 10.1.3.19:22
> > ---SNIP---
> > 
> >   10.1.3.17 is the mahchine I will SSH to from a seperate machine
> > (coming in on eth0), and I want that connection forwarded to 10.1.3.19. 
> > When I attempt to SSH to 10.1.3.17, the connection simply sits there
> > until it times.  I'm running a default installation of Red Hat 7.2 with
> > kernel 2.4.7-10.  Does anyone have any ideas?  Any help would be GREATLY
> > appreciated.  Thanks!
> > 
> > Arne
> > -- 
> > Arne Sagnes - Email: asagnes@tickets.com
> > Work: +1 216 787 8613 - Cell: +1 216 577 2319
> > Be careful of reading health books, you might die of a misprint.
> > 
> -- 
> Arne Sagnes - Email: asagnes@tickets.com
> Work: +1 216 787 8613 - Cell: +1 216 577 2319
> Be careful of reading health books, you might die of a misprint.
> 
> ----
> 

> #!/bin/bash
> 
> SERVER_RANGE=192.168.202.17:22
> IPTABLES=/sbin/iptables
> 
> # Flush old rules.
> $IPTABLES -t nat -F
> /etc/rc.d/init.d/iptables stop
> echo 1 > /proc/sys/net/ipv4/ip_forward
> 
> # Loopback interface device
> LPDIF=lo
> 
> 
> # Loopback Device IP Address
> LPDIP=127.0.0.1
> 
> 
> $IPTABLES -P INPUT ACCEPT
> $IPTABLES -P OUTPUT ACCEPT
> $IPTABLES -P FORWARD ACCEPT
> 
> 
> $IPTABLES -F INPUT
> $IPTABLES -F OUTPUT
> $IPTABLES -F FORWARD
> 
> $IPTABLES -F -t nat
> $IPTABLES -F -t mangle
> 
> # Disable response to broadcasts: we don't to become a Smurf amplifi
> 
> echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
> 
> # Don't accept source routed packets. Attackers can use source routing to generate
> # traffic pretending to be from inside your network, but which is routed back along
> # the path from which it came, namely outside, so attackers can compromise your
> # network. Source routing is rarely used for legitimate purposes.
> #echo 0 > /proc/sys/net/ipv4/conf/all/accept_source_route
> 
> # Disable ICMP redirect acceptance. ICMP redirects can be used to alter your routing
> # tables, possibly to a bad end.
> echo 0 > /proc/sys/net/ipv4/conf/all/accept_redirects
> 
> # Enable bad error message protection.
> echo 1 > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses
> 
> # Log spoofed packets, source routed packets, redirect packets.
> echo 1 > /proc/sys/net/ipv4/conf/all/log_martians
> 
> echo 1 > /proc/sys/net/ipv4/ip_forward
> 
> $IPTABLES -t nat -A POSTROUTING -o eth0 -j MASQUERADE
> 
> 
> $IPTABLES -t nat -A PREROUTING -i eth0 -s 0.0.0.0/0 -p tcp -d 10.1.3.21 --dport 22 -j DNAT --to 10.1.3.17
> 
> $IPTABLES -A FORWARD -i eth0 -s 0/0 -p tcp --dport 22 -j ACCEPT
> 
> $IPTABLES -A FORWARD -i eth0 -m state --state NEW,INVALID -j DROP
> 
> $IPTABLES -A INPUT -s 0.0.0.0/0 -j ACCEPT
> 
> 
> $IPTABLES -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
> 
> $IPTABLES -P INPUT DROP
> 
> 
> # Allow all ICMP traffic
> $IPTABLES -A INPUT -p icmp -j ACCEPT
> 
> 
> # The following rule is needed to make SSH X-Forwarding work
> $IPTABLES -A INPUT -i $LPDIF -p all -j ACCEPT
> 
> 
> $IPTABLES -A INPUT -i $LPDIF -s $LPDIP -j ACCEPT
> 
> $IPTABLES -A INPUT -i eth0 -s 0.0.0.0/24 -p tcp --dport 22 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT 
> 
> # Kill malformed packets
> 
> # Block XMAS packets
> 
> $IPTABLES -A INPUT   -p tcp --tcp-flags ALL ALL  -j DROP
> $IPTABLES -A FORWARD -p tcp --tcp-flags ALL ALL  -j DROP
> 
> # Block NULL packets
> 
> $IPTABLES -A INPUT   -p tcp --tcp-flags ALL NONE -j DROP
> $IPTABLES -A FORWARD -p tcp --tcp-flags ALL NONE -j DROP
> 
> $IPTABLES -A INPUT -m limit --limit 5/minute -j LOG --log-level 7 --
> 
-- 
Arne Sagnes - Email: asagnes@tickets.com
Work: +1 216 787 8613 - Cell: +1 216 577 2319
Be careful of reading health books, you might die of a misprint.