iptables, exim4 und andere Sicherheitseinstellungen

Alles rund um sicherheitsrelevante Fragen und Probleme.
Antworten
Ismoh
Beiträge: 6
Registriert: 26.05.2016 14:12:28

iptables, exim4 und andere Sicherheitseinstellungen

Beitrag von Ismoh » 30.05.2016 20:07:08

Hallo zusammen,

ich bin erst seit kurzem in dem Forum angemeldet. Bezüglich Unix (Debian Distribution) habe ich mich nur eine kurze Zeit lang während des Studiums beschäftigt.
Seit ca. zwei Monaten habe ich einen Raspberry Pi 3 gekauft und Debian installiert und bereits iptables, lighttpd, php, mysql, gitlab installiert und soweit ich es konnte konfiguriert.

Da ich nun einen vServer gemietet habe und diesen "vernünftig" konfigurieren will habe ich einige (viele) Fragen an euch.
Ich habe hier im Forum gelesen, dass die beste Vorkehrung bezüglich Sicherheit unter anderem ist, nur die notwendigsten Packages installiert zu haben, somit habe ich Debian (minial Jessie) installiert.
Vorerst möchte ich aber zeigen was ich bereits gemacht habe:

Quellen:
https://www.thomas-krenn.com/de/wiki/SS ... _verbieten
https://www.thomas-krenn.com/de/wiki/Ip ... _speichern
https://www.thomas-krenn.com/de/wiki/Ab ... an_Servers

SSH root login ist gesperrt. SSH funktioniert nur mit einem von mir erstellten user, der soweit ich weiß keine besonderen Rechte hat. Anschließend kann man sich wie gewohnt als root einloggen/anmelden.

exim4 ist als "internet site" konfiguriert. Ich erhalte eine eMail, wenn sich Jemand (im Normalfall ich) über ssh anmeldet. Außerdem habe ich die aliases für root geändert, wobei ich das rückgängig machen werde, da ich nach Konfiguration so wenig wie möglich als root arbeiten will, sofern möglich. Also sollen alle Mails von userX versendet werden.

-> Meine Fragen zu exim4: es gibt einen Hinweis über einen Sicherheitsfehler: https://www.debian.org/security/2016/dsa-3517
Sofern ich das richtig verstehe: exim4 auf 4.84.2-1 aktualisieren und dann sollte der Fehler behoben sein.
Weitere Frage: Sollte ich die SSL Funktionalität konfigurieren? Bin bezüglich Zertifikate nie richtig fit gewesen, soll sich aber ändern. Habt ihr diesbezüglich eine Anleitung?

Derzeit sitze ich an den iptables:
Eine Frage vorweg: Braucht mein vServer überhaupt ipv6, wenn er eine fest ipv4 hat? Falls nicht, sollte ich ipv6 einfach "deaktivieren"?
Hinzukommt, dass meine iptables Regeln eher schlecht als recht sind, da ich schon mal nicht genau weiß was die Reihenfolge für eine genaue Auswirkung hat. Außerdem scheint es, dass meine Regeln noch nicht aktiviert sind, da

Code: Alles auswählen

netstat -tulpn
folgendes auswirft:
(No info could be read for "-p": geteuid()=1000 but you should be root.)
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN -
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN -
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN -
tcp 0 0 0.0.0.0:42390 0.0.0.0:* LISTEN -
tcp6 0 0 ::1:25 :::* LISTEN -
tcp6 0 0 :::49000 :::* LISTEN -
tcp6 0 0 :::22 :::* LISTEN -
tcp6 0 0 :::111 :::* LISTEN -
udp 0 0 0.0.0.0:44660 0.0.0.0:* -
udp 0 0 0.0.0.0:986 0.0.0.0:* -
udp 0 0 127.0.0.1:996 0.0.0.0:* -
udp 0 0 0.0.0.0:68 0.0.0.0:* -
udp 0 0 0.0.0.0:111 0.0.0.0:* -
udp 0 0 0.0.0.0:40237 0.0.0.0:* -
udp6 0 0 :::23316 :::* -
udp6 0 0 :::986 :::* -
udp6 0 0 :::42035 :::* -
udp6 0 0 :::111 :::* -
Das sieht mir nach "alles ist offen" aus.
Obwohl ich

Code: Alles auswählen

iptables-restore < /etc/iptables/rules
ausgeführt habe.
Meine iptables rules Datei sieht wie folgt aus:
# Generated by iptables-save v1.4.21 on Sun May 29 22:03:45 2016
*filter
:INPUT DROP [10:893]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [2:140]
#
#INPUT
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
#-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
#
#OUTPUT
-A OUTPUT -p tcp -m tcp --sport 22 -j ACCEPT
COMMIT
# Completed on Sun May 29 22:18:45 2016
#-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT ist kommentiert, da ich noch nicht ganz geschnallt habe, was das zu bedeuten hat.

Kann mir Jemand bezüglich iptables unter die Arme greifen? Ich hatte zwar das Gefühl, dass ich das soweit verstanden habe, musste nach ein paar Stunden suche jedoch feststellen, dass ich bei meinem Raspberry Pi einiges nicht wusste.
Ich suche bezüglich iptables noch eine gut beschriebene Anleitung, wenn Jemand eine kennt, würde ich mich über diese freuen.
Oftmals werden einfach Standardports freigegeben und andere Zeilen in der "rules"-datei werden gar nicht beschrieben, was mich als Anfänger etwas ärgert.

Ich möchte meinen vServer als Webserver einrichten und würde mich über jegliche Form von Input freuen!
Besten Dank.

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: iptables, exim4 und andere Sicherheitseinstellungen

Beitrag von rendegast » 30.05.2016 22:03:21

exim4 ist als "internet site" konfiguriert.
Das solltest Du in jetzigem Stadium auf 'local delivery only' abändern,
'dpkg-reconfigure exim4-config'.
Dann horcht exim erstmal nur auf localhost.
(Falls Du nicht einen Mailserver aufsetzen wolltest.
Dann aber vielleicht eher Debianpostfix + Debianpostfixadmin).
Ich erhalte eine eMail, wenn sich Jemand (im Normalfall ich) über ssh anmeldet.
Das sollte dennoch funktionieren.

Falls nicht, sollte ich ipv6 einfach "deaktivieren"?
Das ist möglich, per Kernel-Commandline.
Einige Dienste brauchen dann Nacharbeit (siehe syslog-Fehler),
zBsp. postfix 'inet_protocols = ipv4'.

Außerdem scheint es, dass meine Regeln noch nicht aktiviert sind, da ...
Das 'netstat' wird immer so aussehen, außer Du konfigurierst die Dienste um.
netfilter (iptables/nftables) setzt "nur" die Filter für obige Konfiguration.
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

Ismoh
Beiträge: 6
Registriert: 26.05.2016 14:12:28

Re: iptables, exim4 und andere Sicherheitseinstellungen

Beitrag von Ismoh » 31.05.2016 12:58:55

rendegast hat geschrieben:
exim4 ist als "internet site" konfiguriert.
Das solltest Du in jetzigem Stadium auf 'local delivery only' abändern,
'dpkg-reconfigure exim4-config'.
Dann horcht exim erstmal nur auf localhost.
(Falls Du nicht einen Mailserver aufsetzen wolltest.
Dann aber vielleicht eher Debianpostfix + Debianpostfixadmin).
Ich erhalte eine eMail, wenn sich Jemand (im Normalfall ich) über ssh anmeldet.
Das sollte dennoch funktionieren.
Werden die Mails anschließend weiterhin an meine persönliche Mail-Adresse gesendet?
Ich dachte, dass der interne Verkehr dann nur noch läuft.
Benötige ich postfix? Ich möchte derzeit nur ein paar mails an mich selbst senden.
Irgendwann dann eine einfache Mail an x-Adressen.
rendegast hat geschrieben:
Falls nicht, sollte ich ipv6 einfach "deaktivieren"?
Das ist möglich, per Kernel-Commandline.
Einige Dienste brauchen dann Nacharbeit (siehe syslog-Fehler),
zBsp. postfix 'inet_protocols = ipv4'.
Ah verstehe. Macht das überhaupt Sinn?
Ich dachte, dass ich mir dadurch die iptables für ivp6 schenken kann, wobei das eigentlich kein Problem werden sollte.
Frage ist: Benötige ich ipv6 überhaupt?
rendegast hat geschrieben:
Außerdem scheint es, dass meine Regeln noch nicht aktiviert sind, da ...
Das 'netstat' wird immer so aussehen, außer Du konfigurierst die Dienste um.
netfilter (iptables/nftables) setzt "nur" die Filter für obige Konfiguration.
Ah jetzt verstehe ich das langsam.
iptables prüft also nur, ob es eine Regel für "das Paket" gibt. 'netstat' zeigt also nur die verwendeten Ports an, aber berücksichtig nicht iptabels.

Kennst du dich mit der Reihenfolge von iptables aus? Hab das noch nicht ganz verstanden. Gibt es hier evtl eine Anleitung dazu?

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: iptables, exim4 und andere Sicherheitseinstellungen

Beitrag von rendegast » 31.05.2016 18:21:25

Benötige ich postfix? Ich möchte derzeit nur ein paar mails an mich selbst senden.
Irgendwann dann eine einfache Mail an x-Adressen.
Das war nur erwähnt, wenn ein Mailserver wirklich geplant ist.
exim4 ist genauso ein ausgewachsener Mailserver,
aber für postfix gäbe es postfixadmin zur Konfiguration.
exim4 ist einfach "anders".

Falls es nur um die paar (aus Sicht eines Mailservers) Systemmails + gelegentliche geht,
halte ich exim4 für empfehlenswert.
Der daemon könnte ganz deaktiviert werden
QUEURUNNER=nodaemon
und die Mails werden dann vom sendmail-binary des Paketes verschickt, auch nach außerhalb.

Sollte mail generell an eine andere Maschine geschickt werden,
wäre sowas wie Debianssmtp oder Debiannullmailer zu erwägen.
Wäre damit vielleicht leichter zu konfigurieren als exim4 resp. dessen sendmail-binary.


Anm. Ein sendmail-binary bringt jeder mta mit.
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

Ismoh
Beiträge: 6
Registriert: 26.05.2016 14:12:28

Re: iptables, exim4 und andere Sicherheitseinstellungen

Beitrag von Ismoh » 31.05.2016 19:16:32

rendegast hat geschrieben:
Benötige ich postfix? Ich möchte derzeit nur ein paar mails an mich selbst senden.
Irgendwann dann eine einfache Mail an x-Adressen.
Das war nur erwähnt, wenn ein Mailserver wirklich geplant ist.
exim4 ist genauso ein ausgewachsener Mailserver,
aber für postfix gäbe es postfixadmin zur Konfiguration.
exim4 ist einfach "anders".

Falls es nur um die paar (aus Sicht eines Mailservers) Systemmails + gelegentliche geht,
halte ich exim4 für empfehlenswert.
Der daemon könnte ganz deaktiviert werden
QUEURUNNER=nodaemon
und die Mails werden dann vom sendmail-binary des Paketes verschickt, auch nach außerhalb.

Sollte mail generell an eine andere Maschine geschickt werden,
wäre sowas wie Debianssmtp oder Debiannullmailer zu erwägen.
Wäre damit vielleicht leichter zu konfigurieren als exim4 resp. dessen sendmail-binary.


Anm. Ein sendmail-binary bringt jeder mta mit.
Derzeit reicht mir exim4, aber danke für die Hinweise.
Ich frag mal andersherum: Was geht nicht, wenn der exim4-daemon nicht läuft?

zu iptables:
Meine Regeln sehen wie folgt aus:
# Generated by iptables-save v1.4.21 on Mon May 30 21:59:06 2016
*filter
:INPUT DROP [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -j LOG --log-prefix "INPUT (all):"
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
#-A INPUT -p tcp -m tcp --dport 25 --state NEW,ESTABLISHED -j ACCEPT
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -j DROP
-A INPUT -m limit --limit 5/min -j LOG --log-prefix "INPUT (denied): " --log-l$
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A OUTPUT -p tcp -m tcp --sport 22 -j ACCEPT
-A OUTPUT -p tcp -m tcp --sport 25 -m state --state NEW,ESTABLISHED -j ACCEPT
-A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
COMMIT
# Completed on Mon May 30 21:59:06 2016
Meine Fragen dazu:
Benötige ich folgenden Regeln?

-A INPUT -i lo -j ACCEPT
lo steht für loopback?! Habe gelesen, dass die Regel unbedingt dazu soll für internen Netzwerkverkehr. Hab ich das richtig verstanden?

-A INPUT -j LOG --log-prefix "INPUT (all):"
-A INPUT -m limit --limit 5/min -j LOG --log-prefix "INPUT (denied): " --log-l$
Doppelt hält besser, oder ist das quatsch?

#-A INPUT -p tcp -m tcp --dport 25 --state NEW,ESTABLISHED -j ACCEPT
'iptables-restore < rules.file' sagt mir "unknow option --state... beim schreiben fällts mir ein:
"... -m state --state ..." muss es heißen.
Wenn ich Mails empfangen will, muss der smtp port für NEW erlaubt werden, richtig?
Was bedeutet ESTABLISHED und RELATED, bzw was ist der Unterschied?
Das ist mir noch nicht ganz klar.

-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
Sollte ich für jede Regel 'state' hinzufügen oder am Ende einfach für alle?

DROP FOWARD habe ich noch vergessen.
//EDIT:
Regel für OUTPUT macht derzeit bei mir gar keinen Sinn, da die OUTPUT Policy eh auf ACCEPT steht. Naja egal. Bei den Ausgängen sollte eh nichts passieren, richtig?
//EDIT2:
Ich habe folgenden Befehl ausgeführt und bekomme durchgehend folgende Ausgabe, wobei ID kernel stetig steigt:
May 31 19:42:54 xxxxxxxx kernel: [79400.266495] INPUT (warnings): IN=eth0 OUT= MAC=xxxx SRC=109.193.170.30 DST=xxxxx LEN=40 TOS=0x00 PREC=0x00 TTL=121 ID=1935 DF PROTO=TCP SPT=2238 DPT=2222 WINDOW=64 RES=0x00 ACK URGP=0
IP-Adresse ist meine lokale und das ist mein SSH Port. Ich vermute SPT heißt Source Port und DPT Destination Port? Wundert mich nur, dass diese unterschiedlich sind. Und wie ich diese Warnung entfernen kann.
Zuletzt geändert von Ismoh am 31.05.2016 20:20:43, insgesamt 1-mal geändert.

eggy
Beiträge: 3334
Registriert: 10.05.2008 11:23:50

Re: iptables, exim4 und andere Sicherheitseinstellungen

Beitrag von eggy » 31.05.2016 19:54:05

a) In Deinen Regeln ist (mindestens) ein eklatanter Fehler.
b) Die Reihenfolge spielt eine Rolle (steht in jeder brauchbaren Iptables Doku)
c) Related und Established sind zwei unterschiedliche Sachen: man iptables-extensions
d) Du solltest viel mehr lesen bevor Du nen Server betreibst. Wirklich.
Und das ist nicht böse gemeint, aber: schlecht gewartet ist halb übernommen.
Und Kisten die die Allgemeinheit mit Spam belästigen gibts schon mehr als genug.
Auch in Bezug auf die Frage der Haftung solltest Du Dir mal Gedanken machen, ob Du vorher nicht erstmal zu Hause üben willst. (Hier gibts z.B. weiter untern nen paar Links, die Du Dir mal ansehen solltest: http://root-und-kein-plan.de/ - und hier im Forum gibts auch immer wieder gute Erklärungen warum Anfänger keine Root- oder Vserver betreiben sollten. Forensuche und lesen.)

Ismoh
Beiträge: 6
Registriert: 26.05.2016 14:12:28

Re: iptables, exim4 und andere Sicherheitseinstellungen

Beitrag von Ismoh » 31.05.2016 20:16:22

eggy hat geschrieben:a) In Deinen Regeln ist (mindestens) ein eklatanter Fehler.
Der da wäre? Aus Fehlern lernt man.
eggy hat geschrieben: b) Die Reihenfolge spielt eine Rolle (steht in jeder brauchbaren Iptables Doku)
Bin ich leider noch nicht schlau rausgeworden.
eggy hat geschrieben: c) Related und Established sind zwei unterschiedliche Sachen: man iptables-extensions
Soweit war ich auch schon, aber habs immer noch nicht ganz verstanden.
eggy hat geschrieben: d) Du solltest viel mehr lesen bevor Du nen Server betreibst. Wirklich.
Und das ist nicht böse gemeint, aber: schlecht gewartet ist halb übernommen.
Und Kisten die die Allgemeinheit mit Spam belästigen gibts schon mehr als genug.
Auch in Bezug auf die Frage der Haftung solltest Du Dir mal Gedanken machen, ob Du vorher nicht erstmal zu Hause üben willst. (Hier gibts z.B. weiter untern nen paar Links, die Du Dir mal ansehen solltest: http://root-und-kein-plan.de/ - und hier im Forum gibts auch immer wieder gute Erklärungen warum Anfänger keine Root- oder Vserver betreiben sollten. Forensuche und lesen.)
[/quote]
Merke ich mittlerweile auch. Deshalb bin schreibe ich hier in dem Forum, um meine Kenntnisse zu erweitern und danke für den Hinweis.

eggy
Beiträge: 3334
Registriert: 10.05.2008 11:23:50

Re: iptables, exim4 und andere Sicherheitseinstellungen

Beitrag von eggy » 31.05.2016 21:13:03

Ismoh hat geschrieben:
eggy hat geschrieben: b) Die Reihenfolge spielt eine Rolle (steht in jeder brauchbaren Iptables Doku)
Bin ich leider noch nicht schlau rausgeworden.
Reihenfolge: beschreibt, was "vorher" und was "später" passiert
(vergl. http://www.duden.de/rechtschreibung/Reihenfolge )
Ismoh hat geschrieben:
eggy hat geschrieben: c) Related und Established sind zwei unterschiedliche Sachen: man iptables-extensions
Soweit war ich auch schon, aber habs immer noch nicht ganz verstanden.
Na dann erklär mal was Du da gelesen hast, was genau davon unklar ist, und wie/wieweit Du es verstanden hast. Dich berichtigt sicher jemand wenns falsch ist. Aber vorkauen macht auf Dauer keinen Spass - zumals hier gefühlt einen "Iptables für Anfänger"-Thread pro Woche gibt.

Ismoh
Beiträge: 6
Registriert: 26.05.2016 14:12:28

Re: iptables, exim4 und andere Sicherheitseinstellungen

Beitrag von Ismoh » 31.05.2016 23:29:18

Hab mir ein Buch über Debian Administration gekauft. Den Rest übersehe ich mal.

Antworten