summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartin Fuchs <mfuchs@pfsense.org>2007-12-21 20:09:23 +0000
committerMartin Fuchs <mfuchs@pfsense.org>2007-12-21 20:09:23 +0000
commit6236682824a1e6d43ea554b822631cfb23eb1a37 (patch)
tree3ea21d0a6f5c95da141a0f7cac53ce674440774a
parent32487ea8d0a60064ea4c1c235c761e21aff46165 (diff)
downloadpfsense-6236682824a1e6d43ea554b822631cfb23eb1a37.zip
pfsense-6236682824a1e6d43ea554b822631cfb23eb1a37.tar.gz
OpenVPN-multi-interface-patches by Fernando Tarlá Cardoso Lemos
-rw-r--r--etc/inc/openvpn.inc10
-rw-r--r--usr/local/pkg/openvpn.xml14
2 files changed, 23 insertions, 1 deletions
diff --git a/etc/inc/openvpn.inc b/etc/inc/openvpn.inc
index 81aabc0..ac6318f 100644
--- a/etc/inc/openvpn.inc
+++ b/etc/inc/openvpn.inc
@@ -341,6 +341,15 @@ EOD;
$openvpn_conf .= "push \"route $ip $mask\"\n";
}
+ if ($settings['bind_to_iface'] == 'on') {
+ $iface = $settings['interface'];
+ $iface = convert_friendly_interface_to_real_interface_name($iface);
+ $line = trim(shell_exec("ifconfig $iface | grep inet | grep -v inet6"));
+ list($dummy, $ip, $dummy2, $dummy3) = explode(' ', $line);
+
+ $openvpn_conf .= "local {$ip}\n";
+ }
+
// The port we'll listen at
$openvpn_conf .= "lport {$settings['local_port']}\n";
@@ -400,7 +409,6 @@ EOD;
$openvpn_conf .= "remote {$settings['serveraddr']} {$settings['serverport']}\n";
if ($settings['auth_method'] == 'pki') $openvpn_conf .= "client\n";
-
if ($settings['use_dynamicport']) $openvpn_conf .= "nobind\n";
else
// The port we'll listen at
diff --git a/usr/local/pkg/openvpn.xml b/usr/local/pkg/openvpn.xml
index 8b3271d..bc4ac00 100644
--- a/usr/local/pkg/openvpn.xml
+++ b/usr/local/pkg/openvpn.xml
@@ -64,6 +64,20 @@
</options>
<default_value>UDP</default_value>
</field>
+ <field>
+ <fieldname>bind_to_iface</fieldname>
+ <fielddescr>Bind to an interface</fielddescr>
+ <description>Check to bind on a specific network interface.</description>
+ <type>checkbox</type>
+ <enablefields>interface</enablefields>
+ </field>
+ <field>
+ <fieldname>interface</fieldname>
+ <fielddescr>Interface</fielddescr>
+ <description>The interface on which the OpenVPN daemon will listen.</description>
+ <type>interfaces_selection</type>
+ <default_value>wan</default_value>
+ </field>
<field>
<fieldname>dynamic_ip</fieldname>
<fielddescr>Dynamic IP</fielddescr>
OpenPOWER on IntegriCloud