У меня есть много туннелей или серверов 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
и так далее.
