Попытка использовать IPSEC между двумя хостами на LAN. Никакая VPN не включена
Использование OpenBSD 5.8 (в VirtualBox). Я предпочел бы использовать встроенную поддержку OpenBSD IPSEC и ключевого обмена и не третьего лица.
Два хоста: 10.0.2.10
(разместите), и 10.0.2.11
(разместите "B"),
Они могут ping/ssh друг друга прежде, чем попытаться установить IPSEC.
ОБНОВЛЕНИЕ: Я думаю, возможно, что OpenIKED (IKE v2) не поддерживает transport
режим, таким образом, я приму ответы для isakmp (IKE v1) также
Скопированный A /etc/iked/local.pub
к B /etc/iked/pubkeys/ipv4/10.0.2.10
Скопированный B /etc/iked/local.pub
к A /etc/iked/pubkeys/ipv4/10.0.2.11
На обоих:
echo "ikev2 esp from any to any" > /etc/iked.conf
chmod 640 /etc/iked.conf
echo "ipsec=YES" > /etc/rc.conf.local
echo "iked_flags=" >> /etc/rc.conf.local
Конфигурация проверки:
/sbin/iked -n
Configuration OK
Я смущен относительно того, что сделать затем. Я думаю, что должен установить /etc/ipsec.conf
, но я только нашел документацию IKEv1 там.
Перезапущенный обе машины. Никакие ошибки. Говорит iked запущенный демон. Если я переименовываю открытые ключи к чему-нибудь, может все еще проверить с помощью ping-запросов друг друга, таким образом, IPSEC, кажется, не работает.
ОБНОВЛЕНИЕ: Я получил IPSEC, работающий с ручным ключевым обменом
/etc/ipsec.conf
:
# .10 is source, .11 is destination
flow esp from 10.0.2.10 to 10.0.2.11 type require
esp transport from 10.0.2.10 to 10.0.2.11 \
spi 0xCAFEBABE:0xCAFEBABE \
authkey 0x64CHARHEX:0x64CHARHEX \
enckey 0x64CHARHEX:0x64CHARHEX
преобразуйте в шестнадцатеричную систему должен быть во всем верхнем регистре
chmod 640 /etc/ipsec.conf
ipsecctl -F (delete config)
ipsecctl -f /etc/ipsec.conf (load config)
ipsecctl -s all -v (show config)
Я предпочел бы использовать автоматическое манипулирование IKEV2. Что я могу сделать?
Отвечаю на свой вопрос как ботаник
Проблема 1. OpenIKED (IKEv2) не поддерживает транспортный режим, поэтому вы можете использовать его только для VPN, а не в локальной сети. Используйте isakmpd
(IKEv1)
Проблема 2. В документации для ipsec.conf
указано, что значения auth
и enc
имеют значения по умолчанию. , но, похоже, вам все равно нужно их установить
Что еще мне нужно настроить?
Вам нужно установить правильные флаги rc.d
на isakmpd
(см. ниже)
Существуют ли журналы для IPSEC и iked, и если да, то где их найти?
Журналы находятся в / var / log / daemon
Как определить, работает ли IPSEC один раз настраивал, не глядя на пакеты между машинами?
на B запустите tcpdump host A
, а на A запустите ping B
. Вы хотите видеть esp
и spi
в выводе tcpdump
Настройка:
Хост A (10.0.2.10)
# cat << EOF > /etc/ipsec.conf
ike active esp transport from 10.0.2.10 to 10.0.2.11 \
main auth hmac-sha1 enc aes \
quick auth hmac-sha2-256 enc aes
EOF
# chmod 640 /etc/ipsec.conf
# cd /etc/isakmpd/pubkeys/ipv4
# scp notRoot@10.0.2.11:/etc/isakmpd/local.pub 10.0.2.11 `# copy remote's public key`
# rcctl enable ipsec
# rcctl enable isakmpd
# rcctl set isakmpd flags "-KTv" `#K = use ipsec.conf for configuration, T = disable NAT traversal, v = verbose logging`
# ipsecctl -vf /etc/ipsec.conf `# start ipsec, or reboot`
# rcctl start isakmpd
Хост B (10.0.2.11)
# cat << EOF > /etc/ipsec.conf
ike active esp transport from 10.0.2.11 to 10.0.2.10 \
main auth hmac-sha1 enc aes \
quick auth hmac-sha2-256 enc aes
EOF
# chmod 640 /etc/ipsec.conf
# cd /etc/isakmpd/pubkeys/ipv4
# scp notRoot@10.0.2.10:/etc/isakmpd/local.pub 10.0.2.10 `# copy remote's public key`
# rcctl enable ipsec
# rcctl enable isakmpd
# rcctl set isakmpd flags "-KTv" `#K = use ipsec.conf for configuration, T = disable NAT traversal, v = verbose logging`
# ipsecctl -vf /etc/ipsec.conf `# start ipsec, or reboot`
# rcctl start isakmpd
Так что недавно у меня действительно было что-то подобное - просто связь IPSec между одним адресом и моей сетью. Я использовал его для одного из своих телефонных серверов, чтобы попытаться получить TFTP через Интернет (для развлечения).
----------------------- - удаленная сторона, мой телефонный сервер ----------------
для /etc/ipsec.conf:
config setup
plutodebug=none
klipsdebug=none
dumpdir=/var/run/pluto/
nat_traversal=yes
protostack=netkey
plutostderrlog=/var/log/ipsec.log
conn L2TP-PSK-noNAT
type=tunnel
authby=secret
pfs=no
compress=no
keyexchange=ike
auth=esp
keyingtries=3
rekey=no
ike=aes256-md5-modp1536
ikelifetime=7800s
esp=aes128-md5
keylife=3600s
left=XXX.XXX.XXX.XXX
leftid=XXX.XXX.XXX.XXX
leftsubnet=XXX.XXX.XXX.XXX/32
####Those three addresses are all the same - No NAT/routing###
right=hq.myDynDNSDomainToMyOffice.com
rightid=hq.myDynDNSDomainToMyOffice.com
rightsourceip=10.0.0.1
rightsubnet=10.0.0.0/24
auto=add
для /etc/ipsec.secrets:
# this file is managed with debconf and will contain the automatically created RSA keys
include /var/lib/openswan/ipsec.secrets.inc
XXX.XXX.XXX.XXX hq.myDynDNSDomainToMyOffice.com: PSK "mySuperSecretPassword!"
---------------------- локальная сторона, мой брандмауэр ---------------------- -----
/etc/ipsec.conf
config setup
plutodebug="none"
nat_traversal="yes"
dumpdir=/var/run/pluto/
keep_alive="60"
probe_psk="no"
plutostderrlog=/var/log/ipsec.log
# Phone Server
conn S_REF_IpsSitPhoneServe_0
authby="psk"
auto="start"
compress="no"
ecn="no"
esp="aes128-md5"
ike="aes256-md5-modp1536"
ikelifetime="7800"
keyexchange="ike"
keylife="3600"
left="hq.myDynDNSDomainToMyOffice.com"
leftid="hq.myDynDNSDomainToMyOffice.com"
leftsourceip="10.0.0.1"
leftsubnet="10.0.0.0/24"
pfs="no"
pmtu_discovery="no"
rekeymargin="540"
right="XXX.XXX.XXX.XXX"
rightid="XXX.XXX.XXX.XXX"
rightsubnet="XXX.XXX.XXX.XXX/32"
type="tunnel"
для /etc/ipsec.secrets:
# this file is managed with debconf and will contain the automatically created RSA keys
include /var/lib/openswan/ipsec.secrets.inc
hq.myDynDNSDomainToMyOffice.com XXX.XXX.XXX.XXX : PSK "mySuperSecretPassword!"
Это даст вам 99% пути туда. Остальной 1% зависит от вас, поскольку журналы ошибок создаются в /var/log/ipsec.log. Обратите внимание, что со стороны телефонного сервера все было сделано вручную, а вот со стороной брандмауэра откашлялся мой графический интерфейс брандмауэра. Во второй половине могут быть некоторые ненужные / избыточные биты конфигурации.
После того, как вы заставите его работать, убедитесь, что вы дважды проверили все параметры безопасности, прежде чем пропустить через него что-нибудь, «достойное ipsec».
Edit 01: Я видел вам нужны лучшие примеры, поэтому я публикую несколько новых файлов конфигурации, которые только что протестировал:
---------------- телефонный сервер ipsec.conf --------- --------
root@phoneServerName:/home/neil# cat /etc/ipsec.conf
# /etc/ipsec.conf - Openswan IPsec configuration file
version 2.0
config setup
plutodebug=all
klipsdebug=none
dumpdir=/var/run/pluto/
protostack=netkey
plutostderrlog=/var/log/ipsec.log
conn PSK-noNAT
type=transport
authby=secret
keyexchange=ike
ike=aes256-md5-modp1536
ikelifetime=7800s
phase2alg=aes128-md5
keylife=3600s
left=XXX.XXX.XXX.XXX
leftid=XXX.XXX.XXX.XXX
right=hq.myDynDNSDomainToMyOffice.com
rightid=hq.myDynDNSDomainToMyOffice.com
auto=add
--------------------- брандмауэр ipsec.conf -------------- -----------
hq:/var/sec/chroot-ipsec/etc # cat ipsec.conf
#/etc/ipsec.conf - strongSwan IPsec configuration file
config setup
#metric="0"
charonstart="no"
plutodebug="none"
uniqueids="no"
nocrsend="yes"
nat_traversal="no"
keep_alive="60"
crlcheckinterval="0"
strictcrlpolicy="no"
probe_psk="no"
conn %default
rekeyfuzz="100%"
keyingtries="0"
leftsendcert="always"
dpddelay="30"
dpdtimeout="120"
dpdaction="restart"
conn transportModeFirewallToPhoneServer
authby="psk"
auto="start"
compress="no"
ecn="no"
esp="aes128-md5"
ike="aes256-md5-modp1536"
ikelifetime="7800"
keyexchange="ike"
keylife="3600"
left="hq.myDynDNSDomainToMyOffice.com"
leftid="hq.myDynDNSDomainToMyOffice.com"
leftupdown="/usr/libexec/ipsec/updown classic"
pfs="yes"
pfsgroup="modp1536"
pmtu_discovery="no"
rekeymargin="540"
right="XXX.XXX.XXX.XXX"
rightid="XXX.XXX.XXX.XXX"
type="transport"
По сути, просто удалите все, что касается подсетей, и измените тип на транспортный.
Это рабочая конфигурация. Как я узнаю, что это работает? IPTables блокирует все на телефонном сервере. Как только я подключаюсь к IPSec-соединению, мой SIP-трафик и трафик веб-управления проходят.