Linux ist ein offenes System. Im Internet sind viele vorgefertigte Programme und Tools zu finden. Das ist sowohl für Benutzer als auch für Hacker praktisch, da sie leicht Programme und Tools finden können, mit denen sie sich in Linux-Systeme einschleichen oder wichtige Informationen auf Linux-Systemen stehlen können. Solange wir jedoch die verschiedenen Systemfunktionen von Linux sorgfältig konfigurieren und die notwendigen Sicherheitsmaßnahmen ergreifen, haben Hacker keine Chance, davon zu profitieren. Zu den Sicherheitseinstellungen für Linux-Systeme gehören im Allgemeinen das Abbrechen unnötiger Dienste, die Einschränkung des Fernzugriffs, das Verbergen wichtiger Daten, das Schließen von Sicherheitslücken, die Verwendung von Sicherheitstools und regelmäßige Sicherheitsüberprüfungen. Dieser Artikel ist eine praktische Anleitung zum Nachschlagen. Prinzipien wie IP-Spoofing werden darin nicht behandelt und Sicherheitsprobleme können nicht durch ein paar Befehlszeilen verhindert werden. Hier sind nur die grundlegenden Methoden zur Sicherheitshärtung auf Linux-Systemen. Neue Inhalte werden später hinzugefügt. Hinweis: Alle Dateien müssen vor der Änderung gesichert werden. cp /etc/passwd{,.dist} 1. Deaktivieren Sie nicht verwendete Benutzer in Linux Hinweis: Es wird nicht empfohlen, direkt zu löschen. Wenn Sie einen Benutzer benötigen, wird es mühsam, ihn selbst wieder hinzuzufügen. Sie können es auch mit Benutzername des Kommentars: # cat /etc/passwd|grep ^# #adm:x:3:4:adm:/var/adm:/sbin/nologin #lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin #shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown #halt:x:7:0:halt:/sbin:/sbin/halt #uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin #operator:x:11:0:operator:/root:/sbin/nologin #spiele:x:12:100:spiele:/usr/spiele:/sbin/nologin #gopher:x:13:30:gopher:/var/gopher:/sbin/nologin #ftp:x:14:50:FTP-Benutzer:/var/ftp:/sbin/nologin #nfsnobody:x:65534:65534:Anonymer NFS-Benutzer:/var/lib/nfs:/sbin/nologin #postfix:x:89:89::/var/spool/postfix:/sbin/nologin Mit Linux kommentierte Gruppen: # Katze /etc/Gruppe|grep ^# #adm:x:4:adm,daemon #lp:x:7:daemon #uucp:x:14: #spiele:x:20: #gopher:x:30: #video:x:39: #dip:x:40: #ftp:x:50: #audio:x:63: #floppy:x:19: #postfix:x:89: 2. Linux beendet ungenutzte Dienste # chkconfig --list |grep '3:on' Maildienst über den Mailserver des Unternehmens: Dienstpostfix-Stopp chkconfig postfix --level 2345 aus Allgemeiner Unix-Druckdienst, nicht nützlich für Server: Service Tassen Stopp chkconfig cups --level 2345 aus Passen Sie die CPU-Geschwindigkeit an, um Strom zu sparen. Häufige Verwendung bei Laptops: Dienst CPU-Geschwindigkeit stoppen chkconfig cpuspeed --level 2345 aus Drahtlose Bluetooth-Kommunikation, nicht nützlich für Server: Dienst Bluetooth Stopp chkconfig bluetooth --level 2345 aus Anfangseinstellungen nach der Systeminstallation, die nach dem ersten Systemstart nutzlos sind: Dienst Firstboot stoppen chkconfig firstboot --level 2345 aus Linux fährt den NFS-Dienst und -Client herunter: Dienst Netfs stoppen chkconfig netfs --level 2345 aus Dienst NFSLock stoppen chkconfig nfslock --level 2345 aus Wenn Sie einen Dienst wiederherstellen möchten, können Sie Folgendes tun: Dienst acpid starten und chkconfig acpid ein Sie können das Setup-Tool auch verwenden, um 3. Deaktivieren Sie IPV6 in Linux IPv6 wurde entwickelt, um das Problem der Erschöpfung von IPv4-Adressen zu lösen, unsere Server verwenden es jedoch im Allgemeinen nicht. Im Gegenteil: Durch die Deaktivierung von IPv6 wird das Netzwerk nicht nur schneller, sondern auch der Verwaltungsaufwand verringert und die Sicherheit verbessert. Die folgenden Schritte deaktivieren IPv6 auf CentOS vollständig. Linux verbietet das Laden von IPv6-Modulen: Um zu verhindern, dass das System IPv6-bezogene Module lädt, müssen Sie Alias net-pf-10 aus Optionen IPv6 deaktivieren = 1 Linux deaktiviert IPv6-basierte Netzwerke, sodass deren Start nicht ausgelöst wird: # vi /etc/sysconfig/netzwerk NETWORKING_IPV6=nein Linux deaktiviert die IPv6-Einstellungen der Netzwerkkarte, sodass es nur im IPv4-Modus läuft: # vi /etc/sysconfig/network-scripts/ifcfg-eth0 IPV6INIT=nein IPV6_AUTOCONF=nein Linux schaltet ip6tables ab: # chkconfig ip6tables off Starten Sie das System neu und prüfen Sie, ob die Änderungen wirksam werden: grep ipv6 # ifconfig | grep -i inet6 Wenn keine Ausgabe erfolgt, ist das IPv6-Modul deaktiviert, andernfalls ist es aktiviert. 4. Linux iptables-Regeln Aktivieren Sie die Linux-Firewall, um den Zugriff illegaler Programme zu verhindern. Verwenden Sie iptable-Regeln, um eingehende, ausgehende und weitergeleitete Pakete zu filtern. Wir können den Zugriff auf bestimmte UDP/TCP-Ports basierend auf Quell- und Zieladressen gewähren oder verweigern. Weitere Informationen zu Firewall-Einstellungen finden Sie im Blogbeitrag „Beispiel für Iptables-Einstellungen“. 5. Linux SSH-Sicherheit Wenn möglich, sollten Sie als Erstes den Standardport 22 für SSH ändern. Wenn Sie ihn auf einen größeren Port wie 20002 ändern, wird der Sicherheitsfaktor erheblich erhöht und die Möglichkeit eines SSH-Cracking-Logins verringert. Erstellen Sie identifizierbare Anwendungsbenutzer wie CRM und Systemverwaltungsbenutzer sysmgr # useradd crm -d /apps/crm # passwd crm # Benutzeradd sysmgr # passwd sysmgr 5.1 Linux erlaubt nur Benutzern in der Wheel-Gruppe den Wechsel zu su # usermod -G Rad sysmgr # vi /etc/pam.d/su # Entfernen Sie das Kommentarzeichen aus der folgenden Zeile, um zu verlangen, dass ein Benutzer der Gruppe „Wheel“ angehört. Authentifizierung erforderlich pam_wheel.so use_uid Wenn andere Benutzer zu Root wechseln, wird ihnen die Meldung „su: falsches Passwort“ angezeigt, auch wenn sie das richtige Passwort eingeben. 5.2 Zeitüberschreitung bei der Linux-Anmeldung Wenn der Benutzer 5 Minuten lang online ist, ohne etwas zu tun, wird die Verbindung getrennt. Fügen Sie Folgendes zu /etc/profile hinzu: Export TMOUT=300 schreibgeschütztes TMOUT 5.3 Linux verbietet Root die Remote-Anmeldung # vi /etc/ssh/sshd_config PermitRootLogin nein 5.4 Linux begrenzt die Anzahl fehlgeschlagener Anmeldungen und Sperren Nach Wenn die Anmeldung 5 Mal fehlschlägt, wird das System für 180 Sekunden gesperrt. Sie können bei Bedarf festlegen, ob Root einbezogen werden soll. 5.5 IP-Einschränkung bei der Anmeldung unter Linux (Da es an eine feste IP oder ein festes IP-Segment gebunden sein muss, wurde es noch nicht festgelegt.) Eine strengere Einschränkung besteht darin, die für SSH zulässigen Benutzer und Quell-IP-Adressen in sshd_config zu definieren: ## erlaubte SSH-Benutzer sysmgr AllowUsers [email protected].* Oder verwenden Sie tcpwrapper: vi /etc/hosts.deny sshd:alle vi /etc/hosts.allow sshd:172.29.73.23 sshd:172.29.73. 6. Die Linux-Konfiguration kann nur Schlüsseldateien zum Anmelden verwenden Die Verwendung von Schlüsseldateien anstelle einer einfachen Kennwortauthentifizierung verbessert die Sicherheit ebenfalls erheblich: [dir@Benutzername ~]$ ssh-keygen -t rsa -b 2048 Generieren eines öffentlichen/privaten RSA-Schlüsselpaars. Geben Sie die Datei ein, in der der Schlüssel gespeichert werden soll (/root/.ssh/id_rsa): //Standardpfad, drücken Sie die Eingabetaste.Geben Sie die Passphrase ein (leer, wenn keine Passphrase vorhanden ist): //Geben Sie Ihre Schlüsselphrase ein und verwenden Sie sie beim Anmelden.Geben Sie die gleiche Passphrase erneut ein: Ihre Identifikation wurde in /root/.ssh/id_rsa gespeichert. Ihr öffentlicher Schlüssel wurde in /root/.ssh/id_rsa.pub gespeichert. Der Schlüsselfingerabdruck ist: 3e:fd:fc:e5:d3:22:86:8e:2c:4b:a7:3d:92:18:9f:64 [email protected] Das Randomart-Bild des Schlüssels ist: +--[RSA 2048]----+ | | … | o++o..oo..o| +-----------------+ Benennen Sie den öffentlichen Schlüssel in authorized_key um: $ mv ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys $ chmod 600 ~/.ssh/authorized_keys Laden Sie die private Schlüsseldatei id_rsa auf Ihren lokalen Computer herunter (benennen Sie sie zur einfacheren Identifizierung in Hostname_Benutzername_id_rsa) und speichern Sie sie an einem sicheren Ort. In Zukunft muss der Benutzer mit dem Benutzernamen diesen privaten Schlüssel und die Passphrase verwenden, um sich bei diesem Host anzumelden (das eigene Passwort des Benutzers mit dem Benutzernamen wird nicht mehr verwendet). Darüber hinaus müssen Sie die Datei /etc/ssh/sshd_config ändern Offene Anmerkungen RSA-Authentifizierung ja PubkeyAuthentifizierung ja Autorisierte Schlüsseldatei .ssh/authorized_keys Wir verlangen, dass sich der Benutzer mit dem Benutzernamen (der zu anderen Benutzern wechseln kann, insbesondere root) mithilfe der SSH-Schlüsseldatei anmelden muss, während sich andere normale Benutzer direkt mit einem Kennwort anmelden können. Daher müssen Sie am Ende der Datei sshd_config Folgendes hinzufügen: Benutzer-Abschnitt abgleichen PasswortAuthentifizierung nein Starten Sie den SSHD-Dienst neu. Außerdem eine Erinnerung, dass dieses Paar aus öffentlichen und privaten Schlüsseln separat auf einem anderen Computer gespeichert werden muss. Der Verlust des öffentlichen Schlüssels auf dem Server oder des privaten Schlüssels (oder der Schlüsselphrase) auf der Verbindungsseite kann dazu führen, dass Sie sich nicht mehr beim Server anmelden und keine Root-Berechtigungen erhalten können! 7. Reduzieren Sie die Verlaufsbefehlsaufzeichnungen in Linux Je mehr historische Befehlsaufzeichnungen ausgeführt wurden, desto einfacher ist die Wartung, desto größer sind jedoch auch die Sicherheitsprobleme. Suchen Sie nach Oder bereinigen Sie 8. Linux erweitert spezielle Dateiberechtigungen Fügen Sie den folgenden Dateien unveränderliche Attribute hinzu, um zu verhindern, dass unbefugte Benutzer Berechtigungen erhalten chattr +i /etc/passwd chattr +i /etc/Schatten chattr +i /etc/Gruppe chattr +i /etc/gshadow chattr +i /etc/services #Sperren Sie die Portlistendatei der Systemdienste, um ein unbefugtes Löschen oder Hinzufügen von Diensten zu verhindern. chattr +i /etc/pam.d/su chattr +i /etc/ssh/sshd_config Anzeigen der Eigenschaften einer Datei lsattr /etc/passwd /etc/shadow /etc/dienste /etc/ssh/sshd_config Hinweis: Nachdem Sie die oben beschriebene Änderung der Chattr-Berechtigungen ausgeführt haben, können Sie keine Benutzer mehr hinzufügen oder löschen. Wenn Sie erneut Benutzer hinzufügen oder löschen möchten, müssen Sie zuerst die obigen Einstellungen löschen. Führen Sie nach dem Hinzufügen und Löschen von Benutzern die obigen Vorgänge erneut aus. Löschen Sie beispielsweise die schreibgeschützte Berechtigung 9. Linux verhindert gängige Netzwerkangriffe Cyberangriffe lassen sich nicht mit ein paar Einstellungszeilen vermeiden. Die folgenden einfachen Maßnahmen minimieren zwar die Möglichkeit und erhöhen den Schwierigkeitsgrad des Angriffs, können ihn jedoch nicht vollständig verhindern. 9.1 Linux-Bann-Ping Ping blockieren Wenn niemand Ihr System anpingen kann, erhöht sich natürlich die Sicherheit und Ping-Floods können effektiv verhindert werden. 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 Oder verwenden Sie iptables, um Ping zu deaktivieren: iptables -A INPUT -p icmp --icmp-type 0 -s 0/0 -j DROP Pingen anderer Hosts nicht zulassen: iptables -A AUSGABE -p icmp --icmp-type 8 -j DROP 9.2. Linux verhindert IP-Spoofing Bearbeiten Sie die Datei /etc/host.conf und fügen Sie die folgenden Zeilen hinzu, um IP-Spoofing-Angriffe zu verhindern. order hosts,bind #Namensinterpretation ordermulti on #Hosts mehrere IP-Adressen erlaubennospoof on #IP-Adress-Spoofing verbieten 9.3 Linux verhindert DoS-Angriffe DoS-Angriffe können verhindert werden, indem für alle Benutzer des Systems Ressourcenbeschränkungen festgelegt werden, beispielsweise hinsichtlich der maximalen Anzahl von Prozessen und der Speichernutzung. * weicher Kern 0 * weicher nproc 2048 * harter nproc 16384 * Soft-Nofile 1024 * hartes Nofile 65536 core 0 bedeutet, dass die Erstellung von Core-Dateien verboten ist; Dann müssen Sie die Datei /etc/pam.d/login bearbeiten, um zu prüfen, ob die folgende Zeile vorhanden ist. Die Werte der 10. Linux behebt bekannte Sicherheitslücken Unter Linux können gelegentlich zerstörerische Schwachstellen auftreten, wie etwa 11. Regelmäßige Sicherheitsüberprüfung des Linux-Protokolls Verschieben Sie die Protokolle auf einen dedizierten Protokollserver, um zu verhindern, dass Eindringlinge lokale Protokolle einfach ändern. Nachfolgend sind die gängigen Standardprotokolldateien von Linux und ihre Verwendung aufgeführt: /var/log/message – zeichnet Systemprotokolle oder aktuelle Aktivitätsprotokolle auf. /var/log/auth.log – Authentifizierungsprotokoll. /var/log/cron – Crond-Protokolle (Cron-Jobs). /var/log/maillog – Mailserver-Protokoll. /var/log/secure – Authentifizierungsprotokoll. /var/log/wtmp Historische Anmelde-, Abmelde-, Start- und Herunterfahrprotokolle. Der Befehl lastb kann Benutzer anzeigen, deren Anmeldung fehlgeschlagen ist. /var/run/utmp Aktuell angemeldetes Benutzerinformationsprotokoll. Die Informationen der Befehle w und who stammen hieraus. /var/log/yum.log Yum-Protokoll. Lesen Sie die ausführliche Analyse von CentOS, um den Eindringling über Protokolle rückgängig zu machen. 11.1 Installieren von logwatch unter Linux Die Mail-Funktion von Logwatch verwendet den eigenen Mailserver des Hostsystems zum Senden von E-Mails. Daher muss das System einen Mailserver wie Sendmail, Postfix, Qmail usw. installieren. Informationen zu Installations- und Konfigurationsmethoden finden Sie im Blogbeitrag „Linux-Protokollüberwachung logwatch“. 12. Linux-Webserver-Sicherheit Wenn bei der Konfiguration serverseitiger Programme wie Apache oder Tomcat Sicherheitsprobleme auftreten, können Sie zur Verstärkung der Sicherheit auf die Dokumentation zurückgreifen. Ich werde in Zukunft neue Artikel hinzufügen, wenn ich Zeit habe. Weitere Lösungen zur Konfiguration der Linux-Serversicherheit finden Sie in den folgenden verwandten Artikeln Das könnte Sie auch interessieren:
|
>>: Zusammenfassung einiger wichtiger Punkte zu mysql init_connect
【Frage】 Wenn die äußere und die innere Tabelle ve...
Ich habe die Mysql FIND_IN_SET-Funktion vor einig...
Boolescher MySQL-Wert, speichert „false“ oder „tr...
Vor dem Verstecken: Nach dem Verstecken: CSS: Code...
Was ist eine Tabelle? Es besteht aus Zellenzellen...
Vorwort Backup ist die Grundlage der Notfallwiede...
Inhaltsverzeichnis Ereignis Seite wird geladen Ve...
Inhaltsverzeichnis Reaktive Funktion Verwendung: ...
Vorwort Ich habe zuvor eine Komponente im Ladesti...
Inhaltsverzeichnis Vue-Monitoreigenschaften Was i...
Inhaltsverzeichnis 1. Einleitung 2. auswählen 2.1...
1. Unterschiede in der Netzwerkkonfiguration zwis...
Hier sind einige Probleme, die bei der Verwendung...
Inhaltsverzeichnis 1. Vue2-Syntax 2. Nutzung von ...
In diesem Artikelbeispiel wird der spezifische Co...