Egy olyan szkriptet szeretnék írni, ami egy átjárón kiírja a {S,D}NAT-olt IP kapcsolatokat.Idáig jutottam (előre elnézést a hossza miatt):
#!/bin/bash
# The conntrack file
conntrack="/proc/net/ip_conntrack"
# Is connection tracking enabled?
if [ ! -r "${conntrack}" ]; then
echo "${conntrack} is not readable. Is connection tracking enabled?" >&2
exit 1
fi
# A packet description consists of the following:
packet_re='src=\([[:digit:]\.]\+\)[[:blank:]]\+' # src addr
packet_re="${packet_re}"'dst=\([[:digit:]\.]\+\)[[:blank:]]\+' # dst addr
packet_re="${packet_re}"'sport=\([[:digit:]]\+\)[[:blank:]]\+' # src port
packet_re="${packet_re}"'dport=\([[:digit:]]\+\)' # dst port
# An assured connection consists of the following:
conn_re='\([[:alnum:]]\+\)[[:blank:]].\+' # proto
conn_re="${conn_re}${packet_re}"'[[:blank:]].\+' # packet desc
conn_re="${conn_re}${packet_re}"'[[:blank:]].\+' # packet desc
conn_re="${conn_re}"'\[ASSURED\].*' # ASSURED flag
# Read conntrack file
sed -n 's/^'"${conn_re}"'$/\1 \2 \4 \3 \5 \6 \8 \7 \9/p' "${conntrack}" |
while read line; do
conn=(${line})
if [ "${conn[1]}" = "${conn[7]}" ]; then continue; fi # ***
echo "[${conn[0]} ->] src: ${conn[1]}:${conn[2]} dst: ${conn[3]}:${conn[4]}"
echo "[${conn[0]} <-] src: ${conn[5]}:${conn[6]} dst: ${conn[7]}:${conn[8]}"
echo ""
done
exit 0
Kérdéseim:
- Igaz-e, hogy egy NAT-olt kapcsolatot arról lehet felismerni, hogy a kapcsolat kimenő csomagjainak forrás IP-je és a kapcsolat válasz csomagjainak cél IP-je különböző (lásd ***-os sor)?
- Igaz-e mindig, hogy egy kapcsolat kimenő csomagjainak forrás portja és a kapcsolat válasz csomagjainak cél portja ugyanaz?
Előre is köszönöm mindenkinek, aki válaszol.
- 1078 megtekintés
Hozzászólások
hali
nem válasz de esetleg jól jöhet.
nekem is van egy hasonló scriptem a cél az volt hogy monitorozzam a kimenő natolt kapcsolatok számát
a conntrack tábla megfelelő méretben tartásához.
kb 10mbit/s es kapcsolatnál és sok kliensnél a
script futása már nagyon sokáig tartott és ez a forgalmat is befolyásolta!
próbáltam hogy kidumpolom és azt a file-t elemzem de a dump is lassú volt tehát nem az elemzés volt lassú.
végül kivettem a scriptet mivel veszteségeket produkált a kimenő vonalon.
Üdv Robit
- A hozzászóláshoz be kell jelentkezni
Javaslom a következő toolt kernel>=2.6.18 esetén:
http://people.netfilter.org/pablo/conntrackd/
vagy ugyanez a netfilter.org-ról:
http://www.netfilter.org/projects/conntrack-tools/index.html
- A hozzászóláshoz be kell jelentkezni
Köszönöm a válaszokat. A szkripttől függetlenül az elméleti jellegű kérdésekben tud valaki segíteni?
- A hozzászóláshoz be kell jelentkezni
Az elsőre a válasz igen azaz kicsit kötekedve nem teljesen SNAT esetében igen.
A másodigra sem egyértelmű a válasz:
Vannak olyan foltok amelyek ezt randomizálják+
ha azon az ip-n amelyre maszkolsz(SNAT) az adott port már foglalt akkor lépteti a következő portra.
- A hozzászóláshoz be kell jelentkezni