Hello Todd,

thanks for that.
We have now been able to reproduce this problem here on your target system.
It was crashing inside OpenSSL BIO_read.

The problem is apparently due to a bug in the Net-SSLeay 1.30 that Ubuntu 8.04 
installs from the repository.

If you download, compile and install the latest Net-SSLeay 1.36 from CPAN, it 
should fix this problem. We recommend this later version in any case.

Cheers.


On Thursday 14 October 2010 10:43:07 pm Smith, Todd wrote:
> This is a just some modifvcations to a copy of the ntlm_eap_peap file in
> the goodies directory.  I am still testing and configuring so I haven't
> changed the default serect yet or made any serious security hardening.  The
> file seems so very long to post since it still has so many comments in it. 
> Do you have a perfered style that you want to see a config file in?  I
> guessing that I could have stripped out the comments before I posted it but
> I don't know what you want to see.
>
> Todd
>
> # ntlm_eap_peap.cfg
> #
> # Example Radiator configuration file.
> # This very simple file will allow you to get started with
> # PEAP authentication as used by Windows XP (starting with SP1)
> # We suggest you start simple, prove to yourself that it
> # works and then develop a more complicated configuration.
> #
> # This example will authenticate Wireless PEAP users from a Windows
> # Domain when Radiator runs on a Linux or Unix host, with the
> # assistance of utilities from the Samba suite (www.samba.org).
> #
> # AuthBy NTLM requires that ntlm_auth (and winbindd), both part of Samba,
> # are installed and configured
> # correctly. See goodies/smb.conf.winbindd for sample configuration and
> installa tion hints.
> #
> # AuthBy NTLM runs the Samba utility ntlm_auth as a child process in order
> to au thenticate
> # requests. It keeps ntlm_auth running between requests and passes it
> authentica tion
> # information on stdin, and gets back the authentication results from
> stdout. # Caution:  AuthBy NTLM blocks while waiting for the result output
> of ntlm_auth. #
> # Because AuthBy NTLM requires that ntlm_auth be properly installed and
> configur ed with winbindd,
> # it is vitally important that you confirm that ntlm_auth is working
> properly be fore trying
> # to use AuthBy NTLM. You can test ntlm_auth like this:
> #  ntlm_auth --username=yourusername --domain=yourdomain
> --password=yourpassword # if that does not work for a valid username and
> password, there is no way that # AuthBy NTLM will work. Make sure 
> ntlm_auth works first!
> #
> # Works with PAP, MSCHAP, MSCHAPV2
> # Radiator must be run as root in order to do MSCHAP or MSCHAPV2 via
> ntlm_auth #
> # In order to test this, you can user the sample test certificates
> # supplied with Radiator. For production, you
> # WILL need to install a real valid server certificate and
> # key for Radiator to use. Runs with openssl on Unix and Windows.
> #
> # See radius.cfg for more complete examples of features and
> # syntax, and refer to the reference manual for a complete description
> # of all the features and syntax.
> #
> # Requires openssl and Net_SSLeay.
> #
> # You should consider this file to be a starting point only
> # $Id: ntlm_eap_peap.cfg,v 1.5 2007/12/18 21:23:50 mikem Exp $
>
> LogDir          /var/log/radius
> LogFile         %L/logfile-%Y-%m-%d
> DbDir           /usr/local/etc/raddb
> # User a lower trace level in production systems:
> Trace           4
> AuthPort 1645,1812
>
> # CAUTION: Careless configuration of this clause can open security holes in
> # your RADIUS host. The following example configuration is for testing
> only. # It is recommended that you:
> #  1. limit the clients that can connect with the Clients parameter
> #  2. Make sure this configuration file is only readable by root
> #  3. Consider making radiusd run as a non-priveleged user
> #  4. Use secure usernames and password to authenticate access to this
> server. #  5. Disable this clause when not required.
> <ServerHTTP>
>         # Specifies the TCP port to use. Defaults to 9048
>         #Port %{GlobalVar:serverhttpport}
>         Port 9048
>
>         # ServerHTTP saves for viewing the last LogMaxLines log entries
>         # at or below this trace level.
>         Trace 4
>
>         # LogMaxLines specifies the max number of recent log messages that
> are # saved. Defaults to 500. If you set this to 0, then no
>         # logger will be created for ServerHTTP, slightly improving
> performance #LogMaxLines 1000
>
>         # BindAddress allows you to bind to a different network address
>         # for multihomed hosts. Defaults to 0.0.0.0
>         #BindAddress 203.63.154.29, 127.0.0.1
>
>         # You can have one or more AuthBy clauses or AuthBy parameters
>         # to specify how to authenticate HTTP connections. AuthByPolicy is
> also # supported. If the last AuthBy returns ACCEPT, the connection # is
> accepted. If the last AuthBy returns IGNORE, or there are # no AuthBy, then
> fall back to the hardwired Username and
>         # Password parameters
>         # If the authenticated user has a Management-Policy-Id reply item,
>         # it will be used
>         # as that users privilege level, instead of DefaultPrivilegeLevel.
>
>         <AuthBy NTLM>
>                 NtlmAuthProg /usr/bin/ntlm_auth 
> --helper-protocol=ntlm-server-1 --require-membership-of='CAMC+netwkgrp'
>                 DefaultDomain CAMC
>         </AuthBy>
>
>         # This is the fallback username and password that clients must
> LOGIN as # if there are no AuthBy clauses, or if they return IGNORE # If
> there are no AuthBys (or the last returns IGNORE) and there is no #
> Username, you can connect to this interface anonymously (not # recommended
> except for testing in secure enviromnents).
>         Username mikem
>         # Password can be plaintext or any of the encrypted formats such as
>         # {crypt}....., {nthash}....., {SHA}...., {SSHA}....., {mysql}....,
>         # {msssql}...., {dechpwd}...., {MD5}......, {clear}....
>         Password fred
>
>         # Controls the ServerHTTP users privilege level if
>         # a per-user Management-Policy-Id is not available from a
> successful # authentication from the AuthBy list.
>         # The privilege level is a bitmask. The following privilege levels
> are # defined, and may be logically or'd together
>         #  0 means no access, including no login permission.
>         #  1 means viewing basic status only.
>         #  2 means ability to reset the server
>         #  4 means the ability to edit and change the running config (but
> not #    save it)
>         #  8 means the ability to save changes to the configuration
>         #  15 means all privileges
>         # Defaults to 1
>         DefaultPrivilegeLevel 15
>
>         # Clients let you limit which clients you will accept connects from
>         # You can specify one or more comma or space separated IP addresses
>         # Use this parameter to make your server more secure by limiting
>         # which clients can connect.
>         #Clients 127.0.0.2, 203.63.154.29
>         # This one limits access to the same host that Radiator runs on:
>         Clients 127.0.0.1 10.2.96.125
>
>         # If AuditTrail is defined, all editing operations and changes will
> be # logged to the file (as well as to the normal log file at trace level 3
> )
>
>         AuditTrail %D/audit-%Y-%m-%d.txt
>
>         # Like most loggers, you can enable LogMicroseconds to get
>         # microsecond accuracy in log messages. Requires the
>         # Time::HiRes module from CPAN.
>         #LogMicroseconds
>
>         # Specifies the maximum time before the user has to log in again
>         # Defaults to 1 hour
>         #SessionTimeout 3600
>
>         # You can force SSL connections, and use all the standard TLS
>         # certificate and verification mechanisms
>         UseSSL 1
>         TLS_CAFile %D/certificates/DigiCert/CAChain.crt
>         TLS_CertificateFile %D/certificates/DigiCert/weiland_camc_hsi.crt
>         TLS_CertificateType PEM
>         TLS_PrivateKeyFile %D/certificates/DigiCert/weiland_camc_hsi.key
>         #TLS_PrivateKeyPassword whatever
>         #TLS_RequireClientCert
>         #TLS_ExpectedPeerName .+
>         #TLS_SubjectAltNameURI .*open.com.au
>         #TLS_CRLCheck
>         #TLS_CRLFile %D/certificates/revocations.pem
>         #TLS_CRLFile %D/certificates/revocations2.pem
>
>         # Users that log in to the Server HTTP interface can be logged with
> an # AuthLog clause:
>         <AuthLog FILE>
>                  Filename %L/authlog-%Y-%m-%d
>         </AuthLog>
>
>         # If a page is requested but not found in the set of built-in pages
>         # PageNotFoundHook is called to try to handle the request.
>         # PageNotFoundHook is passed the requested URI and a reference to
> the # ServerHTTP connection. If it can handle the request, it returns an #
> array of ($httpcode, $content, @httpheaders) else undef. #PageNotFoundHook
> sub {return (200, "your HTML content");}
>
> </ServerHTTP>
>
>
>
> # You will probably want to add other Clients to suit your site,
> # one for each NAS you want to work with
> <Client DEFAULT>
>         Secret  mysecret
>         DupInterval 0
> </Client>
>
> # This is where we authenticate a PEAP inner request, which will be an EAP
> # request. The username of the inner request will be anonymous, although
> # the identity of the EAP request will be the real username we are
> # trying to authenticate.
> <Handler TunnelledByPEAP=1>
>         <AuthBy NTLM>
>                 # The name of the ntlm_auth program, supplied with
>                 # Samba. Defaults to '/usr/bin/ntlm_auth 
> --helper-protocol=ntlm -server-1'
>                 # You can require that authenticated users belong to a
> certain g roup with:
>                 #NtlmAuthProg /usr/bin/ntlm_auth 
> --helper-protocol=ntlm-server- 1 --require-membership-of=MyGroupName
>                 # or you can specify that the NTLM authenticaiton requests
> appea r to come from a workstation with
>                 # a specified name. This can be used to restrict
> authentication for certain users by setting
>                 # workstation requirements in their Windows user
> configuration. #NtlmAuthProg /usr/bin/ntlm_auth 
> --helper-protocol=ntlm-server- 1 --workstation=MyWorkstationName
>
>                 # Specifies which Windows Domain is ALWAYS to be used to
> authent icate
>                 # users (even if they specify a different domain in their
> userna me).
>                 # Special characters are supported. Can be an Active
>                 # directory domain or a Windows NT domain controller
>                 # domain name
>                 #Domain OPEN
>
>                 # Specifies the Windows Domain to use if the user does not
>                 # specify a domain in their username.
>                 # Special characters are supported. Can be an Active
>                 # directory domain or a Windows NT domain controller
>                 # domain name
>                 DefaultDomain CAMC
>
>                 # This tells the PEAP client what types of inner EAP
> requests # we will honour
>                 EAPType MSCHAP-V2
>
>         </AuthBy>
> </Handler>
>
>
> # The original PEAP request from a NAS will be sent to a matching
> # Realm or Handler in the usual way, where it will be unpacked and the
> inner aut hentication
> # extracted.
> # The inner authentication request will be sent again to a matching
> # Realm or Handler. The special check item TunnelledByPEAP=1 can be used to
> sele ct
> # a specific handler, or else you can use EAPAnonymous to set a username
> and rea lm
> # which can be used to select a Realm clause for the inner request.
> # This allows you to select an inner authentication method based on Realm,
> and/o r the
> # fact that they were tunnelled. You can therfore act just as a PEAP
> server, or also
> # act as the AAA/H home server, and authenticate PEAP requests locally or
> proxy # them to another remote server based on the realm of the inner
> authenticaiton r equest.
> # In this basic example, both the inner and outer authentication are
> authenticat ed
> # from a file by AuthBy FILE
> <Handler>
>         <AuthBy FILE>
>                 # The username of the outer authentication
>                 #  must be in this file to get anywhere. In this example,
>                 # it requires an entry for 'anonymous' which is the
> standard use rname
>                 # in the outer requests, and it also requires an entry for
> the # actual user name who is trying to connect (ie the 'Login name'
> entered
>                 # in the Funk Odyssey 'Edit Profile Properties' page
>                 Filename %D/users
>
>                 # EAPType sets the EAP type(s) that Radiator will honour.
>                 # Options are: MD5-Challenge, One-Time-Password
>                 # Generic-Token, TLS, TTLS, PEAP, MSCHAP-V2
>                 # Multiple types can be comma separated. With the default
> (most # preferred) type given first
>                 EAPType PEAP
>
>                 # EAPTLS_CAFile is the name of a file of CA certificates
>                 # in PEM format. The file can contain several CA
> certificates # Radiator will first look in EAPTLS_CAFile then in #
> EAPTLS_CAPath, so there usually is no need to set both # EAPTLS_CAFile
> %D/certificates/demoCA/cacert.pem
>                 EAPTLS_CAFile %D/certificates/DigiCert/CAChain.crt
>
>
>                 # EAPTLS_CAPath is the name of a directory containing CA
>                 # certificates in PEM format. The files each contain one
>                 # CA certificate. The files are looked up by the CA
>                 # subject name hash value
> #               EAPTLS_CAPath
>
>                 # EAPTLS_CertificateFile is the name of a file containing
>                 # the servers certificate. EAPTLS_CertificateType
>                 # specifies the type of the file. Can be PEM or ASN1
>                 # defaults to ASN1
>                 EAPTLS_CertificateFile
> %D/certificates/DigiCert/weiland_camc_hsi .crt
>                 EAPTLS_CertificateType PEM
>
>                 # EAPTLS_PrivateKeyFile is the name of the file containing
>                 # the servers private key. It is sometimes in the same file
>                 # as the server certificate (EAPTLS_CertificateFile)
>                 # If the private key is encrypted (usually the case)
>                 # then EAPTLS_PrivateKeyPassword is the key to descrypt it
>                 EAPTLS_PrivateKeyFile
> %D/certificates/DigiCert/weiland_camc_hsi. key
>                 #EAPTLS_PrivateKeyPassword whatever
>
>                 # EAPTLS_RandomFile is an optional file containing
>                 # randdomness
> #               EAPTLS_RandomFile %D/certificates/random
>
>                 # EAPTLS_MaxFragmentSize sets the maximum TLS fragemt
>                 # size that will be replied by Radiator. It must be small
>                 # enough to fit in a single Radius request (ie less than
> 4096) # and still leave enough space for other attributes # Aironet APs
> seem to need a smaller MaxFragmentSize # (eg 1024) than the default of
> 2048. Others need even smaller s izes.
>                 EAPTLS_MaxFragmentSize 1000
>
>                 # EAPTLS_DHFile if set specifies the DH group file. It
>                 # may be required if you need to use ephemeral DH keys.
> #               EAPTLS_DHFile %D/certificates/cert/dh
>
>
>                 # If EAPTLS_CRLCheck is set  and the client presents a
> certifica te
>                 # then Radiator will look for a certificate revocation list
> (CRL )
>                 # for the certificate issuer
>                 # when authenticating each client. If a CRL file is not
> found, o r
>                 # if the CRL says the certificate has neen revoked, the
> authenti cation will
>                 # fail with an error:
>                 #   SSL3_GET_CLIENT_CERTIFICATE:no certificate returned
>                 # One or more CRLs can be named with the EAPTLS_CRLFile
> paramete r.
>                 # Alternatively, CRLs may follow a file naming convention:
>                 #  the hash of the issuer subject name
>                 # and a suffix that depends on the serial number.
>                 # eg ab1331b2.r0, ab1331b2.r1 etc.
>                 # You can find out the hash of the issuer name in a CRL
> with #  openssl crl -in crl.pem -hash -noout
>                 # CRLs with tis name convention
>                 # will be searched in EAPTLS_CAPath, else in the openssl
>                 # certificates directory typically
> /usr/local/openssl/certs/ # CRLs are expected to be in PEM format.
>                 # A CRL files can be generated with openssl like this:
>                 #  openssl ca -gencrl -revoke cert-clt.pem
>                 #  openssl ca -gencrl -out crl.pem
>                 # Use of these flags requires Net_SSLeay-1.21 or later
>                 #EAPTLS_CRLCheck
>                 #EAPTLS_CRLFile %D/certificates/crl.pem
>                 #EAPTLS_CRLFile %D/certificates/revocations.pem
>
>                 # Some clients, depending on their configuration, may
> require yo u to specify
>                 # MPPE send and receive keys. This _will_ be required if
> you sel ect
>                 # 'Keys will be generated automatically for data privacy'
> in the Funk Odyssey
>                 # client Network Properties dialog.
>                 # Automatically sets MS-MPPE-Send-Key and MS-MPPE-Recv-Key
>                 # in the final Access-Accept
>                 AutoMPPEKeys
>
>                 # You can configure the User-Name that will be used for the
> inne r
>                 # authentication. Defaults to 'anonymous'. This can be
> useful # when proxying the inner authentication. If tehre is a realm, i t
> can
>                 # be used to choose a local Realm to handle the inner
> authentica tion.
>                 # %0 is replaced with the EAP identitiy
>                 # EAPAnonymous anonym...@some.other.realm
>
>                 # You can enable or disable support for TTLS Session
> Resumption and
>                 # PEAP Fast Reconnect with the EAPTLS_SessionResumption
> flag. # Default is enabled
>                 #EAPTLS_SessionResumption 0
>
>                 # You can limit how long after the initial session that a
> sessio n can be resumed
>                 # with EAPTLS_SessionResumptionLimit (time in seconds).
> Defaults to 43200
>                 # (12 hours)
>                 #EAPTLS_SessionResumptionLimit 10
>
>                 # You can control which version of the draft PEAP protocol
> to ho nour
>                 # with EAPTLS_PEAPVersion. Defaults to 1. Set it to 0 for
> unusua l clients,
>                 # such as Funk Odyssey Client 2.22 or later.
>                 EAPTLS_PEAPVersion 0
>         </AuthBy>
> </Handler>
>
> tssm...@weiland:/etc/radiator$
>
> -----Original Message-----
> From: Mike McCauley [mailto:mi...@open.com.au]
> Sent: Thursday, October 14, 2010 07:27
> To: radiator@open.com.au
> Cc: Smith, Todd
> Subject: Re: [RADIATOR] ServerHTTP
>
> Hi Todd,
>
> On Thursday 14 October 2010 07:15:51 am Smith, Todd wrote:
> > The server is x86 32 bit Ubuntu 8.04 LTS running Linux kernel
> > 2.6.24-28-server with Perl version 5.8.8 fully patched from standard
> > Ubuntu sources.
>
> We have tried, but havent been able to reproduce this problem on that
> platform (or any other)
>
> Looks like you have your ServerHTTP configured for UseSSL? And that the
> connection from your browser was an SSL connection. How and where from did
> you install the perl Net::SSLeay module?
> Have you updated or changed your openssl install?
> What browser were you using?
>
> I think I need to see your complete config file (no secrets)
>
> Cheers.
>
>
> Confidentiality Note: The information contained in this message
> may be privileged and confidential. If this e-mail contains
> protected health information, you are hereby notified that any
> dissemination, distribution or copying of this communication is
> strictly prohibited,except as permitted by law. If you have
> received this communication in error, please notify the sender
> immediately by replying to this message and deleting it from your
> computer.  Thank you.
> _______________________________________________
> radiator mailing list
> radiator@open.com.au
> http://www.open.com.au/mailman/listinfo/radiator



-- 
Mike McCauley                               mi...@open.com.au
Open System Consultants Pty. Ltd
9 Bulbul Place Currumbin Waters QLD 4223 Australia   http://www.open.com.au
Phone +61 7 5598-7474                       Fax   +61 7 5598-7070

Radiator: the most portable, flexible and configurable RADIUS server 
anywhere. SQL, proxy, DBM, files, LDAP, NIS+, password, NT, Emerald, 
Platypus, Freeside, TACACS+, PAM, external, Active Directory, EAP, TLS, 
TTLS, PEAP, TNC, WiMAX, RSA, Vasco, Yubikey, MOTP, HOTP, TOTP,
DIAMETER etc. Full source on Unix, Windows, MacOSX, Solaris, VMS, NetWare etc.
_______________________________________________
radiator mailing list
radiator@open.com.au
http://www.open.com.au/mailman/listinfo/radiator

Reply via email to