Mein Script erstellt keine LOG File

For topics beyond KeyHelp. / Für Themen jenseits von KeyHelp.
Post Reply
trollolol
Posts: 144
Joined: Wed 18. Sep 2019, 10:18
Location: Eisenach

Mein Script erstellt keine LOG File

Post by trollolol »

Hall und einen Guten Morgen zusammen,

ich habe ein Script was ich auf einem unserer Server einsetze erfolgreich am laufen. Mein kleines Problem besteht jetzt darin, dass er mir keine LOGS anlegt. Ich stell mal das Script rein:

Code: Select all

#!/bin/bash
# Purpose: Block all traffic from AFGHANISTAN (af) and CHINA (CN). Use ISO code. #
# See url for more info - http://www.cyberciti.biz/faq/?p=3402
# Author: nixCraft <www.cyberciti.biz> under GPL v.2.0+
# -------------------------------------------------------------------------------
ISO="co cl ar ve "

### Set PATH ###
IPT=/sbin/iptables
WGET=/usr/bin/wget
EGREP=/bin/egrep

### No editing below ###
SPAMLIST="countrydrop"
ZONEROOT="/root/iptables"
DLROOT="http://www.ipdeny.com/ipblocks/data/countries"

cleanOldRules(){
$IPT -F
$IPT -X
$IPT -t nat -F
$IPT -t nat -X
$IPT -t mangle -F
$IPT -t mangle -X
$IPT -P INPUT ACCEPT
$IPT -P OUTPUT ACCEPT
$IPT -P FORWARD ACCEPT
}

# create a dir
[ ! -d $ZONEROOT ] && /bin/mkdir -p $ZONEROOT

# clean old rules
cleanOldRules

# create a new iptables list
$IPT -N $SPAMLIST

for c  in $ISO
do
        # local zone file
        tDB=$ZONEROOT/$c.zone

        # get fresh zone file
        $WGET -O $tDB $DLROOT/$c.zone

        # country specific log message
        SPAMDROPMSG="$c Country Drop"

        # get
        BADIPS=$(egrep -v "^#|^$" $tDB)
        for ipblock in $BADIPS
        do
           $IPT -A $SPAMLIST -s $ipblock -j LOG --log-prefix "$SPAMDROPMSG"
           $IPT -A $SPAMLIST -s $ipblock -j DROP
        done
done

# Drop everything
$IPT -I INPUT -j $SPAMLIST
$IPT -I OUTPUT -j $SPAMLIST
$IPT -I FORWARD -j $SPAMLIST

# call your other iptable script
/root/firewall/firewall2.sh

exit 0
Wie ihr seht ist es ein vorgefertigetes Scipt, dass ich aus der Not heraus einsetzen musste. Wenn ich das Richtig sehe sollte er eine LOGfile anlegen mit dem Namen SPAMDROPMSG, oder?

Wenn ich den Weg über iptables -L -v gehe, dauert es ewig, ich seh nicht alles (wird nach ner weile abgeschnitten). Wäre nice wenn ihr mir da bitte helfen könntet.

Wäre auch übrigens ein Vorschlag für evtl. die nächste Version, dass man Länder mit einem Mausklick blockieren kann :)
User avatar
Jolinar
Community Moderator
Posts: 3559
Joined: Sat 30. Jan 2016, 07:11
Location: Weimar (Thüringen)
Contact:

Re: Mein Script erstellt keine LOG File

Post by Jolinar »

trollolol wrote: Sun 19. Feb 2023, 07:18 Wenn ich das Richtig sehe sollte er eine LOGfile anlegen mit dem Namen SPAMDROPMSG, oder?
Nein.
Die Zeile im Script

Code: Select all

$IPT -A $SPAMLIST -s $ipblock -j LOG --log-prefix "$SPAMDROPMSG"
bewirkt, daß ein Eintrag ins Systemlog gemacht wird und dabei der Inhalt der Variablen "$SPAMDROPMSG" verwendet wird.

Bitte niemals Scripte einsetzen, deren Funktionsweise man nicht sicher versteht...

BTW:
Was die Funktionsweise angeht, kann man auch immer direkt die systeminterne Doku dazu befragen:

Code: Select all

man iptables

Edit:
Du solltest dich generell etwas tiefgründiger mit Shell Scripten befassen, denn du weißt ja bestimmt, daß iptables deprecated ist und aktuell durch sein Replacement nftables abgelöst wird und daß deshalb dein Script in absehbarer Zeit so nicht mehr funktionieren wird.
Spätestens dann solltest du fit genug sein, dein Script anzupassen, damit du die Funktion des Scripts weiter nutzen kannst. ;)
Last edited by Jolinar on Sun 19. Feb 2023, 09:12, edited 1 time in total.
Reason: Edit: Hinweis ergänzt
Wenn jemand inkompetent ist, dann kann er nicht wissen, daß er inkompetent ist. (David Dunning)

Data Collector für Community Support
___
Ich verwende zwei verschiedene Schriftfarben in meinen Beiträgen /
I use two different font colors in my posts:
  • In dieser Farbe schreibe ich als Moderator und gebe moderative Hinweise oder begründe moderative Eingriffe /
    In this color, I write as a moderator and provide moderative guidance or justify moderative interventions
  • In dieser Farbe schreibe ich als Community Mitglied und teile meine private Meinung und persönlichen Ansichten mit /
    In this color, I write as a community member and share my personal opinions and views
trollolol
Posts: 144
Joined: Wed 18. Sep 2019, 10:18
Location: Eisenach

Re: Mein Script erstellt keine LOG File

Post by trollolol »

Jolinar wrote: Sun 19. Feb 2023, 08:17 Edit:
Du solltest dich generell etwas tiefgründiger mit Shell Scripten befassen, denn du weißt ja bestimmt, daß iptables deprecated ist und aktuell durch sein Replacement nftables abgelöst wird und daß deshalb dein Script in absehbarer Zeit so nicht mehr funktionieren wird.
Spätestens dann solltest du fit genug sein, dein Script anzupassen, damit du die Funktion des Scripts weiter nutzen kannst. ;)
Ja, dass weiß ich :), aktuell haben wir alles auf Debian 11 umgestellt.

Das Script war mein Retter in der Not. Gibts denn eine Möglichkeit die geblockten IP's aus diesem Script zu loggen?
User avatar
Jolinar
Community Moderator
Posts: 3559
Joined: Sat 30. Jan 2016, 07:11
Location: Weimar (Thüringen)
Contact:

Re: Mein Script erstellt keine LOG File

Post by Jolinar »

trollolol wrote: Sun 19. Feb 2023, 11:26 Gibts denn eine Möglichkeit die geblockten IP's aus diesem Script zu loggen?
Das tust du doch bereits :?
Das Script loggt die Packets, die gedroppt werden, ins Syslog.
Wie du die entsprechenden Logfileeinträge aus dem Syslog selektierst, weißt du ja bestimmt (Hint: grep).

Du könntest den Syslogdienst natürlich auch dazu bewegen, für die entsprechenden Logfileeinträge ein separates Logfile zu schreiben. ;)
Wenn jemand inkompetent ist, dann kann er nicht wissen, daß er inkompetent ist. (David Dunning)

Data Collector für Community Support
___
Ich verwende zwei verschiedene Schriftfarben in meinen Beiträgen /
I use two different font colors in my posts:
  • In dieser Farbe schreibe ich als Moderator und gebe moderative Hinweise oder begründe moderative Eingriffe /
    In this color, I write as a moderator and provide moderative guidance or justify moderative interventions
  • In dieser Farbe schreibe ich als Community Mitglied und teile meine private Meinung und persönlichen Ansichten mit /
    In this color, I write as a community member and share my personal opinions and views
trollolol
Posts: 144
Joined: Wed 18. Sep 2019, 10:18
Location: Eisenach

Re: Mein Script erstellt keine LOG File

Post by trollolol »

Alles gut, ich habs gerade gefunden :lol: :lol:

Mei, ich bin aber auch ein Schussel. Ich werde natürlich anpassungen vornehmen, aber es tut erstmal das was es soll, und das ist wichtig.

Danke
Post Reply