У меня есть много туннелей pptp vpn или серверов для подключения, и Linux назначает ppp0 для первого соединения, ppp1 для второго соединения и так далее. Мне нужно исправить интерфейсы, чтобы я мог правильно перенаправить соединение через iptables. Есть ли способ исправить имя интерфейса для каждого туннеля?
решение1
Это не так делается. Как это сделать, указано ввсегда полезная вики Arch Linux, под заголовком Split Tunneling based on port by /etc/ppp/ip-up.d
.
Позвольте мне объяснить. Все файлы в /etc/ppp/ip-up.d
выполняются каждый раз pptp
при установке соединения, и файлу 01-routebyport.sh
передаются следующие аргументы, как указано на веб-странице выше:
# This script is called with the following arguments:
# Arg Name
# $1 Interface name
# $2 The tty
# $3 The link speed
# $4 Local IP number
# $5 Peer IP number
# $6 Optional ``ipparam'' value foo
Таким образом, поскольку вам передан IP-номер однорангового узлаиимя интерфейса, вы можете создавать свои iptables
правила с помощью case
:
case $5 in:
1.1.1.1)
iptables -i $1 -j DROP
8.8.8.8)
iptables -i$1-j ACCEPT
и так далее.