added README.md, Makefile
This commit is contained in:
parent
8bcdd4668d
commit
e30bcb5e83
2
.gitignore
vendored
Normal file
2
.gitignore
vendored
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
*.ini
|
||||||
|
/adradius
|
18
Makefile
Normal file
18
Makefile
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
# adradius Makefile
|
||||||
|
|
||||||
|
GOCMD=go
|
||||||
|
GOBUILDCMD=${GOCMD} build
|
||||||
|
GOOPTIONS=-mod=vendor -ldflags="-s -w"
|
||||||
|
|
||||||
|
RMCMD=rm
|
||||||
|
BINNAME=adradius
|
||||||
|
|
||||||
|
SRCFILES=cmd/adradius/*.go
|
||||||
|
|
||||||
|
all: build
|
||||||
|
|
||||||
|
build:
|
||||||
|
${GOBUILDCMD} ${GOOPTIONS} ${SRCFILES}
|
||||||
|
|
||||||
|
clean:
|
||||||
|
${RMCMD} -f ${BINNAME}
|
71
README.md
Normal file
71
README.md
Normal file
@ -0,0 +1,71 @@
|
|||||||
|
# adradius
|
||||||
|
|
||||||
|
## Summary
|
||||||
|
|
||||||
|
adradius is a radius server gateway authenticating against Active Directory plateform via LDAP. Written in golang with love
|
||||||
|
|
||||||
|
Used libraries are :
|
||||||
|
* github.com/korylprince/go-ad-auth
|
||||||
|
* github.com/layeh/radius
|
||||||
|
|
||||||
|
## Howto
|
||||||
|
|
||||||
|
### Build
|
||||||
|
|
||||||
|
```shell
|
||||||
|
make
|
||||||
|
```
|
||||||
|
|
||||||
|
## Sample config in adradius.ini
|
||||||
|
|
||||||
|
```ini
|
||||||
|
[adradius]
|
||||||
|
server=localhost
|
||||||
|
port=389
|
||||||
|
basedn=dc=example,dc=com
|
||||||
|
secret=secret
|
||||||
|
tls=true
|
||||||
|
listen=localhost:1812
|
||||||
|
```
|
||||||
|
|
||||||
|
### Run
|
||||||
|
|
||||||
|
```shell
|
||||||
|
./adradius -configfile adradius.ini
|
||||||
|
```
|
||||||
|
|
||||||
|
## Todo
|
||||||
|
|
||||||
|
- Add tests
|
||||||
|
- Code cleaning
|
||||||
|
- Daemonize with process fork
|
||||||
|
|
||||||
|
## License
|
||||||
|
```text
|
||||||
|
Copyright (c) 2020, PaulBSD
|
||||||
|
All rights reserved.
|
||||||
|
|
||||||
|
Redistribution and use in source and binary forms, with or without
|
||||||
|
modification, are permitted provided that the following conditions are met:
|
||||||
|
|
||||||
|
1. Redistributions of source code must retain the above copyright notice, this
|
||||||
|
list of conditions and the following disclaimer.
|
||||||
|
2. Redistributions in binary form must reproduce the above copyright notice,
|
||||||
|
this list of conditions and the following disclaimer in the documentation
|
||||||
|
and/or other materials provided with the distribution.
|
||||||
|
|
||||||
|
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||||
|
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||||
|
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||||
|
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
|
||||||
|
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||||
|
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||||
|
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||||
|
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
|
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||||
|
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
|
The views and conclusions contained in the software and documentation are those
|
||||||
|
of the authors and should not be interpreted as representing official policies,
|
||||||
|
either expressed or implied, of the adradius project.
|
||||||
|
```
|
@ -9,10 +9,19 @@ import (
|
|||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
var cfg config.Config
|
var cfg config.Config
|
||||||
|
|
||||||
err := cfg.GetConfig()
|
err := cfg.GetConfig()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
}
|
}
|
||||||
ldapcfg := adradius.SetADRadiusConfig(&cfg)
|
|
||||||
|
ldapcfg, err := adradius.SetADRadiusConfig(&cfg)
|
||||||
|
if err != nil {
|
||||||
|
log.Fatal(err)
|
||||||
|
}
|
||||||
|
|
||||||
adradius.RunServer(&cfg, ldapcfg)
|
adradius.RunServer(&cfg, ldapcfg)
|
||||||
|
if err != nil {
|
||||||
|
log.Fatal(err)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
package adradius
|
package adradius
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
|
||||||
"log"
|
"log"
|
||||||
|
|
||||||
"git.paulbsd.com/paulbsd/adradius/src/config"
|
"git.paulbsd.com/paulbsd/adradius/src/config"
|
||||||
@ -10,8 +9,8 @@ import (
|
|||||||
"layeh.com/radius/rfc2865"
|
"layeh.com/radius/rfc2865"
|
||||||
)
|
)
|
||||||
|
|
||||||
// SetADRadiusConfig
|
// SetADRadiusConfig sets config of adradius
|
||||||
func SetADRadiusConfig(c *config.Config) (ldapconfig *auth.Config) {
|
func SetADRadiusConfig(c *config.Config) (ldapconfig *auth.Config, err error) {
|
||||||
var security auth.SecurityType
|
var security auth.SecurityType
|
||||||
|
|
||||||
if c.TLS {
|
if c.TLS {
|
||||||
@ -27,26 +26,22 @@ func SetADRadiusConfig(c *config.Config) (ldapconfig *auth.Config) {
|
|||||||
Security: security,
|
Security: security,
|
||||||
}
|
}
|
||||||
|
|
||||||
fmt.Println(ldapconfig)
|
|
||||||
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
// ADauth
|
// ADauth process authentication to Active Directory
|
||||||
func ADauth(config *auth.Config, username string, password string) (status bool, err error) {
|
func ADauth(config *auth.Config, username string, password string) (status bool, err error) {
|
||||||
status, err = auth.Authenticate(config, username, password)
|
status, err = auth.Authenticate(config, username, password)
|
||||||
//if err != nil {
|
if err != nil {
|
||||||
// //handle err
|
return
|
||||||
// return
|
}
|
||||||
//}
|
if !status {
|
||||||
//if !status {
|
return
|
||||||
// //handle failed authentication
|
}
|
||||||
// return
|
|
||||||
//}
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
// RunServer
|
// RunServer runs a new raduis server instance
|
||||||
func RunServer(config *config.Config, ldapconfig *auth.Config) {
|
func RunServer(config *config.Config, ldapconfig *auth.Config) {
|
||||||
handler := func(w radius.ResponseWriter, r *radius.Request) {
|
handler := func(w radius.ResponseWriter, r *radius.Request) {
|
||||||
username := rfc2865.UserName_GetString(r.Packet)
|
username := rfc2865.UserName_GetString(r.Packet)
|
||||||
|
Loading…
Reference in New Issue
Block a user