Frage zur Linux-Firewall

Frage zur Linux-Firewall

Ich habe ein paar allgemeine Fragen zu Firewalls und dachte, die Community hier könnte mir weiterhelfen.

1) Ich habe vor Kurzem Ubuntu Server Barebones installiert. Ich habe nach offenen Ports gesucht, keiner war offen, was großartig war. Liegt das daran, dass eine Firewall installiert war, oder daran, dass keine Anwendungen installiert waren?

2) Ich habe einige Anwendungen installiert (Apache, Postgres, SSH, Java-App und einige wenige). Dabei habe ich einige Ports geöffnet (~10). Jetzt habe ich eine Liste aller Ports, die ich öffnen müsste. Wie kann ich sie also schützen? [Ist das die richtige Frage? Läuft der Prozess so ab: Firewall installieren -> Benötigte Ports zulassen -> Rest mit IPtables-Regeln verweigern]

Dies wird für das Internet offen sein. Hosting von E-Commerce-Sites mit geringem Datenverkehr.

3) Was ist Ihrer Meinung nach der einfachste Weg für mich, den Server quasi abzusichern (geringer Wartungsaufwand/Einfachheit). Gibt es Open-Source-Software, die mir das Leben leichter machen kann?

4) Schließlich muss ich von den genannten offenen Ports [2] zwei Ports schließen, da es sich um Telnet-Ports handelt. Kann ich diese Ports schließen, ohne eine „Firewall“ zu installieren?

Vielen Dank an alle für die Hilfe und frohe Weihnachten!!!!!!!

Antwort1

  1. Sie hatten keine Abhörports, weil Sie keine Abhörprozesse hatten. Ubuntu leistet in dieser Hinsicht bei einer Standardinstallation gute Arbeit. Die Prozesse, die einen Abhörport benötigen, verwenden normalerweise standardmäßig localhost (127.0.0.1). Dies verhindert den direkten Zugriff von Remote-Systemen.
  2. Von Anwendungen wie Apache und SSH-Servern wird erwartet, dass sie Verbindungen von Remote-Servern abhören. Apache hat seine eigenen ACL-Listen, um den Zugriff zu sichern. SSH-Server können zusätzlich zu ihrer Konfiguration mit den Dateien hosts.allow und hosts.deny gesichert werden. Anwendungen wie MySQL und PosttressSQL sollten standardmäßig auf localhost abhören. Wenn Sie von anderen Systemen aus Zugriff benötigen, müssen Sie deren Listener-Konfiguration ändern. Sie verfügen normalerweise über einen oder mehrere Mechanismen zur Sicherung des Zugriffs.
  3. Verwenden Sie hosts.allow/hosts.deny für Anwendungen, die diesen Mechanismus unterstützen. Verwenden Sie einen Firewall-Builder wieUfermauereine sichere Firewall zu erstellen, hilft. Das Verständnis der eigenen Sicherheitsmechanismen jeder Anwendung hilft dabei, Ihre Mechanismen zu vertiefen. Ein Tool wie Logcheck kann Ihre Protokolle überwachen und Sie über einige Ereignisse informieren, die Sie möglicherweise überprüfen müssen. Ich verwende Munin, um meine Systeme zu überwachen und in einigen Fällen werde ich auf Probleme aufmerksam gemacht. Dies ersetzt die bisherige Verwendung von Nagion und MRTG zur Überwachung und grafischen Darstellung der Systemnutzung.
  4. Wenn Sie Telnet laufen haben, können Sie die Ports schließen, indem Sie den Dienst stoppen. Wenn Sie es nicht wirklich brauchen, entfernen Sie das Telnet-Paket und ersetzen Sie es durch ssh-server. Die meisten Telnet-Server unterstützen die Verwendung von hosts.allow/hosts.deny, um den Zugriff einzuschränken. Dies gilt auch für Anwendungen, die unter inetd oder xinetd laufen. MySQL und PostgreSQL sollten nur auf 127.0.0.1 lauschen, was vor direktem Zugriff von außerhalb Ihres Servers sicher ist.

Meine übliche Shorewall-Firewall-Konfiguration beginnt mit der Beispielkonfiguration für die Anzahl der Schnittstellen auf dem Server (oder Zugriffszonen: NET, LAN, DMZ). Beachten Sie, dass die Zonen möglicherweise weniger sicher sind, als sie sein könnten, wenn sie Schnittstellen und/oder Router gemeinsam nutzen. Dann passe ich die Regeln nach Bedarf an.

Ich deaktiviere häufig alle standardmäßigen Richtlinien für ausgehenden Zugriff. Diese werden durch Regeln ersetzt, die ausgehenden Zugriff auf die erforderlichen Ports (DNS, NTP, SMTP usw.) zulassen.

Antwort2

1.) Sie können es jederzeit überprüfen mitiptables -Ldiese Ausgabe steht für keine Firewall:

Chain INPUT (policy ACCEPT)
target     prot opt source               destination

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

2.) ja, erlauben Sie einfach die Ports in der Eingabekette auf Ihrer Schnittstelle (d. h. eth0) und lassen Sie alles andere fallen.

Sie sollten auch einige andere Dinge tun, wie:

  • NULL
  • Weihnachten (SYN+FIN+ACK)
  • SYN-FIN

und vergessen Sie nicht, die wichtigen Sysctl-Optionen festzulegen

3.) einfache Möglichkeiten:

  • Firewall:http://easyfwgen.morizot.net/gen/
  • Log-Analyse-Tool, das Sie über Bedrohungen informiert
  • andere Tools, die proaktive Prüfungen durchführen (zB fail2ban)
  • Überwachungstools, die Sie über den Zustand Ihrer Maschinen informieren (z. B. Zabbix, Nagios)

4.) Geben Sie den folgenden Befehl ein

root@host:~# netstat -npl | grep LISTEN
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1417/telnet

die interessante Nummer ist die 1417 (Prozessnummer) nach dem Telnet. Beenden Sie es mittöten -9 1417

aber sei vorsichtig mit dem, was du tötest!

wenn Sie es nicht beenden möchten, können Sie einfach die Firewall verwenden, um die Verwendung dieses Ports zu verweigern …

Antwort3

1) Sie könnten (selbst prüfen, indem Sie) SSH installieren und versuchen, ob auf einem anderen Computer mit NMAP Port 22 als offen angezeigt wird. 2) Dies ist eine große Antwort. Sie müssen genau wissen, welche Art von Schutz Sie Ihren Diensten geben möchten... 3) ? 4) Schließen Sie den Inetd-Dienst

verwandte Informationen