OpenSWAN

Z wiki linux-user
Skocz do: nawigacji, wyszukiwania
 
Linia 20: Linia 20:
 
  yum install openswan*
 
  yum install openswan*
 
co spowoduje zainstalowanie pakietu '''OpenSWAN'''. Od teraz mamy już wszystko co potrzeba do przystąpienia do konfiguracji bezpiecznego kanału.
 
co spowoduje zainstalowanie pakietu '''OpenSWAN'''. Od teraz mamy już wszystko co potrzeba do przystąpienia do konfiguracji bezpiecznego kanału.
 +
 +
=== Konfiguracja ===
 +
Przed przystąpieniem do konfiguracji musimy ustalić co tak na prawdę chcemy osiągnąć. Mamy wiele możliwości, w tym miejscu postaram się przedstawić jeden z nich tzn połączenie dwóch sieci w jedną. W przypadku gdy mamy dwa odziały jednej firmy w różnych miejscach takie działanie będzie jak najbardziej uzasadnione. Przyjmuję następujące dane:
 +
 +
'''oddział A'''
 +
serwer linux
 +
ip zew 81.192.0.186
 +
lokalna sieć 10.0.0.0/16
 +
'''oddział B'''
 +
serwer linux
 +
ip zew 81.192.0.185
 +
lokalna sieć 10.1.0.0/16
 +
Tworzymy/edytujemy plik ''/etc/ipsec.conf'', tak aby wyglądał następująco na serwerze A
 +
 +
'''serwer A'''
 +
vim /etc/ipsec.conf
 +
version 2.0    # conforms to second version of ipsec.conf specification
 +
config setup
 +
  interfaces=%defaultroute
 +
  forwardcontrol=yes
 +
  rp_filter=0
 +
  nat_traversal=no
 +
conn linux-to-linux
 +
  auth=esp
 +
  authby=rsasig
 +
  pfs=yes
 +
  left=81.192.0.186
 +
  leftsubnet=10.0.0.0/16
 +
  leftid=81.192.0.186
 +
  leftrsasigkey=(klucz publiczny serwera A)
 +
  right=81.192.0.185
 +
  rightsubnet=10.1.0.0/16
 +
  rightid=81.192.0.185
 +
  rightrsasigkey=(klucz publiczny B)
 +
  auto=add
 +
Taką samą konfigurację tworzymy na serwerze B odpowiednio zamieniając adresy IP.
 +
 +
'''serwer B'''
 +
vim /etc/ipsec.conf
 +
version 2.0    # conforms to second version of ipsec.conf specification
 +
config setup
 +
interfaces=%defaultroute
 +
forwardcontrol=yes
 +
rp_filter=0
 +
nat_traversal=no
 +
conn linux-to-linux
 +
  auth=esp
 +
  authby=rsasig
 +
  pfs=yes
 +
  left=81.192.0.185
 +
  leftsubnet=10.1.0.0/16
 +
  leftid=81.192.0.185
 +
  leftrsasigkey=(klucz publiczny serwera B)
 +
  right=81.192.0.186
 +
  rightsubnet=10.0.0.0/16
 +
  rightid=81.192.0.186
 +
  rightrsasigkey=(klucz publiczny A)
 +
  auto=add
 +
==== znaczenie opcji ====
 +
 +
*'''authby=rsasig''' uwierzytelnianie za pomocą RSA
 +
*'''left=81.192.0.186''' lokalny adres rutera serwera A
 +
*'''leftsubnet=10.0.0.0/16''' sieć LAN za ruterem serwera A
 +
*'''leftrsasigkey=O8wq3…''' klucz publiczny serwera A
 +
*'''right=81.192.0.185''' ip bramy serwera B
 +
*'''rightsubnet=10.1.0.0/16''' sieć LAN za serwerem B
 +
*'''rightrsasigkey=8qw9Hwdf…''' klucz publiczny serwera B
 +
 +
=== Generowanie kluczy RSA ===
 +
Musimy wygenerować odpowiednie klucze potrzebne do autoryzacji serwerów. Aby to uczynić wydajemy odpowiednie polecenia na obu serwerach
 +
ipsec rsasigkey 1024 > /etc/ipsec.d/rsa.key
 +
jeżeli po tym poleceniu dostajemy błąd w stylu
 +
ipsec rsasigkey: configdir is required
 +
możemy użyć polecenia w inny sposób
 +
ipsec rsasigkey 1024 --configdir /etc/pki/nssdb/  > /etc/ipsec.d/rsa.key
 +
Po wygenerowaniu kluczy na obu serwerach należy przekopiować klucz publiczny, który zaczyna się od opcji ''pubkey=…'' do pliku ''/etc/ipsec.conf'' w miejsce przy opcji ''leftrsasigkey=….'' W taki sam sposób musisz przekopiować klucz publiczny '''serwera A''' na '''serwer B''' do pliku ''/etc/ipsec.conf/'' w miejsce opcji ''rightrsasigkey=…'' i w analogiczny sposób z '''serwera B''' na '''serwer A'''. Kolejnym krokiem jest przekopiowanie w odpowiednie miejsce klucza prywatnego. Aby to uczynić edytujemy plik ''/etc/ipsec.secrets'' zmieniamy go w następujący sposób, kopiując z pliku ''/etc/ipsec.d/rsa.key'' sekcje od ''Modules:'' do końca pliku
 +
 +
'''serwer A'''
 +
vim /etc/ipsec.secrets
 +
81.192.0.186 81.192.0.185: RSA {
 +
Modulus:0xb10c2d1d1b87d51b919e2f7e550ff83d57fa776e74b88f559659857fdfa
 +
61d0fbb27a9ac7da9671d97283aa8258ca922267fc83d9b68219d71b2f3999ce49349
 +
d904ed1f887928ga722b85b281306e4f977604b74fcf1ef50ca147d52ad95d0fc3cc4
 +
7e8e6992a511ebfbba0d43360a6ae4c399e4beea3559b763d556fbb0785
 +
PublicExponent: 0x03
 +
# everything after this point is CKA_ID in hex format when using NSS
 +
PrivateExponent: 0x2xc949962dadb0f6eef6b2e2cea15274d5d0c48f
 +
Prime1: 0x2xc949962dadb0f6eef6b2e2cea15274d5r0c48f
 +
Prime2: 0x2xc949962dadb0f6eef6b2e2cea15274d5r0c48f
 +
Exponent1: 0x2xc949962dadb0f6eef6b2e2cea15274d5r0c48f
 +
Exponent2: 0x2xc949962dadb0f6eef6b2e2cea15274d5r0c48f
 +
Coefficient: 0x2xc949962dadb0f6eef6b2e2cea15274d5r0c48f
 +
CKAIDNSS: 0x2xc949962dadb0f6eef6b2e2cea15274d5r0c48f
 +
}Tak samo postępujemy na '''serwerze B''' zmieniając jedynie kolejność adresów IP. Pierwszy IP wskazuje na maszyne lokalną następny na maszyne odległą.
 +
 +
=== Operacje końcowe ===
 +
 +
Aby zweryfikować poprawność naszej konfiguracji włączamy '''ipsec''' na obu serwerach
 +
/etc/init.d/ipsec start
 +
lub
 +
ipsec setup start
 +
a następnie wydajemy polecenie
 +
ipsec verify
 +
jeżeli dostajemy błąd typu
 +
NETKEY detected, testing for disabled ICMP send_redirects  [FAILED]
 +
NETKEY detected, testing for disabled ICMP accept_redirects         [FAILED]
 +
musimy wyłączyć send_redirects oraz accept_redirects dla ICMP, wydajemy polecenie
 +
echo 0 > /proc/sys/net/ipv4/conf/default/accept_redirects
 +
echo 0 > /proc/sys/net/ipv4/conf/default/send_redirects
 +
jeżeli wszystko ruszyło jak należy możemy rozpocząć połączenie wydając polecenie
 +
ipsec auto --up linux-to-linux
 +
w tym słowo ''linux-to-linux'' jest nazwą połączenia zawartą w pliku ''/etc/ipsec.conf''. Po tych operacjach powinniśmy mieć możliwość połączenia się z '''bramy A''' do '''bramy B''' i na odwrót. Aby zweryfikować czy napewno wszystko poszło jak należy i jesteśmy połączeni z '''serwerem B''' możemy wydać polecenie
 +
ip xfrm state
 +
Do rozwiązania ewentualnych problemów może pomóc nam polecenie
 +
ipsec auto --status
 +
 +
<br /><google1 style="4"></google1>

Aktualna wersja na dzień 14:57, 23 kwi 2012

Osobiste
Przestrzenie nazw

Warianty
Działania
Nawigacja
Narzędzia


Sponsor serwisu

Firma informatyczna ITProjek Bydgoszcz usługi informacztyczne, serwery, linux, windows, strony www, hosting, sieci komputerowe, system archiwizacji danych