So verbessern Sie die Sicherheit von Linux- und Unix-Servern

So verbessern Sie die Sicherheit von Linux- und Unix-Servern

Netzwerksicherheit ist ein sehr wichtiges Thema und der Server ist das wichtigste Bindeglied in der Netzwerksicherheit. Linux gilt als relativ sicherer Internetserver. Da es sich um ein Open-Source-Betriebssystem handelt, werden Sicherheitslücken im Linux-System von Freiwilligen aus aller Welt im Internet aktiv behoben. Allerdings gelingt es den Systembetreuern oft nicht, rechtzeitig Informationen einzuholen und Korrekturen vorzunehmen, was Hackern eine Gelegenheit bietet, davon zu profitieren. Verglichen mit den Sicherheitslücken dieser Systeme selbst werden jedoch mehr Sicherheitsprobleme durch eine falsche Konfiguration verursacht und können durch eine richtige Konfiguration vermieden werden. Je mehr Dienste auf einem Server ausgeführt werden, desto größer ist die Möglichkeit falscher Konfigurationen und desto größer ist die Möglichkeit von Sicherheitsproblemen.

Wie wir alle wissen, ist Netzwerksicherheit ein sehr wichtiges Thema und Linux und Unix sind die beliebtesten Betriebssysteme, die auf Servern laufen. Der folgende Artikel wird einige geeignete Konfigurationen stärken, um das Auftreten einiger Sicherheitsprobleme zu verhindern und so die Sicherheit von Linux/Unix-Serversystemen zu verbessern.

1. Systemsicherheitsprotokolldateien

Um einen Netzwerkangriff zu erkennen, sind die Logdateien im Betriebssystem ein wichtiger Anhaltspunkt. Wenn Ihr System direkt mit dem Internet verbunden ist und Sie feststellen, dass viele Leute versuchen, sich über Telnet/FTP bei Ihrem System anzumelden, können Sie „#more /var/log/secure grep rejected“ ausführen, um die Angriffe auf das System zu überprüfen, damit Sie entsprechende Gegenmaßnahmen ergreifen können, z. B. die Verwendung von SSH anstelle von Telnet/rlogin.

2. Start- und Anmeldesicherheit

1. BIOS-Sicherheit

Legen Sie das BIOS-Kennwort fest und ändern Sie die Startreihenfolge, um das Booten des Systems von einer Diskette zu verhindern.

2. Benutzerkennwort

Benutzerkennwörter sind ein grundlegender Ausgangspunkt für die Linux-Sicherheit. Viele Leute verwenden zu einfache Benutzerkennwörter, was bedeutet, Eindringlingen Tür und Tor zu öffnen. Obwohl es theoretisch kein Benutzerkennwort gibt, das nicht geknackt werden kann, solange genügend Zeit und Ressourcen zur Verfügung stehen, ist ein richtig ausgewähltes Kennwort schwer zu knacken. Ein gutes Benutzerpasswort ist eine Zeichenfolge, die nur der Benutzer sich leicht merken und verstehen kann und die niemals irgendwo aufgeschrieben werden sollte.

3. Standardkonto

Alle Standardkonten, die vom Betriebssystem selbst gestartet werden und nicht benötigt werden, sollten deaktiviert werden. Dies sollte bei der ersten Installation des Systems erfolgen. Linux bietet viele Standardkonten und je mehr Konten es gibt, desto anfälliger ist das System für Angriffe.

Sie können das Konto mit dem folgenden Befehl löschen.

#userdel Benutzername

Oder verwenden Sie den folgenden Befehl, um das Gruppenbenutzerkonto zu löschen.

# Groupdel-Benutzername

4. Kennwortdatei

Der Befehl chattr fügt den folgenden Dateien unveränderliche Attribute hinzu und verhindert so, dass nicht autorisierte Benutzer Berechtigungen erhalten.

# chattr +i /etc/passwd

# chattr +i /etc/shadow

# chattr +i /etc/Gruppe

# chattr +i /etc/gshadow

5. Deaktivieren Sie Strg+Alt+Entf, um den Computer neu zu starten

Ändern Sie die Datei /etc/inittab und kommentieren Sie die Zeile „ ca::ctrlaltdel:/sbin/shutdown -t3 -r now “ aus. Setzen Sie dann die Berechtigungen für alle Dateien im Verzeichnis /etc/rc.d/init.d/ zurück und führen Sie den folgenden Befehl aus:

# chmod -R 700 /etc/rc.d/init.d/*

Auf diese Weise kann nur Root alle oben genannten Skriptdateien lesen, schreiben oder ausführen.

6. Einschränken des su-Befehls

Wenn Sie nicht möchten, dass sich jemand als Root auf su anmelden kann, bearbeiten Sie die Datei /etc/pam.d/su und fügen Sie die folgenden beiden Zeilen hinzu:

Auth ausreichend /lib/security/pam_rootok.so debug

Authentifizierung erforderlich /lib/security/pam_wheel.so group=isd

Derzeit können nur Benutzer in der ISD-Gruppe als Root auf su zugreifen. Wenn Sie anschließend dem Benutzer „admin“ die Möglichkeit geben möchten, als Root auf su zuzugreifen, können Sie den folgenden Befehl ausführen:

# usermod -G10 admin

7. Anmeldeinformationen löschen

Standardmäßig enthält die Anmeldeaufforderung die Linux-Distribution, den Namen der Kernel-Version und den Server-Hostnamen. Bei einer Maschine mit hohen Sicherheitsanforderungen werden dadurch zu viele Informationen preisgegeben. Sie können /etc/rc.d/rc.local bearbeiten und die folgende Zeile auskommentieren, die Systeminformationen ausgibt.

# Dadurch wird /etc/issue bei jedem Bootvorgang überschrieben. Nehmen Sie also alle Änderungen vor, die Sie

# möchten Sie hier in /etc/issue vornehmen, sonst gehen sie beim Neustart verloren.

# echo "" > /etc/Problem

# echo "$R" >> /etc/Ausgabe

# echo "Kernel $(uname -r) auf $a $(uname -m)" >> /etc/issue

# cp -f /etc/issue /etc/issue.net

# echo >> /etc/Problem

Gehen Sie dann wie folgt vor:

# rm -f /etc/issue

# rm -f /etc/issue.net

# berühren Sie /etc/issue

# berühren Sie /etc/issue.net

3. Beschränken Sie den Netzwerkzugriff

1. NFS-Zugriff

Wenn Sie NFS-Netzwerkdateisystemdienste verwenden, sollten Sie sicherstellen, dass für Ihre Datei /etc/exports die restriktivsten Zugriffsberechtigungen festgelegt sind. Dies bedeutet, dass keine Platzhalter verwendet werden, keine Root-Schreibberechtigungen gewährt werden und die Datei nur als schreibgeschütztes Dateisystem gemountet werden kann. Bearbeiten Sie die Datei /etc/exports und fügen Sie die folgenden beiden Zeilen hinzu.

/dir/to/export host1.mydomain.com(ro,root_squash)

/dir/to/export host2.mydomain.com(ro,root_squash)

/dir/to/export ist das Verzeichnis, das Sie exportieren möchten, host.mydomain.com ist der Name der Maschine, die sich bei diesem Verzeichnis anmeldet, ro bedeutet, es als schreibgeschütztes System zu mounten, und root_squash verbietet root, in dieses Verzeichnis zu schreiben. Damit die Änderungen wirksam werden, führen Sie den folgenden Befehl aus.

# /usr/sbin/exportfs -a

2. Inetd-Einstellungen

Stellen Sie zunächst sicher, dass der Eigentümer von /etc/inetd.conf Root ist und die Dateiberechtigungen auf 600 eingestellt sind. Sobald die Einstellungen abgeschlossen sind, können Sie diese mit dem Befehl „ stat “ überprüfen.

# chmod 600 /etc/inetd.conf

Bearbeiten Sie dann /etc/inetd.conf, um die folgenden Dienste zu deaktivieren.

FTP Telnet Shell Login Exec Talk Ntalk IMAP Pop-2 Pop-3 Finger Authentifizierung

Wenn Sie ssh/scp installiert haben, können Sie Telnet/FTP auch deaktivieren. Damit die Änderungen wirksam werden, führen Sie den folgenden Befehl aus:

#killall -HUP inetd

Standardmäßig lassen die meisten Linux-Systeme alle Anfragen zu. Mit TCP_WRAPPERS lässt sich die Systemsicherheit ganz einfach verbessern. Sie können /etc/hosts.deny und /etc/hosts.allow ändern, um die Zugriffsbeschränkungen zu erhöhen. Wenn Sie beispielsweise /etc/hosts.deny auf „ALL: ALL“ setzen, können Sie standardmäßig sämtliche Zugriffe verweigern. Fügen Sie dann den zulässigen Zugriff in der Datei /etc/hosts.allow hinzu. Beispielsweise bedeutet „sshd: 192.168.1.10/255.255.255.0 gate.openarch.com“, dass die IP-Adresse 192.168.1.10 und der Hostname gate.openarch.com eine Verbindung über SSH herstellen dürfen.

Nachdem die Konfiguration abgeschlossen ist, können Sie mit tcpdchk Folgendes überprüfen:

# tcpdchk

tcpchk ist ein Tool zur Überprüfung der TCP_Wrapper-Konfiguration. Es überprüft Ihre TCP-Wrapper-Konfiguration und meldet alle gefundenen potenziellen/vorhandenen Probleme.

3. Einstellungen des Anmeldeterminals

Die Datei /etc/securetty gibt die TTY-Geräte an, die eine Root-Anmeldung erlauben. Sie wird vom Programm /bin/login gelesen und hat das Format einer Liste zulässiger Namen. Sie können /etc/securetty bearbeiten und die folgenden Zeilen auskommentieren.

#tty1

#tty2

#tty3

#tty4

#tty5

#tty6

Derzeit kann sich Root nur am Terminal tty1 anmelden.

4. Vermeiden Sie die Anzeige von System- und Versionsinformationen.

Wenn Sie nicht möchten, dass Remote-Anmeldebenutzer die System- und Versionsinformationen sehen, können Sie die Datei /etc/inetd.conf wie folgt ändern:

Telnet-Stream TCP wartet auf Root /usr/sbin/tcpd in.telnetd -

Das Hinzufügen von -h bedeutet, dass Telnet keine Systeminformationen anzeigt, sondern nur „login:“ anzeigt.

4. Angriffe verhindern

1. Ping blockieren Wenn niemand Ihr System anpingen kann, erhöht sich natürlich die Sicherheit. Fügen Sie dazu die folgende Zeile zur Datei /etc/rc.d/rc.local hinzu:

echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all

2. IP-Spoofing verhindern

Bearbeiten Sie die Datei host.conf und fügen Sie die folgenden Zeilen hinzu, um IP-Spoofing-Angriffe zu verhindern.

Reihenfolge binden,Hosts

Mehrfach aus

nospoof auf

3. DoS-Angriffe verhindern

Durch das Festlegen von Ressourcenbeschränkungen für alle Benutzer des Systems können DoS-Angriffe verhindert werden. Wie etwa die maximale Anzahl an Prozessen und die Speichernutzung. Beispielsweise können Sie die folgenden Zeilen zu /etc/security/limits.conf hinzufügen:

  • * Hardcore 0
  • * harter RSS 5000
  • * harter nproc 20

Dann müssen Sie die Datei /etc/pam.d/login bearbeiten, um zu prüfen, ob die folgende Zeile vorhanden ist.

Sitzung erforderlich /lib/security/pam_limits.so

Der obige Befehl deaktiviert Debugdateien, begrenzt die Anzahl der Prozesse auf 50 und die Speichernutzung auf 5 MB.

Nach den oben genannten Einstellungen ist Ihr Linux-Server bereits gegen die meisten bekannten Sicherheitsprobleme und Netzwerkangriffe immun. Ein guter Systemadministrator muss jedoch dennoch auf Netzwerksicherheitstrends achten und offengelegte und potenzielle Sicherheitslücken jederzeit patchen.

Zusammenfassen

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, dass der Inhalt dieses Artikels einen gewissen Lernwert für Ihr Studium oder Ihre Arbeit hat. Vielen Dank für Ihre Unterstützung von 123WORDPRESS.COM. Wenn Sie mehr darüber erfahren möchten, schauen Sie sich bitte die folgenden Links an

Das könnte Sie auch interessieren:
  • UNIX/LINUX SHELL - Syntax regulärer Ausdrücke - Detaillierte Erklärung und Verwendung
  • Detaillierte Einführung in den Nobody-Benutzer und Nologin im Unix/Linux-System
  • Empfohlene Sammlung: Nützliche Unix/Linux-Befehlskenntnisse
  • Detaillierte Erläuterung der Installation und Konfiguration von Supervisor (Linux/Unix-Prozessmanagementtool)
  • Vorgehensweise zum Neuladen der .vimrc-Datei ohne Neustart von Vim in Linux/Unix
  • Einführung in die Linux-Shell: Beherrschen Sie die Shell-Umgebung von Linux, OS X und Unix
  • Zwei Möglichkeiten zur Installation von Perl-Modulen unter Linux/Unix
  • Versteckter Overhead von Unix/Linux-Forks

<<:  Mysql Master-Slave-Synchronisation Last_IO_Errno:1236 Fehlerlösung

>>:  js implementiert Tabellen-Drag-Optionen

Artikel empfehlen

JavaScript imitiert Xiaomi-Karusselleffekt

Dieser Artikel ist eine selbstgeschriebene Nachah...

XHTML-Erste-Schritte-Tutorial: XHTML-Tags

Einführung in XHTML-Tags <br />Vielleicht is...

Lösen Sie das Problem der unsicheren Docker x509-Registrierung

Nach der Installation von Docker trat beim Versuc...

Teilen Sie 13 grundlegende Syntax von Typescript

Inhaltsverzeichnis 1. Was ist Ts 2. Grundlegende ...

jQuery implementiert die Drop-Down-Box zur Auswahl des Wohnortes

Der spezifische Code für die Verwendung von jQuer...

Verschönerung der Dualsystem-Boot-Schnittstelle für Win10 + Ubuntu20.04 LTS

Effektanzeige Die eingebaute Boot-Oberfläche ist ...

Tiefgreifendes Verständnis der MySQL-Selbstverbindung und Join-Assoziation

1. MySQL-Selbstverbindung MySQL muss beim Abfrage...

Eine kurze Erläuterung der MySQL-Benutzerberechtigungstabelle

MySQL erstellt bei der Installation automatisch e...

So installieren Sie eine MySQL-Datenbank unter Ubuntu

Ubuntu ist ein kostenloses und quelloffenes Deskt...