Ich habe ein Projekt, um Ubuntu Server so gut wie möglich abzusichern. Der Server ist ein Webhosting-Server. Auf dem Server werden LAMP, Mail und DNS ausgeführt.
Ich habe ein Projekt, um Ubuntu Server so gut wie möglich abzusichern. Der Server ist ein Webhosting-Server. Auf dem Server werden LAMP, Mail und DNS ausgeführt.
Antworten:
Hier ist eine Liste der Maßnahmen, die ich zur Sicherung meines Servers ergriffen habe.
sudo ufw enable
) und lassen Sie nur die tatsächlich verwendeten Ports zu. ( sudo ufw allow 80
)sudo apt-get install denyhosts
)Noch ein paar Dinge zu beachten. Die meisten Menschen vergessen den physischen Zugang. Alle Software-Konfigurationen auf der Welt haben keine Bedeutung, wenn ich mit einer Live-CD physisch hineingehen und Ihre Daten stehlen kann. Vorsicht vor Social Engineering. Stellen Sie Fragen, um zu überprüfen, wer am Telefon ist, und stellen Sie sicher, dass er die Berechtigung hat, die von ihm gestellte Anfrage zu stellen.
Da ich noch ein "neuer" Benutzer bin, kann ich nicht mehr als 2 Links posten. Weitere Informationen zu diesem Thema finden Sie hier: https://help.ubuntu.com/12.04/serverguide/index.html und unter besonderer Berücksichtigung von https://help.ubuntu.com/12.04/serverguide/security.html
iptables
immer noch vorinstallierte Firewalls verwenden) besteht darin, Ihr System mit äußerst spezifischen Regeln zu sperren, um den externen Zugriff auf Dienste zu verhindern, die Sie nicht nutzen werden, wenn Sie einen seltsamen Fehler haben. Ball-Setup, das fortgeschrittenes Rouing und andere Dinge erfordert.
/ dev / shm kann bei einem Angriff auf einen laufenden Dienst wie httpd verwendet werden. Ändern Sie / etc / fstab, um die Sicherheit zu erhöhen.
Öffnen Sie ein Terminalfenster und geben Sie Folgendes ein:
sudo vi /etc/fstab
Fügen Sie die folgende Zeile hinzu und speichern Sie. Sie müssen neu starten, damit diese Einstellung wirksam wird:
tmpfs /dev/shm tmpfs defaults,noexec,nosuid 0 0
Die Datei /etc/sysctl.conf enthält alle sysctl-Einstellungen. Verhindern Sie das Weiterleiten von eingehenden Paketen und protokollieren Sie fehlerhafte IP-Adressen. Geben Sie Folgendes in ein Terminalfenster ein
sudo vi /etc/sysctl.conf
Bearbeiten Sie die Datei /etc/sysctl.conf und entfernen Sie den Kommentar oder fügen Sie die folgenden Zeilen hinzu:
# IP Spoofing protection
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.default.rp_filter = 1
# Ignore ICMP broadcast requests
net.ipv4.icmp_echo_ignore_broadcasts = 1
# Disable source packet routing
net.ipv4.conf.all.accept_source_route = 0
net.ipv6.conf.all.accept_source_route = 0
net.ipv4.conf.default.accept_source_route = 0
net.ipv6.conf.default.accept_source_route = 0
# Ignore send redirects
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
# Block SYN attacks
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_max_syn_backlog = 2048
net.ipv4.tcp_synack_retries = 2
net.ipv4.tcp_syn_retries = 5
# Log Martians
net.ipv4.conf.all.log_martians = 1
net.ipv4.icmp_ignore_bogus_error_responses = 1
# Ignore ICMP redirects
net.ipv4.conf.all.accept_redirects = 0
net.ipv6.conf.all.accept_redirects = 0
net.ipv4.conf.default.accept_redirects = 0
net.ipv6.conf.default.accept_redirects = 0
# Ignore Directed pings
net.ipv4.icmp_echo_ignore_all = 1
Geben Sie Folgendes ein, um sysctl mit den neuesten Änderungen neu zu laden:
sudo sysctl -p
Öffnen Sie ein Terminal und geben Sie Folgendes ein:
sudo vi /etc/host.conf
Fügen Sie die folgenden Zeilen hinzu oder bearbeiten Sie sie:
order bind,hosts
nospoof on
Bearbeiten Sie die Datei php.ini:
sudo vi /etc/php5/apache2/php.ini
Fügen Sie die folgenden Zeilen hinzu oder bearbeiten Sie sie:
disable_functions = exec,system,shell_exec,passthru
register_globals = Off
expose_php = Off
magic_quotes_gpc = On
DenyHosts ist ein Python-Programm, das SSH-Angriffe automatisch blockiert, indem Einträge zu /etc/hosts.deny hinzugefügt werden. DenyHosts informiert Linux-Administratoren auch über anstößige Hosts, angegriffene Benutzer und verdächtige Anmeldungen.
Öffnen Sie ein Terminal und geben Sie Folgendes ein:
sudo apt-get install denyhosts
Bearbeiten Sie nach der Installation die Konfigurationsdatei /etc/denyhosts.conf und ändern Sie die E-Mail- Adresse und andere Einstellungen nach Bedarf.
Um die Admin-E-Mail-Einstellungen zu bearbeiten, öffnen Sie ein Terminalfenster und geben Sie Folgendes ein:
sudo vi /etc/denyhosts.conf
Ändern Sie die folgenden Werte nach Bedarf auf Ihrem Server:
ADMIN_EMAIL = root@localhost
SMTP_HOST = localhost
SMTP_PORT = 25
#SMTP_USERNAME=foo
#SMTP_PASSWORD=bar
SMTP_FROM = DenyHosts nobody@localhost
#SYSLOG_REPORT=YES
Fail2ban ist fortgeschrittener als DenyHosts, da es die Protokollüberwachung auf andere Dienste wie SSH, Apache, Courier, FTP und mehr erweitert.
Fail2ban scannt Protokolldateien und verbietet IP-Adressen, die böswillige Anzeichen aufweisen - zu viele Kennwortfehler, auf der Suche nach Exploits usw.
In der Regel wird Fail2Ban dann zum Aktualisieren der Firewall-Regeln verwendet, um die IP-Adressen für einen bestimmten Zeitraum abzulehnen. Es können jedoch auch beliebige andere Aktionen konfiguriert werden. Fail2Ban wird standardmäßig mit Filtern für verschiedene Dienste (Apache, Kurier, FTP, SSH usw.) geliefert.
Öffnen Sie ein Terminal und geben Sie Folgendes ein:
sudo apt-get install fail2ban
Bearbeiten Sie nach der Installation die Konfigurationsdatei /etc/fail2ban/jail.local und erstellen Sie die Filterregeln nach Bedarf.
Um die Einstellungen zu bearbeiten, öffnen Sie ein Terminalfenster und geben Sie Folgendes ein:
sudo vi /etc/fail2ban/jail.conf
Aktivieren Sie alle Dienste , die Sie überwachen möchten fail2ban würde durch Ändern enabled = false * aktiviert = true *
Wenn Sie beispielsweise die SSH-Überwachung und das Verbot des Gefängnisses aktivieren möchten, suchen Sie die folgende Zeile und ändern Sie die Einstellung von false in true . Das ist es.
[ssh]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
Wenn Sie E-Mails von Fail2Ban erhalten möchten, wenn Hosts gesperrt sind, ändern Sie die folgende Zeile in Ihre E-Mail-Adresse.
destemail = root@localhost
und ändere die folgende Zeile von:
action = %(action_)s
zu:
action = %(action_mwl)s
Sie können auch Regelfilter für die verschiedenen Dienste erstellen , die fail2ban überwachen soll und die nicht standardmäßig bereitgestellt werden.
sudo vi /etc/fail2ban/jail.local
Eine gute Anleitung zum Konfigurieren von fail2ban und zum Erstellen der verschiedenen Filter finden Sie in HowtoForge - hier finden Sie ein Beispiel
Wenn Sie mit der Konfiguration von Fail2Ban fertig sind, starten Sie den Dienst neu mit:
sudo /etc/init.d/fail2ban restart
Sie können den Status auch mit überprüfen.
sudo fail2ban-client status
Sowohl RKHunter als auch CHKRootkit machen im Prinzip dasselbe - überprüfen Sie Ihr System auf Rootkits. Kein Schaden bei der Verwendung von beiden.
Öffnen Sie ein Terminal und geben Sie Folgendes ein:
sudo apt-get install rkhunter chkrootkit
Um chkrootkit auszuführen, öffnen Sie ein Terminalfenster und geben Sie Folgendes ein:
sudo chkrootkit
So aktualisieren Sie RKHunter und führen es aus Öffnen Sie ein Terminal und geben Sie Folgendes ein
sudo rkhunter --update
sudo rkhunter --propupd
sudo rkhunter --check
Nmap ("Network Mapper") ist ein kostenloses Open Source-Dienstprogramm für die Netzwerkerkennung und Sicherheitsüberwachung.
Öffnen Sie ein Terminal und geben Sie Folgendes ein:
sudo apt-get install nmap
Scannen Sie Ihr System nach offenen Ports mit:
nmap -v -sT localhost
SYN-Scannen mit folgenden Funktionen:
sudo nmap -v -sS localhost
Logwatch ist ein anpassbares Loganalysesystem. Logwatch analysiert die Protokolle Ihres Systems und erstellt einen Bericht, in dem die von Ihnen angegebenen Bereiche analysiert werden. Logwatch ist einfach zu bedienen und funktioniert auf den meisten Systemen direkt aus dem Paket.
Öffnen Sie ein Terminal und geben Sie Folgendes ein:
sudo apt-get install logwatch libdate-manip-perl
Verwenden Sie zum Anzeigen der Logwatch-Ausgabe weniger:
sudo logwatch | less
Geben Sie Folgendes ein, um einen Logwatch-Bericht für die letzten 7 Tage per E-Mail an eine E-Mail-Adresse zu senden, und ersetzen Sie mail@domain.com durch die erforderliche E-Mail-Adresse. :
sudo logwatch --mailto mail@domain.com --output mail --format html --range 'between -7 days and today'
Tiger ist ein Sicherheitstool, das sowohl als Sicherheitsüberprüfungs- als auch als Einbruchserkennungssystem eingesetzt werden kann.
Öffnen Sie ein Terminal und geben Sie Folgendes ein:
sudo apt-get install tiger
Um Tiger auszuführen, geben Sie Folgendes ein:
sudo tiger
Alle Tiger-Ausgaben befinden sich im Verzeichnis / var / log / tiger
Öffnen Sie zum Anzeigen der Tiger-Sicherheitsberichte ein Terminal und geben Sie Folgendes ein:
sudo less /var/log/tiger/security.report.*
magic_quotes_gpc = On
. Magic Quotes wurde zuerst veraltet und dann entfernt: php.net/manual/en/security.magicquotes.whynot.php
Da Sie sagten, dies ist ein Web-Hosting-Server ... Ich möchte meine bewährten Methoden und Erfahrungen aus 5 langen Jahren in der Web-Hosting-Linie teilen .
Aus meinen Erfahrungen in der Vergangenheit sollten Sie, anstatt sofort in die Konfigurationshölle zu gehen, zuerst die niedrig hängenden Sicherheitstrauben zusammenbauen, wie auf dem angegebenen Artikel angegeben.
Da Sie LAMP haben, müssen Sie sehr vorsichtig mit PHP und seinen php.ini-Einstellungen sein. Dies ist ein guter Link zum Sichern von PHP. PHP hat Superkräfte, die zu einer Sicherheitsschleife werden können, wenn sie nicht richtig konfiguriert werden.
Sie können einen Cron-Job verwenden , um zu überprüfen, wann Ihre Dateien ohne Ihre Erlaubnis geändert und möglicherweise gehackt wurden. mit diesem Cron Job . Ich bevorzuge Notepad ++ , um die Cron-Ergebnisse zu vergleichen (lade die Cron-E-Mail direkt von deinem Webserver herunter und öffne sie in Notepad ++).
Wenn Sie SEM installieren möchten, ist cPanel am besten geeignet (jedoch kostenpflichtig). Webmin und Zpanel sind sehr gute kostenlose Alternativen. Webmin ist besser, da atleast selbstsignierte Zertifikate verwendet und die Sicherheit erhöht.
Wenn Sie möchten, dass etwas sofort funktioniert, können Sie sich für schlüsselfertiges Linux entscheiden. Es basiert auf Ubuntu, ist extrem einfach zu implementieren und lässt sich flexibel an Ihre Bedürfnisse anpassen. Mit sehr wenig Aufwand erhalten Sie Sicherheit aus der Box. Dies ist ihr LAMP-Stack . Ich persönlich benutze und bevorzuge dies nur.
Wenn Sie von vorne anfangen, können Sie auch ISPconfig3 installieren. Anleitung hier .
Sie können Ihre Sicherheit testen, indem Sie versuchen, mit Back-Track-Linux in Ihre Sicherheit einzudringen .
Behalten Sie komplexe lange und zufällige Passwörter. Speichern Sie sie nicht auf dem PC. Schreib sie auf. Verwenden Sie eine Live-CD, um auf diese Anmeldungen zuzugreifen.
Besorgen Sie sich eine Brute-Force- Schutzsoftware wie fail2ban.
Führen Sie nicht die Dämonen aus, die Sie nicht benötigen.
Blockieren Sie alle unnötigen Ports . Seien Sie äußerst vorsichtig mit dem SSH-Port (22).
Holen Sie sich eine statische IP auf dem System, über die Sie den Server verwalten. Machen Sie die meisten Dinge IP-Block und erlauben Sie nur Ihrer bestimmten IP, auf diese Konfigurationsorte wie Port 22 zuzugreifen .
Am Ende des Tages ... arbeiten Sie mit äußerster Besonnenheit, werden Sie nicht emotional mit der Installation und die Anwendung von gesundem Menschenverstand führt Sie weit darüber hinaus.
**My heartiest best wishes to you. good luck.**
brute force attacks
und dictionary attacks
.. Zufällige lange Passwort sind der einzige Weg, um sich vor solchen Angriffen zu schützen.
Nutzen Sie das Bastille Linux-Projekt.
Es bietet ein interaktives Tool, mit dem Sie zusätzliche Sicherheitsmaßnahmen durchführen können, um die Gesamtsicherheit zu erhöhen und die Anfälligkeit für Kompromisse für Ihr Ubuntu-System (von Bastille Linux ) zu verringern .
Es bietet eine Bewertungs- und Berichtsfunktion, mit der Sie feststellen können, welche Teile des Systems nicht gesperrt sind. Es überprüft das System schreibgeschützt und gibt Auskunft über den Status der einzelnen Härtungselemente. Bastille könnte beispielsweise prüfen, ob der DNS-Server in einem Chroot-Gefängnis gesperrt ist, ob Telnet deaktiviert ist oder ob Kennwörter eine gute Länge haben müssen. Sie können sich über diesen Link eine reine Web-Demo ansehen (weitere Informationen ).
Hier können Sie eine Vorschau der (einzigen) Web-Demo anzeigen .
Verwenden Sie diese Option nmap
auf allen Schnittstellen des Computers, damit Sie wissen, welche Dienste auf Ihrem Computer ausgeführt werden. Dies ist ein wesentliches Werkzeug für die Sicherheit.
Entfernen Sie alle nicht benötigten Dienste von Ihren externen Schnittstellen. Sie können MySQL so konfigurieren, dass nur bestimmte Schnittstellen wie localhost überwacht werden.
Verwenden Sie ufw, um Ihren SSH-Dienst (und mögliche andere) so zu schützen, dass nicht zu viele (fehlgeschlagene) Verbindungen pro Minute von demselben Computer zugelassen werden. Das wird Brute-Force-Angriffe schwerer machen. Die Portnummer zu ändern ist nicht so nützlich, nur Dunkelheit, keine Sicherheit.
Seien Sie bei der Anzahl der Konten auf Ihrem Computer restriktiv. Installieren Sie auch nicht mehr Pakete / Programme, als Sie tatsächlich verwenden. Installieren Sie nur X11-Clients, keinen X11-Server.
Erlaube ssh-login nur mit digitalen Zertifikaten, ohne Passwort. Das macht auch Brute-Force-Angriffe schwer / unmöglich.
Ich würde auch das CIS Debian Benchmarks Dokument konsultieren und es hat eine bedeutende Anzahl von Prozeduren und Prozessen zum Härten des Betriebssystems, die auf Ubuntu zutreffen, da es eine Ableitung von Debian ist. Ich würde auch konsultieren:
Sicherheit hat immer einen Preis. Das Setzen einiger realistischer Grenzen hilft Ihnen dabei, Ihre Ziele zu erreichen. Ich würde folgende Aspekte berücksichtigen:
Wenn Sie alle Links überprüfen, die hier gepostet werden, sollte meiner Meinung nach dieser Link hinzugefügt werden. Es wird nicht nur detailliert beschrieben, wie Sie Ihre Software einrichten, sondern auch über den Sicherheitsplan nachdenken. Als Plus wird jeder auszuführende Befehl mit einer Quelle erklärt.
Ich habe vor nicht allzu langer Zeit einen Beitrag darüber verfasst, wie Ubuntu gesichert werden kann. 16.04-18.04. Diese Schritte umfassen:
Ersetzen Sie die Kennwortanmeldung durch autorisierte Schlüssel. Installieren Sie eine Firewall auf Ihrem Linux-Server
und noch einiges mehr. https://hostup.org/blog/how-to-secure-a-ubuntu-linux-server-in-3-simple-steps/