• IPsec host-to-host i racoon w CentOS 5

    dodany przez Przemysław Sikora

    Bezpieczna komunikacja między serwerami jest niezwykle ważna, w szczególności, gdy w grę wchodzą usługi które domyślnie nie są w żaden sposób zabezpieczone przed podsłuchaniem. Przykładem może być np. syslog działający na porcie 514 udp. W takim przypadku, dobrym rozwiązaniem jest zastosowanie szyfrowanego tunelu (VPN). Na łamach naszej strony, omawiany był openvpn w wersji 1 i 2. Teraz przyszedł czas na IPsec-a. Omówię najprostszą z możliwych opcji, czy host-to-host. Do jego konfiguracji niezbędny jest pakiet “ipsec-tools”, który domyślnie powinien być zainstalowany. Jakby go nie było to wystarczy użyć komendy:

    yum install ipsec-tools

    Następnie edytujemy/tworzymy plik “/etc/sysconfig/network-scripts/ifcfg-ipsec0”. Jego zawartość powinna być następująca:
    IKE_METHOD=PSK
    TYPE=IPSEC
    ONBOOT=no
    DST=adres_ip_drugiego_końca_tunelu
    AH_PROTO=none

    Kolejnym krokiem powinna być edycja skryptu startowego “/etc/sysconfig/network-scripts/ifup-ipsec”. Powinniśmy zakomentować następujące linie:
    if [ "$IKE_METHOD" = "PSK" ]; then
    tmpfile=`mktemp /etc/racoon/psk.XXXXXX`
    grep -v "^$DST" /etc/racoon/psk.txt > $tmpfile
    echo "$DST $IKE_PSK" >> $tmpfile
    mv -f $tmpfile /etc/racoon/psk.txt
    fi

    Dzięki powyższemu zabiegowi, nie zmieni się pre shared key w pliku “/etc/racoon/psk.txt”. Następnie edytujemy wspomniany plik i dopisujemy:
    adres_ip_drugiego_końca_tunelu klucz_taki_sam_na_obu_końcach_tunelu
    Następnie powtarzamy operację na drugim końcu tunelu. Ostatnim etapem jest wykonanie poniższego polecenie na obydwu maszynach:

    ifup ipsec0

    Używając poniższego polecenia na obydwu serwerach

    setkey -D

    powinniśmy otrzymać coś podobnego:
    IP-A IP-B
    esp mode=transport spi=253560251(0x0f1d05bb) reqid=16420(0x00004024)
    E: 3des-cbc 6709c3d5 681d801b 6d9791bd 1b092bfb 7c934a3f ec5834fe
    A: hmac-sha1 e8ed200d e11cf05f 5f71625e 67112ff9 82926f6c
    seq=0x00000000 replay=4 flags=0x00000000 state=mature
    created: Jul 22 23:25:02 2012 current: Jul 22 23:27:43 2012
    diff: 161(s) hard: 3600(s) soft: 2880(s)
    last: Jul 22 23:25:04 2012 hard: 0(s) soft: 0(s)
    current: 27912(bytes) hard: 0(bytes) soft: 0(bytes)
    allocated: 127 hard: 0 soft: 0
    sadb_seq=1 pid=3922 refcnt=0
    IP-B IP-A
    esp mode=transport spi=107074164(0x0661d274) reqid=16421(0x00004025)
    E: 3des-cbc fa1d4be7 05a4f3b4 f7941f07 7652871d 7926b8df 47b274da
    A: hmac-sha1 26258b10 0fecc427 6a42c4bd 2c2ff1fe 4a69dd63
    seq=0x00000000 replay=4 flags=0x00000000 state=mature
    created: Jul 22 23:25:02 2012 current: Jul 22 23:27:43 2012
    diff: 161(s) hard: 3600(s) soft: 2880(s)
    last: Jul 22 23:25:04 2012 hard: 0(s) soft: 0(s)
    current: 7204(bytes) hard: 0(bytes) soft: 0(bytes)
    allocated: 167 hard: 0 soft: 0
    sadb_seq=0 pid=3922 refcnt=0

    Najważniejsze, aby była komunikacja pomiędzy obydwoma końcami tunelu. Wykonujemy proste polecenie:

    ping ip_drugiego_konca

    Jeśli powyższe polecenie zwraca prawidłowe wartości, to znaczy że wszystko działa. Ostatecznym testem może być uruchomienie narzędzia tcpdump np. na maszynie IP-A i “puszczenie pinga” z IP-B:

    tcpdump host IP-A

    Powinniśmy zobaczyć coś podobnego:
    00:36:24.515915 IP-B > IP-A: ESP(spi=0x0f23dea5,seq=0x73f), length 100
    00:36:25.515273 IP-A > IP-B: ESP(spi=0x044ee49e,seq=0x600), length 100

    Nie widzimy oznaczenie ICMP, a zamiast niego ESP, co jest ostatecznym dowodem na to, iż pomiędzy omawianymi dwoma serwerami zestawiony jest tunel IPsec. Uprzedzam, że nie zawsze zestawienie tunelu IPsec idzie prosto i łatwo, czasem z niewiadomych przyczyn, serwery nie potrafię się “dogadać”.

Komentarze do “IPsec host-to-host i racoon w CentOS 5”

  1. michas100 pisze:

    Witam, jeszcze jedną drogą do zestawienia bezpiecznego tunelu IPSEC jest zawarte w CENTOS GUI wraz z narzędziem RACOON, które w semi-automatyczny sposób “zadba” o klucze możliwe tryby to sieć-sieć oraz opisany powyżej host-host. Pozdrawiam.

Dodaj komentarz

Warto odwiedzić
Valid XHTML 1.0 Transitional centos.com.pl- mapa strony