Alle activiteiten loggen met iptables

iptablesStandaard heeft het de filterregel in de modus "Alles accepteren", dat wil zeggen, alle verbindingen van of naar onze pc worden in- en uitgeschakeld, maar wat als we alle informatie over verbindingen met onze servers of pc's willen loggen?

Opmerking: de procedure die ik nu zal uitvoeren, is 100% geldig in distributies Debian/Op Debian gebaseerd, dus als u Slackware, Fedora, CentOS, OpenSuSe, is de procedure mogelijk niet hetzelfde, we raden u aan het inlogsysteem van uw distributie te lezen en te begrijpen voordat u toepast wat hieronder wordt uitgelegd. Er is ook de mogelijkheid om rsyslog in je distributie te installeren, als het beschikbaar is in de repositories, hoewel in deze tutorial ook syslog aan het einde wordt uitgelegd.

Tot nu toe allemaal goed, maar watWaar gaan we inloggen? Makkelijk, in het bestand «/var/log/firewall/iptables.log", wat bestaat niet, totdat we het zelf geloven ...

1- We moeten het bestand maken «iptables.log»In de map«/ var / log / firewall»Dat we het moeten maken, want het bestaat ook niet.

mkdir -p / var / log / firewall /
raak /var/log/firewall/iptables.log aan

2- Toestemmingen, heel belangrijk ...

chmod 600 /var/log/firewall/iptables.log
chown root: adm /var/log/firewall/iptables.log

3- rsyslog, de Debian login daemon, leest de configuratie uit «/etc/rsyslog.d«, Dus we moeten een bestand maken dat ik«firewall.conf»Van waaruit rsyslog kan interpreteren wat we willen doen.

raak /etc/rsyslog.d/firewall.conf aan

En van binnen laten we hem achter caer voorzichtig de volgende inhoud:

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

Ik heb geen flauw ideewat doen deze paar regels??

De eerste regel controleert de gelogde gegevens voor de tekenreeks «iptables: »En voegt het toe aan het bestand«/var/log/firewall/iptables.log«

De tweede stopt de verwerking van de informatie die is vastgelegd met het vorige patroon, zodat deze niet verder wordt verzonden naar «/ Var / log / messages".

4- Het logbestand roteren, met logrotate.

We moeten creëren binnen «/etc/logrotate.d/" het bestand "firewall»Die de volgende inhoud zal bevatten:

/var/log/firewall/iptables.log
{
draaien 7
dagelijks
maat 10M
datumext
missingok
maak 600 root adm
notifempty
samendrukken
delaycompress
postroteren
invoke-rc.d rsyslog herladen> / dev / null
eindscript
}

Om de logboeken 7 keer te roteren voordat ze worden verwijderd, 1 keer per dag, maximale loggrootte 10 MB, gecomprimeerd, gedateerd, zonder een foutmelding te geven als het logboek niet bestaat, aangemaakt als root.

5- Herstart, zoals alle happy end xD, de rsyslog daemon:

/etc/init.d/rsyslog herstart

Hoe te bewijzen dat alles werkt?

Laten we SSH proberen.

installeren OpenSSH (voor het geval ze het niet hebben geïnstalleerd ...):

apt-get install openssh-server

Voordat we verder gaan, moeten we als root in een console draaien:

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

Door deze iptables-instructie uit te voeren, wordt voldoende informatie geregistreerd om aan te tonen dat wat we hebben gedaan niet voor niets is. In deze verklaring vertellen we iptables om alle informatie die via poort 22 binnenkomt te loggen. Om te testen met andere services, verander je gewoon het poortnummer, zoals 3306 voor MySQL, om een ​​voorbeeld te noemen, als je meer informatie wilt, lees deze zeer goed gedocumenteerde tutorial en gebaseerd op typische voorbeelden van de meest gebruikte configuraties.

SSH gebruikt standaard poort 22, dus we zullen ermee testen. Nadat we openssh hebben geïnstalleerd, maken we er verbinding mee.

ssh pepe @ testserver

Om de logs te zien, los je met een staart dit probleem op:

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

Iptables logt in dit voorbeeld alles, dag, tijd, ip, mac, enz., Wat het geweldig maakt voor het bewaken van onze servers. Een beetje hulp die nooit pijn doet.

Merk nu op dat we een andere distro gebruiken, zoals ik in het begin al zei, deze wordt over het algemeen gebruikt rsyslog, of iets dergelijks. Als je distro syslog, om dezelfde oefening uit te voeren, moeten we iets bewerken / wijzigen syslog.conf

nano /etc/syslog.conf

Voeg de volgende regel toe en sla deze op:

kern.waarschuwing /var/log/firewall/iptables.log

En dan, weet je, het happy end:

/etc/init.d/sysklogd herstart

Resultaat: hetzelfde.

Dat is alles voor nu, in toekomstige berichten zullen we blijven spelen met iptables.

referenties:

Forceer iptables om in te loggen naar een ander bestand

Log iptables in een apart bestand met rsyslog

Iptables configuratie tutorial op Fedora / RHEL systemen


Laat je reactie achter

Uw e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd met *

*

*

  1. Verantwoordelijk voor de gegevens: Miguel Ángel Gatón
  2. Doel van de gegevens: Controle SPAM, commentaarbeheer.
  3. Legitimatie: uw toestemming
  4. Mededeling van de gegevens: De gegevens worden niet aan derden meegedeeld, behalve op grond van wettelijke verplichting.
  5. Gegevensopslag: database gehost door Occentus Networks (EU)
  6. Rechten: u kunt uw gegevens op elk moment beperken, herstellen en verwijderen.

  1.   FerrieGuardia zei

    Geweldig deze «mini-handleiding» voor BOFH die je beetje bij beetje doet

  2.   koratsuki zei

    Bedankt, beetje bij beetje zal ik details en gegevens van iptables geven, die ik moest weten van mijn werk, die we soms nodig hebben en die erg slecht worden uitgelegd op internet, allemaal door de gebruiker ... xD

    1.    KZKG ^ Gaara zei

      Ik maak van de gelegenheid gebruik om u lid te verwelkomen 😀
      Je hebt echt VEEL bij te dragen, je hebt echt geavanceerde kennis van netwerken, systemen, firewalls enz., Dus ik zal (ik ben) een van de vele lezers zijn die je zult hebben hahaha.

      Groeten en nou ... je weet wel, wat er ook voor nodig is 😀

    2.    isar zei

      Ik kijk uit naar die items ^^

  3.   Hugo zei

    Kom op Koratsuki, ik wist niet dat je deze blog bezocht.

    Trouwens, een andere variant van het loggen van firewall-activiteit is het gebruik van het pakket ulogd, die is gemaakt door de mensen van het netfilter-project om de scheiding van dit soort sporen te vergemakkelijken (maakt het mogelijk om ze op verschillende manieren op te slaan). Het is de benadering die ik gewoonlijk gebruik. Het gebruik is eenvoudig, bijvoorbeeld:

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

  4.   koratsuki zei

    Ik zal de post een F5 moeten geven, de manier waarop Ulogd werkt past bij mij, zelfs MySQL registreert het type: D.

  5.   msx zei

    Goed bericht, ga zo door.

  6.   chinoloco zei

    Hallo baas, hoe gaat het?
    Wil jij me een handje helpen?
    Omdat ik de tutorial niet krijg en hij helderder is dan water, weet ik niet waar ik het mis heb