发新话题
打印

在freeradius中将routeros中的拨号用户踢下线的方法

在freeradius中将routeros中的拨号用户踢下线的方法

转自 routerclub 的管理员 想得太美
经过反复试验,终于可以在freeradius中将routeros 中的拨号用户强制踢下线,方法介绍如下:
先在ros的终端中输入

QUOTE:
/radius incoming set accept=yes


这样将开启routeros的断线请求消息,并监听在端口udp 1700。
然后使用radclient构造一个踢人的数据包。
格式如下:

QUOTE:
echo "Acct-Session-Id=8100000c" > packet.txt
echo "User-Name=gtr" >> packet.txt
echo "Framed-IP-Address = 10.12.255.248" >> packet.txt

cat packet.txt | radclient -x 192.168.50.180:1701 disconnect 123


解释如下:
Acct-Session-Id=8100000c ,8100000c 是freeradius使用的数据库中radacct表的AcctSessionld字段的值,表示这个拨号用户的会话ID。
User-Name=gtr                 ,gtr是拨号用户的用户名。
Framed-IP-Address = 10.12.255.248 ,10.12.255.248是此拨号用户获取的IP地址。

radclient -x 192.168.50.180:1701 disconnect 123中,192.168.50.180:1701是routeros的IP地址和监听的端口,disconnect 表示发送断线消息,123是与radius与routeros 的通信密钥。

当执行此命令后,输出:

QUOTE:
[root@debian ~]# echo "Acct-Session-Id=8100000c" > packet.txt
[root@debian ~]# echo "User-Name=gtr" >> packet.txt
[root@debian ~]# echo "Framed-IP-Address = 10.12.255.248" >> packet.txt
[root@debian ~]# cat packet.txt | radclient -x 192.168.50.180:1701 disconnect 123
Sending Disconnect-Request of id 83 to 192.168.50.180 port 1701
        Acct-Session-Id = "8100000c"
        User-Name = "gtr"
        Framed-IP-Address = 10.12.255.248
rad_recv: Disconnect-ACK packet from host 192.168.50.180:1701, id=83, length=36
        NAS-Identifier = "MikroTik"
        NAS-IP-Address = 192.168.50.180
[root@debian ~]#


马上就可以看到拨号用户被踢下线。

TOP

发新话题