PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Firewall



freq
31.12.06, 00:20
Hallo,

ich kümmere mich zur Zeit um die Sicherheit meines Servers. Nun habe ich per nmap IP_MEINES_SERVERS geschaut, welche Ports offen sind:




(The 1644 ports scanned but not shown below are in state: closed)
PORT STATE SERVICE
21/tcp open ftp
25/tcp open smtp
53/tcp open domain
80/tcp open http
106/tcp open pop3pw
110/tcp open pop3
111/tcp open rpcbind
113/tcp open auth
139/tcp open netbios-ssn
143/tcp open imap
443/tcp open https
445/tcp open microsoft-ds
465/tcp open smtps
904/tcp open unknown
993/tcp open imaps
995/tcp open pop3s
3306/tcp open mysql
5432/tcp open postgres
8009/tcp open ajp13


daher möchte ich eine Firewall einsetzten. Ich habe gutes von http://rocky.eld.leidenuniv.nl/ gehört. Könnt Ihr diese auch für Debian Sarge empfehlen?

Andere Frage: Kann ich diese auch deaktivieren, wenn ich mit der Kondiguration nicht klarkomme, bevor dann meine Webseite so lange offline ist, bis ich Hilfe finde!?

Ich betreibe mehrere Webseiten auf meinem Server. Auf dem Server läuft PHP5, MySQL udn Apache2. SSH und FTP ist aktiviert. Könnt Ihr mir eventuell nennen, welche Einstellungen ich aktivieren muss? Eigentlich müssen doch nur die Ports 21 (FTP), 2222 (mein SSH Port), 80 (HTTP), 465 (stmp), ud 110 (pop3) geöffnet bleiben oder? https nutzte ich eh nicht.

Vielen Dank!!

kshade
31.12.06, 00:49
Gibts nen bestimmten Grund warum du eine Firewall willst? Wenn ich dich richtig lese willst du eigentlich nur die Dienste die du eh nicht benutzt blockieren und da wär ein einfaches abschalten jener Dienste deutlich sinnvoller ;)

P.S.: Die Portliste hättest du z.B. mit netstat -ltp schneller haben können ;)

bla!zilla
31.12.06, 10:52
Mein Gott, was hast du da alles laufen?? :eek:

Bevor du Dienste über eine Firewall absicherst, die du eh nicht brauchst, schalte sie lieber ab. Zudem solltest du dich intensiv mit dem Thema "Sicherheit" beschäftigen. Ein popeliger Paketfilter macht noch lange keine Firewall.

freq
31.12.06, 11:02
@kshade: Ok

@bla!zilla: Ja ich weiß. Ist die Standardinstallation von Debian 3.1, die ich erhalten habe (halt schon mit Plesk, PHP, MySQL etc). Wie gesagt, zur Zeit beschäftige ich mich sehr stark mit dem Thema Sicherheit (man muss dazu sagen, dass ich schon relativ viel gemacht habe, OBWOHL ich gestern morgen noch Plesk nutzten wollte und keine AHnung von apt & co hatte; habe also schon Fortschritte gemacht). Beim Deaktivieren der Dienste brauche ich halt noch Hilfe, nicht dass ich falsche Dinge deaktiviere. Ich habe also hier einen Server, auf dem ein Webserver läuft. Ich nutzte DNS und E-Mail Accounts.
Was genau kann ich nun deaktivieren? Wenn ich einen Dienst deaktiviere und dann den Server reboote, sind diese dann wieder aktiviert oder wie kann ich sie ewig deaktivieren und bei Gebrauch wieder aktivieren? Danke!!

bla!zilla
31.12.06, 11:05
Auf der Maschine läuft Samba, zwei Datenbankserver, NFS, DNS Server uvm. Schalt ab was du nicht brauchst. Fileserver haben IMHO auf Root-Servern nichts zu suchen. Wenn du keinen eigenen DNS braucht, kannst du den BIND abschalten. NFS hat da auch nichts zu suchen. Zudem wirst du nicht POP3 und IMAP gleichzeitig brauchen, also kann eines von beiden abgeschaltet werden. Bei einem reinen Webserver auch beides.

freq
31.12.06, 14:10
Hab mal alles deaktiviert, was ich denk, dsas ich niht brauche.
Ist das so nun in Ordnung und sicherer?:



PORT STATE SERVICE
21/tcp open ftp
25/tcp open smtp
53/tcp open domain
80/tcp open http
106/tcp open pop3pw
110/tcp open pop3
111/tcp filtered rpcbind
113/tcp open auth
139/tcp filtered netbios-ssn
143/tcp filtered imap
443/tcp filtered https
445/tcp filtered microsoft-ds
465/tcp open smtps
904/tcp filtered unknown
993/tcp filtered imaps
995/tcp open pop3s
3306/tcp open mysql
5432/tcp filtered postgres
8009/tcp filtered ajp13


ist das normal, dsas mysql da drin steht? Habe die ganzen Ports mit iptables gedroppt :)

kshade
31.12.06, 18:42
ist das normal, dsas mysql da drin steht? Habe die ganzen Ports mit iptables gedroppt :)

Du kannst auch in der my.cnf (in /etc/mysql/) mysqld nur auf 127.0.0.1 lauschen lassen oder die Netzwerkfähigkeiten ganz abschalten und nurnoch Sockets verwenden.

marce
31.12.06, 22:24
von wo aus hast Du denn den Portscan gemacht? Vom Server aus oder von einer anderen Maschine?

freq
01.01.07, 02:02
@kshade: thanks
@marce: hjabe auf meinem server gemacht: "nmap _die_ip_des_servers_"

marce
01.01.07, 10:43
schlechte Idee. Portscans immer von ausserhalb der Maschine machen - alles andere liefert interessante, aber aus "Internetsicherheitgründen" unbrauchbare Ergebnisse. Auch wenn man die externe IP angibt.

Ansonsten kann ich mich nur anschliessen - Du weisst doch, was Du an Diensten anbieten willst oder benötigst - alles andere, was nicht benötigt wird deaktivieren (wie z.B. lt. Dir pop3 und imap) - und alles, was Du lokal benötigst, aber nicht über Internet anbieten willst (wie z.B. vermitlich mysql und postgress) entweder nur auf 127.0.0.1 binden oder nur mit sockets arbeiten.

Im Endeffekt dürften dann vermutlich 4 oder 5 Ports übrig bleiben: http, pop3s, ssh, smtp - über ftp würde ich ernsthaft nachdenken, ob Du da nicht komplett drauf verzichten willst und nur über ssh / scp arbeiten willst.

Dann - wenn das mal steht - kannst Du noch zusätzlich über eine Firewall nachdenken. Ob man eine braucht ist Philosophie, als zusätzliches Sicherheitskonzept keine nur schlechte Idee, aber als alleinige Lösung meist nur ein Wiegen in flascher Sicherheit. Ich persönlich sehe Firewalls als Ergänzung eines Security-Konzeptes...

freq
01.01.07, 15:41
Ok,. Dann die Frage: was ist "domain" und "auth"? Kann ich die einfach so per iptables droppen?

Habe nun weiterhin ftp gedroppt (und nutzte stattdessen scp).
Habe auch noch mysql an 127.0.0.1 gebunden.

Habe den Portscan nochmals von einem anderen Server aus gemacht:



PORT STATE SERVICE
21/tcp filtered ftp
25/tcp open smtp
53/tcp open domain
80/tcp open http
106/tcp open pop3pw
110/tcp open pop3
111/tcp filtered rpcbind
113/tcp open auth
135/tcp filtered msrpc
136/tcp filtered profile
137/tcp filtered netbios-ns
138/tcp filtered netbios-dgm
139/tcp filtered netbios-ssn
143/tcp filtered imap
443/tcp filtered https
445/tcp filtered microsoft-ds
465/tcp open smtps
593/tcp filtered http-rpc-epmap
904/tcp filtered unknown
993/tcp filtered imaps
995/tcp open pop3s
5432/tcp filtered postgres
8009/tcp filtered ajp13


Die pop3 und smtp sachen werde ich wahrscheinlich ebenfalls droppen, da ich das zur Zeit nicht nutzte, und eigentlich nur ne E-Mail Weiterleitung einrichten will (habt Ihr dazu eventuell Links?).

Habe auch nochmal speziell zu dem E-Mail Krams hier ne Frage gepostet:
http://www.linuxforen.de/forums/showthread.php?t=228968

je nachdem, was ich dafür benötige, werde ich dann pop3 udn smtp droppen.

Noch ne andere Frage: Wie kann ich es machen, dass meine iptables nach einem Reboot des Systems erhaltn bleiben?

marce
01.01.07, 15:49
Infos zu den einzelnen Ports und Diensten dahinter findest Du problemlos über Google oder Wikipedia...

... und Du solltest wirklich darüber nachdenken, Dienste, die Du nicht brauchst zu beeneden und sie nicht nur in der Firewall zu blocken...

freq
01.01.07, 16:23
Ok, also ...

a) Domain: DNS Dienst, richtig? Diesen brauche ich doch dann aber auf jeden Fall, wenn ich mehrere VHosts betreibe, oder?
b) Auth ist ein Dienst für smtp, richtig? Diesen könnte ich also droppen, sofern ich SMTP nicht nutzte
c) Was ist der Vorteil einer Firewall im Vergleich zum Droppen von Ports via iptables?
d) Welche Firewall kannst Du mir empfehlen? Sollte halt für mich als Eisteiger machbar sein, nicht dass ich am Ende alles verpfusch. Ich habe "Arnos Firewall Script" (http://rocky.eld.leidenuniv.nl/) gefunden. Kennst Du / Ihr es und was hälst Du / haltet Ihr davon?
e) Bleiben die iptables nach einem Restart erhalten oder muss ich diese immer wieder manuell einfügen?

marce
01.01.07, 16:58
(a) nein.
(c) Das ist eine Firewall.
(d) Ich empfehle keine Firewall. Ich empfehle alles zu beenden, was Du nicht brauchst und die anderen Dienste so zu konfigurieren, dass sie nicht auf Anfragen vom Internet her reagieren, wenn das nicht notwendig ist. Zusätzlich kann man dann noch ein Firewall einrichten.
(e) wenn Du das iptables-Script beim booten ausführen lässt bleiben sie erhalten - sonst logischerweise nicht.

freq
01.01.07, 17:17
(d) Ich weiß leider nicht immer, wie ich die Dinge beende, da ich nicht immer den Namen in /etc/init.d/ weiß. Beipsielsweise proftpd hat garkein Script in /etc/init.d/, daher weiß ich auch nicht, wie man es beendet.
(e) Nein habe kein Script. Hätte ja sein können, dass diese automatisch gespeichert werden!!

tschloss
01.01.07, 17:30
(d) Ich weiß leider nicht immer, wie ich die Dinge beende, da ich nicht immer den Namen in /etc/init.d/ weiß. Beipsielsweise proftpd hat garkein Script in /etc/init.d/, daher weiß ich auch nicht, wie man es beendet.

Seltener benötigte Server-Dämons kann man auch über inted bzw. xinted verwalten lassen. Das ist eine Art Wrapper-Dämon, der dann den Serverprozess auf Anforderung startet. Musst mal in die Konfig des (x)inted reinschauen, dort müßte man dann ggf. entsprechende Austragugen vornehmen.

freq
01.01.07, 17:48
Sicher, dass es das bei mir gibt?



MNH001:/# whereis xinted
xinted:
MNH001:/# xinted
bash: xinted: command not found
MNH001:/# inted
bash: inted: command not found
MNH001:/# whereis inted
inted:


Desweiteren habe ich nun alle Ports bis auf 80 gedroppt ;)

marce
01.01.07, 17:54
es geht nichts über das blinde abtippen - vor allem, wenn Tippfehler drin sind (in dem Fall in der Vorlage)...

xinetd...


edit: Tippfehler :-) nicht -> nichts

tschloss
01.01.07, 17:56
es geht nicht über das blinde abtippen - vor allem, wenn Tippfehler drin sind (in dem Fall in der Vorlage)...

xinetd...

ROFL - dreimal verschrieben :ugly:
sorry

freq
01.01.07, 18:04
Ok :D Trotzdem:



MNH001:# whereis xinetd
xinetd:
MNH001:# wherer is inetd
bash: wherer: command not found
MNH001:# whereis inetd
inetd: /usr/sbin/inetd /etc/inetd.conf /usr/share/man/man8/inetd.8.gz


:eek: :confused:

marce
01.01.07, 18:08
... was könnte wohl die Endung "conf" bedeuten?

Ansonsten - Du solltest dich ernsthaft und ausführlich mit Grundlagen befassen...

tschloss
01.01.07, 18:08
MNH001:/var/www/vhosts/xyz.org# whereis inetd
inetd: /usr/sbin/inetd /etc/inetd.conf /usr/share/man/man8/inetd.8.gz




mach mal "man inetd".

bla!zilla
01.01.07, 18:09
whereis durchsucht die PATH-Variable des aktuellen Benutzers nach einer ausführbaren Datei mit dem angegebenen Namen. Optional listet er halt auch noch Konfigurationsdatei, Manpage usw. mit auf.Findet whereis nichts, wird auch kein Pfad ausgegeben.



patrick@starcat:~> whereis xinetd
xinetd:
patrick@starcat:~>


Findet er was, wird auch ein Pfad mit ausgegeben.



patrick@starcat:~> whereis xinetd
xinetd: /usr/sbin/xinetd /etc/xinetd.d /etc/xinetd.conf /usr/share/man/man8/xinetd.8.gz
patrick@starcat:~>


Vielleicht solltest du mal deinen Paketmanager befragen ob du überhaupt xinetd installiert hast. Sieht nämlich nicht danach aus. :rolleyes: Aber du hast offensichtlich inetd installiert. Erste Anlaufstelle hier: Die /etc/inetd.conf. Dort kann man dann auch Dienste deaktivieren.

freq
01.01.07, 18:25
... was könnte wohl die Endung "conf" bedeuten?

Ansonsten - Du solltest dich ernsthaft und ausführlich mit Grundlagen befassen...
ähm, ich weiß, dass das die Config ist. Ich wusste ja nicht, dass ich die bearbeiten soll ... davon war ja nie die Rede ...

@tschloss: ja die doku davon, ich weiß.

werde mal sehen, ob ich in der inetd config die dienste deaktivieren kann ;)

bla!zilla
01.01.07, 18:29
Ja, kannst du. Alternativ mal in die Manpage reinschauen. Soll manchmal helfen. :rolleyes:

freq
01.01.07, 18:38
Ja, kannst du. Alternativ mal in die Manpage reinschauen. Soll manchmal helfen. :rolleyes:
:rolleyes: Wie oft willst Du es mir noch sagen? Ich weiß, dass es dieses Manual gibt und ich habe es auch bereits verwendet ... :rolleyes:

dino03
04.01.07, 12:41
Einige Dienste werden auch über den inet.d oder xinet.d gestartet
(Netzwerk-Superdaemon).
Da sind z.B. unter SuSE in /etc/xinet.d/... alle möglichen Config-Dateien
für die Dienste wie ntp, time, ftp, tftp, echo, pop3, telnet, ...)
So ähnlich könnte es bei dir auch aussehen (hoffe ich mal)
In den Dateien kannst du dann mit disable=yes die einzelnen Dienste
abschalten, die keine eigenen Run-Scripte haben. Sieh dir mal die
/etc/services an. Die erklärt etwas mehr.

Sonst brauchst du für nen Webserver nicht viel!

PORT STATE SERVICE
21/tcp filtered ftp -----> ok, brauchst du für Webseiten-Uploads

25/tcp open smtp -----> nur wenn du auch einen MX-Eintrag hast!! Also
auf 127.0.0.1 !! (/etc/postfix/... oder etwa noch sendmail??) für System-Mails

53/tcp open domain -----> Das ist der BIND Nameserver. Auf 127.0.0.1!!
Den brauchst du eigentlich nur für DNS-Caching

80/tcp open http -----> Das ist dein Apache-Webserver

106/tcp open pop3pw ----> Hast du POP3-Mailkonten drauf ???
110/tcp open pop3 -----> selbes wie 106. Sonst töten (/etc/xinet.d)

111/tcp filtered rpcbind -----> (etc/xinet.d) korrigiert mich ! Der portmapper??
für nfs-Zugang ??? Aber auf jedenfall abschalten!

113/tcp open auth -----> Braucht auch keiner

135/tcp filtered msrpc -----> Samba ??? Windows ??? ABSCHALTEN !!
136/tcp filtered profile -----> auch!!
137/tcp filtered netbios-ns -----> auch !!
138/tcp filtered netbios-dgm -----> auch !!
139/tcp filtered netbios-ssn -----> auch !!

143/tcp filtered imap -----> Hast du nen IMAP-Mailbox-Server am laufen ???
Siehe POP3 (würde ich auch abschalten!)

443/tcp filtered https -----> Brauchst du bei https:// für Apache

445/tcp filtered microsoft-ds -----> Siehe Port 135!!

465/tcp open smtps -----> SMTP-Secure?? Oder erinnere ich mich da falsch?
(Abschalten!)

593/tcp filtered http-rpc-epmap ---> Hört sich unbekannt an -> abschalten!

904/tcp filtered unknown ----> auch töten!
993/tcp filtered imaps ---> Siehe IMAP
995/tcp open pop3s -----> Siehe POP3

5432/tcp filtered postgres -----> PostgresSQL-Datenbank. Die muß maximal
auf 127.0.0.1 laufen (wenn du kein MySQL nutzt) sonst total tot!

8009/tcp filtered ajp13 --> Was dad denn ?? -> Tot!!


Also was bleibt übrig:

21/tcp filtered ftp -- auf allem
25/tcp open smtp -- auf 127.0.0.1
53/tcp open domain -- auf 127.0.0.1
80/tcp open http -- auf allem
443/tcp filtered https -- auf allem
5432/tcp filtered postgres -- auf 127.0.0.1

Im Endeffekt sind von außen nur noch 21, 80 und 443 erreichbar.
Viel übersichtlicher !!!

Wofür brauchst du da noch ne Firewall ???

Grins
Ok, viel Spaß beim unkonfigurieren :-)