PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : namp erkennt gefilterte pcs



barton4
14.05.05, 13:53
Das Problem,ich hab den rechner mit der ip 192.168.0.1 mit einer statfully firewall geschütz wenn ich nun nmap azfruf

Starting nmap 3.55 ( http://www.insecure.org/nmap/ ) at 2005-05-14 14:48 Local time zone must be set--see zic manual page
All 1660 scanned ports on celeron (192.168.0.1) are: filtered
MAC Address: 00:40:F4:6B:EC:82 (Cameo COMMUNICATIONS)

Nmap run completed -- 1 IP address (1 host up) scanned in 69.576 seconds


nmap erkennt ja das die ports gefiltert sind,gibt es für iptables
eine einstellung das er nmap vorgaugelt das sie geschlossen werden

um das problem zu lösen dachte ich alle pakete auf die keine reglen zutriftt
mit REJECT zu bearbeiten,das brachte aber nicht den erflog

weis jemand von euch mit welcher iptables regel namp nicht mehr rausfindet
das es gefiltert wurde???????

steve-e
14.05.05, 15:13
Normalerweise gibt nmap bei 'reject' dann auch geschlossen aus.

Poste doch einfach mal dein Iptables-Script.

barton4
15.05.05, 00:37
$LOCAL_HOST="lo";
$LOCAL_LAN1="eth0";
$WWW_INFACE="ppp0";

iptables -P INPUT DROP;
iptables -P FORWARD DROP;
iptables -P OUTPUT DROP;

#localhost
iptables -A INPUT -i $LOCAL_HOST -j ACCEPT;
iptables -A OUTPUT -o $LOCAL_HOST -j ACCEPT;

#locales LAN
#iptables -A INPUT -s 192.168.0.0/24 -j ACCEPT;
#iptables -A OUTPUT -d 192.168.0.0/24 -j ACCEPT;


#logging $WWW_INFACE
iptables -A INPUT -p tcp --dport 80 -m state --state NEW -j LOG --log-prefix "iptables_http" --log-level notice #http loggen
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -j LOG --log-prefix "iptables_ssh" --log-level warn #ssh loggen
iptables -A INPUT -p tcp --dport 23 -m state --state NEW -j LOG --log-prefix "iptables_telnet" --log-level warn #telnet loggen
iptables -A INPUT -p tcp --dport 21 -m state --state NEW -j LOG --log-prefix "iptables_ftp" --log-level warn #ftp loggen


#speziell verboten fuer WWW
iptables -A INPUT -i $WWW_INFACE -p tcp --dport 22 -j REJECT #port_ssh
iptables -A INPUT -i $WWW_INFACE -p tcp --dport 23 -j REJECT #port_telnet
iptables -A INPUT -i $WWW_INFACE -p tcp --dport 137:139 -j REJECT #port_netbios
iptables -A INPUT -i $WWW_INFACE -p udp --dport 137:139 -j REJECT #port_netbios
iptables -A INPUT -i $WWW_INFACE -p udp --dport 445 -j REJECT #port_microsoft-ds
iptables -A INPUT -i $WWW_INFACE -p udp --dport 4000 -j REJECT #port_mldonkey-telnet_port
iptables -A INPUT -i $WWW_INFACE -p udp --dport 4080 -j REJECT #port_mldonkey-http_port




#speziell erlaubt
#iptables -A INPUT -i $WWW_INFACE -p tcp --dport 80 -j ACCEPT #webserver aber erst spaeter

#alles darf raus,syn flags darf nicht rein
iptables -A INPUT -i $WWW_INFACE -p tcp --state ESTABLISHED,RELATED -j ACCEPT;
iptables -A OUTPUT -o $WWW_INFACE -p tcp --state NEW,ESTABLISHED,RELATED -j ACCEPT;

iptables -A INPUT -i $WWW_INFACE -p udp --state ESTABLISHED,RELATED -j ACCEPT;
iptables -A OUTPUT -o $WWW_INFACE -p udp --state NEW,ESTABLISHED,RELATED -j ACCEPT;


#icmp
iptables -A OUTPUT -o $WWW_INFACE -p icmp --icmp-type echo-request -j ACCEPT; #again PING of DEATH
iptables -A INPUT -i $WWW_INFACE -p icmp --icmp-type echo-reply -m limit --limit 1/s -j ACCEPT;
iptables -A INPUT -i $WWW_INFACE -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT;
iptables -A OUTPUT -o $WWW_INFACE -p icmp --icmp-type echo-reply -j ACCEPT;

#routing
iptables -A FORWARD -i $LOCAL_LAN1 -o $WWW_INFACE -s 192.168.0.0/24 -j ACCEPT #nur adressen mit 192.168... duerfen ins web
iptables -A FORWARD -i $WWW_INFACE -o $LOCAL_LAN1 -d 192.168.0.0/24 -j ACCEPT #nur adressen 192.168... duerfen ins LAN

#nat
iptables -A POSTROUTING -t nat -o $WWW_INFACE -j MASQUERADE; #masquerading

#alles andere
#hier ist die zeile die namp eigentlich davon abhalten soll filtered anzuzeigen
iptables -A INPUT -i $WWW_INFACE -j REJECT


zu beachten wäre noch das ich aus testzwecken das local lan ausdokumentiert hab und
das $WWW_INFACE ist eth1,so dass ich es erstmal im localen lan testen kann,

Matzetronic
15.05.05, 02:43
hi,

poste mal bitte einen nmap-aufruf.
optional kannst du vielleicht noch einen kurzen tcpdump-mitschnitt posten...

gruß,
matze

barton4
15.05.05, 13:31
Starting nmap 3.55 ( http://www.insecure.org/nmap/ ) at 2005-05-15 14:29 Local time zone must be set--see zic manual page
All 1660 scanned ports on celeron (192.168.0.1) are: filtered
MAC Address: 00:40:F4:6B:EC:82 (Cameo COMMUNICATIONS)

Nmap run completed -- 1 IP address (1 host up) scanned in 69.584 seconds
root@amd martin #

Jasper
15.05.05, 22:23
rejecte TCP mit tcp-reset (siehe RFC793), UDP dagegen mit icmp-port-unreachable:

-j REJECT --reject-with tcp-reset|icmp-port-unreachable


-j

Matzetronic
15.05.05, 22:58
hi,

ich meinte eigentlich nicht den output von nmap, sondern die befehlssyntax - also mit welchen optionen wird er aufgerufen ? z.B. nmap -sTV -O -P0 192.168.1.1

meine vermutung wäre, dass der durch nmap ausgelöste arp-request beantwortet wird und nmap dies erkennt =>host is up .
da er aber keine resets erhält, ist die logische schlußfolgerung, dass die pakete gefiltert werden.

gruß,
matze

barton4
16.05.05, 12:09
rejecte TCP mit tcp-reset (siehe RFC793), UDP dagegen mit icmp-port-unreachable:

-j REJECT --reject-with tcp-reset|icmp-port-unreachable


-j

mit diesen optionenn zeigt nmap folgendes an

root@amd martin # nmap celeron

Starting nmap 3.55 ( http://www.insecure.org/nmap/ ) at 2005-05-16 13:08 Local time zone must be set--see zic manual page
All 1660 scanned ports on celeron (192.168.0.1) are: closed
MAC Address: 00:40:F4:6B:EC:82 (Cameo COMMUNICATIONS)

Nmap run completed -- 1 IP address (1 host up) scanned in 0.539 seconds
root@amd martin #







das war des rätsel lösung vielen dank für eure hilfe

n0w4it4
17.05.05, 10:19
Was hat es für einen Vorteil, wenn bei nmap die Ports als "closed" definiert sind ?

Vorallem sehe ich mit -j REJECT ein kleines Problem denn:

Ich kann ja gut und gerne z.B für -A INPUT -p ICMP -j REJECT verwenden.
Aber was mache ich mit dem Output ? Wenn ich den OUTPUT mit -j DROP deklariere, bekomm ich ja z.b wieder "filtered".

Noch eine kleine Frage: Wie versucht nmap denn auf die Ports zu connecten ? Per "tcp" Verbindung oder ? Muss ich jetzt für jeden INPUT Port -j REJECT festlegen o. geht das per "iptables -P REJECT --reject-with blah blah" ?

steve-e
17.05.05, 13:30
nmap supports a large number of scanning techniques such as: UDP, TCP connect(), TCP SYN (half open), ftp proxy (bounce attack), ICMP (ping sweep), FIN, ACK sweep, Xmas Tree, SYN sweep, IP Protocol, and Null scan.

Mehr dazu in den manpages.


Wenn ich den OUTPUT mit -j DROP deklariere, bekomm ich ja z.b wieder "filtered".
Du verbietest jedes ausgehende Paket, es kann also auch keine standardkonforme Antwort versendert werden. Die Aussage von nmap stimmt also ...



Muss ich jetzt für jeden INPUT Port -j REJECT festlegen o. geht das per "iptables -P REJECT --reject-with blah blah" ?
Es reicht wenn du die Default-Policies auf Reject stellst, sind bestimmte Ports und Verbindungen nicht extra behandelt wird somit diese Regel angewandt.
Am Besten besorgst du dir mal ein Script von Harry's Generator und schaust dir die Sache mal genauer an, ist eigentlich gut zu verstehen.

n0w4it4
17.05.05, 13:48
Default Policy auf REJECT stellen ?

root@slacktest:~# iptables -V
iptables v1.3.1

root@slacktest:~# iptables -P INPUT REJECT
iptables: Bad policy name

Benötige ich vielleicht einen Patch für Kernel / Iptables um REJECT bei der Default Policy zu verwenden ?

n0w4it4
17.05.05, 13:56
Dann habe ich noch ein Problem:

Rules:

$IPT -A OUTPUT -o $INT_IF -p icmp --icmp-type echo-request -m length \ --length 32 -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPT -A INPUT -i $INT_IF -p icmp --icmp-type echo-reply \
-m limit --limit 1/s -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
$IPT -A INPUT -i $INT_IF -p icmp --icmp-type echo-request -m length \ --length 32 -m limit --limit 1/s -m state \
--state NEW,ESTABLISHED,RELATED -j ACCEPT
$IPT -A OUTPUT -o $INT_IF -p icmp --icmp-type echo-reply \
-m state --state ESTABLISHED,RELATED -j ACCEPT

C:\Programme\Nmap\nmap-3.75>ping -l 32 172.17.74.150

Ping wird ausgeführt für 172.17.74.150 mit 32 Bytes Daten:

Zeitüberschreitung der Anforderung.
Zeitüberschreitung der Anforderung.
Zeitüberschreitung der Anforderung.
Zeitüberschreitung der Anforderung.

:confused:

PS: Die "\" wären zum formatieren drinnen, im Skript ist alles in einer wurscht !

steve-e
17.05.05, 14:06
Wird bei ICMP überhaupt mit "Stateful" gearbeitet? Bin da grade etwas überfragt.

Hier mal ein Auszug aus meinem Firewallscript, was wiederum auf dem von Harry aufbaut.



[...]
# Default-Policies setzen
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP

# MY_REJECT-Chain
iptables -N MY_REJECT

# MY_REJECT fuellen
iptables -A MY_REJECT -p tcp -m limit --limit 7200/h -j LOG --log-prefix "REJECT TCP "
iptables -A MY_REJECT -p tcp -j REJECT --reject-with tcp-reset
iptables -A MY_REJECT -p udp -m limit --limit 7200/h -j LOG --log-prefix "REJECT UDP "
iptables -A MY_REJECT -p udp -j REJECT --reject-with icmp-port-unreachable
iptables -A MY_REJECT -p icmp -m limit --limit 7200/h -j LOG --log-prefix "DROP ICMP "
iptables -A MY_REJECT -p icmp -j DROP
iptables -A MY_REJECT -m limit --limit 7200/h -j LOG --log-prefix "REJECT OTHER "
iptables -A MY_REJECT -j REJECT --reject-with icmp-proto-unreachable

# MY_DROP-Chain
iptables -N MY_DROP
iptables -A MY_DROP -m limit --limit 7200/h -j LOG --log-prefix "PORTSCAN DROP "
iptables -A MY_DROP -j DROP

[...]

# INPUT
iptables -A INPUT -m state --state ESTABLISHED -j ACCEPT

# ICMP
iptables -A INPUT -p icmp --icmp-type 0 -j ACCEPT
iptables -A INPUT -p icmp --icmp-type 3 -j ACCEPT
iptables -A INPUT -p icmp --icmp-type 8 -j ACCEPT
iptables -A INPUT -p icmp --icmp-type 11 -j ACCEPT
iptables -A INPUT -p icmp --icmp-type 12 -j ACCEPT
iptables -A OUTPUT -p icmp --icmp-type 0 -j ACCEPT
iptables -A OUTPUT -p icmp --icmp-type 3 -j ACCEPT
iptables -A OUTPUT -p icmp --icmp-type 8 -j ACCEPT
iptables -A OUTPUT -p icmp --icmp-type 11 -j ACCEPT
iptables -A OUTPUT -p icmp --icmp-type 12 -j ACCEPT

[...]

# Default-Policies mit REJECT
iptables -A INPUT -j MY_REJECT
iptables -A OUTPUT -j MY_REJECT

[...]

*edit*
hätte es doch besser anhängen sollen...

n0w4it4
17.05.05, 14:13
Ich denke schon, dass ich stateful bei icmp verwenden kannn, bin aber auch nicht sicher.

Ich habe mein Skript jetzt auch fertig angepasst bezügl REJECT / nmap (was es bringt weiss ich nicht genau, vielleicht kann mir da jemand was dazu sagen?). Icmp habe ich jetzt auch erlaubt / weniger restriktiv eingestellt.

Aber warum funktioniert -p icmp -m length --length 32 -j REJECT nicht ?
Wenn ich die Rule einzeln eintrage mit "IPTABLES -I" zeigt sie absolut null wirkung. :confused:

Jasper
17.05.05, 19:00
Was hat es für einen Vorteil, wenn bei nmap die Ports als "closed" definiert sind ?


man ist standardkonform? es gibt genug "profis", die meinen, mit drop ein mehr an sicherheit zu erreichen. dem ist nicht so, im gegenteil.



Vorallem sehe ich mit -j REJECT ein kleines Problem denn:

Ich kann ja gut und gerne z.B für -A INPUT -p ICMP -j REJECT verwenden.
Aber was mache ich mit dem Output ? Wenn ich den OUTPUT mit -j DROP deklariere, bekomm ich ja z.b wieder "filtered".


nein, ein reject auf INPUT hat nichts mit der OUTPUT chain zu tun.



Noch eine kleine Frage: Wie versucht nmap denn auf die Ports zu connecten ? Per "tcp" Verbindung oder ? Muss ich jetzt für jeden INPUT Port -j REJECT festlegen o. geht das per "iptables -P REJECT --reject-with blah blah" ?

einfach als letzte regeln einfügen:

iptables -p udp -j REJECT --reject-with icmp-port-unreach
iptables -p tcp -j REJECT --reject-with tcp-reset


-j

n0w4it4
18.05.05, 08:55
Also ganz so wie du das sagst kann das nicht stimmen: Beispiel ?

root@slacktest:~# iptables -p udp -j REJECT --reject-with icmp-port-unreachable
iptables v1.3.1: no command specified
Try `iptables -h' or 'iptables --help' for more information.

Ich muss vorher eine Chain definieren:

iptables -A INPUT -p udp -j REJECT --reject-with icmp-port-unreachable

und das ist dann schon anders als eine DEFAULT POLICY, da ich eben nicht
iptables -P INPUT REJECT setzen kann. Das heisst, dass ich zumindest, für tcp, udp , etc eine Regel definieren muss. Ansich kein Problem und ich habe es ja auch hinbekommen. In meinem Fall gibts eben nur ein anderes Problem.

Ich lasse mir per rrd_tool / Cacti meinen Traffic auslesen. Unter anderem auch den geblockten Traffic. Dafür muss ich mit iptables -N "<neueregel>" eine Chain definieren. In meinem Fall war das so:

iptables -N BLOCKED
iptables -A INPUT -s xxx.xxx.xxx.xxx -d $IP -p tcp -j BLOCKED
iptables -A BLOCKED -j DROP

Wenn ich jetzt aber mit -j REJECT die Pakete "blockiere" kann ich sie nicht in meine Statistik aufnehmen, ohne eine Chain zu erstellen, die ich dann extra auslesen lasse von Cacti.

Ich habe mal probehalber auf REJECT "umgestellt", funktioniert auch, nur was ist der Unterschied zu j DROP, bzw was sind die Vor- und Nachteile.

barton4
19.05.05, 11:40
[QUOTE=steve-e]


[...]
# Default-Policies setzen
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP

# MY_REJECT-Chain
iptables -N MY_REJECT

# MY_REJECT fuellen
iptables -A MY_REJECT -p tcp -m limit --limit 7200/h -j LOG --log-prefix "REJECT TCP "
iptables -A MY_REJECT -p tcp -j REJECT --reject-with tcp-reset
iptables -A MY_REJECT -p udp -m limit --limit 7200/h -j LOG --log-prefix "REJECT UDP "
iptables -A MY_REJECT -p udp -j REJECT --reject-with icmp-port-unreachable
iptables -A MY_REJECT -p icmp -m limit --limit 7200/h -j LOG --log-prefix "DROP ICMP "
iptables -A MY_REJECT -p icmp -j DROP
iptables -A MY_REJECT -m limit --limit 7200/h -j LOG --log-prefix "REJECT OTHER "
iptables -A MY_REJECT -j REJECT --reject-with icmp-proto-unreachable

# MY_DROP-Chain
iptables -N MY_DROP
iptables -A MY_DROP -m limit --limit 7200/h -j LOG --log-prefix "PORTSCAN DROP "
iptables -A MY_DROP -j DROP

[...]

# INPUT
iptables -A INPUT -m state --state ESTABLISHED -j ACCEPT

# ICMP
iptables -A INPUT -p icmp --icmp-type 0 -j ACCEPT
iptables -A INPUT -p icmp --icmp-type 3 -j ACCEPT
iptables -A INPUT -p icmp --icmp-type 8 -j ACCEPT
iptables -A INPUT -p icmp --icmp-type 11 -j ACCEPT
iptables -A INPUT -p icmp --icmp-type 12 -j ACCEPT
iptables -A OUTPUT -p icmp --icmp-type 0 -j ACCEPT
iptables -A OUTPUT -p icmp --icmp-type 3 -j ACCEPT
iptables -A OUTPUT -p icmp --icmp-type 8 -j ACCEPT
iptables -A OUTPUT -p icmp --icmp-type 11 -j ACCEPT
iptables -A OUTPUT -p icmp --icmp-type 12 -j ACCEPT

[...]

# Default-Policies mit REJECT
iptables -A INPUT -j MY_REJECT
iptables -A OUTPUT -j MY_REJECT

[...]

[QUOTE]

mal ne frage,also so wie das script da steht dürfte doch
gar keine verbindung zwischen rechen zustnde kommen
da ich keine regel finde die irgendeinen
OUTPUT zulässt.

n0w4it4
19.05.05, 13:42
*lol* Stimmt :ugly:

Harry
19.05.05, 14:55
Hi,

mal ne frage,also so wie das script da steht dürfte doch
gar keine verbindung zwischen rechen zustnde kommen
da ich keine regel finde die irgendeinen
OUTPUT zulässt.
im Kontext mit Steve-e's übrigem Post lese ich, dass es sich bei den gequoteten Zeilen um Regeln handelt, die ICMP behandeln, da er sich im Text ja auch auf ICMP bezieht - insofern ist doch alles ok, oder?
Und worauf beziehst Du Dich jetzt? :D
*SCNR*

Harry

steve-e
19.05.05, 16:25
[...] stehen normalerweise ja immer dafür, dass etwas weggelassen wurde.

Harry hat die Sache schon richtig verstanden :ugly:
Wollte euch ersparen mit ansehen zu müssen, wie ich jeden einzelnen, von mir verwendeten Port expliziet freigegeben hab ...