Logning af al aktivitet med iptables

iptablesSom standard har den filterreglen i "Accepter alle" -tilstand, det vil sige, den lader ind og ud alle forbindelser fra eller til vores pc, men hvad hvis vi vil logge alle oplysninger om forbindelser til vores servere eller pc'er?

Bemærk: Den procedure, som jeg nu vil udføre, er gyldig 100% i distributioner Debian/Debian-baseret, så hvis du bruger Slackware, Fedora, CentOS, OpenSuSe, proceduren er muligvis ikke den samme, vi anbefaler at læse og forstå din distributions login-system, inden du anvender det, der er forklaret nedenfor. Der er også muligheden for at installere rsyslog i din distribution, hvis den er tilgængelig i arkiverne, selvom syslog også forklares i slutningen af ​​denne tutorial.

Alt godt indtil videre, men hvadHvor skal vi logge ind? Let, i filen «/var/log/firewall/iptables.log", hvad findes ikke, indtil vi selv tror på det ...

1- Vi skal oprette filen «iptables.log»Inde i mappen«/ var / log / firewall»At vi skal skabe det, for det findes heller ikke.

mkdir -p / var / log / firewall /
tryk på /var/log/firewall/iptables.log

2- Tilladelser, meget vigtigt ...

chmod 600 /var/log/firewall/iptables.log
chown-rod: adm /var/log/firewall/iptables.log

3- rsyslog, Debians login-dæmon, læser konfigurationen fra «/etc/rsyslog.d«, Så vi skal oprette en fil, som jeg vil kalde«firewall.konf»Fra hvilken rsyslog kan fortolke, hvad vi vil gøre.

tryk på /etc/rsyslog.d/firewall.conf

Og indeni forlader vi ham efterår forsigtigt følgende indhold:

: msg, indeholder, "iptables:" - / var / log / firewall / iptables.log
& ~

Jeg har ikke den mindste idé,hvad laver disse par linjer?

Den første linje kontrollerer de loggede data for strengen «iptables: »Og tilføjer det til filen«/var/log/firewall/iptables.log«

Den anden stopper behandlingen af ​​de oplysninger, der er logget med det forrige mønster, så de ikke fortsætter med at blive sendt til «/ var / log / messages".

4- Rotation af logfilen med logrotate.

Vi skal skabe inden for «/etc/logrotate.d/" filen "firewall»Hvilket vil indeholde følgende indhold:

/var/log/firewall/iptables.log
{
drej 7
dagligt
størrelse 10M
datoext
missingok
oprette 600 rodadministratorer
notifempty
komprimere
delaycompress
postrotere
påkalde-rc.d rsyslog genindlæse> / dev / null
slutskrift
}

For at rotere logfilerne 7 gange, før du sletter dem, 1 gang om dagen, maksimal logstørrelse 10 MB, komprimeret, dateret uden at give en fejl, hvis loggen ikke findes, oprettet som root.

5- Genstart, som alle happy ending xD, rsyslog-dæmonen:

/etc/init.d/rsyslog genstart

Hvordan kan jeg bevise, at alt, hvad der fungerer?

Lad os prøve SSH.

installere OpenSSH (hvis de ikke har det installeret ...):

apt-get installer openssh-server

Før vi fortsætter, skal vi køre som root i en konsol:

iptables -A INPUT -p tcp --dport 22 --syn -j LOG --log-prefix "iptables: " --log-level 4

At udføre denne iptables-erklæring vil logge nok information til at vise, at det, vi har gjort, ikke er forgæves. I denne sætning fortæller vi iptables at logge alle oplysninger, der kommer til den gennem port 22. For at teste med andre tjenester skal du bare ændre portnummeret, som 3306 for MySQL, bare for at nævne et eksempel, hvis du vil have mere information, læs denne meget veldokumenterede vejledning og baseret på typiske eksempler på de mest anvendte konfigurationer.

SSH bruger port 22 som standard, så vi tester med den. Efter at have installeret openssh, forbinder vi til det.

ssh pepe @ test-server

For at se logfiler med en hale løser du dette problem:

hale -f /var/log/firewall/iptables.log

Iptables logger i dette eksempel alt, dag, tid, ip, mac osv., Hvilket gør det godt til overvågning af vores servere. En lille hjælp, der aldrig gør ondt.

Vær opmærksom på, at vi bruger en anden distro, som jeg sagde i begyndelsen, bruges den generelt rsyslogeller noget lignende. Hvis din distro bruger syslog, for at udføre den samme øvelse skal vi redigere / ændre lidt syslog.conf

nano /etc/syslog.conf

Tilføj og gem følgende linje:

kern.warning /var/log/firewall/iptables.log

Og så ved du den lykkelige afslutning:

/etc/init.d/sysklogd genstart

Resultat: det samme.

Det er det for nu, i fremtidige indlæg fortsætter vi med at lege med iptables.

referencer:

Tving iptables til at logge på en anden fil

Log iptables til en separat fil med rsyslog

Iptables-konfigurationsvejledning til Fedora / RHEL-systemer


Efterlad din kommentar

Din e-mailadresse vil ikke blive offentliggjort. Obligatoriske felter er markeret med *

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Control SPAM, management af kommentarer.
  3. Legitimering: Dit samtykke
  4. Kommunikation af dataene: Dataene vil ikke blive kommunikeret til tredjemand, undtagen ved juridisk forpligtelse.
  5. Datalagring: Database hostet af Occentus Networks (EU)
  6. Rettigheder: Du kan til enhver tid begrænse, gendanne og slette dine oplysninger.

  1.   FerryGuardia sagde han

    Fantastisk denne «mini-manual» til BOFH, at du laver lidt efter lidt

  2.   koratsuki sagde han

    Tak, lidt efter lidt vil jeg give detaljer og data om iptables, som jeg var nødt til at kende fra mit arbejde, som vi nogle gange har brug for og er meget dårligt forklaret på Internettet, alt sammen af ​​brugeren ... xD

    1.    KZKG ^ Gaara sagde han

      Jeg benytter lejligheden til at byde dig velkommen 😀
      Du har virkelig MEGET at bidrage, du har virkelig avanceret viden om netværk, systemer, firewalls osv., Så jeg vil være (jeg er) en af ​​de mange læsere, du får hahaha.

      Hilsen og godt ... du ved, hvad det end tager 😀

    2.    isar sagde han

      Jeg ser frem til disse ting ^^

  3.   Hugo sagde han

    Kom nu Koratsuki, jeg vidste ikke, du besøgte denne blog.

    Forresten bruger en anden variant af logning af firewallaktivitet pakken ulogd, som er lavet af folket i netfilterprojektet for at lette adskillelsen af ​​denne type spor (gør det muligt at gemme dem på forskellige måder). Det er den tilgang, jeg normalt bruger. Brug af det er let, for eksempel:

    iptables -A INPUT -p udp -m multiport ! --ports 53,67:68 -m state --state NEW -j ULOG --ulog-prefix "Solicitud UDP dudosa"

  4.   koratsuki sagde han

    Jeg bliver nødt til at give en F5 til stillingen, Ulogd's måde at arbejde på passer på mig, selv MySQL logger typen: D.

  5.   MSX sagde han

    Godt indlæg, fortsæt det.

  6.   chinoloco sagde han

    Hej chef, hvordan går det?
    Kunne du give mig en hånd?
    Da jeg ikke får vejledningen, og den er klarere end vand, ved jeg ikke, hvor jeg tager fejl