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

PHPz
Freigeben: 2023-05-19 14:43:06
nach vorne
1220 Leute haben es durchsucht

1. Systemsicherheitsaufzeichnungsdateien

Die Aufzeichnungsdateien im Betriebssystem sind wichtige Hinweise, um zu erkennen, ob ein Netzwerkeinbruch vorliegt. Wenn Ihr System direkt mit dem Internet verbunden ist und Sie feststellen, dass viele Personen Telnet/FTP-Anmeldeversuche bei Ihrem System durchführen, können Sie „#more /var/log/secure grep Refused“ ausführen, um die Angriffe auf das System zu überprüfen dass Sie entsprechende Gegenmaßnahmen ergreifen können, z. B. die Verwendung von ssh als Ersatz für Telnet/rlogin usw.

2. Start- und Anmeldesicherheit

1. BIOS-Sicherheit

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

2. Benutzerkennwort

Benutzerkennwort ist ein grundlegender Ausgangspunkt für die Linux-Sicherheit. Das von vielen Menschen verwendete Benutzerkennwort ist zwar theoretisch Tür und Tor, solange genügend Zeit vorhanden ist und Wenn Ressourcen verfügbar sind, gibt es kein Benutzerpasswort, das nicht geknackt werden kann, aber ein richtig gewähltes Passwort wird schwer zu knacken sein. Ein besseres Benutzerpasswort ist eine Zeichenfolge, die nur er sich leicht merken und verstehen kann und die niemals irgendwo ausgeschrieben werden sollte.

3. Das Standardkonto

sollte alle unnötigen Konten verbieten, die standardmäßig vom Betriebssystem selbst gestartet werden. Sie sollten dies tun, wenn Sie das System zum ersten Mal installieren. Linux bietet viele Standardkonten Je mehr Konten vorhanden sind, desto anfälliger ist das System für Angriffe.

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

# userdel用户名
Nach dem Login kopieren

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

# groupdel username
Nach dem Login kopieren

4. Der Befehl „Passwortdatei

chattr“ fügt der folgenden Datei ein unveränderliches Attribut hinzu, um zu verhindern, dass nicht autorisierte Benutzer Berechtigungen erhalten.

# chattr +i /etc/passwd

# chattr +i /etc/shadow

# chattr +i /etc/group

# chattr +i /etc/gshadow
Nach dem Login kopieren

5. Deaktivieren Sie Strg+Alt+Entf, um die Maschine neu zu starten. Befehl

Ändern Sie die Datei /etc/inittab und ändern Sie die Zeile „ca::ctrlaltdel:/sbin/shutdown -t3 -r now</“ Code>" Auskommentieren. Setzen Sie dann die Berechtigungen aller Dateien im Verzeichnis /etc/rc.d/init.d/ zurück und führen Sie den folgenden Befehl aus: <code>ca::ctrlaltdel:/sbin/shutdown -t3 -r now"一行注释掉。然后重新设置/etc/rc.d/init.d/目录下所有文件的许可权限,运行如下命令:

# chmod -r 700 /etc/rc.d/init.d/*
Nach dem Login kopieren

这样便仅有root可以读、写或执行上述所有脚本文件。

6.限制su命令

如果您不想任何人能够su作为root,可以编辑/etc/pam.d/su文件,增加如下两行:

auth sufficient /lib/security/pam_rootok.so debug

auth required /lib/security/pam_wheel.so group=isd
Nach dem Login kopieren

这时,仅isd组的用户可以su作为root。此后,如果您希望用户admin能够su作为root,可以运行如下命令:

# usermod -g10 admin
Nach dem Login kopieren

7.删减登录信息

默认情况下,登录提示信息包括linux发行版、内核版本名和服务器主机名等。对于一台安全性要求较高的机器来说这样泄漏了过多的信息。可以编辑/etc/rc.d/rc.local将输出系统信息的如下行注释掉。

# this will overwrite /etc/issue at every boot. so, make any changes you

# want to make to /etc/issue here or you will lose them when you reboot.

# echo "" > /etc/issue

# echo "$r" >> /etc/issue

# echo "kernel $(uname -r) on $a $(uname -m)" >> /etc/issue

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

# echo >> /etc/issue
Nach dem Login kopieren

然后,进行如下操作:

# rm -f /etc/issue

# rm -f /etc/issue.net

# touch /etc/issue

# touch /etc/issue.net
Nach dem Login kopieren

三、限制网络访问

1.nfs访问

如果您使用nfs网络文件系统服务,应该确保您的/etc/exports具有最严格的访问权限设置,也就是意味着不要使用任何通配符、不允许root写权限并且只能安装为只读文件系统。编辑文件/etc/exports并加入如下两行。

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

/dir/to/export host2.mydomain.com(ro,root_squash)
Nach dem Login kopieren

/dir/to/export 是您想输出的目录,host.mydomain.com是登录这个目录的机器名,ro意味着mount成只读系统,root_squash禁止root写入该目录。为了使改动生效,运行如下命令。

# /usr/sbin/exportfs -a
Nach dem Login kopieren

2.inetd设置

首先要确认/etc/inetd.conf的所有者是root,且文件权限设置为600。设置完成后,可以使用"stat

# chmod 600 /etc/inetd.conf
Nach dem Login kopieren

Dann kann nur Root alle oben genannten Skriptdateien lesen, schreiben oder ausführen .

6. Beschränken Sie den su-Befehl

Wenn Sie nicht möchten, dass jemand su als Root ausführen kann, können Sie die Datei /etc/pam.d/su bearbeiten und die folgenden zwei Zeilen hinzufügen: #🎜🎜 #
ftp telnet shell login exec talk ntalk imap pop-2 pop-3 finger auth
Nach dem Login kopieren

Derzeit können nur Benutzer in der isd-Gruppe als Root angemeldet sein. Wenn Sie anschließend möchten, dass der Benutzeradministrator su als Root verwenden kann, können Sie den folgenden Befehl ausführen:

#killall -hup inetd
Nach dem Login kopieren

7. Anmeldeinformationen löschen

Standardmäßig umfassen die Anmeldeaufforderungsinformationen die Linux-Distributionsversion, den Kernel-Versionsnamen, den Server-Hostnamen usw. Für eine Maschine mit hohen Sicherheitsanforderungen gehen dadurch zu viele Informationen verloren. Sie können /etc/rc.d/rc.local bearbeiten, um die folgenden Zeilen, die Systeminformationen ausgeben, auszukommentieren.

# tcpdchk 
Nach dem Login kopieren

Dann gehen Sie wie folgt vor:

# tty1

# tty2

# tty3

# tty4

# tty5

# tty6
Nach dem Login kopieren

3. Beschränken Sie den Netzwerkzugriff

1. NFS-Zugriff

Wenn Sie den NFS-Netzwerkdateisystemdienst verwenden, sollten Sie sicherstellen, dass Ihre /etc/exports über die restriktivsten Zugriffseinstellungen verfügt, was bedeutet, dass Sie keine Platzhalter verwenden und keine Root-Schreibberechtigungen zulassen , und Kann nur als schreibgeschütztes Dateisystem gemountet werden. Bearbeiten Sie die Datei /etc/exports und fügen Sie die folgenden zwei Zeilen hinzu.

telnet stream tcp nowait root /usr/sbin/tcpd in.telnetd -
Nach dem Login kopieren

/dir/to/export ist das Verzeichnis, das Sie ausgeben möchten, host.mydomain.com ist der Name der Maschine, die in diesem Verzeichnis angemeldet ist, ro bedeutet Mounten als schreibgeschütztes System, root_squash Verhindert, dass Root in dieses Verzeichnis schreibt. Inhaltsverzeichnis. Führen Sie den folgenden Befehl aus, damit die Änderungen wirksam werden.

echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
Nach dem Login kopieren

2. inetd-EinstellungenStellen Sie zunächst sicher, dass der Besitzer von /etc/inetd.conf root ist und die Dateiberechtigungen auf 600 eingestellt sind. Nachdem die Einstellungen abgeschlossen sind, können Sie zur Überprüfung den Befehl „stat“ verwenden.

order bind,hosts

multi off

nospoof on 
Nach dem Login kopieren
Nach dem Login kopieren

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

session required /lib/security/pam_limits.so
Nach dem Login kopieren
Nach dem Login kopieren

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

rrreee#🎜🎜# Standardmäßig lassen die meisten Linux-Systeme alle Anfragen zu, und die Verwendung von tcp_wrappers zur Verbesserung der Systemsicherheit ist ein Kinderspiel. Sie können / ändern. etc/hosts.deny und /etc/hosts.allow, um Zugriffsbeschränkungen zu erhöhen. Wenn Sie beispielsweise /etc/hosts.deny auf „all: all“ setzen, wird standardmäßig jeglicher Zugriff verweigert. 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 sie mit tcpdchk überprüfen: #🎜🎜#rrreee#🎜🎜#tcpchk ist ein Tool zur Überprüfung der TCP_Wrapper-Konfiguration, das Ihre TCP-Wrapper-Konfiguration überprüft und alle entdeckten potenziellen/ bestehende Probleme. #🎜🎜##🎜🎜#3. Login-Terminal-Einstellungen#🎜🎜##🎜🎜# Die Datei /etc/securetty gibt das TTY-Gerät an, das die Root-Anmeldung ermöglicht. Ihr Format ist eine Liste zulässiger Namen /securetty und kommentieren Sie die folgenden Zeilen aus. #🎜🎜#rrreee#🎜🎜#Derzeit kann sich Root nur am tty1-Terminal anmelden. #🎜🎜##🎜🎜#4. Vermeiden Sie die Anzeige von System- und Versionsinformationen. #🎜🎜##🎜🎜#Wenn Sie möchten, dass Benutzer mit Remote-Anmeldung die System- und Versionsinformationen nicht sehen, können Sie die Datei /etc/inetd.conf mit den folgenden Vorgängen ändern: #🎜🎜#rrreee#🎜🎜#Hinzufügen - h, um anzuzeigen, dass Telnet nicht möglich ist. Zeigt Systeminformationen anstelle von „login:“ an. #🎜🎜##🎜🎜##🎜🎜#4. Angriffe verhindern#🎜🎜##🎜🎜##🎜🎜#1. Ping blockieren Wenn niemand Ihr System anpingen kann, erhöht sich natürlich die Sicherheit. Dazu können Sie der Datei /etc/rc.d/rc.local die folgende Zeile hinzufügen: #🎜🎜#rrreee#🎜🎜#2. IP-Spoofing verhindern#🎜🎜#

编辑host.conf文件并增加如下几行来防止ip欺骗攻击。

order bind,hosts

multi off

nospoof on 
Nach dem Login kopieren
Nach dem Login kopieren

3.防止dos攻击

对系统所有的用户设置资源限制可以防止dos类型攻击。如最大进程数和内存使用数量等。例如,可以在/etc/security/limits.conf中添加如下几行:

  • * hard core 0

  • * hard rss 5000

  • * hard nproc 20

然后必须编辑/etc/pam.d/login文件检查下面一行是否存在。

session required /lib/security/pam_limits.so
Nach dem Login kopieren
Nach dem Login kopieren

上面的命令禁止调试文件,限制进程数为50并且限制内存使用为5mb。

Das obige ist der detaillierte Inhalt vonSo verbessern Sie die Sicherheit von Linux- und Unix-Servern. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:yisu.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!