LINUX.ORG.RU
ФорумAdmin

Swanctl поднимает туннель с внутреннего IP

 , ,


0

1

Хочу сменить открытый IPIP на шифрованный StrongSwan

Интерфейс

cat /etc/systemd/network/ipsec0.netdev 
[NetDev]
Name=ipsec0
Kind=xfrm

[Xfrm]
InterfaceId=42
Independent=yes
cat /etc/systemd/network/ipsec0.network 
[Match]
Name=ipsec0

[Network]
Address=192.168.254.51/28

Конфигурация

cat /etc/swanctl/swanctl.conf 
connections {
    conn-to-gtw-2 {
        remote_addrs = белый.ip.ад.рес
        local {
            auth = psk
            id = gtw-1
        }
        remote {
            auth = psk
            id = gtw-2
        }
        children {
            child-to-gtw-2 {
                local_ts  = 0.0.0.0/0
                remote_ts = 0.0.0.0/0
                if_id_in = 42
                if_id_out = 42
                esp_proposals = aes256gcm128-ecp256
		start_action = start
            }
        }
        version = 2
        proposals = aes256-sha256-ecp256
    }
}
secrets {
    ike-1 {
        secret = "безумносложныйпасс"
    }
}

Но дело в том, что на gtw-1 настроен OpenVPN, и маршрутит он не весь трафик в туннель, а только тот, который маркируется

table ip mangle {
	set ovpn {
		type ipv4_addr
		flags interval
		elements = {
			список ip
		}
	}
	
	chain PREROUTING {
		type filter hook prerouting priority mangle;
		ip daddr { 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16 } return
		meta l4proto { tcp, udp } th dport { нужные порты} meta mark set 0x1
		ip daddr @ovpn meta mark set 0x1
	}

	chain POSTROUTING {
		type nat hook postrouting priority srcnat;
		oif "tun0" snat to 10.8.0.3
	}

	chain OUTPUT {
		type route hook output priority mangle;
		meta l4proto { tcp, udp } th dport { нужные порты } meta mark set 0x1
		ip daddr @amstrd meta mark set 0x1
	}
}

В rule’ях всё, что помечено, заруливается на IP из цепочки POSTROUTING на адрес 10.8.0.3

туннель swanctl поднимается, но вот мерцавец, на стороне gtw-1 отправляет пакеты с адреса ovpn

swanctl -l
conn-to-gtw-2: #2, CONNECTING, IKEv2, 96ea3fd23e9fbfeb_i* 0000000000000000_r
  local  '%any' @ 10.8.0.3[500]
  remote '%any' @ белый.ip.ад.рес[500]
  active:  IKE_VENDOR IKE_INIT IKE_NATD IKE_CERT_PRE IKE_AUTH IKE_CERT_POST IKE_CONFIG IKE_AUTH_LIFETIME IKE_MOBIKE IKE_ESTABLISH CHILD_CREATE

Как ему скормить внешний IP gtw-1?



Последнее исправление: CrX (всего исправлений: 1)

Полезно иногда офдоку читать.
Достаточно в конфу, перед remote_addrs, добавить local_addrs

Dodik
() автор топика
  • Markdown
Пустая строка (два раза Enter) начинает новый абзац. Знак '>' в начале абзаца выделяет абзац курсивом цитирования.
Внимание: прочитайте описание разметки Markdown.
Используйте Ctrl-Enter для размещения комментария