PfSense 2.3.2'de çalışan OpenVPN var. Şu anda çoğunlukla küçük bir şey dışında çalışıyor: LAN'ımdaki herhangi bir şeye bağlanabilirim dışında pfSense sunucusunun kendisi.
Bazı detaylar:
- IP adres aralığı olarak 172.16.104.0/21 kullanılarak yapılandırıldım.
- Güvenlik duvarı 172.16.104.1'de oturur.
- OpenVPN istemcileri için DHCP aralığı 172.16.105.10-50'dir.
- OpenVPN musluk, UDP kullanılarak yapılandırılmıştır.
- ovpns1 OPT1'e atanır ve OPT1 ve LAN köprülenir (köprü0).
Dokunma ve köprüleme kullanmamın nedeni, çok fazla Apple aygıtım olması ve VPN'de Bonjour ve diğer çok noktaya yayın / yayın tabanlı şeylerin düzgün çalışmasını istemem.
Bütün bunlar 172.16.104.1 (güvenlik duvarı) dışındaki LAN ağımdaki herhangi bir adres için doğru şekilde çalışıyor. İstemcilerden hiçbiri 172.16.104.1 ve 172.16.104.1’e ping atamıyor veya bağlanamıyorsa, istemcilerin hiçbirine ping yapamaz veya bağlanamaz.
Tcpdump kullanmak başka bir tuhaflığı ortaya çıkarır:
Sunucu başka bir oturumda çalışan tcpdump ile bir istemciden ping, ben cevap alıyor gibi görünüyor ama ping tarafından rapor edilmiyor gibi görünüyor?
ping -c2 172.16.104.1
PING 172.16.104.1 (172.16.104.1) 56(84) bytes of data.
--- 172.16.104.1 ping statistics ---
2 packets transmitted, 0 received, 100% packet loss, time 1009ms
Ancak aynı makinedeki tcpdump oturumunda:
IP 172.16.105.3 > 172.16.104.1: ICMP echo request, id 17069, seq 1, length 64
IP 172.16.104.1 > 172.16.105.3: ICMP echo reply, id 17069, seq 1, length 64
IP 172.16.105.3 > 172.16.104.1: ICMP echo request, id 17069, seq 2, length 64
IP 172.16.104.1 > 172.16.105.3: ICMP echo reply, id 17069, seq 2, length 64
Ve pfSense sunucusundan:
tcpdump -n -i ovpns1 -t icmp
tcpdump: WARNING: ovpns1: no IPv4 address assigned
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on ovpns1, link-type EN10MB (Ethernet), capture size 65535 bytes
IP 172.16.105.3 > 172.16.104.1: ICMP echo request, id 17084, seq 1, length 64
IP 172.16.104.1 > 172.16.105.3: ICMP echo reply, id 17084, seq 1, length 64
IP 172.16.105.3 > 172.16.104.1: ICMP echo request, id 17084, seq 2, length 64
IP 172.16.104.1 > 172.16.105.3: ICMP echo reply, id 17084, seq 2, length 64
Bu, güvenlik duvarı olmayan bir Ubuntu Linux makinesidir.
PfSense makinesi cevap gönderdiğini düşünüyor, Linux makinesi cevap aldığını düşünüyor ama ping hala% 100 paket kaybı rapor ediyor?
Farklı, sunucu dışı bir adrese ping attığımda bir yanıt alıyorum:
ping -c2 172.16.104.2
PING 172.16.104.2 (172.16.104.2) 56(84) bytes of data.
64 bytes from 172.16.104.2: icmp_seq=1 ttl=64 time=34.6 ms
64 bytes from 172.16.104.2: icmp_seq=2 ttl=64 time=34.1 ms
--- 172.16.104.2 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1002ms
rtt min/avg/max/mdev = 34.165/34.401/34.638/0.300 ms
Ve tcpdump kabuğunda:
IP 172.16.105.3 > 172.16.104.2: ICMP echo request, id 17068, seq 1, length 64
IP 172.16.104.2 > 172.16.105.3: ICMP echo reply, id 17068, seq 1, length 64
IP 172.16.105.3 > 172.16.104.2: ICMP echo request, id 17068, seq 2, length 64
IP 172.16.104.2 > 172.16.105.3: ICMP echo reply, id 17068, seq 2, length 64
İşte benim OpenVPN sunucu yapılandırmam pfSense’den atıldı:
dev ovpns1
verb 1
dev-type tap
dev-node /dev/tap1
writepid /var/run/openvpn_server1.pid
#user nobody
#group nobody
script-security 3
daemon
keepalive 10 60
ping-timer-rem
persist-tun
persist-key
proto udp
cipher AES-256-CBC
auth SHA1
up /usr/local/sbin/ovpn-linkup
down /usr/local/sbin/ovpn-linkdown
local <omitted>
tls-server
server-bridge 172.16.104.1 255.255.248.0 172.16.105.10 172.16.105.50
client-config-dir /var/etc/openvpn-csc/server1
tls-verify "/usr/local/sbin/ovpn_auth_verify tls '<omitted>' 1"
lport 1194
management /var/etc/openvpn/server1.sock unix
push "route 172.16.104.0 255.255.248.0"
client-to-client
duplicate-cn
ca /var/etc/openvpn/server1.ca
cert /var/etc/openvpn/server1.cert
key /var/etc/openvpn/server1.key
dh /etc/dh-parameters.1024
tls-auth /var/etc/openvpn/server1.tls-auth 0
persist-remote-ip
float
mode server
Ve müşteriden:
dev tap
persist-tun
persist-key
cipher AES-256-CBC
auth SHA1
tls-client
client
resolv-retry infinite
remote <omitted> 1194 udp
lport 0
verify-x509-name "<omitted>" name
pkcs12 udp-1194.p12
tls-auth udp-1194-tls.key 1
ns-cert-type server
Burada ne oluyor?