Openvpn

openvpn radius-plugin 不會將 freeradius 中的 framed-ip-address 分配給客戶端

  • October 24, 2018

我是openvpn的新手。我在 ubuntu 14.04 上有一個 openvpn 設置,它有一個用於身份驗證、授權和記帳的半徑 AAA 後端。除此之外,我們還配置了 freeradius 以將池中的 ips 分配為 framed-ip-address。從半徑日誌來看,當身份驗證和授權成功時,freeradius 似乎返回 framed-ip-address 以響應訪問請求消息,但 openvpn 似乎忽略它並使用伺服器指令中指定的自己的 ip 池。我想要的是openvpn尊重freeradius返回的框架IP地址,但事實並非如此。由於我之前沒有使用 openvpn 的經驗,因此我希望得到專家的幫助。

這是我認為有問題的配置的 openvpn 方面。

OpenVPN 配置:

local 192.168.7.100

mode server

port 443 

proto tcp 

dev tun

tcp-queue-limit 256

tun-mtu 1500

mssfix 1460

sndbuf 0

rcvbuf 0


cipher AES-256-CBC

ca /etc/openvpn/easy-rsa/keys/ca.crt

cert /etc/openvpn/easy-rsa/keys/server.crt

key /etc/openvpn/easy-rsa/keys/server.key

dh /etc/openvpn/easy-rsa/keys/dh2048.pem

tls-auth /etc/openvpn/easy-rsa/keys/ta.key 0

plugin /etc/openvpn/rad/radiusplugin.so /etc/openvpn/rad/443.cnf

client-cert-not-required

username-as-common-name


server 10.10.0.0 255.255.0.0

;ifconfig-pool 10.0.0.0 10.1.255.254

ifconfig-pool-persist ipp.txt

push "redirect-gateway def1"

push "dhcp-option DNS 8.8.8.8"

push "dhcp-option DNS 8.8.4.4"

reneg-sec 0

keepalive 60 120

tcp-nodelay

comp-lzo

persist-key

persist-tun

status /etc/openvpn/443.log 1

status-version 1

verb 4

management 192.168.7.100 7505

半徑外掛:

NAS-Identifier=openvpn_tcp_443

Service-Type=5

Framed-Protocol=1

NAS-Port-Type=5

NAS-IP-Address=192.168.7.100

OpenVPNConfig=/etc/openvpn/tcp_443.conf


subnet=255.255.255.0


overwriteccfiles=true

nonfatalaccounting=false

server
{

       acctport=1813

       authport=1812

       name=192.168.7.102

       retry=1

       wait=1

       sharedsecret=--redacted--
}

server
{

       acctport=1813

       authport=1812

       name=192.168.7.103

       retry=1

       wait=1

       sharedsecret=--redacted--
}

謝謝你。

======================

更新

我對配置進行了以下更改。

topology subnet

push "topology subnet"

client-config-dir clients

添加 client-config-dir 後,正在分配 framed-ip-address。如前所述,現在從我的客戶那裡,我無法瀏覽任何內容。似乎無法正確路由流量。似乎存在路由問題或拓撲或其他我希望 openvpn 處理的問題,但事實並非如此。以下是可以幫助其理解的相關資訊。

分配給openvpn客戶端的ip是公網ip,路由設置在本機網關上。與 strongswan 一起使用時,相同的客戶端 ip 可以正常工作。這意味著它可以正確路由。但是對於openvpn,它不會。

伺服器機器上 ifconfig 的相關輸出。

tun0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00

         inet addr:10.10.0.1  P-t-P:10.10.0.1  Mask:255.255.255.0

         UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1

         RX packets:0 errors:0 dropped:0 overruns:0 frame:0

         TX packets:0 errors:0 dropped:0 overruns:0 carrier:0

         collisions:0 txqueuelen:100

         RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

route -n 的相關輸出

0.0.0.0         --redacted--     0.0.0.0         UG    0      0        0 em2

10.10.0.0       0.0.0.0         255.255.255.0   U     0      0        0 tun0

--redacted--     0.0.0.0         255.255.255.248 U     0      0        0 em2

rp_filter 資訊:

root@us1-ps1:~# sysctl -a | grep rp_filter

net.ipv4.conf.all.arp_filter = 0

net.ipv4.conf.all.rp_filter = 1

net.ipv4.conf.default.arp_filter = 0

net.ipv4.conf.default.rp_filter = 0

net.ipv4.conf.em1.arp_filter = 0

net.ipv4.conf.em1.rp_filter = 0

net.ipv4.conf.em2.arp_filter = 0

net.ipv4.conf.em2.rp_filter = 0

net.ipv4.conf.lo.arp_filter = 0

net.ipv4.conf.lo.rp_filter = 0

net.ipv4.conf.tun0.arp_filter = 0

net.ipv4.conf.tun0.rp_filter = 0


root@us1-ps1:~# ping 10.10.0.1

PING 10.10.0.1 (10.10.0.1) 56(84) bytes of data.

64 bytes from 10.10.0.1: icmp_seq=1 ttl=64 time=0.058 ms

64 bytes from 10.10.0.1: icmp_seq=2 ttl=64 time=0.037 ms

網際網路工作正常。

root@us1-ps1:~# ping google.com

PING google.com (172.217.0.46) 56(84) bytes of data.

64 bytes from lga15s43-in-f14.1e100.net (172.217.0.46): icmp_seq=1 ttl=51 time=20.3 ms

64 bytes from lga15s43-in-f14.1e100.net (172.217.0.46): icmp_seq=2 ttl=51 time=20.2 ms

64 bytes from lga15s43-in-f14.1e100.net (172.217.0.46): icmp_seq=3 ttl=51 time=20.2 ms

^C
--- google.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2002ms
rtt min/avg/max/mdev = 20.216/20.279/20.338/0.171 ms

預設網關也可以ping通。

如果您想列印其他資訊,請告訴我。

謝謝

指定client-config-dir指令。是半徑外掛將放置openvpn用於分配IP的文件的位置。

例如。客戶端配置目錄客戶端

引用自:https://serverfault.com/questions/796872