Имеем:1 Маршрутизатор Cisco 5510 ASA с реальным IP 1.1.1.1 (сеть XXX.XXX.0.0/24)
2. Маршрутизатор Linux CentOS 5.2 (ядро 2.6.18-92.el5) с установленным ipsec-tools-0.6.5-13.el5_3.1 и реальным IP 2.2.2.2 (сеть XXX.XXX.0.0/16)++ Конфигурация на маршрутизаторе Cisco:
crypto isakmp policy 5
encr aes
authentication pre-share
group 2
lifetime 3600
hash sha
!
crypto isakmp key SECRETKEY address 2.2.2.2
crypto ipsec security-association lifetime seconds 3600
crypto ipsec transform-set GK esp-aes esp-sha-hmac
crypto map IPSec 7 ipsec-isakmp
set peer 2.2.2.2
set transform-set GK
set pfs group2
match address 666
!
interface GigabitEthernet0/0.1
ip address 1.1.1.1 255.255.255.224
crypto map IPSec
!
ip route XXX.XXX.0.0 255.255.255.0 2.2.2.2
access-list 666 remark asGK
access-list 666 permit ip XXX.XXX.0.0 0.0.255.255 XXX.XXX.0.0 0.0.0.255
access-list 666 deny ip any any
++ Конфигурация на машине с Linux CentOS:/etc/sysconfig/network-scripts/ifcfg-ipsec0
TYPE=IPSEC
ONBOOT=yes
IKE_METHOD=PSK
IKE_PSK=SECRETKEY
IKE_DHGROUP=2
ESP_PROTO=aes
AH_PROTO=none
AESP_PROTO=hmac-sha1
SRC=2.2.2.2
SRCGW=XXX.XXX.0.100
DSTGW=1.1.1.1
SRCNET=XXX.XXX.0.0/24
DSTNET=XXX.XXX.0/16
DST=1.1.1.1
/etc/racoon/racoon.confpath include "/etc/racoon";
path pre_shared_key "/etc/racoon/psk.txt";
log notify;listen
{
isakmp 2.2.2.2 [500];
}sainfo address XXX.XXX.0.0/24 any address XXX.XXX.0.0/16 any
{
pfs_group 2;
lifetime time 6400 sec;
encryption_algorithm aes;
authentication_algorithm hmac_sha1;
compression_algorithm deflate;
}
и не забываем про iptables!!после настройки
#ifup ipsec0
после поднятия ipsec0 можно посмотреть есть ли туннель
#setkey -D
2.2.2.2 1.1.1.1
esp mode=tunnel spi=3839224802(0xe4d5ebe2) reqid=0(0x00000000)
E: aes-cbc c98674dd c1cda3a8 36f39eb5 84fd56b4 192e4acd 7ad470d7 0176919b c955cc38
A: hmac-sha1 d8e6305b 8b0352ab 249d125f 1515e6a8 136d8896
seq=0x00000000 replay=4 flags=0x00000000 state=mature
created: Jul 8 10:19:23 2010 current: Jul 8 10:44:57 2010
diff: 1534(s) hard: 86400(s) soft: 69120(s)
last: Jul 8 10:19:27 2010 hard: 0(s) soft: 0(s)
current: 2160(bytes) hard: 0(bytes) soft: 0(bytes)
allocated: 18 hard: 0 soft: 0
sadb_seq=1 pid=8863 refcnt=0
1.1.1.1 2.2.2.2
esp mode=tunnel spi=111533039(0x06a5dbef) reqid=0(0x00000000)
E: aes-cbc 3e1f5040 cf6c15d2 8083dc28 aa6006ef df53337f 13b31da2 2782ef5c e46d3567
A: hmac-sha1 a9553dd3 e9b431a5 534baef8 a2b1f34b cc2b8867
seq=0x00000000 replay=4 flags=0x00000000 state=mature
created: Jul 8 10:19:23 2010 current: Jul 8 10:44:57 2010
diff: 1534(s) hard: 86400(s) soft: 69120(s)
last: Jul 8 10:19:27 2010 hard: 0(s) soft: 0(s)
current: 833(bytes) hard: 0(bytes) soft: 0(bytes)
allocated: 18 hard: 0 soft: 0
sadb_seq=0 pid=8863 refcnt=0
Ссылки:
http://www.opennet.me/base/cisco/cisco_ipsec_freebsd.txt.html (очень помогла эта статья)
http://netbsd.gw.com/cgi-bin/man-cgi?racoon++NetBSD-current
URL:
Обсуждается: http://www.opennet.me/tips/info/2408.shtml
Как раз сегодня немного по-мучалась с настройкой IPSec :(Скажите, у Вас на этой машине
2. Маршрутизатор Linux CentOS 5.2 (ядро 2.6.18-92.el5) с установленным
ipsec-tools-0.6.5-13.el5_3.1 и реальным IP 2.2.2.2 (сеть XXX.XXX.0.0/16)
Есть NAT для локальной сети? Если да, не могли бы показать правила?
Добрый день..НАТ есть!!!
-A POSTROUTING -o vlan115 -j jstNET
-A jstNET -s 2.2.2.X/255.255.255.248 -j RETURN
-A jstNET -s 2.2.2.2 -j RETURN
-A jstNET -s XXX.XXX.0.0/255.255.255.0 -j SNAT --to-source 2.2.2.2
-A jstNET -j DROP
> Есть NAT для локальной сети? Если да, не могли бы показать правила?лучше вы покажите свои а вам укажут на их недостатки
>> Есть NAT для локальной сети? Если да, не могли бы показать правила?
>
>лучше вы покажите свои а вам укажут на их недостатки"Классическая", судя по гуглю, грабля с совмещением, за одним IP, NAT и ipsec.
Когда убирается NAT, работает IPsec туннель (между двумя офисами, в другом тоже NAT)
Когда NAT возвращается, Ipsec больше не работает.
[root@XXX network-scripts]# cat ifcfg-ipsec1
#IPSEC iface
DEVICE=ipsec1
TYPE=IPsec
IKE_METHOD=PSK
IKE_PSK=***ONBOOT=no
SRCNET=10.XX.2.0/24
DSTNET=10.XX.3.0/24
DST=XX.XX.XX.XX
IPV6INIT=noГде DST удаленный сервер с LAN 10.XX.3.0/24
[root@XXX network-scripts]# cat /etc/racoon/racoon.conf
# Racoon IKE daemon configuration file.
# See 'man racoon.conf' for a description of the format and entries.path include "/etc/racoon";
path pre_shared_key "/etc/racoon/psk.txt";
path certificate "/etc/racoon/certs";sainfo anonymous
{
pfs_group 2;
lifetime time 1 hour ;
encryption_algorithm 3des, blowfish 448, rijndael ;
authentication_algorithm hmac_sha1, hmac_md5 ;
compression_algorithm deflate ;
}
Причем, достаточно отключить NAT только с той стороны, с которой пытаемся подключиться по IPSec:===================
# Generated by iptables-save v1.3.5 on Fri Jul 9 16:42:38 2010
*mangle
:PREROUTING ACCEPT [2308398:1423237106]
:INPUT ACCEPT [173359:34702081]
:FORWARD ACCEPT [2134460:1388509687]
:OUTPUT ACCEPT [175649:19916950]
:POSTROUTING ACCEPT [2310109:1408426637]
COMMIT
# Completed on Fri Jul 9 16:42:38 2010
# Generated by iptables-save v1.3.5 on Fri Jul 9 16:42:38 2010
*nat
:PREROUTING ACCEPT [81100:4924860]
:POSTROUTING ACCEPT [2158:106381]
:OUTPUT ACCEPT [6000:364839]
-A PREROUTING -d YY.YY.YY.YY -i eth0 -p udp -m udp --dport 3333 -j DNAT --to-destination 10.XX.2.3:3333
-A POSTROUTING -o eth0 -j SNAT --to-source YY.YY.YY.YY
COMMIT
# Completed on Fri Jul 9 16:42:38 2010
# Generated by iptables-save v1.3.5 on Fri Jul 9 16:42:38 2010
*filter
:INPUT DROP [2709:353265]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [174990:19866804]
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -s XX.XX.XX.XX -i vmbr0 -j ACCEPT
-A INPUT -s XX.XX.XX.XX -i eth0 -j ACCEPT
-A INPUT -s ZZ.ZZ.ZZ.ZZ -i vmbr0 -j ACCEPT
-A INPUT -s ZZ.ZZ.ZZ.ZZ -i eth0 -j ACCEPT
-A INPUT -s 10.XX.3.0/255.255.255.0 -i vmbr0 -j ACCEPT
-A INPUT -s 10.XX.3.0/255.255.255.0 -i eth0 -j ACCEPT
-A INPUT -s 10.XX.2.0/255.255.255.0 -i vmbr0 -j ACCEPT
-A INPUT -s 10.XX.2.0/255.255.255.0 -i eth0 -j ACCEPT
-A INPUT -d YY.YY.YY.YY -p udp -m udp --dport 113 -j ACCEPT
-A INPUT -d YY.YY.YY.YY -p tcp -m tcp --dport 113 -j ACCEPT
-A INPUT -s XX.XX.XX.XX -i ipsec1 -j ACCEPT
-A FORWARD -s 10.XX.2.2 -o eth0 -p tcp -m tcp --dport 25 -j DROP
-A FORWARD -s 10.XX.2.2 -j ACCEPT
-A FORWARD -d 10.XX.2.2 -j ACCEPT
-A FORWARD -s 10.XX.2.3 -o eth0 -p tcp -m tcp --dport 25 -j DROP
-A FORWARD -s 10.XX.2.3 -j ACCEPT
-A FORWARD -d 10.XX.2.3 -j ACCEPT
-A FORWARD -s 10.XX.2.1 -o eth0 -p tcp -m tcp --dport 25 -j DROP
-A FORWARD -s 10.XX.2.1 -j ACCEPT
-A FORWARD -d 10.XX.2.1 -j ACCEPT
-A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -s XX.XX.XX.XX -i vmbr0 -j ACCEPT
-A FORWARD -s XX.XX.XX.XX -i eth0 -j ACCEPT
-A FORWARD -s ZZ.ZZ.ZZ.ZZ -i vmbr0 -j ACCEPT
-A FORWARD -s ZZ.ZZ.ZZ.ZZ -i eth0 -j ACCEPT
-A FORWARD -s 10.XX.3.0/255.255.255.0 -i vmbr0 -j ACCEPT
-A FORWARD -s 10.XX.3.0/255.255.255.0 -i eth0 -j ACCEPT
-A FORWARD -s 10.XX.2.0/255.255.255.0 -i vmbr0 -j ACCEPT
-A FORWARD -s 10.XX.2.0/255.255.255.0 -i eth0 -j ACCEPT
-A FORWARD -s 10.XX.2.0/255.255.255.0 -d 10.XX.3.0/255.255.255.0 -j ACCEPT
-A FORWARD -s 10.XX.3.0/255.255.255.0 -d 10.XX.2.0/255.255.255.0 -j ACCEPT
-A FORWARD -s 10.XX.2.0/255.255.255.0 -i vmbr0 -p tcp -m tcp --dport 25 -j DROP
-A FORWARD -s 10.XX.3.0/255.255.255.0 -i vmbr0 -p tcp -m tcp --dport 25 -j DROP
-A FORWARD -s 10.XX.2.0/255.255.255.0 -i vmbr0 -p ! icmp -m state --state INVALID -j DROP
-A FORWARD -d 10.XX.2.0/255.255.255.0 -o vmbr0 -p ! icmp -m state --state INVALID -j DROP
-A FORWARD -s 10.XX.2.0/255.255.255.0 -i vmbr0 -o eth0 -j ACCEPT
-A FORWARD -d 10.XX.2.0/255.255.255.0 -i vmbr0 -p icmp -j ACCEPT
-A FORWARD -s 10.XX.2.0/255.255.255.0 -o vmbr0 -p icmp -j ACCEPT
-A FORWARD -s 10.XX.3.0/255.255.255.0 -i vmbr0 -p ! icmp -m state --state INVALID -j DROP
-A FORWARD -d 10.XX.3.0/255.255.255.0 -o vmbr0 -p ! icmp -m state --state INVALID -j DROP
-A FORWARD -s 10.XX.3.0/255.255.255.0 -i vmbr0 -o eth0 -j ACCEPT
-A FORWARD -d 10.XX.3.0/255.255.255.0 -i vmbr0 -p icmp -j ACCEPT
-A FORWARD -s 10.XX.3.0/255.255.255.0 -o vmbr0 -p icmp -j ACCEPT
-A FORWARD -s 10.XX.2.0/255.255.255.0 -d 10.XX.2.1 -j ACCEPT
-A FORWARD -s 10.XX.2.1 -d 10.XX.2.0/255.255.255.0 -j ACCEPT
-A FORWARD -s 10.XX.2.1 -o eth0 -j ACCEPT
-A FORWARD -s 10.XX.2.1 -j DROP
-A FORWARD -d 10.XX.2.1 -j DROP
-A FORWARD -d 10.XX.2.3 -p udp -m udp --dport 3333 -j ACCEPT
-A FORWARD -s 10.XX.2.0/255.255.255.0 -d 10.XX.2.3 -j ACCEPT
-A FORWARD -s 10.XX.2.3 -d 10.XX.2.0/255.255.255.0 -j ACCEPT
-A FORWARD -s 10.XX.2.3 -o eth0 -j ACCEPT
-A FORWARD -s 10.XX.2.3 -j DROP
-A FORWARD -d 10.XX.2.3 -j DROP
-A FORWARD -s 10.XX.2.0/255.255.255.0 -d 10.XX.2.2 -j ACCEPT
-A FORWARD -s 10.XX.2.2 -d 10.XX.2.0/255.255.255.0 -j ACCEPT
-A FORWARD -s 10.XX.2.2 -o eth0 -j ACCEPT
-A FORWARD -s 10.XX.2.2 -j DROP
-A FORWARD -d 10.XX.2.2 -j DROP
COMMIT
# Completed on Fri Jul 9 16:42:38 2010
eth0 Link encap:Ethernet HWaddr *******
inet addr:YY.YY.YY.YY Bcast:** Mask:255.255.255.224
inet6 addr: *** Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1188158 errors:0 dropped:0 overruns:0 frame:0
TX packets:1233850 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:841302073 (802.3 MiB) TX bytes:638793363 (609.2 MiB)
Interrupt:233 Base address:0xe000eth1 Link encap:Ethernet HWaddr ******
inet6 addr: *** Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:925132 errors:0 dropped:0 overruns:0 frame:0
TX packets:885383 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:585542509 (558.4 MiB) TX bytes:755864016 (720.8 MiB)
Memory:f3180000-f31a0000lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:5410 errors:0 dropped:0 overruns:0 frame:0
TX packets:5410 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:679230 (663.3 KiB) TX bytes:679230 (663.3 KiB)venet0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
UP BROADCAST POINTOPOINT RUNNING NOARP MTU:1500 Metric:1
RX packets:321997 errors:0 dropped:0 overruns:0 frame:0
TX packets:277237 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:102789055 (98.0 MiB) TX bytes:113665818 (108.4 MiB)veth101.0 Link encap:Ethernet HWaddr *****
inet6 addr: *** Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:363 errors:0 dropped:0 overruns:0 frame:0
TX packets:27757 errors:0 dropped:14 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:55524 (54.2 KiB) TX bytes:4915275 (4.6 MiB)vmbr0 Link encap:Ethernet HWaddr *****
inet addr:10.XX.2.5 Bcast:10.XX.2.255 Mask:255.255.255.0
inet6 addr: *** Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:903585 errors:0 dropped:0 overruns:0 frame:0
TX packets:885284 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:568370681 (542.0 MiB) TX bytes:755850406 (720.8 MiB)В общем-то, думала уже все сделать на OpenVPN, так как использовать для NAT и ipsec разные IP-адреса технически сложно: обе машины, OpenVZ системы, а в OVZ с venet сетью для default gateway куча заморочек, если шлюзов больше одного, но если подскажете, буду благодарна.
Уй как многа букаф...Вообще говоря, в Cisco, если из одного интерфейса уходит IP Security и NAT, в route-map, управляющий NAT'ом, необходимо вносить NAT Exemption. Иначе IPSec Tunnel работать не будет.
IMHO в любом другом IPSec Node необходимо делать то же самое.
>Уй как многа букаф...Да, мне многие, особенно при личном общении, говорили, что общаться можно и короче :)
>Вообще говоря, в Cisco, если из одного интерфейса уходит IP Security и
>NAT, в route-map, управляющий NAT'ом, необходимо вносить NAT Exemption. Иначе IPSec
>Tunnel работать не будет.
>
>IMHO в любом другом IPSec Node необходимо делать то же самое.Вносила исключения сотней разных способов(и по протоколу и по destination сети) для NAT, понятно, что-то делаю не так, но так и не заработало :(
Помогает только убрать NAT для source сети.Если бы кто-то поделился рабочим примером, была бы благодарна.
Не так давно ставилась подобная задача, но нашлись более приоритетные...
До сих пор интересна рализация. Спосибо. По возможности применим.Правда у нас немножко интересней: нужно чтоб оно паралельно работало с тунелем на ту же асу но установленным с циски. А циска эта находится в той же подсетке, что и центось. При чём что с наружи, что изнутри.
Когда я последний раз этим занимался - вбил настройки для Центоси в асу - лёг тунель на циску (полагаю там роутинги и аксес листы править надо).
В данном примере, как практичиский везде где я искал, тунель строится между двумя северами, за каждым из которых всего по одной сети. Настраивали похожую схему, но к циске был подключен еще один офис и присутсвовала необходимость прохождения трафика офис на линуксе(192.168.1.0/24) ---> офис с циской(172.16.0.0/16) ---> офис на линуксе(192.168.2.0/24).
Соответсвенно в racoon.conf присутсвовал "отбор" трафика для двух сетей 172.16.0.0 и для 192.168.2.0. Проблема заключалась в следущем:
Генерировался трафик из 192.168.1.0/24 в 172.16.0.0/16, тунель поднимался. Потом
генерировался трафик из 192.168.1.0/24 в 192.168.2.0/24, и ракун видя что трафик "его" начиинал строить тунель, но трафик не проходил. В логах появлялась ошибка что фаза2 закончилась неудачно, недождавшись фазы1.
Если остановить трафик в первую сеть, дождатся когда тунель ляжет по таймауту и организовать трафик во вторую сеть, то тунель нормально поднимается. То есть трафик мог ходить и в одну и во вторую сеть, но только не одновременно.
В случае построения тунеля между двумя цисками, трафик замечательно ходит в несколько сетей одновременно.
Извиняюсь что не могу конфиги и логи показать, так возможно проще бы воспринималось что я тут понаписал, но я настраивал это все пару месяцев назад и уже все потер.
Кто нибудь сталкивался с подобной проблемой и есть ли рабочее решение?
Вот практически такая же проблема, когда из офиса1 в офис2, в тунель надо запихнуть больше чем одну сеть.
http://forums.avalon.ru/forum/topic.asp?TOPIC_ID=10023
на freebsd делал.
никаких граблей с натами.