Wenn ich eine Verbindung zu einem VPN herstelle, wird der gesamte Netzwerkverkehr automatisch über dieses VPN geleitet. Gibt es eine Möglichkeit, Ausnahmen hinzuzufügen? Ich weiß nicht, ob das Hinzufügen von Ausnahmen etwas mit dem VPN-Protokoll zu tun hat, aber das von mir verwendete VPN ist das OpenVPN-Protokoll.
Apropos OpenVPN: Warum wird es bei Ubuntu-Installationen im Gegensatz zu PPTP nicht standardmäßig installiert?
Ich konnte die Liste der IRCHighWay-Server nicht abrufen. Dies ist das Ergebnis, bei dem ich versuche, eine Verbindung auf XChat herzustellen, indem das Bash-Skript ausgeführt wird:
* Looking up irc.irchighway.net
* Connecting to irc.irchighway.net (65.23.153.98) port 6667...
* Connected. Now logging in...
* You have been K-Lined.
* *** You are not welcome on this network.
* *** K-Lined for Open proxies are not allowed. (2011/02/26 01.21)
* *** Your IP is 173.0.14.9
* *** For assistance, please email [email protected] and include everything shown here.
* Closing Link: 0.0.0.0 (Open proxies are not allowed. (2011/02/26 01.21))
* Disconnected (Remote host closed socket).
Die IP 173.0.14.9 ist die aufgrund meines VPN. Ich hatte vergessen, ip route list
vor dem Ausführen des Skripts zu überprüfen , und dies ist der nach dem Ausführen:
~$ ip route list
99.192.193.241 dev ppp0 proto kernel scope link src 173.0.14.9
173.0.14.2 via 192.168.1.1 dev eth1 proto static
173.0.14.2 via 192.168.1.1 dev eth1 src 192.168.1.3
192.168.1.0/24 dev eth1 proto kernel scope link src 192.168.1.3 metric 2
169.254.0.0/16 dev eth1 scope link metric 1000
default dev ppp0 proto static
Oh, und das Ausführen des Skripts hat diese Ausgabe zurückgegeben:
~$ sudo bash irc_route.sh
Usage: inet_route [-vF] del {-host|-net} Target[/prefix] [gw Gw] [metric M] [[dev] If]
inet_route [-vF] add {-host|-net} Target[/prefix] [gw Gw] [metric M]
[netmask N] [mss Mss] [window W] [irtt I]
[mod] [dyn] [reinstate] [[dev] If]
inet_route [-vF] add {-host|-net} Target[/prefix] [metric M] reject
inet_route [-FC] flush NOT supported
Ich habe das Skript ausgeführt, nachdem ich eine Verbindung zum VPN hergestellt hatte.
quelle
route add -host irc.irchighway.net gw 192.168.1.1
route
Befehl ausführt, war genug! Muss ich dies jedes Mal ausführen, wenn ich boote, oder ist dies dauerhaft? Die Adresse danachgw
ist nicht für jeden Computer gleich, oder? Kann es durch etwas ersetzt werden, das sich auf diese Adresse bezieht? Aktualisieren Sie Ihre Antwort, damit sie möglicherweise wissen, dass das Ausführen dieses Befehls und nicht des Skripts das Problem löst.Antworten:
Erstellen Sie eine Datei, irc_route.sh, die Folgendes enthält:
Ändern Sie DEV in die Schnittstelle, über die Sie Ihre Internetverbindung erhalten (möglicherweise wlan0, eth1, eth0, ppp0). Führen Sie dann das Skript mit aus
sudo bash irc_route.sh
. Sie können die Ergebnisse überprüfen, indem Sieip route list
vorher und nachher ausführen .Die IP des Standard-Gateways für den Internetverkehr auf dem DEV-Gerät wird in der Variablen GW gespeichert, die dann verwendet wird, um den gesamten Datenverkehr über die Standard-GW zum irc.irchighway.net-Server anstatt über die OpenVPN-Verbindung zu leiten.
Damit dies für alle IRCHighWay-Server funktioniert, müssen Sie eine Liste aller Server abrufen.
server_list.txt:
Skript:
Es gibt eine "einfachere" Lösung. Sie können Ports und Routen basierend darauf markieren. Siehe iproute2-Tutorial, aber das habe ich nicht verwendet. Und es gibt einige Probleme mit dieser Art von Routing, wenn Sie nicht wissen, was Sie tun.
quelle
ip route list
.Sie können bestimmte Programme nicht daran hindern, Verbindungen über das VPN herzustellen. Wenn sie jedoch eine bestimmte Host- oder Portnummer erreichen möchten, ist dies möglich. Ich gehe im schlimmsten Fall davon aus, dass bestimmte Apps die Firewall umgehen sollen.
Dies sollte mithilfe von SELinux möglich sein, indem Netzwerkverbindungen von einem Programm aus gesperrt werden. Ich kenne keine guten Tools für diese Konfiguration und weiß auch nicht, wie ich sie im laufenden Betrieb ändern kann.
Ich denke, es gab einmal ein Modul in iptables, das beim Senden eines Programms übereinstimmen konnte, aber ich habe es eine Weile nicht gesehen.
quelle