Natlogs


Intro

NAT (Network Address Translation) – tai paskirties arba
šaltinio adresų keitimas tinklo pakete. Dažniausiai yra
naudojamas šaltinio adreso keitimas (SNAT), reikalingas, kai
lokalaus tinklo kompiuteriams priskiriami privatūs adresai
(RFC1918) ir siunčiant duomenis į internetą juos reikia
pakeisti realiais:

http://cert.litnet.lt/wp-content/uploads/2015/05/nat.png

Linux maršrutizatoriuose NAT funkciją atlieka Netfilter
ugniasienės posistemė.

Adresų transliavimas leidžia išspręsti adresų trūkumo
problemą. Tačiau NAT tuo pačiu gali ir apsunkinti tinklo
administratoriaus darbą: kai iš lokalaus tinklo plinta
virusai, spam’as ar įvyksta koks kitas kompiuterinis
incidentas, gali būti labai sudėtinga nustatyti šių
problemų šaltinį, kadangi kompiuterinių atakų aukos
negalės nustatyti tikrojo užpuoliko adreso (jis bus
pakeistas į realųjį). Šiuo atveju pagelbėti gali
maršrutizatoriaus sisteminiai žurnalai, kuriuose
registruojami lokalių kompiuterių vykdomi prisijungimai.

Prisijungimų registravimas „nat“
lentelėje

Jei maršrutizatoriuje atlieka adresų pakeitimą,
prisijungimus geriausia tikrinti „nat“ lentelėje. Čia
tikrinami tik naujas sesijas sukuriantys paketai, todėl
nereikia naudoti Netfilter papildomų modulių ir
bereikalingai naudoti sistemos resursų visų paketų
tikrinimui. Paketus registruojant „POSTROUTING“ grandyje, bus
užregistruoti ne tik persiunčiami paketai, bet tie, kuriuos
išsiunčia pats maršrutizatorius. Paketų registravimą
svarbu atlikti prieš šaltinio adreso keitimą, priešingu
atveju bus užregistruotas pakeistas adresas.

iptables -t nat -A POSTROUTING -j LOG
iptables -t nat -A POSTROUTING -j SNAT --to-source ip.ad.re.sas

Prisijungimus galima registruoti ir „filter“ letelėje,
tačiau tai reikalauja daugiau resursų.

Syslog konfigūracija

Paketų registravimas atliekamas naudojant „syslog“
posistemę. Netfilter registruojami paketai priskiriami
„kern“ kategorijai. Jei norite Netfilter pranešimus
išsaugoti atskirame sisteminiame žurnale, /etc/syslog.conf
faile įrašykite tokią eilutę:

kern.=warning      /var/log/firewall.log  

Į /var/log/firewall.log failą bus įrašomi visi įvykiai,
kurie priklauso „kern“ kategorijai ir yra „warning“
prioriteto. Tarp šių pranešimų gali būti ir su
ugniasiene nesusijusios informacijos. Tokiu atveju galite
bandyti pakeisti pranešimų prioretus, naudodami
„–log-level“ parametrą:

iptables -t nat -A POSTROUTING -j LOG --log-level alert  

Pasirinkto prioriteto pranešimus registruojame kitame
faile:

kern.=alert        /var/log/firewall.log 

Jei norite, kad tam tikrame žurnale nebūtų registruojami
„warning“ prioriteto Netfilter pranešimai, /etc/syslog.conf
faile pridėkite „kern.!=warning“ eilutę:

*.=info;*.=notice;*.=warn;
             kern.!=warning;
             auth,authpriv.none;
             cron,daemon.none;
             mail,news.none
             -/var/log/messages  

Pavyzdys

http://cert.litnet.lt/wp-content/uploads/2015/05/nat_pvz.png

/etc/init.d/firewall

# Leidžiami: užmegztiems susijungimas priklausantys paketai
#               visi paketai ateinantys iš pačios sistemos
#               prisijungimas prie SSH iš administratoriaus kompiuterio
# Visiems kitiems paketams nustatoma standartinė atmetimo taisyklė
iptables -A INPUT -m state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -s 193.219.32.1 -p tcp --dport 22 -m state --state NEW -j ACCEPT
iptables -P INPUT DROP
     
     
# Susijungimų registravimas sisteminiame žurnale
# ir vidinio tinklo paketų, išsiunčiamų per eth1 įrenginį, adresų pakeitimas.
iptables -t nat -A POSTROUTING -j LOG --log-level alert
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth1 -j SNAT --to-source 193.219.33.1   

/etc/syslog.conf

auth,authpriv.*                 /var/log/auth.log
*.*;auth,authpriv.none          -/var/log/syslog
cron.*                          -/var/log/cron.log
daemon.*                        -/var/log/daemon.log
kern.*;kern.!=alert             -/var/log/kern.log
mail.*                          -/var/log/mail.log
user.*                          -/var/log/user.log
kern.=alert                     -/var/log/firewall.log
     
     
*.=info;*.=notice;*.=warn;
             kern.!=alert
             auth,authpriv.none;
             cron,daemon.none;
             mail,news.none          -/var/log/messages
*.emerg                         *  

/var/log/firewall.log

 Dec  6 14:20:16 linux kernel: IN= OUT=eth1  SRC=192.168.0.1 DST=213.226.132.42 LEN=48 TOS=0x00 PREC=0x00 TTL=126  ID=6628 DF PROTO=TCP SPT=1431 DPT=80 WINDOW=65535 RES=0x00 SYN URGP=0 
Dec 6 14:20:16 linux kernel: IN= OUT=eth1 SRC=192.168.0.2 DST=88.222.172.55 LEN=110 TOS=0x00 PREC=0x00 TTL=126 ID=14058 PROTO=UDP SPT=11526 DPT=50160 LEN=90
Dec 6 14:20:16 linux kernel: IN= OUT=eth1 SRC=192.168.0.3 DST=81.203.55.209 LEN=66 TOS=0x00 PREC=0x00 TTL=126 ID=41956 PROTO=UDP SPT=15271 DPT=4672 LEN=46
Dec 6 14:20:16 linux kernel: IN= OUT=eth1 SRC=192.168.0.1 DST=217.212.240.174 LEN=48 TOS=0x00 PREC=0x00 TTL=126 ID=6641 DF PROTO=TCP SPT=1432 DPT=80 WINDOW=65535 RES=0x00 SYN URGP=0
...