Zestawienie tunelu IPsec

Instalacja i konfiguracja oprogramowania sieciowego.
ifrit
Piegowaty Guziec
Piegowaty Guziec
Posty: 5
Rejestracja: 11 kwie 2012, 21:03

Zestawienie tunelu IPsec

Post autor: ifrit »

Witam, próbuje zestawić połącznie IPsec plus X509 pomiędzy dwoma systemami ubuntu. Niestety w momencie uruchomienia ipsec przestaje być możliwe zalogowanie się na postawionego ftpa.
Gdy sprawdzam czy tunel działa otrzymuje takie coś:

Kod: Zaznacz cały

/etc/init.d/ipsec status
IPsec running  - pluto pid: 2129
pluto pid 2129
No tunnels up
plik ipsec.conf

Kod: Zaznacz cały

# basic configuration
config setup
        nat_traversal=yes
        virtual_private=%v4:10.0.0.0/8,%v4:192.168.0.0/16,%4:172.16.0.0/12
	interfaces=%defaultroute
conn sample
        # Left security gateway, subnet behind it, nexthop toward right.        
	compress=yes
	keyingtries=1
	disablearrivalcheck=no
	leftrsasigkey=%cert
	rightrsasigkey=%cert
	authby=rsasig

conn roadwarrior-net
        leftsubnet=192.168.0.0/24
	also=roadwarrior

conn roadwarrior
	left=192.168.0.168
	leftcert=server.pem
	right=192.168.0.149
	rightsubnet=192.168.0.0/24
	auto=add
	pfs=yes
conn block
	auto=ignore

conn private
	auto=ignore

conn private-or-clear
	auto=ignore

conn clear-or-private
	auto=ignore

conn clear
	auto=ignore

conn packetdefault
	auto=ignore	
plik ipsec.secrets

Kod: Zaznacz cały

: RSA server.key "server"
W wiresharku widzę pakiety protokołu ISAKMP, w syslog też nie ma żadnych błędów.
Po próbie ustanownia połaczenia:

Kod: Zaznacz cały

ipsec auto --up roadwarrior
nic się nie dzieje.
Nie rozumiem już co robie źle bo nie mam żadnych błedów a mimo to po uruchomieniu ipsec nie działą polecenie ping ani nie mogę się zalogować na FTP.
Proszę o pomoc bo już skończyły mi się pomysły.
Awatar użytkownika
ekitowski
Sędziwy Jeż
Sędziwy Jeż
Posty: 51
Rejestracja: 25 sie 2008, 15:03
Płeć: Mężczyzna
Wersja Ubuntu: 8.10
Środowisko graficzne: GNOME
Kontakt:

Re: Zestawienie tunelu IPsec

Post autor: ekitowski »

Zacząłbym od sprawdzenia logów - bo po to są :-) a także o ile dobrze pamiętam to w tym pakiecie jest opcja verify

Kod: Zaznacz cały

sudo ipsec verify
ifrit
Piegowaty Guziec
Piegowaty Guziec
Posty: 5
Rejestracja: 11 kwie 2012, 21:03

Re: Zestawienie tunelu IPsec

Post autor: ifrit »

W logach było kilka błedów, ale się ich pozbyłem. Niestety nic to nie dało. Teraz po wpisaniu

Kod: Zaznacz cały

/etc/init.d/ipsec restart
syslog wygląda tak:

Kod: Zaznacz cały

Apr 12 10:09:31 ifrit-VirtualBox ipsec_setup: Starting Openswan IPsec 2.6.28...
Apr 12 10:09:31 ifrit-VirtualBox ipsec_setup: Using KLIPS/legacy stack
Apr 12 10:09:31 ifrit-VirtualBox kernel: [ 3162.414306] padlock_aes: VIA PadLock not detected.
Apr 12 10:09:32 ifrit-VirtualBox kernel: [ 3162.496676] padlock_sha: VIA PadLock Hash Engine not detected.
Apr 12 10:09:32 ifrit-VirtualBox kernel: [ 3162.656516] Intel AES-NI instructions are not detected.
Apr 12 10:09:32 ifrit-VirtualBox kernel: [ 3162.675686] padlock_aes: VIA PadLock not detected.
Apr 12 10:09:33 ifrit-VirtualBox ipsec_setup: No KLIPS support found while requested, desperately falling back to netkey
Apr 12 10:09:33 ifrit-VirtualBox kernel: [ 3163.819502] NET: Registered protocol family 15
Apr 12 10:09:33 ifrit-VirtualBox ipsec_setup: NETKEY support found. Use protostack=netkey in /etc/ipsec.conf to avoid attempts to use KLIPS. Attempting to continue with NETKEY
Apr 12 10:09:33 ifrit-VirtualBox ipsec_setup: Using NETKEY(XFRM) stack
Apr 12 10:09:35 ifrit-VirtualBox kernel: [ 3165.663554] Initializing XFRM netlink socket
Apr 12 10:09:35 ifrit-VirtualBox kernel: [ 3165.788767] padlock_aes: VIA PadLock not detected.
Apr 12 10:09:35 ifrit-VirtualBox kernel: [ 3165.845970] padlock_sha: VIA PadLock Hash Engine not detected.
Apr 12 10:09:35 ifrit-VirtualBox kernel: [ 3165.962568] Intel AES-NI instructions are not detected.
Apr 12 10:09:35 ifrit-VirtualBox kernel: [ 3165.983860] padlock_aes: VIA PadLock not detected.
Apr 12 10:09:36 ifrit-VirtualBox ipsec_setup: ...Openswan IPsec started
Apr 12 10:09:36 ifrit-VirtualBox ipsec__plutorun: adjusting ipsec.d to /etc/ipsec.d
Apr 12 10:09:36 ifrit-VirtualBox pluto: adjusting ipsec.d to /etc/ipsec.d
Apr 12 10:09:37 ifrit-VirtualBox ipsec__plutorun: 002 loading certificate from server.pem 
Apr 12 10:09:37 ifrit-VirtualBox ipsec__plutorun: 002   loaded host cert file '/etc/ipsec.d/certs/server.pem' (3147 bytes)
Apr 12 10:09:37 ifrit-VirtualBox ipsec__plutorun: 002 added connection description "roadwarrior-net"
Apr 12 10:09:37 ifrit-VirtualBox ipsec__plutorun: 002 loading certificate from server.pem 
Apr 12 10:09:37 ifrit-VirtualBox ipsec__plutorun: 002   loaded host cert file '/etc/ipsec.d/certs/server.pem' (3147 bytes)
Apr 12 10:09:37 ifrit-VirtualBox ipsec__plutorun: 002 added connection description "roadwarrior"
Apr 12 10:09:38 ifrit-VirtualBox ipsec__plutorun: 003 NAT-Traversal: Trying new style NAT-T
Apr 12 10:09:38 ifrit-VirtualBox ipsec__plutorun: 003 NAT-Traversal: ESPINUDP(1) setup failed for new style NAT-T family IPv4 (errno=19)
Apr 12 10:09:38 ifrit-VirtualBox ipsec__plutorun: 003 NAT-Traversal: Trying old style NAT-T
po wpisaniu

Kod: Zaznacz cały

ipsec verify

Kod: Zaznacz cały

Checking your system to see if IPsec got installed and started correctly:
Version check and ipsec on-path                             	[OK]
Linux Openswan U2.6.28/K2.6.38-8-generic (netkey)
Checking for IPsec support in kernel                        	[OK]
NETKEY detected, testing for disabled ICMP send_redirects   	[FAILED]

  Please disable /proc/sys/net/ipv4/conf/*/send_redirects
  or NETKEY will cause the sending of bogus ICMP redirects!

NETKEY detected, testing for disabled ICMP accept_redirects 	[FAILED]

  Please disable /proc/sys/net/ipv4/conf/*/accept_redirects
  or NETKEY will accept bogus ICMP redirects!

Checking that pluto is running                              	[OK]
Pluto listening for IKE on udp 500                          	[OK]
Pluto listening for NAT-T on udp 4500                       	[OK]
Checking for 'ip' command                                   	[OK]
Checking for 'iptables' command                             	[OK]
Opportunistic Encryption Support                            	[DISABLED]
w pliku sysctl.conf dodałem:

Kod: Zaznacz cały

net.ipv4.conf.all.accept_redirects = 1
net.ipv4.conf.all.send_redirects = 1
ale to nic nie dało.
Awatar użytkownika
ekitowski
Sędziwy Jeż
Sędziwy Jeż
Posty: 51
Rejestracja: 25 sie 2008, 15:03
Płeć: Mężczyzna
Wersja Ubuntu: 8.10
Środowisko graficzne: GNOME
Kontakt:

Re: Zestawienie tunelu IPsec

Post autor: ekitowski »

Please disable /proc/sys/net/ipv4/conf/*/send_redirects
Do testów i tak na szybko to ja bym to tak wyłączył:

Kod: Zaznacz cały

echo "0" > /proc/sys/net/ipv4/conf/all/send_redirects
echo "0" > /proc/sys/net/ipv4/conf/default/send_redirects
echo "0" > /proc/sys/net/ipv4/conf/eth0/send_redirects
echo "0" > /proc/sys/net/ipv4/conf/eth1/send_redirects
echo "0" > /proc/sys/net/ipv4/conf/lo/send_redirects
Oczywiście u Ciebie może być inny układ folderów w katalogu conf...
I analogicznie z drugim problemem
Please disable /proc/sys/net/ipv4/conf/*/accept_redirects
Jak nie będzie błędów to wtedy działasz dalej...
Co do logów to ja bym jeszcze sprawidził:

Kod: Zaznacz cały

/var/log/auth.log
i

Kod: Zaznacz cały

/var/log/messages

bo ipsec raczej tam będzie coś wywalał.
ifrit
Piegowaty Guziec
Piegowaty Guziec
Posty: 5
Rejestracja: 11 kwie 2012, 21:03

Re: Zestawienie tunelu IPsec

Post autor: ifrit »

Wałczyłem z tymi FAILEDami od rana u poradziłem sobie tak jak napisałeś, za pomocą

Kod: Zaznacz cały

echo 0 > /proc/sys/net/ipv4/conf/default/send_redirects
echo 0 > /proc/sys/net/ipv4/conf/default/accept_redirects
Zdruzgotał mnie fakt ze wpisy:

Kod: Zaznacz cały

echo 0 > /proc/sys/net/ipv4/conf/all/send_redirects
echo 0 > /proc/sys/net/ipv4/conf/all/accept_redirects
echo 0 > /proc/sys/net/ipv4/conf/eth0/send_redirects
echo 0 > /proc/sys/net/ipv4/conf/eth0/accept_redirects
Nie działały, ale to tak na marginesie.

Niestety nie rozwiązało to mojego problemu gdyż dalej połączenie się nie tworzy.
Gdy w pliku ipsec.conf

Kod: Zaznacz cały

# basic configuration
config setup
        nat_traversal=yes
        virtual_private=%v4:10.0.0.0/8,%v4:192.168.0.0/16,%4:172.16.0.0/12
   interfaces=%defaultroute
conn sample
        # Left security gateway, subnet behind it, nexthop toward right.        
   compress=yes
   keyingtries=1
   disablearrivalcheck=no
   leftrsasigkey=%cert
   rightrsasigkey=%cert
   authby=rsasig

conn roadwarrior-net
        leftsubnet=192.168.0.0/24
   also=roadwarrior

conn roadwarrior
   left=192.168.0.168
   leftcert=server.pem
   right=192.168.0.149
   rightsubnet=192.168.0.0/24
   [b]auto=start[/b]
   pfs=yes
conn block
   auto=ignore

conn private
   auto=ignore

conn private-or-clear
   auto=ignore

conn clear-or-private
   auto=ignore

conn clear
   auto=ignore

conn packetdefault
   auto=ignore   
wstawiłem polecenie auto=start aby połączenie było nawiązywane automatycznie okazało się, że odcina mi do dostęp do internetu.

auth.log

Kod: Zaznacz cały

Apr 12 19:00:40 ifrit-VirtualBox ipsec__plutorun: Starting Pluto subsystem...
Apr 12 19:00:40 ifrit-VirtualBox pluto[3137]: Starting Pluto (Openswan
Version 2.6.28; Vendor ID OEQ{O\177nez{CQ) pid:3137
Apr 12 19:00:41 ifrit-VirtualBox pluto[3137]: SAref support
[disabled]: Protocol not available
Apr 12 19:00:41 ifrit-VirtualBox pluto[3137]: SAbind support
[disabled]: Protocol not available
Apr 12 19:00:41 ifrit-VirtualBox pluto[3137]: Setting NAT-Traversal
port-4500 floating to on
Apr 12 19:00:41 ifrit-VirtualBox pluto[3137]:    port floating
activation criteria nat_t=1/port_float=1
Apr 12 19:00:41 ifrit-VirtualBox pluto[3137]:    NAT-Traversal support
 [enabled]
Apr 12 19:00:41 ifrit-VirtualBox pluto[3137]: fixup for bad
virtual_private entry '%4:172.16.0.0/12', please fix your
virtual_private line!
Apr 12 19:00:41 ifrit-VirtualBox pluto[3137]: fixup for bad
virtual_private entry '%4:172.16.0.0/12', please fix your
virtual_private line!
Apr 12 19:00:41 ifrit-VirtualBox pluto[3137]: using /dev/urandom as
source of random entropy
Apr 12 19:00:41 ifrit-VirtualBox pluto[3137]: ike_alg_register_enc():
Activating OAKLEY_TWOFISH_CBC_SSH: Ok (ret=0)
Apr 12 19:00:41 ifrit-VirtualBox pluto[3137]: ike_alg_register_enc():
Activating OAKLEY_TWOFISH_CBC: Ok (ret=0)
Apr 12 19:00:41 ifrit-VirtualBox pluto[3137]: ike_alg_register_enc():
Activating OAKLEY_SERPENT_CBC: Ok (ret=0)
Apr 12 19:00:41 ifrit-VirtualBox pluto[3137]: ike_alg_register_enc():
Activating OAKLEY_AES_CBC: Ok (ret=0)
Apr 12 19:00:41 ifrit-VirtualBox pluto[3137]: ike_alg_register_enc():
Activating OAKLEY_BLOWFISH_CBC: Ok (ret=0)
Apr 12 19:00:41 ifrit-VirtualBox pluto[3137]: ike_alg_register_hash():
Activating OAKLEY_SHA2_512: Ok (ret=0)
Apr 12 19:00:41 ifrit-VirtualBox pluto[3137]: ike_alg_register_hash():
Activating OAKLEY_SHA2_256: Ok (ret=0)
Apr 12 19:00:41 ifrit-VirtualBox pluto[3137]: starting up 1
cryptographic helpers
Apr 12 19:00:41 ifrit-VirtualBox pluto[3137]: started helper pid=3140 (fd:7)
Apr 12 19:00:41 ifrit-VirtualBox pluto[3137]: Kernel interface auto-pick
Apr 12 19:00:41 ifrit-VirtualBox pluto[3137]: Using Linux 2.6 IPsec
interface code on 2.6.38-8-generic (experimental code)
Apr 12 19:00:41 ifrit-VirtualBox pluto[3140]: using /dev/urandom as
source of random entropy
Apr 12 19:00:41 ifrit-VirtualBox pluto[3137]: ike_alg_register_enc():
Activating aes_ccm_8: Ok (ret=0)
Apr 12 19:00:41 ifrit-VirtualBox pluto[3137]: ike_alg_add(): ERROR:
Algorithm already exists
Apr 12 19:00:41 ifrit-VirtualBox pluto[3137]: ike_alg_register_enc():
Activating aes_ccm_12: FAILED (ret=-17)
Apr 12 19:00:41 ifrit-VirtualBox pluto[3137]: ike_alg_add(): ERROR:
Algorithm already exists
Apr 12 19:00:41 ifrit-VirtualBox pluto[3137]: ike_alg_register_enc():
Activating aes_ccm_16: FAILED (ret=-17)
Apr 12 19:00:41 ifrit-VirtualBox pluto[3137]: ike_alg_add(): ERROR:
Algorithm already exists
Apr 12 19:00:41 ifrit-VirtualBox pluto[3137]: ike_alg_register_enc():
Activating aes_gcm_8: FAILED (ret=-17)
Apr 12 19:00:41 ifrit-VirtualBox pluto[3137]: ike_alg_add(): ERROR:
Algorithm already exists
Apr 12 19:00:41 ifrit-VirtualBox pluto[3137]: ike_alg_register_enc():
Activating aes_gcm_12: FAILED (ret=-17)
Apr 12 19:00:41 ifrit-VirtualBox pluto[3137]: ike_alg_add(): ERROR:
Algorithm already exists
Apr 12 19:00:41 ifrit-VirtualBox pluto[3137]: ike_alg_register_enc():
Activating aes_gcm_16: FAILED (ret=-17)
Apr 12 19:00:41 ifrit-VirtualBox pluto[3137]: Changed path to
directory '/etc/ipsec.d/cacerts'
Apr 12 19:00:41 ifrit-VirtualBox pluto[3137]:   loaded CA cert file
'cacert.pem' (3253 bytes)
Apr 12 19:00:41 ifrit-VirtualBox pluto[3137]: Changed path to
directory '/etc/ipsec.d/aacerts'
Apr 12 19:00:41 ifrit-VirtualBox pluto[3137]: Changed path to
directory '/etc/ipsec.d/ocspcerts'
Apr 12 19:00:41 ifrit-VirtualBox pluto[3137]: Changing to directory
'/etc/ipsec.d/crls'
Apr 12 19:00:41 ifrit-VirtualBox pluto[3137]:   loaded crl file
'crl.pem' (467 bytes)
Apr 12 19:00:41 ifrit-VirtualBox pluto[3137]: loading certificate from
server.pem
Apr 12 19:00:41 ifrit-VirtualBox pluto[3137]:   loaded host cert file
'/etc/ipsec.d/certs/server.pem' (3147 bytes)
Apr 12 19:00:41 ifrit-VirtualBox pluto[3137]: added connection
description "roadwarrior-net"
Apr 12 19:00:41 ifrit-VirtualBox pluto[3137]: loading certificate from
server.pem
Apr 12 19:00:41 ifrit-VirtualBox pluto[3137]:   loaded host cert file
'/etc/ipsec.d/certs/server.pem' (3147 bytes)
Apr 12 19:00:41 ifrit-VirtualBox pluto[3137]: added connection
description "roadwarrior"
Apr 12 19:00:41 ifrit-VirtualBox pluto[3137]: listening for IKE messages
Apr 12 19:00:41 ifrit-VirtualBox pluto[3137]: NAT-Traversal: Trying
new style NAT-T
Apr 12 19:00:41 ifrit-VirtualBox pluto[3137]: NAT-Traversal:
ESPINUDP(1) setup failed for new style NAT-T family IPv4 (errno=19)
Apr 12 19:00:41 ifrit-VirtualBox pluto[3137]: NAT-Traversal: Trying
old style NAT-T
Apr 12 19:00:41 ifrit-VirtualBox pluto[3137]: adding interface
eth0/eth0 192.168.0.149:500
Apr 12 19:00:41 ifrit-VirtualBox pluto[3137]: adding interface
eth0/eth0 192.168.0.149:4500
Apr 12 19:00:41 ifrit-VirtualBox pluto[3137]: adding interface lo/lo
127.0.0.1:500
Apr 12 19:00:41 ifrit-VirtualBox pluto[3137]: adding interface lo/lo
127.0.0.1:4500
Apr 12 19:00:41 ifrit-VirtualBox pluto[3137]: adding interface lo/lo ::1:500
Apr 12 19:00:41 ifrit-VirtualBox pluto[3137]: loading secrets from
"/etc/ipsec.secrets"
Apr 12 19:00:41 ifrit-VirtualBox pluto[3137]:   loaded private key
file '/etc/ipsec.d/private/server.key' (963 bytes)
Apr 12 19:00:41 ifrit-VirtualBox pluto[3137]: loaded private key for
keyid: PPK_RSA:AwEAAcbay

Kod: Zaznacz cały

/var/log/messages
nie mam takiego katalogu ani folderu:P
Awatar użytkownika
ekitowski
Sędziwy Jeż
Sędziwy Jeż
Posty: 51
Rejestracja: 25 sie 2008, 15:03
Płeć: Mężczyzna
Wersja Ubuntu: 8.10
Środowisko graficzne: GNOME
Kontakt:

Re: Zestawienie tunelu IPsec

Post autor: ekitowski »

Kod: Zaznacz cały

/var/log/messages
nie mam takiego katalogu ani folderu:P
Zgadza się - zapomniałem, że od 11.04 (Natty) nie ma już tego pliku - to samo jest w syslog - a ja obecnie od dłuższego czasu debian...
No i powiem tak - jak dla mnie to zostaje poszukać jakiegoś dobrego howto odnośnie stawiania openswan i walczyć z tym - bo rozumiem, że wykonujesz to w celach edukacyjnych. Ja bez dostępu do konsoli raczej już nic nie wymyślę...
Polecam lekturę http://www.natecarlson.com/category/geek-stuff/vpn/, znajdziesz tam dość dużo informacji.
Pozdrawiam i życzę powodzenia. :-)
ifrit
Piegowaty Guziec
Piegowaty Guziec
Posty: 5
Rejestracja: 11 kwie 2012, 21:03

Re: Zestawienie tunelu IPsec

Post autor: ifrit »

Zgadza się - zapomniałem, że od 11.04 (Natty) nie ma już tego pliku - to samo jest w syslog - a ja obecnie od dłuższego czasu debian...[/qoute]

Im dużej pracuje na ubuntu tym bardziej skłaniam się ku jakieś innej dystrybucji.
No i powiem tak - jak dla mnie to zostaje poszukać jakiegoś dobrego howto odnośnie stawiania openswan i walczyć z tym - bo rozumiem, że wykonujesz to w celach edukacyjnych. Ja bez dostępu do konsoli raczej już nic nie wymyślę...
Pisze o tym pracę inżynierską. Bez żadnych błędów ciężko mi jest się czegoś uczepić. Może postawie od nowa systemy i zrobię to wszystko od początku bo trochę już jest pogrzebane.
Polecam lekturę http://www.natecarlson.com/category/geek-stuff/vpn/, znajdziesz tam dość dużo informacji.
Głownie opierałem się na tym tutorialu, ale on też nie jest w 100% idealny. Tak ogólnie to w sieci nie znalazłem takiego poradnika w których wszystkie kroki dało się zrobić beż błędów. Chyba spróbuje zrobić połączenie Linux-Windows, ale czuje, że też będzie wesoło.
Pozdrawiam i życzę powodzenia. :-)
Jeśli uda mi się rozgryźć ten problem to się pochwale. Może potomnym się przyda.
ODPOWIEDZ

Wróć do „Sieci, serwery, Internet”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 12 gości