user32847
Anmeldungsdatum: 29. Januar 2014
Beiträge: 332
|
Hallo Ubuntuusers, im Moment bin ich dabei, meinen ersten VPS zu konfigurieren. Dabei möchte ich mit Hilfe von ufw eine Firewall konfigurieren. Ich bin momentan viel am lesen und möchte, auch aufgrund mangelnder Erfahrung, erstmal auf Nummer sicher gehen und den Server möglichst restriktiv konfigurieren. Auf dem Server soll erstmal nur nginx laufen. Ansonsten brauche ich SSH-Zugang. Das bedeutet also, dass ich nur Port 22, 80 und 443 für die Außenwelt öffnen möchte. Allerdings bin ich mir nicht ganz sicher, ob das dann richtig ist. Standardmäßig sind auf dem Server folgende Ports offen: sudo netstat -tulpen | grep -v 127.0.0.1
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State User Inode PID/Program name
tcp 0 0 127.0.0.53:53 0.0.0.0:* LISTEN 101 28516 3136/systemd-resolv
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 0 68428 631/sshd
tcp6 0 0 :::22 :::* LISTEN 0 68439 631/sshd
udp 0 0 127.0.0.53:53 0.0.0.0:* 101 28515 3136/systemd-resolv
udp 0 0 0.0.0.0:68 0.0.0.0:* 0 14642 746/dhclient Die gelb markierten Stellen verstehe ich. Das ist einfach nur der SSH-Daemon, der sowohl für IPv4 als auch IPv6 auf dem Port 22 lauscht. Mit den andere drei Zeilen kann ich allerdings nicht ganz so viel anfangen. Wofür sind systemd-resolv und dhclient? Muss ich aufgrund dessen die Ports 53 und 68 auch für die Außenwelt öffnen? Ich bitte um Aufklärung. 😉 Danke für die Hilfe schonmal!
|
lubux
Anmeldungsdatum: 21. November 2012
Beiträge: 13931
|
user32847 schrieb: Muss ich aufgrund dessen die Ports 53 und 68 auch für die Außenwelt öffnen?
Nein, das musst Du nicht. Port 53 ist für das _lokale_ DNS und auf dem Port 68 wird für ankommende broadcasts (vom DHCP-Server) gelauscht.
|
user32847
(Themenstarter)
Anmeldungsdatum: 29. Januar 2014
Beiträge: 332
|
Hallo lubux, herzlichen Dank für deine Antwort. Aber funktioniert das lokale DNS und das Broadcasting dann weiterhin, wenn ich folgendes mit ufw einstelle? ufw allow 22
ufw allow 80
ufw allow 443
ufw enable
|
lubux
Anmeldungsdatum: 21. November 2012
Beiträge: 13931
|
user32847 schrieb: Aber funktioniert das lokale DNS und das Broadcasting dann weiterhin, wenn ich folgendes mit ufw einstelle?
Naja, ich benutze ufw nicht, sondern iptables.
Poste mal die Ausgaben von:
sudo iptables -nvx -L
Befindet sich dein Server hinter einem Router oder ist der Server direkt im Internet?
|
TomLu
Anmeldungsdatum: 23. August 2014
Beiträge: 603
|
@user32847 Diesen folgenden, scheinbar beiläufigen und 'vermutlich' unwichtigen Hinweis möchte ich Dir gerne ans Herz legen und empfehlen, dem doch ein wenig mehr Beachtung zu schenken... denn da steckt deutlich mehr Gewicht drin, als man vermutet. lubux schrieb: Naja, ich benutze ufw nicht, sondern iptables.
Ich halte die UFW nämlich auch nicht in allen Fällen für eine gute Wahl, z.B. dann nicht, wenn es um die individuelle Ausrichtung eines Paketfilters auf den eigenen Server geht. Die UFW ist prima, wenn ein Anfänger seinen Laptop draußen an offenen Accesspoints schützen will, ohne sich um so was kompliziertes wie Filterregeln im Kernel kümmern zu müssen. Aber wenn es sich um einen Server und dessen individuell vom Admin eingestellte Dienste handelt, bist Du mit dem Verstehen von eigenen Regeln und deren Aktivierung deutlich besser aufgestellt. Die UFW erstellt teilweise ein Regelwerk in einer Komplexität, das kaum noch überschaubar ist, selbst bei einfachen Anforderungen. Das bedeutet, durch den suggesitiven Namensteil "Firewall" und einem Haufen durch unzählige Verzweigungen schwer nachvollziehbarer Regeln fühlst Du Dich sicher, ohne faktisch bestätigen zu können, dass die Sicherheit wirklich gegeben ist. Man erkennt kaum, ob auch Dienste gefiltert werden, die es gar nicht gibt, oder ob andere aktive Dienste schlichtweg unbeachtet wurden. Ohne wirklich Hand an individuelle Regel anzulegen, bleibt die UFW nur ein einfaches statisches Stateless-Regelwerk. Aber Hand anzulegen bedeutet, eben über das notwendige Wissen zu verfügen... und wer das hat, kann besser gleich die iptables verwenden. Darüber hinaus kommt erschwerend bei Dualstack-DSL-Accounts hinzu, dass man keinen Einfluss darauf hat, welchen IP-Stack eine Anwendung verwendet, woraus resultiert, dass man beide IP-Stacks filtern muss, also IPv4 und IPv6.... und dem Rat, das bessere IPv6 zu deaktivieren, ums einfacher zu haben, kann man wohl wohl kaum ernsthaft folgen. Aber mal ganz nebenbeibemerkt, nicht überall, wo "Firewall" draufsteht, ist auch wirklich Firewall drin. Die UFW ist NUR ein Paketfilter, zu einer tatsächlich wirksamen Firewall gehört ein wenig mehr, als nur ein paar Filter-Regeln einzustellen. Es gibt leider haufenweise Aspekte, die alle Deine Regeln wieder völlig neutralisieren können.
|
user32847
(Themenstarter)
Anmeldungsdatum: 29. Januar 2014
Beiträge: 332
|
lubux schrieb: user32847 schrieb: Aber funktioniert das lokale DNS und das Broadcasting dann weiterhin, wenn ich folgendes mit ufw einstelle?
Naja, ich benutze ufw nicht, sondern iptables.
Poste mal die Ausgaben von:
sudo iptables -nvx -L
Befindet sich dein Server hinter einem Router oder ist der Server direkt im Internet?
Der Server ist direkt über das Internet erreichbar. Hier der Output von sudo iptables -nvx -L: Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
|
lubux
Anmeldungsdatum: 21. November 2012
Beiträge: 13931
|
user32847 schrieb: Der Server ist direkt über das Internet erreichbar. Hier der Output von sudo iptables -nvx -L:
OK, d. h. ufw ist (noch) nicht aktiv.
Wie hast Du den sshd konfiguriert? Mit Passwort- oder mit publickey-Zugang?
Ist dein Server auch per IPv6 aus dem Internet erreichbar?
|
kB
Supporter, Wikiteam
Anmeldungsdatum: 4. Oktober 2007
Beiträge: 8616
Wohnort: Münster
|
user32847 schrieb: […] meinen ersten VPS […] Firewall
Eine Firewall, die auf demselben Gerät läuft wie der Server, ist nutzlos. Sie kann sogar schädlich sein, weil sie das Gesamtsystem anfälliger für DoS-Angriffe (Denial of Service) macht. Eine Firewall gehört auf eine dem eigentlichen Server vorgeschaltete Hardware. Nur so kann man verhindern, dass unerwünschte Pakete den Server erreichen.
|
TomLu
Anmeldungsdatum: 23. August 2014
Beiträge: 603
|
kB schrieb: Eine Firewall, die auf demselben Gerät läuft wie der Server, ist nutzlos. Sie kann sogar schädlich sein, weil sie das Gesamtsystem anfälliger für DoS-Angriffe (Denial of Service) macht.
Ein weiterer Grund, lieber auf die UFW zu verzichten. Desweiteren denke ich, dass man solche DoS-Attacken mit IPtables verhindern kann.
Eine Firewall gehört auf eine dem eigentlichen Server vorgeschaltete Hardware. Nur so kann man verhindern, dass unerwünschte Pakete den Server erreichen.
Ja, das stimmt... ein Aspekt, der meistens gar nicht beachtet wird. Aber ich glaube, ein lokaler Paketfilter kann trotzdem "gewinnbringend" direkt auf der Maschine betrieben werden. Eine für mich nicht ganz unwichtige Überlegung dabei ist nämlich, wenn man zusätzliche (Strom-)Kosten und eine weitere Maschine mit weiterem Wartungsaufkommen scheut, kann auch ein lokaler Paketfilter die Sicherheitsfrage verbessern. Bei dem Hintergrund muss man dann seine persönlichen Prämissen gegeneinander aufwiegen und dann irgendeine Entscheidung treffen.
|
user32847
(Themenstarter)
Anmeldungsdatum: 29. Januar 2014
Beiträge: 332
|
Ich würde gerne nochmal wegen diesen drei Zeilen nachfragen. Wenn man die ufw so einstellt, wie oben beschrieben. Dann dürften die drei Services doch eigentlich gar nicht mehr funktionieren, oder sehe ich das falsch? Proto Recv-Q Send-Q Local Address Foreign Address State User Inode PID/Program name
tcp 0 0 127.0.0.53:53 0.0.0.0:* LISTEN 101 28516 3136/systemd-resolv
udp 0 0 127.0.0.53:53 0.0.0.0:* 101 28515 3136/systemd-resolv
udp 0 0 0.0.0.0:68 0.0.0.0:* 0 14642 746/dhclient lubux schrieb: user32847 schrieb: Der Server ist direkt über das Internet erreichbar. Hier der Output von sudo iptables -nvx -L:
OK, d. h. ufw ist (noch) nicht aktiv.
Wie hast Du den sshd konfiguriert? Mit Passwort- oder mit publickey-Zugang?
Ist dein Server auch per IPv6 aus dem Internet erreichbar?
Auch per IPv6 erreichbar und nur Public-Key-Zugang.
|
lubux
Anmeldungsdatum: 21. November 2012
Beiträge: 13931
|
user32847 schrieb: Wenn man die ufw so einstellt, wie oben beschrieben. Dann dürften die drei Services doch eigentlich gar nicht mehr funktionieren, oder sehe ich das falsch?
Nein, das siehst Du nicht falsch. Wenn ufw, dann nicht für das lo-Interface (... wegen der 127.0.0.53) und in der INPUT chain, den destination-UDP-Port 68 auf ACCEPT lassen für NEW-Verbindungen. Für IPv6 gibt es "IPV6=yes" in der "/etc/default/ufw", ... wenn Du auf ufw nicht verzichten willst.
|
user32847
(Themenstarter)
Anmeldungsdatum: 29. Januar 2014
Beiträge: 332
|
Was ich nicht ganz verstehe:
Während systemd-resolv nur im lokalen Netzwerk erreichbar scheint, ist der DHCP-Client vom Internet aus erreichbar. Das ist das Standard-Image von Hetzner. Edit: Dass der DHCP-Client erreichbar ist, steht auch im Wiki und düfte kein Problem sein → https://wiki.ubuntuusers.de/Offene_Ports/#Dhclient Abschließende Frage: Die offenen Ports kann ich also alle so lassen, oder?
|
lubux
Anmeldungsdatum: 21. November 2012
Beiträge: 13931
|
user32847 schrieb: Die offenen Ports kann ich also alle so lassen, oder?
Ja.
|
misterunknown
Ehemalige
Anmeldungsdatum: 28. Oktober 2009
Beiträge: 4403
Wohnort: Sachsen
|
user32847 schrieb: Dabei möchte ich mit Hilfe von ufw eine Firewall konfigurieren.
Die Frage ist, wozu du das willst. Normalerweise sollten auf einem System nur die Dienste öffentlich lauschen, welche auch öffentlich erreichbar sein sollen. Eine Firewall macht Sinn, wenn du auf bestimmte IP-Bereiche oder sowas beschränken willst. Willst du das nicht, sondern 22, 80 und 443 generisch öffnen, macht das ganze Konzept keinen Sinn. Mit anderen Worten: Eine nicht vorhandene Tür braucht keinen Türsteher, und die Türen, die du hast, sind eh öffentlich erreichbar. Das heißt natürlich auch, dass du genau wissen musst, welche Dienste bei dir wo lauschen! Das ist aber sowieso Voraussetzung für einen sicheren Betrieb eines Servers...
|