[Cialug] IPTables Concept
    Chris K. 
    lister at kulish.com
       
    Thu Oct 26 20:39:51 CDT 2006
    
    
  
Thanks for the response Josh.
I have made some progress but I am stumped on the ssh connection 
currently, considering the super-restrictive outbound rules.
Here is what I currently have:
# Flush all chains
/sbin/iptables --flush
# Allow unlimited traffic on the loopback interface
/sbin/iptables -A INPUT -i lo -j ACCEPT
/sbin/iptables -A OUTPUT -o lo -j ACCEPT
# Set default policies
/sbin/iptables --policy INPUT DROP
/sbin/iptables --policy OUTPUT DROP
/sbin/iptables --policy FORWARD DROP
# Rules for services hosted on server
/sbin/iptables -A INPUT -p tcp --dport 22 -m state --state NEW -j ACCEPT
/sbin/iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
Now when I try to ssh to it, I get the following:
workstation:~# ssh -vv user at silo.icbm.com
OpenSSH_4.3p2 Debian-5, OpenSSL 0.9.8c 05 Sep 2006
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Applying options for *
debug2: ssh_connect: needpriv 0
debug1: Connecting to edge [192.168.1.1] port 22.
And there it just hangs.
Now, if I change
/sbin/iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
to
/sbin/iptables -A OUTPUT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
I am able to login via ssh, but this rule violates the spirit of this 
exercise by allowing any traffic out of the server.
I think my shortcoming is understanding exactly how ssh establishes 
connections.
Anyone have thoughts?  Or better yet, an outbound rule to only allow the 
traffic for ssh back out once a connection is made?  :)
Thanks Everyone!
Chris K.
Josh More wrote:
> 1) Yes, iptables is capable of this.  It's quite easy to do, in fact.
>
> 2) iptables is port-specific, and ssh is encrypted anyway.  There is no
> difference between ssh and rsync data over ssh.  It should "just work"
>
> 3) The worst that can happen with a firewall like this (if you're not
> doing routing) is that you lose access to the server.
>
> Also, I recommend putting the ssh configs in the firewall rules, just
> so you have a single spot of administration.
> It will make your life easier.  If I were you, I would make sure I have
> console access and turn on the deny-all rule first.
> Then test to make sure it works.  Then open up each one, one by one,
> and test as you go.
>
> In the end, run nmap against it from inside and outside, and make sure
> it does what you expect.
>
> If you need a reference, "Red Hat Linux Firewalls" is a good overview
> for iptables.
> http://www.amazon.com/Red-Linux-Firewalls-Bill-McCarty/dp/0764524631
> It is not Red Hat specific.
>
> Once it's built, check out "Troubleshooting Linux Firewalls" for
> further reference.
> It's very well written. 
> http://www.amazon.com/Troubleshooting-LinuxR-Firewalls-Michael-Shinn/dp/0321227239
>
> Hope this helps,
>
>
>
>
>  
>
>   
    
    
More information about the Cialug
mailing list