OpenVPN server na Turrisu

beer

  • *****
  • 729
    • Zobrazit profil
OpenVPN server na Turrisu
« kdy: 18. 01. 2016, 04:38:30 »
ahoj, nejde mi vytvořit openvpn server na turrisu.


Oficiální návod je pro klienta https://www.turris.cz/doc/navody/openvpn
já jsem postupoval podle http://www.s474n.com/project-turris-zprovozneni-openvpn-serveru/, nefungovalo, a pak jsem se v kombinaci s jinými návody do toho zamotal a nevím přesně, jestli je chyba v tom, že po zadání ifconfig nevidím tun rozhraní, nebo jestli je problém ve firewallu, nebo v konfiguračním rozhraní.


/etc/config/openvpn

Kód: [Vybrat]

package openvpn


config openvpn custom_config
        option enabled 1
        option config /etc/openvpn/vpn.conf


/etc/openvpn/vpn.conf
[size=78%]
Kód: [Vybrat]


config openvpn 'turris_server'
option enabled '1'
option dev 'tun'
option proto 'udp'
option port '1194'
option keepalive '10 1200'
option ca '/etc/openvpn/ca.crt'
option cert '/etc/openvpn/turris.crt'
option key '/etc/openvpn/turris.key'
option dh '/etc/dh2048.pem'
option server '192.168.100.0 255.255.255.0'
option remote-cert-tls 'server'
list push 'redirect-gateway def1'
option comp-lzo 'yes'
option verb '3'
option topology 'subnet'
option ifconfig_pool_persist '/tmp/ipp.txt'
option persist_key '1'
option persist_tun '1'
option status '/tmp/openvpn-status.log'


/etc/config/network
Kód: [Vybrat]
config interface 'loopback'
option ifname 'lo'
option proto 'static'
option ipaddr '127.0.0.1'
option netmask '255.0.0.0'


config globals 'globals'
option ula_prefix 'fd04:1778:866e::/48'


config interface 'lan'
option force_link '1'
option type 'bridge'
option proto 'static'
option ipaddr '192.168.1.1'
option netmask '255.255.255.0'
option ip6assign '60'
option ifname 'eth0 eth1 vpn'


config interface 'wan'
option ifname 'eth2'
option proto 'dhcp'


config interface 'wan6'
option ifname '@wan'
option proto 'dhcpv6'


config interface 'vpn'
option ifname 'tun0'
option proto 'static'
option ipaddr '192.168.100.1'
option netmask '255.255.255.0'


config switch
option name 'switch0'
option reset '1'
option enable_vlan '1'


config switch_vlan
option device 'switch0'
option vlan '1'
option ports '0 1 2 3 4 '


config switch_vlan
option device 'switch0'
option vlan '2'
option ports '5 6'


/etc/config/firewall

Kód: [Vybrat]

config defaults
option syn_flood '1'
option input 'ACCEPT'
option output 'ACCEPT'
option forward 'REJECT'


config zone
option name 'lan'
list network 'lan'
list network 'vpn'
option input 'ACCEPT'
option output 'ACCEPT'
option forward 'ACCEPT'


config zone
option name 'wan'
list network 'wan'
list network 'wan6'
option input 'REJECT'
option output 'ACCEPT'
option forward 'REJECT'
option masq '1'
option mtu_fix '1'


config forwarding
option src 'lan'
option dest 'wan'


config rule
option name 'Allow-DHCP-Renew'
option src 'wan'
option proto 'udp'
option dest_port '68'
option target 'ACCEPT'
option family 'ipv4'


config rule
option name 'OpenVPN'
option family 'ipv4'
option src 'wan'
option proto 'udp'
option dest_port '1194'
option target 'ACCEPT'


config rule
option name 'Allow-Ping'
option src 'wan'
option proto 'icmp'
option icmp_type 'echo-request'
option family 'ipv4'
option target 'ACCEPT'


config rule
option name 'Allow-DHCPv6'
option src 'wan'
option proto 'udp'
option src_ip 'fe80::/10'
option src_port '547'
option dest_ip 'fe80::/10'
option dest_port '546'
option family 'ipv6'
option target 'ACCEPT'


config rule
option name 'Allow-ICMPv6-Input'
option src 'wan'
option proto 'icmp'
list icmp_type 'echo-request'
list icmp_type 'echo-reply'
list icmp_type 'destination-unreachable'
list icmp_type 'packet-too-big'
list icmp_type 'time-exceeded'
list icmp_type 'bad-header'
list icmp_type 'unknown-header-type'
list icmp_type 'router-solicitation'
list icmp_type 'neighbour-solicitation'
list icmp_type 'router-advertisement'
list icmp_type 'neighbour-advertisement'
option limit '1000/sec'
option family 'ipv6'
option target 'ACCEPT'


config rule
option name 'Allow-ICMPv6-Forward'
option src 'wan'
option dest '*'
option proto 'icmp'
list icmp_type 'echo-request'
list icmp_type 'echo-reply'
list icmp_type 'destination-unreachable'
list icmp_type 'packet-too-big'
list icmp_type 'time-exceeded'
list icmp_type 'bad-header'
list icmp_type 'unknown-header-type'
option limit '1000/sec'
option family 'ipv6'
option target 'ACCEPT'


config include
option path '/etc/firewall.user'


config include
option path '/usr/share/firewall/turris'
option reload '1'


config include
option path '/etc/firewall.d/with_reload/firewall.include.sh'
option reload '1'


config include
option path '/etc/firewall.d/without_reload/firewall.include.sh'
option reload '0'


config include 'miniupnpd'
option type 'script'
option path '/usr/share/miniupnpd/firewall.include'
option family 'IPv4'
option reload '1'


config redirect
option target 'DNAT'
option src 'wan'
option dest 'lan'
option proto 'tcp'
option src_dport '22'
option dest_port '58732'
option name 'SSH honeypot'


config redirect
option target 'DNAT'
option src 'wan'
option dest 'lan'
option proto 'tcp'
option src_dport '5555'
option dest_port '22'
option name 'SSH redirect'


config rule
option name 'Allow-OpenVPN-Inbound'
option target 'ACCEPT'
option src '*'
option proto 'udp'
option dest_port '1194'


config zone
option name 'vpn'
option input 'ACCEPT'
option forward 'ACCEPT'
option output 'ACCEPT'
option network 'vpn0'


config forwarding
option src 'vpn'
option dest 'wan'


/etc/firewall.user

Kód: [Vybrat]

# This file is interpreted as shell script.
# Put your custom iptables rules here, they will
# be executed with each firewall (re-)start.


# Internal uci firewall chains are flushed and recreated on reload, so
# put custom rules into the root chains e.g. INPUT or FORWARD or into the
# special user chains, e.g. input_wan_rule or postrouting_lan_rule.
iptables -t nat -A prerouting_wan -p udp --dport 1194 -j ACCEPT
iptables -A input_wan -p udp --dport 1194 -j ACCEPT


iptables -I INPUT -i tun+ -j ACCEPT
iptables -I FORWARD -i tun+ -j ACCEPT
iptables -I OUTPUT -o tun+ -j ACCEPT
iptables -I FORWARD -o tun+ -j ACCEPT


Openvpn server mi nejede, nejde pingnout na server ip z klienta, ani obráceně. Démon běží.


Kód: [Vybrat]

root@turris:~# ps | grep "openvpn"
 6344 root      1528 S    grep openvpn
[/font][/size]


Chybí rozhraní tun, ale i když jsem ho před rebootem ručně prostřednictvím openvnp vytvářel, tak sice automaticky získalo správnou adresu 192.168.100.1m, ale stejně nešlo pingnout.


Kód: [Vybrat]
root@turris:~# ifconfig | grep "tun"
root@turris:~#


Kód: [Vybrat]
root@turris:~# cat /tmp/openvpn.log
cat: can't open '/tmp/openvpn.log': No such file or directory


Pozná někdo, co mám špatně?


beer

  • *****
  • 729
    • Zobrazit profil
Re:OpenVPN server na Turrisu
« Odpověď #1 kdy: 18. 01. 2016, 04:45:01 »
edit poslední věty, myslel jsem v konfiguračním souboru.


Chyba bude asi tam, protože když zkusím spustit openvpn ručně, tak hlásí chybu, ale nepoznám z toho, jakou.



Kód: [Vybrat]

root@turris:~# openvpn --config /etc/openvpn/vpn.conf
Options error: In /etc/openvpn/vpn.conf:1: Error opening configuration file: openvpn
Use --help for more information.


Trubicoid2

Re:OpenVPN server na Turrisu
« Odpověď #2 kdy: 18. 01. 2016, 06:36:21 »
Rika ti, ze nerozumí /etc/openvpn/vpn.conf
A moc se mu nedivim, prvni radek tam nema byt a na ostatních nema byt option. Asi si vzal jinej soubor, treba /etc/config/openvpn ?

vty

Re:OpenVPN server na Turrisu
« Odpověď #3 kdy: 18. 01. 2016, 10:39:15 »
Tazatele omlouvá snad jen noční hodina jeho postu.
Oba odkazy, co uvádí jasně popisují, co se má kde nastavit.
Ofiko návod od Turrisu je velmi pěkně a přehledně zpracován (platí obecně pro OpenWrt).
Ten druhý (s474n.com) je zas step-by-step a z něj je převzat konfigurák OpenVPN, který má být umístěn v /etc/config/openvpn nikoliv v /etc/openvpn/vpn.conf. To už tazateli ostatně psal trubicoid.
Sebelépe udělaná dokumentace je, jak vidno, občas k ničemu.

 

beer

  • *****
  • 729
    • Zobrazit profil
Re:OpenVPN server na Turrisu
« Odpověď #4 kdy: 18. 01. 2016, 10:41:59 »
Omlouvám se, funguje, opraveno, z klienta pingnu na server a na serveru spustím, ale nějak nemohu na klientovi dohledat, jakou má ip adresu (ifconfig mi jí neukáže).


trubicoid2

Re:OpenVPN server na Turrisu
« Odpověď #5 kdy: 18. 01. 2016, 11:46:19 »
adresu rekne openvpn klient, kdyz se pripojis, ne?
a ifconfig taky, ale na klientovi

beer

  • *****
  • 729
    • Zobrazit profil
Re:OpenVPN server na Turrisu
« Odpověď #6 kdy: 18. 01. 2016, 11:55:34 »
adresu rekne openvpn klient, kdyz se pripojis, ne?
a ifconfig taky, ale na klientovi

Neřekne

tohle mám aktuálně na serveru (turris)
Kód: [Vybrat]
mode server
tls-server
### network options
port 1194
proto udp
dev tun
### Certificate and key files
ca /etc/openvpn/ca.crt
cert /etc/openvpn/turris.crt
key /etc/openvpn/turris.key
dh /etc/openvpn/dh2048.pem
client-to-client
server 192.16.100.0 255.255.255.0
push "redirect-gateway def1"
push "dhcp-option DNS 192.168.1.1" # Change this to your router's LAN IP Address
push "route 192.168.100.0 255.255.255.0" # Change this to your network
### (optional) compression (Can be slow). If not used specifically set to no and do not comme
nt out.
### with no comp-lzo can result in write to TUN/TAP : Invalid argument (code=22) error
#comp-lzo no
comp-lzo yes
ifconfig-pool-persist /etc/openvpn/ipp.txt
persist-key
persist-tun
verb 3
keepalive 10 120
log-append /var/log/openvpn/openvpn.log

Měla by být v ipp.txt, ten to sice vytvořilo, ale je prázdný.

Když dám na klientovi ifconfig, tak mám

Kód: [Vybrat]
wlp5s4    Link encap:Ethernet  HWadr 00:23:f8:28:84:9c                                       
          AKTIVOVÁNO VŠESMĚROVÉ_VYSÍLÁNÍ MULTICAST  MTU:1500  Metrika:1                       
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0                                 
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0                               
          kolizí:0 délka odchozí fronty:1000                                                 
          Přijato bajtů: 0 (0.0 B) Odesláno bajtů: 0 (0.0 B)

ping na 192.168.100.1 má odpověď z turrisu, ale ani nmap na turrisu na 192.168.100.- nepoví ip adresu klienta.

Trubicoid2

Re:OpenVPN server na Turrisu
« Odpověď #7 kdy: 18. 01. 2016, 12:31:54 »
To je ňáký divný. Co je klient? A má jen wifi a ta nemá ani ip?
A z klienta se připojuješ přesně jak?
Kód: [Vybrat]
sudo openvpn tvujconfig.opvn ? Tam to ip určitě najdeš, pár řádků od konce

beer

  • *****
  • 729
    • Zobrazit profil
Re:OpenVPN server na Turrisu
« Odpověď #8 kdy: 18. 01. 2016, 12:41:53 »
To je ňáký divný. Co je klient? A má jen wifi a ta nemá ani ip?
A z klienta se připojuješ přesně jak?
Kód: [Vybrat]
sudo openvpn tvujconfig.opvn ? Tam to ip určitě najdeš, pár řádků od konce

Klient je ubuntu, bez network  manageru, připojený přes lan kabel, ten samozřejmě svojí ip adresu na svém rozhraní má. Možná je problém v tom, že tam mám na serveru dle návodu pro openwrt client-to-client. /etc/openvpn/vpn.conf jsem nyní smazal a spustil openvpn přes /etc/config/openvpn, kam jsem dal dle http://www.s474n.com/project-turris-zprovozneni-openvpn-serveru/ níže uvedený obsah a restartoval turris, nejsem ale u klienta, není aktuálně online, tak nevím, jestli se teď chytne. V tomhle konfiguráku je topology subnet, což by mohlo fungovat lépe.

Kód: [Vybrat]
config openvpn 'turris_server'
option enabled '1'
option dev 'tun'
option proto 'udp'
option port '1194'
option keepalive '10 1200'
option ca '/etc/easy-rsa/keys/ca.crt'
option cert '/etc/easy-rsa/keys/turris.crt'
option key '/etc/easy-rsa/keys/turris.key'
option dh '/etc/openvpn/dh2048.pem'
option server '192.168.100.0 255.255.255.0'
option remote-cert-tls 'server'
list push 'redirect-gateway def1'
option comp-lzo 'yes'
option verb '3'
option topology 'subnet'
option ifconfig_pool_persist '/tmp/ipp.txt'
option persist_key '1'
option persist_tun '1'
option status '/tmp/openvpn-status.log'

trubicoid2

Re:OpenVPN server na Turrisu
« Odpověď #9 kdy: 18. 01. 2016, 15:01:46 »
normalne tam bude radek neco jako
Kód: [Vybrat]
Mon Jan 18 14:56:05 2016 /sbin/ip addr add dev tun0 local 10.8.0.6 peer 10.8.0.5a 10.8.0.6 je klient

ty to budes mit v rozsahu 192.168.100.x

topology subnet nevim co dela, ja to tam nemam
mam tam client-to-client

beer

  • *****
  • 729
    • Zobrazit profil
Re:OpenVPN server na Turrisu
« Odpověď #10 kdy: 18. 01. 2016, 15:40:13 »
Když openvpn spustím ručně na klientovi, píše mi to:

Kód: [Vybrat]
Mon Jan 18 15:38:54 2016 TCP/UDP: Incoming packet rejected from [AF_INET]192.168.1.1:1194[2],
expected peer address: [AF_INET]89.177.109.252:1194 (allow this incoming source address/port b
y removing --remote or adding --float)

Mám aktivní ufw a v něm povoleno openvpn na portu 1194

trubicoid2

Re:OpenVPN server na Turrisu
« Odpověď #11 kdy: 18. 01. 2016, 15:53:20 »
jestli mas verb 3, tak pise mnohem vic, jak vypada ta konfigurace na klientovi?

jinak si u tebe stezuje, ze prave paket na portu 1194 byl zamitnut

beer

  • *****
  • 729
    • Zobrazit profil
Re:OpenVPN server na Turrisu
« Odpověď #12 kdy: 18. 01. 2016, 16:10:48 »
jestli mas verb 3, tak pise mnohem vic, jak vypada ta konfigurace na klientovi?

jinak si u tebe stezuje, ze prave paket na portu 1194 byl zamitnut
Kód: [Vybrat]
openvpn --config /etc/openvpn/vpn.conf                     
Mon Jan 18 16:03:25 2016 OpenVPN 2.3.7 x86_64-pc-linux-gnu [SSL (OpenSSL)] [LZO] [EPOLL] [PKCS
11] [MH] [IPv6] built on Jul  8 2015                                                         
Mon Jan 18 16:03:25 2016 library versions: OpenSSL 1.0.2d 9 Jul 2015, LZO 2.08               
Mon Jan 18 16:03:25 2016 Socket Buffers: R=[212992->131072] S=[212992->131072]               
Mon Jan 18 16:03:25 2016 NOTE: UID/GID downgrade will be delayed because of --client, --pull,
or --up-delay                                                                                 
Mon Jan 18 16:03:25 2016 UDPv4 link local: [undef]                                           
Mon Jan 18 16:03:25 2016 UDPv4 link remote: [AF_INET]89.177.109.252:1194                     
Mon Jan 18 16:03:25 2016 TCP/UDP: Incoming packet rejected from [AF_INET]192.168.1.1:1194[2],
expected peer address: [AF_INET]89.177.109.252:1194 (allow this incoming source address/port b
y removing --remote or adding --float)                                                       
Mon Jan 18 16:03:27 2016 TCP/UDP: Incoming packet rejected from [AF_INET]192.168.1.1:1194[2],
expected peer address: [AF_INET]89.177.109.252:1194 (allow this incoming source address/port b
y removing --remote or adding --float)                                                       
Mon Jan 18 16:03:31 2016 TCP/UDP: Incoming packet rejected from [AF_INET]192.168.1.1:1194[2],
expected peer address: [AF_INET]89.177.109.252:1194 (allow this incoming source address/port b
y removing --remote or adding --float)
...
Kód: [Vybrat]
ufw allow openvpn                                                 
Přeskakuje se přidání již existujícího pravidla                                               
Přeskakuje se přidání již existujícího pravidla (v6)

v
/etc/sysctl.conf mám odkomentované
Kód: [Vybrat]
net.ipv4.ip_forward = 1
v /etc/openvpn/vpn.conf na klientovi
Kód: [Vybrat]
client
dev tun
proto udp
remote mojedomena.cz
port 1194
keepalive 10 1200
nobind
user nobody
group nogroup
persist-tun
persist-key
auth-nocache
script-security 2
<ca>
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
</ca>
<cert>
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
</cert>
<key>
-----BEGIN PRIVATE KEY-----
...
-----END PRIVATE KEY-----
key-direction 1
ns-cert-type server
comp-lzo yes
verb 3
mute 20

trubicoid2

Re:OpenVPN server na Turrisu
« Odpověď #13 kdy: 18. 01. 2016, 16:37:27 »
to vypada, ze se ti nespoji, zkus to bez ufw

beer

  • *****
  • 729
    • Zobrazit profil
Re:OpenVPN server na Turrisu
« Odpověď #14 kdy: 18. 01. 2016, 16:47:17 »
to vypada, ze se ti nespoji, zkus to bez ufw

I s deaktivovaným ufw to nejde, hlášky stejné