Выполнили студенты гр. 5ЗАСОИУ:
Васильев Иван Анатольевич
Николаев Борис Анатольевич
Степанов Дмитрий Александрович
Проверил:
Екимов Дмитрий Анатольевич
Петрозаводск
Создать виртуальный канал в туннельном режиме между двумя рабочими станциями, используя одновременно шифрование и аутентификацию:
а) с ручным конфигурированием посредством утилиты setkey;
б) в автоматическом режиме (демон racoon) с предопределенными ключами.
Для создания виртуального канала в туннельном режиме между двумя рабочими станциями, с одновременным использованием шифрования и аутентификации, с ручным конфигурированием посредством утилиты setkey, нужно выполнить следующие шаги:
А)
- Создать файл конфигурации ipsec.conf. Для компьютера с IP-адресом 172.20.180.16:
bnikolaev@6k125-06:~/ipsec$ vim ipsec.conf
flush;
add 172.20.180.17 172.20.180.16 esp 300 -m tunnel -E des-cbc 0x3ffe05014819ffff -A hmac-md5 "aaaaaaaaaaaaaaaa";
add 172.20.180.16 172.20.180.17 esp 301 -m tunnel -E des-cbc 0x3ffe05014819ffff -A hmac-md5 "aaaaaaaaaaaaaaaa";
add 172.20.180.18 172.20.180.16 esp 302 -m tunnel -E des-cbc 0x3ffe05014819ffff -A hmac-md5 "aaaaaaaaaaaaaaaa";
add 172.20.180.16 172.20.180.18 esp 303 -m tunnel -E des-cbc 0x3ffe05014819ffff -A hmac-md5 "aaaaaaaaaaaaaaaa";
spdflush;
spdadd 172.20.180.16 172.20.180.17 any -P out ipsec esp/tunnel/172.20.180.16-172.20.180.17/require;
spdadd 172.20.180.17 172.20.180.16 any -P in ipsec esp/tunnel/172.20.180.17-172.20.180.16/require;
spdadd 172.20.180.16 172.20.180.18 any -P out ipsec esp/tunnel/172.20.180.16-172.20.180.18/require;
spdadd 172.20.180.18 172.20.180.16 any -P in ipsec esp/tunnel/172.20.180.18-172.20.180.16/require;
2. Внести записи из ipsec.conf в базы данных SAD и SPD
bnikolaev@6k125-06:~$ sudo setkey -f ~/ipsec/ipsec.conf -k
sudo setkey -D
172.20.180.17 172.20.180.16
esp mode=tunnel spi=300(0x0000012c) reqid=0(0x00000000)
E: des-cbc 3ffe0501 4819ffff
A: hmac-md5 61616161 61616161 61616161 61616161
seq=0x00000000 replay=0 flags=0x00000000 state=mature
created: Jun 14 15:09:07 2012 current: Jun 14 15:11:14 2012
diff: 127(s) hard: 0(s) soft: 0(s)
last: Jun 14 15:09:13 2012 hard: 0(s) soft: 0(s)
current: 4032(bytes) hard: 0(bytes) soft: 0(bytes)
allocated: 48 hard: 0 soft: 0
sadb_seq=1 pid=4979 refcnt=0
172.20.180.16 172.20.180.17
esp mode=tunnel spi=301(0x0000012d) reqid=0(0x00000000)
E: des-cbc 3ffe0501 4819ffff
A: hmac-md5 61616161 61616161 61616161 61616161
seq=0x00000000 replay=0 flags=0x00000000 state=mature
created: Jun 14 15:09:07 2012 current: Jun 14 15:11:14 2012
diff: 127(s) hard: 0(s) soft: 0(s)
last: Jun 14 15:09:09 2012 hard: 0(s) soft: 0(s)
current: 4368(bytes) hard: 0(bytes) soft: 0(bytes)
allocated: 52 hard: 0 soft: 0
sadb_seq=2 pid=4979 refcnt=0
172.20.180.18 172.20.180.16
esp mode=tunnel spi=302(0x0000012e) reqid=0(0x00000000)
E: des-cbc 3ffe0501 4819ffff
A: hmac-md5 61616161 61616161 61616161 61616161
seq=0x00000000 replay=0 flags=0x00000000 state=mature
created: Jun 14 15:09:07 2012 current: Jun 14 15:11:14 2012
diff: 127(s) hard: 0(s) soft: 0(s)
last: hard: 0(s) soft: 0(s)
current: 0(bytes) hard: 0(bytes) soft: 0(bytes)
allocated: 0 hard: 0 soft: 0
sadb_seq=3 pid=4979 refcnt=0
172.20.180.16 172.20.180.18
esp mode=tunnel spi=303(0x0000012f) reqid=0(0x00000000)
E: des-cbc 3ffe0501 4819ffff
A: hmac-md5 61616161 61616161 61616161 61616161
seq=0x00000000 replay=0 flags=0x00000000 state=mature
created: Jun 14 15:09:07 2012 current: Jun 14 15:11:14 2012
diff: 127(s) hard: 0(s) soft: 0(s)
last: hard: 0(s) soft: 0(s)
current: 0(bytes) hard: 0(bytes) soft: 0(bytes)
allocated: 0 hard: 0 soft: 0
sadb_seq=0 pid=4979 refcnt=0
3. Перехват IP пакетов с помощью tcpdump:
bnikolaev@6k125-06:~$ sudo tcpdump -s0 -n host 172.20.180.17 or host 172.20.180.18
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
15:15:38.243107 IP 172.20.180.17.137 > 172.20.180.255.137: NBT UDP PACKET(137): QUERY; REQUEST; BROADCAST
15:15:38.243661 arp who-has 172.20.180.17 tell 172.20.180.10
15:15:38.382264 IP 172.20.180.18 > 172.20.180.16: ESP(spi=0x0000012e,seq=0x4), length 116
15:15:38.382264 IP 172.20.180.18 > 172.20.180.16: ICMP echo request, id 51218, seq 1, length 64
15:15:38.382415 IP 172.20.180.16 > 172.20.180.18: ESP(spi=0x0000012f,seq=0x4), length 116
15:15:39.381141 IP 172.20.180.18 > 172.20.180.16: ESP(spi=0x0000012e,seq=0x5), length 116
15:15:39.381141 IP 172.20.180.18 > 172.20.180.16: ICMP echo request, id 51218, seq 2, length 64
15:15:39.381271 IP 172.20.180.16 > 172.20.180.18: ESP(spi=0x0000012f,seq=0x5), length 116
15:15:40.380311 IP 172.20.180.18 > 172.20.180.16: ESP(spi=0x0000012e,seq=0x6), length 116
15:15:40.380311 IP 172.20.180.18 > 172.20.180.16: ICMP echo request, id 51218, seq 3, length 64
15:15:40.380438 IP 172.20.180.16 > 172.20.180.18: ESP(spi=0x0000012f,seq=0x6), length 116
15:15:49.063757 IP 172.20.180.17 > 172.20.180.16: ESP(spi=0x0000012c,seq=0x2f), length 116
15:15:49.063757 IP 172.20.180.17 > 172.20.180.16: ICMP echo request, id 29203, seq 1, length 64
15:15:49.063932 IP 172.20.180.16 > 172.20.180.17: ESP(spi=0x0000012d,seq=0x35), length 116
15:15:50.062866 IP 172.20.180.17 > 172.20.180.16: ESP(spi=0x0000012c,seq=0x30), length 116
15:15:50.062866 IP 172.20.180.17 > 172.20.180.16: ICMP echo request, id 29203, seq 2, length 64
15:15:50.062998 IP 172.20.180.16 > 172.20.180.17: ESP(spi=0x0000012d,seq=0x36), length 116
15:15:51.062850 IP 172.20.180.17 > 172.20.180.16: ESP(spi=0x0000012c,seq=0x31), length 116
15:15:51.062850 IP 172.20.180.17 > 172.20.180.16: ICMP echo request, id 29203, seq 3, length 64
15:15:51.062981 IP 172.20.180.16 > 172.20.180.17: ESP(spi=0x0000012d,seq=0x37), length 116
Отображается протокол ESP, индекс безопасности SPI и номер последовательности для пакета.
Б) Создать виртуальный канал в туннельном режиме между двумя рабочими станциями, используя одновременно шифрование и аутентификацию, в автоматическом режиме (демон racoon) с предопределенными ключами.
Для создания такого канала потребуется конфигурация трех файлов:
§ psk.txt – файл предварительного ключа.
§ ipsec.conf – конфигурационный файл утилиты setkey.
§ racoon.conf – конфигурационный файл демона racoon.
1. Содержимое файла racoon.conf:
bnikolaev@6k125-06:~$ vim /tmp/racoon.conf
path pre_shared_key "/tmp/psk.txt";
remote anonymous
{
exchange_mode main;
lifetime time 24 hour;
proposal
{
encryption_algorithm 3des;
hash_algorithm sha1;
authentication_method pre_shared_key;
dh_group 2;
}
}
sainfo anonymous
{
pfs_group 2;
lifetime time 12 hour;
encryption_algorithm 3des;
authentication_algorithm hmac_sha1;
compression_algorithm deflate;
}
2. Содержимое файла psk.txt:
bnikolaev@6k125-06:~$ vim /tmp/psk.txt
172.20.180.17 qwertyqwerty
172.20.180.18 qwertyqwerty
Между хостами устанавливается соединение, и пакеты перехватываются с помощью tcpdump. Об успешной конфигурации можно говорить, если отображается протокол ESP, индекс безопасности SPI и номер последовательности для пакета.
bnikolaev@6k125-06:~$ sudo startracoon /tmp/racoon2.conf
Foreground mode.
2012-06-14 15:56:48: INFO: @(#)ipsec-tools 0.7.1 (http://ipsec-tools.sourceforge.net)
2012-06-14 15:56:48: INFO: @(#)This product linked OpenSSL 0.9.8g 19 Oct 2007 (http://www.openssl.org/)
2012-06-14 15:56:48: INFO: Reading configuration from "/tmp/racoon2.conf"
2012-06-14 15:56:50: INFO: Resize address pool from 0 to 255
2012-06-14 15:56:50: INFO: 127.0.0.1[500] used as isakmp port (fd=6)
2012-06-14 15:56:50: INFO: 127.0.0.1[500] used for NAT-T
2012-06-14 15:56:50: INFO: 172.20.180.16[500] used as isakmp port (fd=7)
2012-06-14 15:56:50: INFO: 172.20.180.16[500] used for NAT-T
2012-06-14 15:56:52: INFO: IPsec-SA request for 172.20.180.17 queued due to no phase1 found.
2012-06-14 15:56:52: ERROR: unknown AF: 0
2012-06-14 15:56:52: INFO: initiate new phase 1 negotiation: 172.20.180.16[500]<=>172.20.180.17[500]
2012-06-14 15:56:52: INFO: begin Identity Protection mode.
2012-06-14 15:56:52: INFO: received Vendor ID: DPD
2012-06-14 15:56:52: INFO: ISAKMP-SA established 172.20.180.16[500]-172.20.180.17[500] spi:e7755e75fde5bc74:8d466ab905a0f328
2012-06-14 15:56:53: INFO: initiate new phase 2 negotiation: 172.20.180.16[500]<=>172.20.180.17[500]
2012-06-14 15:56:53: INFO: respond new phase 2 negotiation: 172.20.180.16[500]<=>172.20.180.17[500]
2012-06-14 15:56:53: INFO: IPsec-SA established: ESP/Tunnel 172.20.180.17[0]->172.20.180.16[0] spi=215329015(0xcd5a8f7)
2012-06-14 15:56:53: INFO: IPsec-SA established: ESP/Tunnel 172.20.180.16[500]->172.20.180.17[500] spi=223671212(0xd54f3ac)
2012-06-14 15:56:53: INFO: IPsec-SA established: ESP/Tunnel 172.20.180.17[0]->172.20.180.16[0] spi=130014745(0x7bfde19)
2012-06-14 15:56:53: INFO: IPsec-SA established: ESP/Tunnel 172.20.180.16[500]->172.20.180.17[500] spi=152613355(0x918b1eb)
bnikolaev@6k125-06:~$ sudo tcpdump -s0 -n host 172.20.180.17 or host 172.20.180.18
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
15:58:00.690193 IP 172.20.180.17 > 172.20.180.16: ESP(spi=0x0cd5a8f7,seq=0x54), length 116
15:58:00.690794 IP 172.20.180.17 > 172.20.180.16: ICMP echo request, id 56084, seq 67, length 64
15:58:00.690853 IP 172.20.180.16 > 172.20.180.17: ESP(spi=0x0918b1eb,seq=0x53), length 116
15:58:01.689957 IP 172.20.180.17 > 172.20.180.16: ESP(spi=0x0cd5a8f7,seq=0x55), length 116
15:58:01.689957 IP 172.20.180.17 > 172.20.180.16: ICMP echo request, id 56084, seq 68, length 64
15:58:01.690105 IP 172.20.180.16 > 172.20.180.17: ESP(spi=0x0918b1eb,seq=0x54), length 116
15:58:02.689933 IP 172.20.180.17 > 172.20.180.16: ESP(spi=0x0cd5a8f7,seq=0x56), length 116
15:58:02.689933 IP 172.20.180.17 > 172.20.180.16: ICMP echo request, id 56084, seq 69, length 64
15:58:02.690101 IP 172.20.180.16 > 172.20.180.17: ESP(spi=0x0918b1eb,seq=0x55), length 116
15:58:03.689911 IP 172.20.180.17 > 172.20.180.16: ESP(spi=0x0cd5a8f7,seq=0x57), length 116
15:58:03.689911 IP 172.20.180.17 > 172.20.180.16: ICMP echo request, id 56084, seq 70, length 64
15:58:03.690057 IP 172.20.180.16 > 172.20.180.17: ESP(spi=0x0918b1eb,seq=0x56), length 116
15:58:04.689885 IP 172.20.180.17 > 172.20.180.16: ESP(spi=0x0cd5a8f7,seq=0x58), length 116
15:58:04.689885 IP 172.20.180.17 > 172.20.180.16: ICMP echo request, id 56084, seq 71, length 64
15:58:04.690032 IP 172.20.180.16 > 172.20.180.17: ESP(spi=0x0918b1eb,seq=0x57), length 116
15:58:05.689861 IP 172.20.180.17 > 172.20.180.16: ESP(spi=0x0cd5a8f7,seq=0x59), length 116
15:58:05.689861 IP 172.20.180.17 > 172.20.180.16: ICMP echo request, id 56084, seq 72, length 64
15:58:05.690008 IP 172.20.180.16 > 172.20.180.17: ESP(spi=0x0918b1eb,seq=0x58), length 116