Loggar all aktivitet med iptables

iptablesSom standard har den filterregeln i "Acceptera alla" -läget, det vill säga den släpper in och ut alla anslutningar från eller till vår dator, men vad händer om vi vill logga all information om anslutningar som görs till våra servrar eller datorer?

 

 

Obs! Det förfarande som jag nu kommer att utföra gäller 100% i distributioner Debian/Debianbaserat, så om du använder Slackware, fedora, CentOS, OpenSuSe, proceduren kanske inte är densamma, vi rekommenderar att du läser och förstår din distributions inloggningssystem innan du använder det som förklaras nedan. Det finns också möjlighet att installera rsyslog i din distribution, om det finns i förvaren, även om syslog också förklaras i slutet av den här självstudien.

Allt bra hittills, men vadVar ska vi logga in? Enkelt, i filen «/var/log/brandvägg/iptables.log", Vad finns intetills vi själva tror på det ...

1- Vi måste skapa filen «iptables.log»Inne i mappen«/ var / log / brandvägg»Att vi måste skapa det, för det finns inte heller.

mkdir -p / var / log / brandvägg /
peka på /var/log/firewall/iptables.log

2- Behörigheter, mycket viktigt ...

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

3- rsyslog, Debians inloggningsdemon, läser konfigurationen från «/etc/rsyslog.d«, Så vi måste skapa en fil som jag kommer att kalla«brandvägg.konf»Från vilken rsyslog kan tolka vad vi vill göra.

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

Och inuti lämnar vi honom caer försiktigt följande innehåll:

: msg, innehåller, "iptables:" - / var / log / firewall / iptables.log
& ~

Jag har inte den minsta aning,vad gör dessa par rader?

Den första raden kontrollerar de loggade uppgifterna för strängen «iptables: »Och lägger till det i filen«/var/log/brandvägg/iptables.log«

Den andra stoppar behandlingen av den inloggade informationen med föregående mönster så att den inte fortsätter att skickas till «/ var / log / messages".

4- Rotera loggfilen med logrotate.

Vi måste skapa inom «/etc/logrotate.d/" filen "brandvägg»Som innehåller följande innehåll:

/var/log/brandvägg/iptables.log
{
rotera 7
dagligen
storlek 10M
datatext
missingok
skapa 600 root adm
notifempty
komprimera
delaycompress
postrotera
anropa-rc.d rsyslog ladda om> / dev / null
slutskrift
}

För att rotera loggarna 7 gånger innan du tar bort dem, en gång om dagen, maximal loggstorlek 1 MB, komprimerad, daterad, utan att ge ett fel om loggen inte finns, skapad som root.

5- Starta om, som alla happy ending xD, rsyslog-demon:

/etc/init.d/rsyslog startar om

Hur kan man bevisa att allt som fungerar?

Låt oss prova SSH.

Installera OpenSSH (om de inte har det installerat ...):

apt-get installer openssh-server

Innan vi fortsätter måste vi köra som root i en konsol:

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

Genom att utföra detta iptables-uttalande loggas tillräckligt med information för att visa att det vi har gjort inte är förgäves. I den här meningen säger vi till iptables att logga all information som når den via port 22. För att testa med andra tjänster, ändra bara portnumret, som 3306 för MySQL, bara för att nämna ett exempel, om du vill ha mer information, läs denna väldokumenterade handledning och baserat på typiska exempel på de mest använda konfigurationerna.

SSH använder port 22 som standard, så vi testar med den. Efter att ha installerat openssh ansluter vi till den.

ssh pepe @ test-server

För att se stockarna med en svans löser du detta problem:

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

Iptables, i det här exemplet, loggar allt, dag, tid, ip, mac, etc, vilket gör det bra för övervakning av våra servrar. Lite hjälp som aldrig gör ont.

Notera nu att vi använder en annan distro, som jag sa i början, används den vanligtvis rsyslogeller något liknande. Om din distro använder syslog, för att utföra samma övning måste vi redigera / modifiera något syslog.conf

nano /etc/syslog.conf

Lägg till och spara följande rad:

kern.warning /var/log/brandvägg/iptables.log

Och sedan, du vet, det lyckliga slutet:

/etc/init.d/sysklogd starta om

Resultat: samma.

Det är allt för nu, i framtida inlägg kommer vi att fortsätta spela med iptables.

referenser:

Tvinga iptables att logga in i en annan fil

Logga iptables till en separat fil med rsyslog

Konfigurationshandledning för Iptables på Fedora / RHEL-system


Innehållet i artikeln följer våra principer om redaktionell etik. Klicka på för att rapportera ett fel här.

8 kommentarer, lämna din

Lämna din kommentar

Din e-postadress kommer inte att publiceras.

*

*

  1. Ansvarig för uppgifterna: Miguel Ángel Gatón
  2. Syftet med uppgifterna: Kontrollera skräppost, kommentarhantering.
  3. Legitimering: Ditt samtycke
  4. Kommunikation av uppgifterna: Uppgifterna kommer inte att kommuniceras till tredje part förutom enligt laglig skyldighet.
  5. Datalagring: databas värd för Occentus Networks (EU)
  6. Rättigheter: När som helst kan du begränsa, återställa och radera din information.

  1.   FerreryGuardia sade

    Bra denna «mini-manual» för BOFH att du gör lite efter lite

  2.   koratsuki sade

    Tack, så småningom kommer jag att ge detaljer och data om iptables, som jag var tvungen att veta från mitt arbete, som vi ibland behöver och är väldigt dåligt förklarade på Internet, allt av användaren ... xD

    1.    KZKG ^ Gaara sade

      Jag tar tillfället i akt att välkomna er medlem 😀
      Du har verkligen MYCKET att bidra, du har riktigt avancerad kunskap om nätverk, system, brandväggar etc, så jag blir (jag är) en av de många läsare du kommer ha hahaha.

      Hälsningar och väl ... du vet, vad som än krävs 😀

    2.    isar sade

      Jag ser fram emot dessa saker ^^

  3.   Hugo sade

    Kom igen Koratsuki, jag visste inte att du besökt den här bloggen.

    Förresten, en annan variant av loggning av brandväggsaktivitet använder paketet ulogd, som görs av folket i netfilterprojektet för att underlätta separationen av denna typ av spår (gör det möjligt att spara dem på olika sätt). Det är det tillvägagångssätt som jag brukar använda. Att använda det är enkelt, till exempel:

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

  4.   koratsuki sade

    Jag måste ge en F5 till inlägget, Ulogd-sättet att arbeta passar mig, även MySQL loggar typen: D.

  5.   MSX sade

    Bra inlägg, fortsätt.

  6.   chinoloco sade

    Hej chef, hur går det?
    Kan du ge mig en hand?
    Eftersom jag inte får självstudien, och den är tydligare än vatten, vet jag inte var jag har fel