Tobias von Dewitz 32ef3935a5 pcap static lib | 3 years ago | |
---|---|---|
defaults | 7 years ago | |
init.d | 7 years ago | |
logrotate.d | 7 years ago | |
vendor | 3 years ago | |
.gitignore | 5 years ago | |
Dockerfile | 3 years ago | |
Makefile | 3 years ago | |
README.md | 6 years ago | |
after-install-trigger-centos7.sh | 7 years ago | |
after-install-trigger.sh | 7 years ago | |
apache.go | 3 years ago | |
before-uninstall-trigger-centos7.sh | 7 years ago | |
before-uninstall-trigger.sh | 7 years ago | |
build-deb.sh | 3 years ago | |
build-rpm-centos7.sh | 5 years ago | |
build-rpm.sh | 7 years ago | |
ca-chain.cert.pem | 3 years ago | |
go.mod | 3 years ago | |
go.sum | 3 years ago | |
main.go | 3 years ago | |
munchclient.service | 7 years ago | |
munchclient.toml | 3 years ago | |
nginx.go | 3 years ago | |
rpc.go | 5 years ago | |
rpm.scraperwall.com.repo | 7 years ago | |
scw-cap.service | 6 years ago |
scw-cap liest HTTP-Requests von einem Interface, auf dem der HTTP-Traffic unverschlüsselt zur Verfügung steht oder aus Apache- oder Nginx-Logfiles und schreibt die HTTP-Requests in eine NATS-Queue, von wo aus ScraperWall die Daten verarbeitet
scw-cap kann über Kommandozeilenparameter, Environment-Variablen und eine Konfigurationsdatei in TOML konfiguriert werden.
nats://192.168.122.1:4222
for an unencrypted connection or tls://nats.scraperwall.com:4222
for a TLS-encrypted connectionrequests
Das Live-Capture liest die eingehenden HTTP-Requests mit libpcap von einem Netzwerkinterface, auf dem die Requests unverschlüsselt verfügbar sind.
Dies ist die bevorzugte Methode, die Anfragen zu lesen, da nur so Cookies und alle Header-Informationen gelesen werden können.
eth0
8192
tcp dst port 80
Ist Live-Capturing nicht möglich, weil z.B. die HTTP-Requests nur verschlüsselt verfügbar sind, kann man die Requests auch aus einem Apache-Logfile lesen. scw-cap tailt das Logfile und öffnet es automatisch neu,wenn es beispielsweise durch logrotate rotiert wurde.
/var/log/apache/access.log
Alternativ zu Apache kann scw-cap auch Nginx-Logs verarbeiten.
/var/log/nginx/access.log
'$remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent"'
scw-cap kann mit einer TOML-Datei konfiguriert werden. Die Konfigurationsdatei wird mit dem Kommandozeilenparameter -config <filename> spezifiziert.
Live = true
Interface = "eth0"
SnapshotLen = 8192
Filter = "tcp dst port 80"
Promiscuous = false
# NatsURL = "nats://192.168.122.1:4222"
NatsURL = "tls://nats.scraperwall.systems:4222"
NatsUser = NatsUser
NatsPassword = NatsPassword
NatsCA = /etc/scw-cap/ca-chain.cert.pem
NatsQueue = "requests"
UseXForwardedAsSource = true
Quiet = true
Trace = false
ReconnectToNatsAfter = 279s
ResetLiveCaptureAfter = 217s
# ApacheLog = "/var/log/apache2/access.log"
# NginxLog = "/var/log/nginx/access.log"
# NginxFormat = '$remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent"'
Die Environment-Variablen, mit denen scw-cap konfiguriert werden heißen identisch zu den Kommandozeilenoptionen, wobei alle Zeichen groß geschrieben werden und Bindestriche durch Unterstriche ersetzt werden müssen. Aus -nats-url wird z.B. NATS_URL
und aus -use-x-forwarded-for wird USE_X_FORWARDED_FOR
.