mirror of
https://github.com/Sean-Der/fail2rest.git
synced 2024-12-22 05:32:20 +01:00
Start Go Module
This commit is contained in:
parent
42cfa4101b
commit
61574091f9
8 changed files with 44 additions and 17 deletions
|
@ -3,7 +3,7 @@ To quickly run fail2rest just execute `go run *.go`
|
||||||
|
|
||||||
#Guidelines
|
#Guidelines
|
||||||
|
|
||||||
* Put as much logic as possible into [fail2go](https://github.com/Sean-Der/fail2go)
|
* Put as much logic as possible into [fail2go](https://github.com/sean-der/fail2go)
|
||||||
* Make sure code is properly formated [gofmt](http://blog.golang.org/go-fmt-your-code)
|
* Make sure code is properly formated [gofmt](http://blog.golang.org/go-fmt-your-code)
|
||||||
* Make sure you code compiles
|
* Make sure you code compiles
|
||||||
* If adding new REST endpoints try to follow the current style
|
* If adding new REST endpoints try to follow the current style
|
||||||
|
|
16
README.md
16
README.md
|
@ -15,8 +15,8 @@ Some libraries currently are not building on older versions of Go, I recommend r
|
||||||
## Installing
|
## Installing
|
||||||
Once you have a working Golang installation all you need to do is run
|
Once you have a working Golang installation all you need to do is run
|
||||||
|
|
||||||
go get -v github.com/Sean-Der/fail2rest
|
go get -v github.com/sean-der/fail2rest
|
||||||
go install -v github.com/Sean-Der/fail2rest
|
go install -v github.com/sean-der/fail2rest
|
||||||
|
|
||||||
fail2rest will now be available as a binary in your GOPATH, you can run 'fail2rest' from the command line, or copy it
|
fail2rest will now be available as a binary in your GOPATH, you can run 'fail2rest' from the command line, or copy it
|
||||||
somewhere else to make it available to all users.
|
somewhere else to make it available to all users.
|
||||||
|
@ -25,24 +25,24 @@ Use `whereis fail2rest` to locate your fail2rest binary.
|
||||||
Next you need to configure fail2rest, and then finally make it a system service.
|
Next you need to configure fail2rest, and then finally make it a system service.
|
||||||
|
|
||||||
## Configuration
|
## Configuration
|
||||||
fail2rest is configured via config.json, the default is located [here](https://raw.githubusercontent.com/Sean-Der/fail2rest/master/config.json).
|
fail2rest is configured via config.json, the default is located [here](https://raw.githubusercontent.com/sean-der/fail2rest/master/config.json).
|
||||||
To load your config.json you use the --config flag `fail2rest --config=my_config.json`
|
To load your config.json you use the --config flag `fail2rest --config=my_config.json`
|
||||||
|
|
||||||
fail2rest has two options that be configured via config.json
|
fail2rest has two options that be configured via config.json
|
||||||
* **Fail2banSocket** - The path to the fail2ban socket, can usually be found via `grep socket /etc/fail2ban/fail2ban.conf` you also have to run fail2rest as a user who has permissions to use this socket
|
* **Fail2banSocket** - The path to the fail2ban socket, can usually be found via `grep socket /etc/fail2ban/fail2ban.conf` you also have to run fail2rest as a user who has permissions to use this socket
|
||||||
* **Addr** - The address that fail2rest is served upon, it is usually best so serve to the loopback, and then allow access via nginx see an example config in the [fail2web](https://github.com/Sean-Der/fail2web) repository
|
* **Addr** - The address that fail2rest is served upon, it is usually best so serve to the loopback, and then allow access via nginx see an example config in the [fail2web](https://github.com/sean-der/fail2web) repository
|
||||||
|
|
||||||
The default configuration file used by init-scripts is `/etc/fail2rest.json`. You should download the config to your /tmp/ dir and modify it to your needs.
|
The default configuration file used by init-scripts is `/etc/fail2rest.json`. You should download the config to your /tmp/ dir and modify it to your needs.
|
||||||
|
|
||||||
cd /tmp/
|
cd /tmp/
|
||||||
wget https://raw.githubusercontent.com/Sean-Der/fail2rest/master/config.json
|
wget https://raw.githubusercontent.com/sean-der/fail2rest/master/config.json
|
||||||
|
|
||||||
Once you finished editing the configuration file, you should move it from /tmp/config.json to /etc/fail2rest.json executing `mv /tmp/config.json /etc/fail2rest.json`
|
Once you finished editing the configuration file, you should move it from /tmp/config.json to /etc/fail2rest.json executing `mv /tmp/config.json /etc/fail2rest.json`
|
||||||
|
|
||||||
## Running
|
## Running
|
||||||
Once you have a config.json all you need to do is run `fail2rest --config config.json`
|
Once you have a config.json all you need to do is run `fail2rest --config config.json`
|
||||||
|
|
||||||
However, fail2rest is designed to run as a service, so init scripts are provided that allow easy management of fail2rest. They can be found [here](https://github.com/Sean-Der/fail2rest/tree/master/init-scripts)
|
However, fail2rest is designed to run as a service, so init scripts are provided that allow easy management of fail2rest. They can be found [here](https://github.com/sean-der/fail2rest/tree/master/init-scripts)
|
||||||
Download the appropriate init file your Distribution. You may need to customize your init script to load your config.json, but most scripts default to /etc/fail2rest.json
|
Download the appropriate init file your Distribution. You may need to customize your init script to load your config.json, but most scripts default to /etc/fail2rest.json
|
||||||
|
|
||||||
## Service
|
## Service
|
||||||
|
@ -53,11 +53,11 @@ To run as a service you can either copy or create symlinks for systemd and the f
|
||||||
|
|
||||||
Debian
|
Debian
|
||||||
|
|
||||||
ln -s $GOPATH/src/github.com/Sean-Der/fail2rest/init-scripts/systemd /etc/systemd/system/fail2rest.service
|
ln -s $GOPATH/src/github.com/sean-der/fail2rest/init-scripts/systemd /etc/systemd/system/fail2rest.service
|
||||||
|
|
||||||
Other Linux
|
Other Linux
|
||||||
|
|
||||||
ln -s $GOPATH/src/github.com/Sean-Der/fail2rest/init-scripts/systemd /usr/lib/systemd/system/fail2rest.service
|
ln -s $GOPATH/src/github.com/sean-der/fail2rest/init-scripts/systemd /usr/lib/systemd/system/fail2rest.service
|
||||||
|
|
||||||
Enable fail2rest service to run at startup
|
Enable fail2rest service to run at startup
|
||||||
|
|
||||||
|
|
|
@ -4,10 +4,11 @@ import (
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
"flag"
|
"flag"
|
||||||
"fmt"
|
"fmt"
|
||||||
"github.com/Sean-Der/fail2go"
|
|
||||||
"github.com/gorilla/mux"
|
|
||||||
"net/http"
|
"net/http"
|
||||||
"os"
|
"os"
|
||||||
|
|
||||||
|
"github.com/gorilla/mux"
|
||||||
|
"github.com/sean-der/fail2go"
|
||||||
)
|
)
|
||||||
|
|
||||||
type Configuration struct {
|
type Configuration struct {
|
||||||
|
|
|
@ -2,9 +2,10 @@ package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
"github.com/Sean-Der/fail2go"
|
|
||||||
"github.com/gorilla/mux"
|
|
||||||
"net/http"
|
"net/http"
|
||||||
|
|
||||||
|
"github.com/gorilla/mux"
|
||||||
|
"github.com/sean-der/fail2go"
|
||||||
)
|
)
|
||||||
|
|
||||||
func globalStatusHandler(res http.ResponseWriter, req *http.Request, fail2goConn *fail2go.Conn) {
|
func globalStatusHandler(res http.ResponseWriter, req *http.Request, fail2goConn *fail2go.Conn) {
|
||||||
|
|
14
go.mod
Normal file
14
go.mod
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
module github.com/sean-der/fail2rest
|
||||||
|
|
||||||
|
go 1.19
|
||||||
|
|
||||||
|
require (
|
||||||
|
github.com/gorilla/mux v1.8.1
|
||||||
|
github.com/sean-der/fail2go v0.0.1
|
||||||
|
github.com/sean-der/goWHOIS v0.0.0-20140709054325-70c302b526cf
|
||||||
|
)
|
||||||
|
|
||||||
|
require (
|
||||||
|
github.com/kisielk/og-rek v1.2.0 // indirect
|
||||||
|
github.com/mattn/go-sqlite3 v1.14.22 // indirect
|
||||||
|
)
|
10
go.sum
Normal file
10
go.sum
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
github.com/gorilla/mux v1.8.1 h1:TuBL49tXwgrFYWhqrNgrUNEY92u81SPhu7sTdzQEiWY=
|
||||||
|
github.com/gorilla/mux v1.8.1/go.mod h1:AKf9I4AEqPTmMytcMc0KkNouC66V3BtZ4qD5fmWSiMQ=
|
||||||
|
github.com/kisielk/og-rek v1.2.0 h1:CTvDIin+YnetsSQAYbe+QNAxXU3B50C5hseEz8xEoJw=
|
||||||
|
github.com/kisielk/og-rek v1.2.0/go.mod h1:6ihsOSzSAxR/65S3Bn9zNihoEqRquhDQZ2c6I2+MG3c=
|
||||||
|
github.com/mattn/go-sqlite3 v1.14.22 h1:2gZY6PC6kBnID23Tichd1K+Z0oS6nE/XwU+Vz/5o4kU=
|
||||||
|
github.com/mattn/go-sqlite3 v1.14.22/go.mod h1:Uh1q+B4BYcTPb+yiD3kU8Ct7aC0hY9fxUwlHK0RXw+Y=
|
||||||
|
github.com/sean-der/fail2go v0.0.1 h1:AOZ5b/ewYzStnhsPXO/bLWzg97eogEV4gXkiwEJKLxU=
|
||||||
|
github.com/sean-der/fail2go v0.0.1/go.mod h1:xfDepiRfuCxHX5LZyBl4nAIUvL+8Aed6o8fcxvCMPD4=
|
||||||
|
github.com/sean-der/goWHOIS v0.0.0-20140709054325-70c302b526cf h1:EmuSitACP3cGjR5/KrEUiyDXPCDI6MNoPzrt4weR0Fw=
|
||||||
|
github.com/sean-der/goWHOIS v0.0.0-20140709054325-70c302b526cf/go.mod h1:VrJMtetl51Wyuc1JaF5UhewOiLRYBN1PozQtYJp8vCY=
|
2
jail.go
2
jail.go
|
@ -8,8 +8,8 @@ import (
|
||||||
"regexp"
|
"regexp"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"github.com/Sean-Der/fail2go"
|
|
||||||
"github.com/gorilla/mux"
|
"github.com/gorilla/mux"
|
||||||
|
"github.com/sean-der/fail2go"
|
||||||
)
|
)
|
||||||
|
|
||||||
func jailGetHandler(res http.ResponseWriter, req *http.Request, fail2goConn *fail2go.Conn) {
|
func jailGetHandler(res http.ResponseWriter, req *http.Request, fail2goConn *fail2go.Conn) {
|
||||||
|
|
7
whois.go
7
whois.go
|
@ -2,10 +2,11 @@ package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
"github.com/Sean-Der/fail2go"
|
|
||||||
"github.com/Sean-Der/goWHOIS"
|
|
||||||
"github.com/gorilla/mux"
|
|
||||||
"net/http"
|
"net/http"
|
||||||
|
|
||||||
|
"github.com/gorilla/mux"
|
||||||
|
"github.com/sean-der/fail2go"
|
||||||
|
"github.com/sean-der/goWHOIS"
|
||||||
)
|
)
|
||||||
|
|
||||||
func whoisHandler(res http.ResponseWriter, req *http.Request, fail2goConn *fail2go.Conn) {
|
func whoisHandler(res http.ResponseWriter, req *http.Request, fail2goConn *fail2go.Conn) {
|
||||||
|
|
Loading…
Reference in a new issue