IPtables a IPSEC

Martin

IPtables a IPSEC
« kdy: 26. 01. 2012, 16:51:42 »
Zdravím - potrebuji radu:

Mam na virtualnim serveru VPN - IPSEC (STRONGSWAN). Potrebuji zablokovat veskerou prichozi komunikaci z WAN, ale povolit veskerou komunikaci z VPN. Mam navic zaplou maskaradu. Jakou router mi to funguje docela dobre, ale nemuzu se pripojit pres napr pres SSH. Poradi mi nejaky odbornik?

IPTables vypdaji nejak takto:


iptables --policy INPUT DROP
iptables --policy OUTPUT ACCEPT
iptables --policy FORWARD DROP

iptables -A INPUT -i lo -j ACCEPT


iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD  -m state --state ESTABLISHED,RELATED -j ACCEPT


#IPSEC
iptables -A INPUT -p udp -i $WAN --dport 500 -m state --state NEW -j ACCEPT
iptables -A INPUT -p udp -i $WAN --dport 4500 -m state --state NEW -j ACCEPT
iptables -A INPUT -i $WAN  -p 50 -j ACCEPT
iptables -A INPUT -i $WAN  -p 51 -j ACCEPT

#vpn traffic
iptables -A INPUT -m policy --dir in --pol ipsec  -s 172.22.36.0/24  -j ACCEPT
iptables -A FORWARD -m policy --dir in --pol ipsec  -s 172.22.36.0/24  -j ACCEPT


# Enable MASQUERADE (NAT) on WAN
iptables -t nat -A POSTROUTING  -o $WAN ! -d 172.22.0.0/16 -j MASQUERADE

« Poslední změna: 27. 01. 2012, 14:45:41 od Petr Krčmář »


PCnity

  • *****
  • 706
    • Zobrazit profil
    • E-mail
Re:iptabkes a IPSEC
« Odpověď #1 kdy: 26. 01. 2012, 17:28:47 »
Hello,

Presne to co pises v prvej vete mam aj ja na mojom VPS.

      #IKE
      iptables -I INPUT  -p udp --sport 500 --dport 500 -j ACCEPT
      #ESP
      iptables -I INPUT  -p 50 -j ACCEPT
      #encapsulated IPSEC
      iptables -A INPUT -i ipsec0 -j ACCEPT

      #Local loopback is ok
      iptables -A INPUT -i lo -j ACCEPT

      #Enable already ESTABLISHED traffic
      iptables -A INPUT -m conntrack --ctstate ESTABLISHED -j ACCEPT

      #Drop and LOG everything elese
      iptables -A INPUT -j LOG
      iptables -A INPUT -j DROP

Martin

Re:iptabkes a IPSEC
« Odpověď #2 kdy: 27. 01. 2012, 12:57:16 »
Bohuzel strongswan mi nevytvori rozhrani ipsec0, takze musim vytvorit nejake pravidlo, ktere povoli veskerou prichozi komunikaci pres rozhrani WAN(eth0) a zaroveni musi byt pres IPSEC tunel.

Tento radek by mi asi mnoho nepomohl:
Citace
      #encapsulated IPSEC
      iptables -A INPUT -i ipsec0 -j ACCEPT

PCnity

  • *****
  • 706
    • Zobrazit profil
    • E-mail
Re:iptabkes a IPSEC
« Odpověď #3 kdy: 27. 01. 2012, 13:00:25 »
Prave z dovodu mojej lenivosti pouzivam pokial sa to nejako da OpenSwan a KLIPS. Inak musis pravdepodobne kazdu podsiet exportovanu cez IPsec samostatne povolit a vsetko ostatne dropnut.
Myslim si ze pre kernel su packety pochadzajuce z ipsec uplne rovnake ako priamo z wan, cize nemas (imho) moznost ich rozlisit inac nez na zaklade source a destination parov.

Joe King

Re:iptabkes a IPSEC
« Odpověď #4 kdy: 27. 01. 2012, 14:43:28 »
Zrovna jsem to ted resil - a na Internetu jsem nasel tohle pravidlo:

#marking packets that came by ESP protocol
iptables -t mangle -A PREROUTING -i eth0 -p esp -j MARK --set-mark 1
#accepting packets of all protocols if they are marked
iptables -A INPUT -i eth0 -m mark --mark 1 -j ACCEPT
#forwarding packets of all protocols if they are marked
iptables -A FORWARD -i eth0 -m mark --mark 1 -j ACCEPT




PCnity

  • *****
  • 706
    • Zobrazit profil
    • E-mail
Re:IPtables a IPSEC
« Odpověď #5 kdy: 27. 01. 2012, 14:56:04 »
Jeeej. Dakujem. Toto mi dost zjednodusi situaciu ked budem muesit zostat pri netkey implementaciach.

Martin

Re:IPtables a IPSEC
« Odpověď #6 kdy: 27. 01. 2012, 17:49:50 »
Tak jsem prisel na chybicku. Chyba neni v iptables, ale v routovani.
Toto tedy funguje bez problemu:

#vpn traffic
Citace
iptables -A INPUT -m policy --dir in --pol ipsec  -s 172.22.36.0/24  -j ACCEPT
iptables -A FORWARD -m policy --dir in --pol ipsec  -s 172.22.36.0/24  -j ACCEPT

Chyba je, ze se z Windows 7 pripojim do VPN (napr IP 12.12.12.12), vytvori se tunel, default route se taky nastavi v poradku, ale routovani na 12.12.12.12 zustava stejne - smerovane pres default gateway!!! Vlastne ona to asi chyba ani neni  :o