Kann KI mit zunehmender Anzahl von Ransomware-Angriffen kämpfen?
Ransomware-Angriffe nehmen zu, aber kann KI helfen, den neuesten Computervirus zu bekämpfen? Ist KI die Antwort? Lesen Sie hier, ob KI boone oder bane ist
VPS-Server werden häufig von Eindringlingen angegriffen. Eine häufige Art von Angriff wird in Systemprotokollen als Hunderte von nicht autorisierten SSH-Anmeldeversuchen angezeigt. Das Einrichten einer Firewall ist sehr nützlich, kann jedoch störende Eindringversuche an sich möglicherweise nicht angemessen steuern.
Dieses Tutorial zeigt, wie Sie mit zwei Programmen, der Firewall und, eine erweiterte Intrusion Barriere für FreeBSD ipfw
erstellen sshguard
. SSHGuard ist ein kleines Zusatzprogramm, das Systemprotokolle auf "missbräuchliche" Einträge überwacht. Wenn Täter versuchen, Zugriff zu erhalten, werden sie sshguard
angewiesen ipfw
, den Datenverkehr zu blockieren, der von der IP-Adresse des Täters stammt. Der Täter wird dann effektiv ausgeschlossen.
Sobald Sie wissen, wie diese Programme funktionieren, ist die Verwaltung des Serverschutzes ziemlich einfach. Obwohl sich dieses Handbuch auf die Konfiguration von FreeBSD konzentriert, gelten Teile davon für andere Betriebssysteme und Firewall-Software.
FreeBSD stellt 3 Firewalls in seinem Standard ( GENERIC
) kernel, ipfw
, pf
, und ipfilter
. Jedes hat Vorteile und Fans, ist jedoch ipfw
die native Firewall-Software von FBSD und für unsere Zwecke recht einfach zu verwenden. Es ist erwähnenswert, dass ipfw
viele Dinge ausgeführt werden, wie die Manpage zeigt, jedoch werden Funktionen wie NAT, Traffic Shaping usw. für die typische VPS-Situation nicht benötigt. Glücklicherweise erfüllen die Grundfunktionen der Firewall problemlos unsere Anforderungen.
Fügen Sie Folgendes hinzu, um die Firewall beim Start zu starten /etc/rc.conf
:
firewall_enable="YES"
firewall_script="/usr/local/etc/IPFW.rules"
firewall_logging="YES"
Der service
Befehl steht zum manuellen Starten / Stoppen der Firewall zur Verfügung:
[user@vultr ~]$ sudo service ipfw start
Natürlich ipfw
wird nichts getan, bis Regeln hinzugefügt werden, oft aus einer Datei, in diesem Beispiel unter /usr/local/etc/IPFW.rules
. Die Regeldatei kann sich tatsächlich an einer beliebigen Stelle befinden oder einen beliebigen Namen haben, sofern sie mit dem Parameter "firewall_script" übereinstimmt. Die Regeldatei wird unten ausführlich beschrieben.
sshguard
Es gibt verschiedene Geschmacksrichtungen zur Verwendung mit verschiedenen Firewalls. Verwenden Sie das pkg
Dienstprogramm zum Abrufen und Installieren von sshguard-ipfw
:
[user@vultr ~]$ sudo pkg install sshguard-ipfw
In den meisten Fällen ist das alles, was man tun muss. Die entsprechende Variable wird automatisch eingefügt, /etc/rc.conf
um beim Booten zu starten:
sshguard_enable="YES"
Die Standardeinstellungen funktionieren normalerweise gut. Wenn unterschiedliche Werte erforderlich sind, enthält die sshguard
Manpage detaillierte Informationen zu den Parametern:
# sshguard--program defaults, so don't need to be in rc.conf unless assigning different value
# sshguard_pidfile="/var/run/sshguard.pid"
# sshguard_watch_logs="/var/log/auth.log:/var/log/mail"
# sshguard_blacklist="40:/var/db/sshguard/blacklist.db"
# sshguard_safety_thresh="40"
# sshguard_pardon_min_interval="420"
# sshguard_prescribe_interval="1200"
Sie können sshguard
mit dem üblichen service
Aufruf beginnen:
[user@vultr ~]$ sudo service sshguard start
Am schwierigsten ist es, den Firewall-Regelsatz zu erstellen. ipfw
kann das bereitgestellte /etc/rc.firewall
Skript verwenden, muss jedoch geändert werden, um SSHGuard sowie verschiedene Betriebsszenarien zu berücksichtigen. Eine Reihe von Webseiten und das FreeBSD-Handbuch enthalten nützliche Informationen dazu. Das Schreiben einer Regeldatei ist jedoch nicht so schwierig. Außerdem kann ein benutzerdefinierter Regelsatz bei Bedarf einfacher zu verstehen und zu ändern sein.
Ein wichtiges Merkmal von ipfw
Regeln ist, dass das erste Spiel gewinnt, was bedeutet, dass die Reihenfolge der Regeln wichtig ist. In ipfw
ist jede Regel ein Befehl, und die Regeldatei ist ein ausführbares Shell-Skript. Dadurch kann der Regelsatz geändert werden, indem Regeln geändert und dann die Regeldatei als Shell-Skript ausgeführt wird:
[user@vultr /usr/local/etc]$ sudo ./IPFW.rules
Im Allgemeinen definiert eine Regeldatei eine Variable für den ipfw
Befehl, löscht dann die aktuellen Regeln, gibt generische Regeln aus und fährt dann mit dem Festlegen von "out" -Regeln fort, gefolgt von "in" -Regeln. Die ipfw-Handbuchseite und andere Ressourcen enthalten eine Fülle von Informationen über Regelstrukturen und Optionen, die gelinde gesagt zahlreich sind.
Seit die FreeBSD sshguard-Version auf Version 1.6.2 aktualisiert wurde, hat sich die Methode zum Einfügen von Sperrregeln für Täter geändert. Jetzt werden die Adressen der Täter in einer ipfw-Tabelle (genauer gesagt in Tabelle 22) gespeichert und nicht wie zuvor in die Regeln über 55000 eingefügt.
Glücklicherweise ist es ziemlich einfach, die Regeldatei für die Verwendung der Tabelle einzurichten. Es geht nur darum, die Tabellenregel an der richtigen Stelle zu platzieren und sicherzustellen, dass beim Schreiben der Regel die richtige Syntax verwendet wird.
Wenn sshguard
ein Täter gefunden wird, wird die Adresse des Täters in seine schwarze Liste aufgenommen und die Adresse in die ipfw
Tabelle eingefügt, sodass der Zugriff verweigert wird. Diese Regel erfüllt folgende Zwecke:
01000 deny ip from table\(22\) to any
In diesem Fall müssen weiterhin Regeln festgelegt werden, die eingehende Dienste über 01000 zulassen. Angenommen, die Adresse 10.20.30.40
ist ein Täter in Tabelle 22, und wir haben diese ipfw-Regel:
56420 allow tcp from any to me dst-port 22 in via $vif
Da ipfw
Begegnungen Regel 01000 vor Regel 56420 , 10.20.30.40
ist gesperrt . Es wird von der "Zulassen 22 in" -Regel überhaupt nicht gesehen. Wenn die Zulassungsregel eine "reguläre" Nummer wie 00420 hätte , würde der schlechte Verkehr eingelassen und niemals blockiert (da 00420 kleiner als 01000 ist und "das erste Spiel gewinnt").
Ein nettes Feature der aktualisierten Version ist, dass jetzt beim Start von sshguard alle Adressen in der Blacklist zur Tabelle hinzugefügt werden und verfügbar sind, um eingehende Täter unverzüglich zu blockieren. Die schwarze Liste ist kumulativ und wird zwischen den Sitzungen beibehalten.
An dieser Stelle ist es wahrscheinlich sinnvoll, einen vollständigen ipfw
Regelsatz anzuzeigen, der für geändert wurde sshguard
. Die Kommentare sollten es ziemlich einfach machen, der Regellogik zu folgen:
#!/bin/sh
# ipfw config/rules
# from FBSD Handbook, rc.firewall, et. al.
# Flush all rules before we begin.
ipfw -q -f flush
# Set rules command prefix
cmd="ipfw -q add "
vif="vtnet0"
# allow all for localhost
$cmd 00010 allow ip from any to any via lo0
# checks stateful rules. If marked as "keep-state" the packet has
# already passed through filters and is "OK" without futher
# rule matching
$cmd 00101 check-state
# allow DNS out
$cmd 00110 allow tcp from me to any dst-port 53 out via $vif setup keep-state
$cmd 00111 allow udp from me to any dst-port 53 out via $vif keep-state
# allow dhclient connection out (port numbers are important)
$cmd 00120 allow udp from me 68 to any dst-port 67 out via $vif keep-state
# allow HTTP HTTPS replies
$cmd 00200 allow tcp from any to any dst-port 80 out via $vif setup keep-state
$cmd 00220 allow tcp from any to any dst-port 443 out via $vif setup keep-state
# allow outbound mail
$cmd 00230 allow tcp from any to any dst-port 25 out via $vif setup keep-state
$cmd 00231 allow tcp from any to any dst-port 465 out via $vif setup keep-state
$cmd 00232 allow tcp from any to any dst-port 587 out via $vif setup keep-state
# allow icmp re: ping, et. al.
# comment this out to disable ping, et.al.
$cmd 00250 allow icmp from any to any out via $vif keep-state
# alllow timeserver out
$cmd 00260 allow tcp from any to any dst-port 37 out via $vif setup keep-state
# allow ntp out
$cmd 00270 allow udp from any to any dst-port 123 out via $vif keep-state
# allow outbound SSH traffic
$cmd 00280 allow tcp from any to any dst-port 22 out via $vif setup keep-state
# otherwise deny outbound packets
# outbound catchall.
$cmd 00299 deny log ip from any to any out via $vif
# inbound rules
# deny inbound traffic to restricted addresses
$cmd 00300 deny ip from 192.168.0.0/16 to any in via $vif
$cmd 00301 deny ip from 172.16.0.0/12 to any in via $vif
$cmd 00302 deny ip from 10.0.0.0/8 to any in via $vif
$cmd 00303 deny ip from 127.0.0.0/8 to any in via $vif
$cmd 00304 deny ip from 0.0.0.0/8 to any in via $vif
$cmd 00305 deny ip from 169.254.0.0/16 to any in via $vif
$cmd 00306 deny ip from 192.0.2.0/24 to any in via $vif
$cmd 00307 deny ip from 204.152.64.0/23 to any in via $vif
$cmd 00308 deny ip from 224.0.0.0/3 to any in via $vif
# deny inbound packets on these ports
# auth 113, netbios (services) 137/138/139, hosts-nameserver 81
$cmd 00315 deny tcp from any to any dst-port 113 in via $vif
$cmd 00320 deny tcp from any to any dst-port 137 in via $vif
$cmd 00321 deny tcp from any to any dst-port 138 in via $vif
$cmd 00322 deny tcp from any to any dst-port 139 in via $vif
$cmd 00323 deny tcp from any to any dst-port 81 in via $vif
# deny partial packets
$cmd 00330 deny ip from any to any frag in via $vif
$cmd 00332 deny tcp from any to any established in via $vif
# allowing icmp re: ping, etc.
$cmd 00310 allow icmp from any to any in via $vif
# allowing inbound mail, dhcp, http, https
$cmd 00350 allow udp from any 53 to me in via $vif
$cmd 00360 allow tcp from any 53 to me in via $vif
$cmd 00370 allow udp from any 67 to me dst-port 68 in via $vif keep-state
$cmd 00400 allow tcp from any to me dst-port 80 in via $vif setup limit src-addr 2
$cmd 00410 allow tcp from any to me dst-port 443 in via $vif setup limit src-addr 2
# SSHguard puts offender addresses in table 22. Set up the table rule
# Please note the '\(22\)' syntax, necessary since it's run as shell command
$cmd 01000 deny ip from table\(22\) to any
# allow inbound ssh, mail. PROTECTED SERVICES: numbered ABOVE sshguard blacklist range
$cmd 56420 allow tcp from any to me dst-port 22 in via $vif setup limit src-addr 2
$cmd 56530 allow tcp from any to any dst-port 25 in via $vif setup keep-state
$cmd 56531 allow tcp from any to any dst-port 465 in via $vif setup keep-state
$cmd 56532 allow tcp from any to any dst-port 587 in via $vif setup keep-state
# deny everything else, and log it
# inbound catchall
$cmd 56599 deny log ip from any to any in via $vif
# ipfw built-in default, don't uncomment
# $cmd 65535 deny ip from any to any
Die Systemanforderungen variieren und unterschiedliche Auswahlmöglichkeiten zum Blockieren oder Entsperren von Ports spiegeln sich im Regelsatz wider. Speichern Sie nach Abschluss des Regelsatzes die Datei in /usr/local/etc/IPFW.rules
und starten Sie die FBSD-Dienste:
# service ipfw start
# service sshguard start
Die erweiterte Firewall sollte jetzt ausgeführt werden! Überprüfen Sie sshguard
:
[user@vultr ~]$ sudo pgrep -lfa ssh
Wenn ausgeführt sshguard
wird, werden die PID und die vollständige Befehlszeile angezeigt:
720 /usr/local/sbin/sshguard -b 40:/var/db/sshguard/blacklist.db -l /var/log/auth.log -l /var/log/maillog -a 40 -p 420 -s 1200 -w /usr/local/etc/sshguard.whitelist -i /var/run/sshguard.pid
Dies zeigt den Firewall-Regelsatz mit Statistiken und das letzte Mal, wenn ein Paket mit der Regel übereinstimmt:
[user@vultr ~]$ sudo ipfw -cat list
Nach Stunden oder Tagen werden Adressen von Tätern zur Blacklist und auch zu Tabelle 22 hinzugefügt. Verwenden Sie diesen Befehl, um alle Adressen in der Tabelle anzuzeigen:
ipfw table 22 list
Das Ergebnis wird gedruckt als:
10.10.10.118/32 0
10.10.10.72/32 0
...
Wie oben beschrieben, sind Verbindungen von diesen Adressen nicht zulässig. Natürlich gibt es beim ersten Start sshguard
keine Adressen in der Liste, aber mit der Zeit kann es ziemlich lang werden. Eine Möglichkeit besteht darin, separate Sperrregeln für Adressen mit mehreren Einträgen in der Tabelle zu erstellen und diese dann von der Blacklist zu löschen.
Es ist eine gute Idee, gelegentlich Protokolle zu überprüfen, um sicherzustellen, dass das Eindringen kontrolliert wird. Im Allgemeinen /var/log/auth.log
und /var/log/security
sind informativ. Es können Lücken oder Fehler bei der Abdeckung von Netzwerkdiensten auftreten. Das Ändern des Firewall-Regelsatzes nach Bedarf ist ein normaler Bestandteil der Serververwaltung.
In früheren sshguard-Versionen konnte die /var/db/sshguard/blacklist.db
Datei beim sshguard
Starten des Systems möglicherweise nicht gestartet werden, wenn sie groß geworden war . Entfernen oder Umbenennen der Blacklist-Datei sshguard
, die gestartet werden darf . Dieses Problem scheint in der neuesten sshguard-Version behoben zu sein, sodass diese Problemumgehung wahrscheinlich nicht mehr erforderlich ist.
Stellen Sie sicher, dass Sie die IP-Adresse, von der aus Sie mit der SSH-Sitzung verbunden sind, auf die Whitelist setzen. Wenn Sie sich versehentlich aussperren, können Sie jederzeit eine Verbindung zur noVNC-Konsole unter https://my.vultr.com herstellen und Ihre IP-Adresse auf die Whitelist setzen.
Zusammenfassend lässt sich sagen, dass die Kombination aus ipfw
und dazu sshguard
beiträgt, Ihr FreeBSD-System sicher zu halten und seine Arbeit zu erledigen. Das Minimieren aufdringlicher Netzwerkaktivitäten hat einen zusätzlichen Vorteil: Weniger "Rauschen" erleichtert das Verfolgen und Optimieren des Systembetriebs und trägt zu einem sichereren und besser laufenden Server bei.
Der effektive Schutz eines FreeBSD-Systems / Servers ist nicht besonders kompliziert. Während ein bescheidener Aufwand erforderlich ist, um es in Betrieb zu nehmen, zahlt es sich in einer wesentlich höheren VPS- und Projektsicherheit aus.
Ransomware-Angriffe nehmen zu, aber kann KI helfen, den neuesten Computervirus zu bekämpfen? Ist KI die Antwort? Lesen Sie hier, ob KI boone oder bane ist
ReactOS, ein quelloffenes und kostenloses Betriebssystem, ist hier mit der neuesten Version. Kann es den Anforderungen moderner Windows-Benutzer genügen und Microsoft zu Fall bringen? Lassen Sie uns mehr über dieses alte, aber neuere Betriebssystem erfahren.
Whatsapp hat endlich die Desktop-App für Mac- und Windows-Benutzer auf den Markt gebracht. Jetzt können Sie ganz einfach von Windows oder Mac auf WhatsApp zugreifen. Verfügbar für Windows 8+ und Mac OS 10.9+
Lesen Sie dies, um zu erfahren, wie Künstliche Intelligenz bei kleinen Unternehmen beliebt wird und wie sie die Wahrscheinlichkeit erhöht, sie wachsen zu lassen und ihren Konkurrenten einen Vorsprung zu verschaffen.
Vor kurzem hat Apple macOS Catalina 10.15.4 als Ergänzungsupdate veröffentlicht, um Probleme zu beheben, aber es scheint, dass das Update mehr Probleme verursacht, die zum Bricking von Mac-Computern führen. Lesen Sie diesen Artikel, um mehr zu erfahren
13 Tools zur kommerziellen Datenextraktion von Big Data
Unser Computer speichert alle Daten in einer organisierten Weise, die als Journaling-Dateisystem bekannt ist. Es ist eine effiziente Methode, die es dem Computer ermöglicht, Dateien zu suchen und anzuzeigen, sobald Sie auf die Suche klicken.https://wethegeek.com/?p=94116&preview=true
Da sich die Wissenschaft schnell weiterentwickelt und einen Großteil unserer Bemühungen übernimmt, steigt auch das Risiko, uns einer unerklärlichen Singularität auszusetzen. Lesen Sie, was Singularität für uns bedeuten könnte.
Ein Einblick in 26 Big-Data-Analysetechniken: Teil 1
KI im Gesundheitswesen hat in den letzten Jahrzehnten große Fortschritte gemacht. Somit wächst die Zukunft der KI im Gesundheitswesen immer noch von Tag zu Tag.