Can someone PLEASE help me? Please please please? Re: Bridge firewall that allows ssh in, and allows http/https out, but nothing else... ebtable ruleset isn't working :(

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Can someone PLEASE help me with this. Everyone I talk to says the rules SHOULD work. But they don't.

--- On Mon, 5/18/09, Miguel Ghobangieno <mikeeusa@xxxxxxxxx> wrote:

> From: Miguel Ghobangieno <mikeeusa@xxxxxxxxx>
> Subject: Bridge firewall that allows ssh in, and allows http/https out, but nothing else... ebtable ruleset isn't working :(
> To: netfilter@xxxxxxxxxxxxxxx
> Date: Monday, May 18, 2009, 3:09 PM
> 
> I'm trying to make a bridge firewall that allows ssh in,
> and allows http/https out, but nothing else... ebtable
> ruleset isn't working :(
> 
> This is what I have so far. When I set the default policy
> to allow everything gets through, when deny nothing gets
> through:
> 
> Here is the net setup: squid/sshserver --> eth1
> [firewall] eth0 ---> Internet
> 
> What is supposed to be allowed:
> ssh server (port 22 TCP) <--eth1 [firewall] eth0 <---
> Internet
> ssh/squidserver --> eth1 [firewall] eth0 --> Internet
> (ports 80 and 443 TCP)
> 
> What is supposed to be disallowed
> (spoofed ip w/o proper squidserver mac address going out)
> (anything else coming in)
> (probably anything else going out aswell (maybe allow dns,
> dhcp)
> 
> Here is the ruleset right now:
> ebtables -L
> Bridge table: filter
> 
> Bridge chain: INPUT, entries: 0, policy: ACCEPT
> 
> Bridge chain: FORWARD, entries: 8, policy: DROP
> -p IPv4 --ip-proto icmp -j DROP
> -p IPv4 -i eth0 -o eth1 --ip-dst 192.168.0.22 --ip-proto
> tcp --ip-dport 22 -j ACCEPT
> -p IPv4 -i eth1 -o eth0 --ip-src 192.168.0.22 --ip-proto
> tcp --ip-sport 22 -j ACCEPT
> -p IPv4 -d 0:8:d:54:13:c9 -i eth0 -o eth1 --ip-dst
> 192.168.0.22 --ip-proto tcp --ip-sport 80 -j ACCEPT
> -p IPv4 -s 0:8:d:54:13:c9 -i eth1 -o eth0 --ip-src
> 192.168.0.22 --ip-proto tcp --ip-dport 80 -j ACCEPT
> -p IPv4 -d 0:8:d:54:13:c9 -i eth0 -o eth1 --ip-dst
> 192.168.0.22 --ip-proto tcp --ip-sport 443 -j ACCEPT
> -p IPv4 -s 0:8:d:54:13:c9 -i eth1 -o eth0 --ip-src
> 192.168.0.22 --ip-proto tcp --ip-dport 443 -j ACCEPT
> -p IPv4 -i eth0 --ip-src 192.168.0.22 -j DROP
> 
> Bridge chain: OUTPUT, entries: 0, policy: ACCEPT
> 
> 
> Here are the commands used:
> 
> ###The invisible bridge way:
> 
> /usr/sbin/brctl addbr br0
> /usr/sbin/brctl addif br0 eth0
> /usr/sbin/brctl addif br0 eth1
> /sbin/ip link set br0 up
> /sbin/ip link set eth0 up # don't ask me why
> /sbin/ip link set eth1 up # don't ask me why
> #/sbin/ip addr add 192.168.0.6 brd + dev br0
> #/sbin/route add default gw 192.168.0.1 dev br0 ##Only
> needed if eth2 hasn't allready set default gateway
> 
> # ebtables...
> # example rule: block all ICMP
> ebtables -F FORWARD
> ebtables -P FORWARD DROP
> ebtables -A FORWARD -p ip --ip-proto icmp -j DROP ## block
> all ICMP
> #ebtables -A FORWARD -i eth0 -j DROP
> 
> ##Here We allow SSH to pass through to the ssh server
> #Incoming Connection From Internet #ebtables -i eth0 -o
> eth1 -p ip --ip-proto tcp --ip-destination-port 22
> --ip-destination ip-of-the-ssh-server -j ACCEPT
> #Reply by the server To Internet   #ebtables
> -i eth1 -o eth0 -p ip --ip-proto tcp --ip-source-port 22
> --ip-source ip-of-the-ssh-server -j ACCEPT
> ebtables -A FORWARD -i eth0 -o eth1 -p ip --ip-proto tcp
> --ip-destination-port 22 --ip-destination 192.168.0.22 -j
> ACCEPT
> ebtables -A FORWARD -i eth1 -o eth0 -p ip --ip-proto tcp
> --ip-source-port 22 --ip-source 192.168.0.22 -j ACCEPT
> 
> ##Allow squid server to access HTTP and HTTPS servers on
> standard ports.
> #Incoming Packets From HTTP Server on
> Internet#   ebtables -i eth0 -o eth1 -p ip
> --ip-destination squidserver -d macaddress-of-squidserver
> --ip-proto tcp --i$
> #Outgoing Packets From Clients on School Network# ebtables
> -i eth1 -o eth0 -p ip --ip-source squidserver -s
> macaddress-of-squidserver --ip-proto tcp --ip-des$
> #Incoming Packets From HTTP Server on
> Internet#   ebtables -i eth0 -o eth1 -p ip
> --ip-destination squidserver -d macaddress-of-squidserver
> --ip-proto tcp --i$
> #Outgoing Packets From Clients on School Network# ebtables
> -i eth1 -o eth0 -p ip --ip-source squidserver -s
> macaddress-of-squidserver --ip-proto tcp --ip-des$
> ##Anti-spoofing rule (Only matches the IP address of
> squidserver, not MAC address)
> ebtables -A FORWARD -i eth0 -o eth1 -p ip --ip-destination
> 192.168.0.22 -d 00:08:0D:54:13:C9 --ip-proto tcp
> --ip-source-port 80 -j ACCEPT
> ebtables -A FORWARD -i eth1 -o eth0 -p ip --ip-source
> 192.168.0.22 -s 00:08:0D:54:13:C9 --ip-proto tcp
> --ip-destination-port 80 -j ACCEPT
> ebtables -A FORWARD -i eth0 -o eth1 -p ip --ip-destination
> 192.168.0.22 -d 00:08:0D:54:13:C9 --ip-proto tcp
> --ip-source-port 443 -j ACCEPT
> ebtables -A FORWARD -i eth1 -o eth0 -p ip --ip-source
> 192.168.0.22 -s 00:08:0D:54:13:C9 --ip-proto tcp
> --ip-destination-port 443 -j ACCEPT
> ##Anti-spoofing rule (Only matches the IP address of
> squidserver, not MAC address)
> ebtables -A FORWARD -i eth0 -p ip --ip-source 192.168.0.22
> -j DROP
> 
> #ebtables -A FORWARD -i eth0 -j DROP
> #ebtables -A FORWARD -p ip -j DROP ## block everything
> else
> #ebtables -A FORWARD -i eth0 -o eth1 -p ip -j DROP
> 
> 
> The bridge works, but the filtering is either all or
> nothing :/
> 
> 
> 
>       
> 
> --
> To unsubscribe from this list: send the line "unsubscribe
> netfilter" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 


      

--
To unsubscribe from this list: send the line "unsubscribe netfilter" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Netfilter Development]     [Linux Kernel Networking Development]     [Netem]     [Berkeley Packet Filter]     [Linux Kernel Development]     [Advanced Routing & Traffice Control]     [Bugtraq]

  Powered by Linux