5

Я использую dd-wrt в качестве домашней настройки маршрутизатора, и это работает нормально. Теперь я хотел выяснить, как использовать iPad для настройки туннеля IPSec к моей домашней сети, пока я в дороге.

На данный момент PPTP небезопасен, поэтому я хочу использовать что-то на основе IPSec. Исходя из того, что я могу найти, dd-wrt не поддерживает IPSec. Поэтому я подумал, что в моей домашней сети в качестве терминатора VPN можно установить Linux-систему с racoon.

Итак, в графической форме,

iPad (в дороге) ------- [Интернет] ------ [dd-wrt @ home] ---- [linuxbox @ home]

На dd-wrt я настроил следующее:

  • Переадресация обоих портов 500 и 4500 на ящик linux (udp/tcp)
  • Брандмауэр SPI включен
  • IPSec и L2TP passthrough включены

На коробке linux включена пересылка IPv4

Вот установка енота

log debug;
#log notify;
path pre_shared_key "/etc/racoon/psk.txt";
path certificate "/etc/racoon/certs";

listen {
        adminsock disabled ;
}

mode_cfg {
        network4 192.168.1.210 ;
        pool_size 10 ;
        netmask4 255.255.255.0 ;
        dns4 192.168.1.1 ;
        wins4 192.168.1.11 ;
}

remote anonymous {
        exchange_mode aggressive ;
        #my_identifier fqdn "vpn.foo.org" ;
        peers_identifier fqdn "vpn.foo.org" ;
        lifetime time 24 hour ;
        proposal_check claim ;
        generate_policy on ;
        nat_traversal on ;
        dpd_delay 20 ;
        proposal {
                encryption_algorithm aes ;
                hash_algorithm sha1 ;
                authentication_method xauth_psk_server ;
                dh_group 2 ;
        }
}

sainfo anonymous {
        pfs_group 2;
        lifetime time 24 hour ;
        encryption_algorithm aes ;
        authentication_algorithm hmac_sha1 ;
        compression_algorithm deflate ;
}

Итак, довольно ванильная настройка, я переключусь на использование сертификатов позже.

Прямо сейчас, просматривая логи, racoon нормально запускается на linux box, но по какой-то причине он даже не видел каких-либо попыток договориться о трафике с iPad, поэтому я должен что-то здесь упустить.

Что я хотел бы знать, так это выяснить, чего не хватает. Я подозреваю, что на блоке dd-wrt должна быть сделана некоторая настройка, чтобы отправлять трафик IP 50 и 51 с IP-протоколом с него на блок linux.

Я не могу понять правила iptables, необходимые для пересылки IPSec на виртуальную машину.

У меня есть следующее, но я подозреваю, что мне нужны некоторые правила предварительной маршрутизации и, возможно, некоторые правила последующей маршрутизации.

iptables -I FORWARD 23 -p 50 -d 192.168.1.10 -j ACCEPT
iptables -I FORWARD 23 -p 51 -d 192.168.1.10 -j ACCEPT

Кажется, что следующее не работает, как ожидалось.

iptables -t nat -I PREROUTING 2 -p 50 -d $(nvram get wan_ipaddr) -j DNAT --to 192.168.1.10
iptables -t nat -I PREROUTING 2 -p 51 -d $(nvram get wan_ipaddr) -j DNAT --to 192.168.1.10

Следственные заметки:

  • Это началось с невозможности подключения. Я подозревал, что мне нужно изменить iptables, но это не обязательно. Переадресация портов 500 и 4500 в конечную точку является достаточной.
  • Похоже, что первый пакет теперь добирается до енота.
  • Вывод tcpdump "17: 45: 50.652827 IP wan.isakmp> 192.168.1.10.isakmp: isakmp: фаза 1 I идент"
  • похоже, что тогда начинается согласование, НО оно просто останавливается при попытке согласовать тип шифрования. Вставить из системного журнала для енота: http://pastebin.com/RFmbJ7Hz
  • Теперь он прошел переговорную часть, и туннель устанавливается после запроса аутентификации. Но трафик не течет.
  • После дополнительного чтения я настроил подсеть в mode_cfg на другую подсеть, чем подсеть по умолчанию на конечной точке. Я подозреваю, что мне нужно установить маршрут, если я хочу, чтобы локальные машины могли общаться с ним.
  • Сейчас моя проблема в том, что похоже, что NAT-T не работает, потому что я не могу получить интернет-трафик.

0