ToughRADIUS 與 Linux PPTP 對接

以 ubuntu14 爲例,談談PPTP對接ToughRADIUS

安裝pptpd服務

sudo apt-get update -y
sudo apt-get install -y pptpd iptables libfreeradius-client2 libfreeradius-client-dev

如果/etc/radiusclient目錄不存在,建立一個radius配置目錄鏈接

ln -s /usr/local/etc/radiusclient /etc/radiusclient

配置pptpd與radius

修改配置文件 /etc/pptpd.conf

option /etc/ppp/pptpd-options
#debug
#stimeout 10
logwtmp
#bcrelay eth1
#delegate
#connections 100
localip 10.79.97.1
remoteip 10.79.97.10-200

修改配置文件 /etc/ppp/pptpd-options,注意這裏採用了maschapv2認證方式,並採用mppe128位加密模式。

name pptpd
refuse-pap
refuse-chap
refuse-mschap
require-mschap-v2
require-mppe-128

# Network and Routing
ms-dns 8.8.8.8
ms-dns 8.8.4.4
proxyarp
nodefaultroute

#Logging
#debug
#dump
#logfile /var/log/pptpd.log

# Miscellaneous
lock
nobsdcomp
novj
novjccomp
#nologfd

plugin /usr/lib/pppd/2.4.5/radius.so
plugin /usr/lib/pppd/2.4.5/radattr.so
radius-config-file /etc/radiusclient/radiusclient.conf

配置/etc/radiusclient/radiusclient.conf , 注意配置authserver,acctserver爲你實際的radius服務器地址和端口。

auth_order radius
login_tries 4
login_timeout 60
nologin /etc/nologin
authserver radius.toughctruc.net:1812
acctserver radius.toughctruc.net:1813
servers /etc/radiusclient/servers
dictionary /etc/radiusclient/dictionary
seqfile /var/run/radius.seq
mapfile /etc/radiusclient/port-id-map
default_realm
radius_timeout 10
radius_retries 3
login_local /bin/login

如果 /etc/radiusclient/port-id-map 不存在,建立一個空文件

echo "" > /etc/radiusclient/port-id-map

配置radius服務器和共享密鑰 /etc/radiusclient/servers

radius.toughstruct.net     testing123

爲了支持mschapv2認證,需要加入 dictionary.microsoft字典, 修改字典文件 /etc/radiusclient/dictionary,在末尾務必加上 :

INCLUDE /etc/radiusclient/dictionary.microsoft

如果目錄中沒有這個字典,可以下載:https://raw.githubusercontent.com/talkincode/Tough***/master/radius/dictionary/dictionary.microsoft

修改防火牆配置並修改內核轉發支持

注意IP地址與/etc/pptpd.conf中配置的一致

iptables -t nat -A POSTROUTING -s 10.79.97.0/24 -o eth0 -j MASQUERADE
iptables -A FORWARD -s 10.79.97.0/24 -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -j TCPMSS --set-mss 1356

設置內核轉發支持

sysctl -w net.ipv4.ip_forward=1

啓動pptpd服務

service pptpd start

配置ToughRADIUS

在ToughRADIUS系統中,需要把PPTP作爲接入設備加入,在BAS信息管理裏增加一個標準配置即可。

增加資費,新增用戶信息,接下來就可以進行撥號測試了。

在撥號過程中,可以通過用戶消息跟蹤或系統日誌查看進行調試,使用mschapv2認證時,用戶消息必定會有兩個特定屬性:MS-CHAP-Challenge 和 MS-CHAP2-Response,如果用戶消息中沒有此屬性,則可能的原因是:

  • pptp服務沒有配置require-mschap-v2 和 require-mppe-128

  • 系統內核不支持mppe

  • 沒有加入dictionary.microsoft

  • 如果沒有上面的問題,試着修改 require-mppe-128 爲 require-mppe

注意事項

要支持mschapv2,需要系統內核支持MPPE,輸入指令:

modprobe ppp-compress-18 && echo ok

如果輸出ok,則系統內核支持。

在測試過程中,可以開啓debug收集日誌進行診斷,以及配合Radius服務器的日誌進行診斷。

更多幫助,請參考 http://poptop.sourceforge.net/dox/

另外,你也可以關注我們的這個開源項目:https://github.com/talkincode/Tough*** ,這個項目計劃實現更簡單的一鍵安裝以及常識Docker模式的部署。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章