У меня есть много туннелей или серверов pptp vpn для подключения, и linux назначит ppp0 для 1-го подключения, ppp1 для 2-го подключения и так далее. Мне нужно исправить интерфейсы, чтобы я мог правильно переадресовать соединение через iptables. Есть ли способ исправить имя интерфейса для каждого туннеля?
1 ответ
2
Это не так, как это делается. Способ сделать это указан в очень полезной вики 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
и так далее.