Re: Filtering encrypted vs. unencrypted packages?

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

 



On Sat, 2004-10-30 at 17:46, Hadmut Danisch wrote:
> Hi,
> 
> I was just playing around with 2.6 IPSec and isakmpd and ran into a problem:
> 
> In order to have the packets from the peer IPSEC network accepted,
> I need to have an entry like
> 
> iptables -A INPUT -s 192.168.19.0/24 -j ACCEPT
> 
> where 192.168.19.0 is the network behind the ipsec peer.
> 
> But if I do this, the machine would also accept unencrypted packages
> from the Internet (except for the fact that packets to RFC1918-Adresses 
> are not
> routed, but assume that the LAN has official addresses).
> 
> I can't even distinguish them by the interface, because from an
> iptables point of view, the packages are incoming on the external 
> interface,
> as if they were coming unencrypted.
> 
> How do I treat packets from IPSec and unencrypted plain packets from the
> Internet differently with iptables?

the packets pass through the netfilter tables twice--once encrypted, and
once unencrypted.  the 'common' way to filter IPSec traffic with the 2.6
kernel is to mark the IPSec packets:

  # mark ipsec packets from vpn peer 1
  iptables -t mangle -A PREROUTING -p 50 -s $vpn_peer1 \
    -j MARK --set-mark 1

  # accept IKE & ESP packets from vpn peer 1
  iptables -A INPUT -i $extif -p udp -s $vpn_peer1 \
    --sport 500 --dport 500 -j ACCEPT
  iptables -A INPUT -i $extif -p 50 -s $vpn_peer1 -j ACCEPT

  # accept packets from the remote vpn net that have the mark
  iptables -A FORWARD -s $vpn_peer_net1 -m mark --mark 1 -j ACCEPT

-j

--
"That's it! You people have stood in my way long enough. I'm going
to clown college!"
	--The Simpsons



[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