validate source of RADIUS packets
This commit is contained in:
parent
7bc0c67c3a
commit
995bae51b1
3 changed files with 14 additions and 5 deletions
3
Changes
3
Changes
|
|
@ -1,8 +1,9 @@
|
||||||
* Fri Jan 20 2006 Brendan O'Dea <bod@optus.net> 2.1.16
|
* Sat Feb 18 2006 Brendan O'Dea <bod@optus.net> 2.1.16
|
||||||
- Send configured magic-no in LCP EchoReq when LCP is opened.
|
- Send configured magic-no in LCP EchoReq when LCP is opened.
|
||||||
- Correct addition of single IP to pool (Jonathan Yarden).
|
- Correct addition of single IP to pool (Jonathan Yarden).
|
||||||
- Handle LCP NAK of magic-number.
|
- Handle LCP NAK of magic-number.
|
||||||
- Ensure session changes from LCP ConfigReq/ConfigNak are sent to cluster.
|
- Ensure session changes from LCP ConfigReq/ConfigNak are sent to cluster.
|
||||||
|
- Verify that RADIUS packets come from a configured server (Jonathan Yarden).
|
||||||
|
|
||||||
* Mon Dec 19 2005 Brendan O'Dea <bod@optus.net> 2.1.15
|
* Mon Dec 19 2005 Brendan O'Dea <bod@optus.net> 2.1.15
|
||||||
- Drop backtrace.
|
- Drop backtrace.
|
||||||
|
|
|
||||||
14
l2tpns.c
14
l2tpns.c
|
|
@ -4,7 +4,7 @@
|
||||||
// Copyright (c) 2002 FireBrick (Andrews & Arnold Ltd / Watchfront Ltd) - GPL licenced
|
// Copyright (c) 2002 FireBrick (Andrews & Arnold Ltd / Watchfront Ltd) - GPL licenced
|
||||||
// vim: sw=8 ts=8
|
// vim: sw=8 ts=8
|
||||||
|
|
||||||
char const *cvs_id_l2tpns = "$Id: l2tpns.c,v 1.155 2006/01/19 20:55:03 bodea Exp $";
|
char const *cvs_id_l2tpns = "$Id: l2tpns.c,v 1.156 2006/02/17 13:27:07 bodea Exp $";
|
||||||
|
|
||||||
#include <arpa/inet.h>
|
#include <arpa/inet.h>
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
|
|
@ -3301,9 +3301,17 @@ static void mainloop(void)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case FD_TYPE_RADIUS: // RADIUS response
|
case FD_TYPE_RADIUS: // RADIUS response
|
||||||
s = recv(radfds[d->index], buf, sizeof(buf), 0);
|
alen = sizeof(addr);
|
||||||
|
s = recvfrom(radfds[d->index], buf, sizeof(buf), MSG_WAITALL, (void *) &addr, &alen);
|
||||||
if (s >= 0 && config->cluster_iam_master)
|
if (s >= 0 && config->cluster_iam_master)
|
||||||
processrad(buf, s, d->index);
|
{
|
||||||
|
if (addr.sin_addr.s_addr == config->radiusserver[0] ||
|
||||||
|
addr.sin_addr.s_addr == config->radiusserver[1])
|
||||||
|
processrad(buf, s, d->index);
|
||||||
|
else
|
||||||
|
LOG(3, 0, 0, "Dropping RADIUS packet from unknown source %s\n",
|
||||||
|
fmtaddr(addr.sin_addr.s_addr, 0));
|
||||||
|
}
|
||||||
|
|
||||||
n--;
|
n--;
|
||||||
break;
|
break;
|
||||||
|
|
|
||||||
|
|
@ -43,5 +43,5 @@ rm -rf %{buildroot}
|
||||||
%attr(644,root,root) /usr/share/man/man[58]/*
|
%attr(644,root,root) /usr/share/man/man[58]/*
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
* Fri Jan 20 2006 Brendan O'Dea <bod@optus.net> 2.1.16-1
|
* Sat Feb 18 2006 Brendan O'Dea <bod@optus.net> 2.1.16-1
|
||||||
- 2.1.16 release, see /usr/share/doc/l2tpns-2.1.16/Changes
|
- 2.1.16 release, see /usr/share/doc/l2tpns-2.1.16/Changes
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue