This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
technical:openvpn-bridges-prep-openvpn [2023/10/21 05:35] admin [Prepare /etc/openvpn/up.sh] |
technical:openvpn-bridges-prep-openvpn [2024/01/11 13:24] (current) admin [OpenVPN server config for br0.103] |
||
---|---|---|---|
Line 9: | Line 9: | ||
* We are not going to use encryption of the tunnel. | * We are not going to use encryption of the tunnel. | ||
* We are not going to use the PKI. | * We are not going to use the PKI. | ||
- | * We are compressing the data. | + | * We are not compressing the data. |
* We are using a username and password given by the client and pass it onto a script to verify if the client is valid. | * We are using a username and password given by the client and pass it onto a script to verify if the client is valid. | ||
* Remove / | * Remove / | ||
Line 17: | Line 17: | ||
===== OpenVPN server config for br0.101 ===== | ===== OpenVPN server config for br0.101 ===== | ||
* Create a file called **/ | * Create a file called **/ | ||
- | * Be sure to check the correct value for eth0.101. It might be eth1.101 with your config. (up “/ | + | * Be sure to check the correct value for eth1.101. It might be eth0.101 with your config. (up “/ |
<file bash server_vlan_101.conf> | <file bash server_vlan_101.conf> | ||
mode server | mode server | ||
- | + | ||
auth none | auth none | ||
- | cipher none | + | |
- | + | ||
tmp-dir /dev/shm | tmp-dir /dev/shm | ||
- | + | ||
auth-user-pass-verify "/ | auth-user-pass-verify "/ | ||
verify-client-cert none | verify-client-cert none | ||
username-as-common-name | username-as-common-name | ||
script-security 2 | script-security 2 | ||
- | + | ||
- | local 198.27.111.78 | + | local 178.1.1.20 |
port 1194 | port 1194 | ||
proto udp | proto udp | ||
Line 39: | Line 38: | ||
key server.key | key server.key | ||
dh dh.pem | dh dh.pem | ||
- | + | ||
- | up "/ | + | up "/ |
server-bridge 10.101.0.1 255.255.0.0 10.101.0.2 10.101.0.100 | server-bridge 10.101.0.1 255.255.0.0 10.101.0.2 10.101.0.100 | ||
- | + | ||
ifconfig-pool-persist ipp.txt | ifconfig-pool-persist ipp.txt | ||
; | ; | ||
keepalive 10 120 | keepalive 10 120 | ||
- | comp-lzo | ||
persist-key | persist-key | ||
persist-tun | persist-tun | ||
status openvpn-status.log | status openvpn-status.log | ||
verb 4 | verb 4 | ||
+ | allow-compression no | ||
+ | data-ciphers none | ||
+ | cipher none | ||
</ | </ | ||
Line 60: | Line 61: | ||
auth none | auth none | ||
- | cipher none | ||
tmp-dir /dev/shm | tmp-dir /dev/shm | ||
Line 69: | Line 69: | ||
script-security 2 | script-security 2 | ||
- | local 198.27.111.78 | + | local 178.1.1.20 |
port 1195 | port 1195 | ||
proto udp | proto udp | ||
Line 78: | Line 78: | ||
dh dh.pem | dh dh.pem | ||
- | up "/ | + | up "/ |
server-bridge 10.102.0.1 255.255.0.0 10.102.0.2 10.102.0.100 | server-bridge 10.102.0.1 255.255.0.0 10.102.0.2 10.102.0.100 | ||
Line 84: | Line 84: | ||
; | ; | ||
keepalive 10 120 | keepalive 10 120 | ||
- | comp-lzo | ||
persist-key | persist-key | ||
persist-tun | persist-tun | ||
status openvpn-status.log | status openvpn-status.log | ||
verb 4 | verb 4 | ||
+ | allow-compression no | ||
+ | data-ciphers none | ||
+ | cipher none | ||
</ | </ | ||
Line 98: | Line 100: | ||
auth none | auth none | ||
- | cipher none | ||
tmp-dir /dev/shm | tmp-dir /dev/shm | ||
Line 107: | Line 108: | ||
script-security 2 | script-security 2 | ||
- | local 198.27.111.78 | + | local 178.1.1.20 |
port 1196 | port 1196 | ||
proto udp | proto udp | ||
Line 116: | Line 117: | ||
dh dh.pem | dh dh.pem | ||
- | up "/ | + | up "/ |
server-bridge 10.103.0.1 255.255.0.0 10.103.0.2 10.103.0.100 | server-bridge 10.103.0.1 255.255.0.0 10.103.0.2 10.103.0.100 | ||
Line 122: | Line 123: | ||
; | ; | ||
keepalive 10 120 | keepalive 10 120 | ||
- | comp-lzo | ||
persist-key | persist-key | ||
persist-tun | persist-tun | ||
status openvpn-status.log | status openvpn-status.log | ||
verb 4 | verb 4 | ||
+ | allow-compression no | ||
+ | data-ciphers none | ||
+ | cipher none | ||
</ | </ | ||
===== Prepare / | ===== Prepare / | ||
Line 156: | Line 159: | ||
* The **openvpn_auth.pl** script can then be copied to the server running the OpenVPN server. | * The **openvpn_auth.pl** script can then be copied to the server running the OpenVPN server. | ||
* You just have to configure the **openvpn_auth.pl** script to point to your RADIUSdesk server to do the API calls when authenticating a client. | * You just have to configure the **openvpn_auth.pl** script to point to your RADIUSdesk server to do the API calls when authenticating a client. | ||
- | * The **openvpn_auth.pl** script is traditionally under **/usr/share/nginx/html/cake2/rd_cake/Setup/Scripts/**. | + | * The **openvpn_auth.pl** script is traditionally under **/var/www/rdcore/cake4/rd_cake/setup/scripts/**. |
- | * Copy this file to a convenient location | + | * Copy this file to **/ |
<code bash> | <code bash> | ||
my $protocol=' | my $protocol=' | ||
my $server_name_or_ip=' | my $server_name_or_ip=' | ||
- | my $api_path="/ | + | my $api_path="/ |
</ | </ | ||
* Make sure this file is executable in its new location: | * Make sure this file is executable in its new location: | ||
<code bash> | <code bash> | ||
- | sudo chmod 755 /home/system/ | + | sudo chmod 755 /etc/openvpn/ |
</ | </ | ||
- | ===== Restart OpenVPN service ===== | + | |
- | | + | |
<code bash> | <code bash> | ||
- | sudo service openvpn | + | sudo apt-get install liblwp-protocol-https-perl |
- | sudo service openvpn | + | </ |
- | #You should now see the following | + | ===== Test Start OpenVPN |
- | * Starting virtual private network daemon(s)... | + | * Be aware that the **systemctl start openvpn** is not starting your openvpn you just defined. |
- | Autostarting VPN 'server_vlan_101' | + | * Openvpn uses templatized systemd jobs, openvpn@CONFIGFILENAME. |
- | Autostarting VPN 'server_vlan_102' | + | * So if for example your configuration file is myserver.conf your service |
- | Autostarting VPN 'server_vlan_103' | + | |
+ | * With that in view you can tests start the individual servers based on their config files. | ||
+ | <code bash> | ||
+ | #start 101 | ||
+ | sudo systemctl start openvpn@server_vlan_101 | ||
+ | #check the output for any errors | ||
+ | journalctl -xeu openvpn@server_vlan_101.service | ||
+ | #start 102 | ||
+ | sudo systemctl start openvpn@server_vlan_102 | ||
+ | #check the output for any errors | ||
+ | journalctl -xeu openvpn@server_vlan_102.service | ||
+ | #start 103 | ||
+ | sudo systemctl start openvpn@server_vlan_103 | ||
+ | #check the output for any errors | ||
+ | journalctl -xeu openvpn@server_vlan_103.service | ||
</ | </ | ||
===== Check the bridges ===== | ===== Check the bridges ===== | ||
Line 190: | Line 206: | ||
tap2 | tap2 | ||
</ | </ | ||
+ | ===== Install ifconfig ===== | ||
+ | * Although ifconfig does not come standard with recent versions of Ubuntu and we try to use the replacement **ip** command where possible, we will install ifconfig to help here. | ||
+ | * It is also required during the next section when we work with CoovaChilli. | ||
+ | <code bash> | ||
+ | sudo apt install net-tools | ||
+ | </ | ||
+ | ==== Test ifconfig ==== | ||
* ifconfig should also include a list of three tap interfaces | * ifconfig should also include a list of three tap interfaces | ||
<code bash> | <code bash> | ||
Line 216: | Line 239: | ||
RX bytes:0 (0.0 B) TX bytes:648 (648.0 B) | RX bytes:0 (0.0 B) TX bytes:648 (648.0 B) | ||
</ | </ | ||
- | <WRAP center round tip 90%> | + | |
- | * If your server has only **one** interface card, be sure to add the following | + | ===== OpenVPN Startup ===== |
+ | * Since we use our own startup script to prepare the environment we will disable the normal startup sequience of OpenVPN. | ||
+ | | ||
+ | * Disable the startup of OpenVPN | ||
+ | <code bash> | ||
+ | sudo systemctl disable openvpn | ||
+ | </ | ||
+ | * Add the following | ||
<code bash> | <code bash> | ||
- | /sbin/brctl addif br0.103 eth1.103 | ||
/sbin/ip addr add 10.103.0.1/ | /sbin/ip addr add 10.103.0.1/ | ||
/sbin/ip link set dev br0.103 up | /sbin/ip link set dev br0.103 up | ||
- | + | ||
#Add the startup of OpenVPN | #Add the startup of OpenVPN | ||
- | / | + | systemctl start openvpn@server_vlan_101 |
- | + | systemctl | |
+ | systemctl start openvpn@server_vlan_103 | ||
exit 0 | exit 0 | ||
</ | </ | ||
- | </ | + | |
* We are making good progress. Next we will install and configure **Coova Chilli** so that it runs an instance on each VLAN. | * We are making good progress. Next we will install and configure **Coova Chilli** so that it runs an instance on each VLAN. | ||
* To confirm everything will come up after a power cycle, go ahead and reboot the server. | * To confirm everything will come up after a power cycle, go ahead and reboot the server. |