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
Bra denna «mini-manual» för BOFH att du gör lite efter lite
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
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 😀
Jag ser fram emot dessa saker ^^
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"
Jag måste ge en F5 till inlägget, Ulogd-sättet att arbeta passar mig, även MySQL loggar typen: D.
Bra inlägg, fortsätt.
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