So installieren Sie MODX Revolution auf einem CentOS 7 LAMP VPS
Verwenden Sie ein anderes System? MODX Revolution ist ein schnelles, flexibles, skalierbares, kostenloses und Open-Source-Content-Management-System (CMS) für Unternehmen, das i
iptables
ist ein leistungsstarkes Tool zum Konfigurieren der integrierten Firewall des Linux-Kernels. Es ist auf den meisten Ubuntu-Distributionen vorinstalliert. Wenn Sie jedoch eine angepasste Ubuntu-Version verwenden oder in einem Container ausgeführt werden, müssen Sie es höchstwahrscheinlich manuell installieren.
sudo apt-get install iptables iptables-persistent
Wenn Sie nach der Installation gefragt werden, ob Sie Ihre aktuellen Regeln speichern möchten, spielt dies im Moment keine Rolle, da Sie sie später entfernen oder neue Regeln erstellen werden.
Mit dem netcat
Befehl (auf einem anderen Computer als Ihrem Server) können Sie testen, welche Ihrer Ports geöffnet oder geschlossen sind.
nc -z -w5 -v SERVER_IP PORT
nc
ist der Befehl netcat.-z
Senden Sie einfach ein Paket ohne Nutzlast.-w5
Warten Sie bis zu 5 Sekunden auf eine Antwort.-v
ausführlicher Modus.SERVER_IP
durch Ihre Serveradresse.PORT
durch den Port, den Sie testen möchten, wenn er geöffnet ist (z 22
. B. ).Auf Ihrem Server können Sie mit dem netstat
Befehl sehen, welche Ports derzeit auf Verbindungen warten.
sudo netstat -tulpn
Hinweis: Obwohl netstat
es praktisch ist, die Ports zu finden, mit denen Sie arbeiten möchten, sollten Sie wissen, welche Anwendungen Sie derzeit auf Ihrem Server installiert haben und welche Ports empfangsbereit sind. Sie müssen nicht jeden Port zulassen, den Sie in der netstat
Ausgabe finden .
sudo iptables -A INPUT -p tcp -m tcp --dport 22 --m geoip --src-cc PE -j ACCEPT
-A INPUT
Fügen Sie der INPUT
Kette eine Regel hinzu . Eine Kette ist eine Gruppe von Regeln. Die Regeln, die wir in diesem Handbuch am häufigsten verwenden INPUT
, sind OUTPUT
und PREROUTING
.-p tcp
Satz tcp
als Protokoll gilt diese Regel für Sie auch andere Protokolle wie verwenden können udp
, icmp
oder all
.-m tcp
Verwenden Sie das tcp
Modul. iptables
unterstützt zusätzliche Funktionen über Module, von denen einige bereits vorinstalliert sind iptables
und andere, wie z. B. das geoip
Modul.--dport 22
Die Befehle, die mit beginnen, --
geben zusätzliche Optionen für das zuvor verwendete Modul an. In diesem Fall weisen wir das tcp
Modul an, nur für den Port zu gelten 22
.-m geoip
Verwenden Sie das geoip
Modul. Es werden Pakete auf Länderbasis begrenzt (weitere Informationen in Schritt 5).--src-cc PE
Weisen Sie das geoip
Modul an, die eingehenden Pakete auf diejenigen zu beschränken, die aus Peru stammen. Weitere Ländercodes finden Sie ISO 3166 country codes
im Internet.-j ACCEPT
Das -j
Argument gibt an, iptables
was zu tun ist, wenn ein Paket den in den vorherigen Argumenten angegebenen Einschränkungen entspricht. In diesem Fall wird es ACCEPT
diese Pakete, andere Optionen sind REJECT
, DROP
und vieles mehr. Weitere Optionen finden Sie iptables jump targets
im Internet.Listen Sie alle Regeln auf.
sudo iptables -L
Listen Sie alle Befehle auf, die zum Erstellen der aktuell verwendeten Regeln verwendet wurden, um Regeln zu bearbeiten oder zu löschen.
sudo iptables -S
Um eine bestimmte Regel zu löschen, wählen Sie eine Regel aus sudo iptables -S
und ersetzen Sie sie -A
durch -D
.
# -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
sudo iptables -D INPUT -p tcp -m tcp --dport 22 -j ACCEPT
Listen Sie alle nummerierten Regeln in der INPUT
Kette auf.
sudo iptables -L INPUT --line-numbers
Löschen Sie eine nummerierte Regel.
sudo iptables -D INPUT 2
Alle Regeln löschen.
sudo iptables -F
Warnung: Bei einer SSH-Verbindung kann die Verbindung unterbrochen werden .
Löschen Sie nur Regeln in der OUTPUT
Kette.
sudo iptables -F OUTPUT
Lassen Sie SSH
auf eth0
Schnittstelle
sudo iptables -A INPUT -i eth0 -p tcp -m tcp --dport 22 -j ACCEPT
-i eth0
Wenden Sie eine Regel auf eine bestimmte Schnittstelle an, damit dieser Befehl von jeder Schnittstelle entfernt werden kann.Eingehende Pakete auf eine bestimmte IP (dh 10.0.3.1/32
) beschränken.
sudo iptables -A INPUT -i eth0 -s 10.0.3.1/32 -p tcp -m tcp --dport 22 -j ACCEPT
-s 10.0.3.1/32
Gibt ein IP / Subnetz an, von dem aus Verbindungen zugelassen werden sollen.Legen Sie Standardkettenregeln fest.
Warnung: Bevor Sie fortfahren, stellen Sie sicher, dass Sie die richtigen SSH-Regeln angewendet haben, wenn Sie auf einem Remote-Server arbeiten .
sudo iptables -P INPUT DROP
sudo iptables -P FORWARD DROP
sudo iptables -P OUTPUT ACCEPT
-P INPUT DROP
lehnt alle eingehenden Pakete ab (dh niemand kann eine Verbindung zu Ihren laufenden Servern wie Apache, SQL usw. herstellen).-P FORWARD DROP
lehnt alle weitergeleiteten Pakete ab (dh wenn Sie Ihr System als Router verwenden).-P OUTPUT ACCEPT
erlaubt alle ausgehenden Pakete (dh wenn Sie eine HTTP
Anfrage ausführen ).Lassen Sie den gesamten Datenverkehr auf der Loopback-Schnittstelle zu ( empfohlen ).
sudo iptables -A INPUT -i lo -j ACCEPT
sudo iptables -A OUTPUT -o lo -j ACCEPT
Speichern Sie die aktuellen iptables
Regeln.
sudo netfilter-persistent save
sudo netfilter-persistent reload
Wenn Sie in einem Container ausgeführt netfilter-persistent
werden, funktioniert der Befehl höchstwahrscheinlich nicht. Daher müssen Sie das iptables-persistent
Paket neu konfigurieren .
sudo dpkg-reconfigure iptables-persistent
DNS-Abfragen zulassen.
sudo iptables -A OUTPUT -p tcp --dport 53 -m state --state NEW -j ACCEPT
sudo iptables -A OUTPUT -p udp --dport 53 -m state --state NEW -j ACCEPT
Verwenden Sie das state
Modul zu erlauben , RELATED
und ESTABLISHED
ausgehende Pakete.
sudo iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
Erlaube die gewünschten Ports; in diesem Fall HTTP
Ports.
sudo iptables -A OUTPUT -p tcp --dport 80 -m state --state NEW -j ACCEPT
Weitere Ports, die Sie möglicherweise verwenden möchten.
FTP
: TCP an Port 21HTTPS
: TCP an Port 443DHCP
: udp an Port 67NTP
: udp an Port 123Hinweis: Wenn Sie zulassen möchten , apt-get
könnte es notwendig sein , um zu ermöglichen , FTP
undHTTPS
.
Lassen Sie den zurückgegebenen Datenverkehr nur für RELATED
und bereits ESTABLISHED
Verbindungen zu ( empfohlen, da manchmal bidirektionale Kommunikation erforderlich ist).
sudo iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
Ping-Anfragen von außen zulassen.
sudo iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
sudo iptables -A OUTPUT -p icmp --icmp-type echo-reply -j ACCEPT
Leiten Sie den Datenverkehr am eth0
Port 2200
an weiter 10.0.3.21:22
(nützlich, wenn Sie einen SSH-Server verfügbar machen möchten, der in einem Container ausgeführt wird).
sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 2200 -j DNAT --to-destination 10.0.3.21:22
Wenn Sie sich mit SSH erfolgreich bei Ihrem Server anmelden, wird eine dauerhafte Verbindung hergestellt (dh keine neuen Verbindungen, auch wenn Sie länger als 1 Stunde verbunden sind). Wenn Sie fehlschlagen und erneut versuchen, sich anzumelden, wird eine neue Verbindung erstellt. Dadurch werden kontinuierliche SSH-Anmeldeversuche blockiert, indem neue Verbindungen pro Stunde begrenzt werden.
sudo iptables -I INPUT -p tcp --dport 22 -m state --state NEW -m recent --set
sudo iptables -I INPUT -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 3600 --hitcount 4 -j DROP
Leiten Sie alle Anforderungen von Port 443
zu Port um 4430
(nützlich, wenn Sie 443
ohne Port an Port binden möchten root
).
sudo iptables -t nat -A PREROUTING -i ens3 -p tcp --dport 443 -j REDIRECT --to-port 4430
sudo iptables -A INPUT -p tcp -m tcp --dport 4430 -m geoip --src-cc PE -j ACCEPT
ens3
die Netzwerkschnittstelle.-m geoip
Länderblockmodul (siehe Schritt 5).Warnung: Nicht verwenden lo
, das Betriebssystem verwirft alle Pakete, die an die Loopback-Schnittstelle umgeleitet werden .
xtables-addons
Sie können das xtables-addons
Modul mit verschiedenen Methoden installieren. Sie können auch die für Sie am besten geeignete Installationsmethode verwenden.
Installieren Sie mit apt-get
.
sudo apt-get install xtables-addons-common
Installieren Sie mit module-assistant
.
sudo apt-get install module-assistant xtables-addons-source
sudo module-assistant --verbose --text-mode auto-install xtables-addons
Von der Quelle installieren.
sudo apt-get install git bc libncurses5-dev libtext-csv-xs-perl autoconf automake libtool xutils-dev iptables-dev
git clone git://git.code.sf.net/p/xtables-addons/xtables-addons
cd xtables-addons
./autogen.sh
./configure
make
sudo make install
Erstellen Sie eine "Länder" -Datenbank.
sudo apt-get install libtext-csv-xs-perl unzip
sudo mkdir /usr/share/xt_geoip
sudo /usr/lib/xtables-addons/xt_geoip_dl
sudo /usr/lib/xtables-addons/xt_geoip_build -D /usr/share/xt_geoip *.csv
sudo rm GeoIPCountryCSV.zip GeoIPCountryWhois.csv GeoIPv6.csv
Starten Sie Ihr System neu.
sudo reboot
Nach xtables-addons
erfolgreicher Installation nach dem ersten Neustart ausführen, da depmod
sonst die Länderblockierung nicht ordnungsgemäß funktioniert (dies ist nur zum ersten Mal erforderlich).
sudo depmod
Erstellen Sie ein Skript /etc/cron.monthly/geoip-updater
, um die geoip
Datenbank monatlich zu aktualisieren .
#!/usr/bin/env bash
# this script is intended to run with sudo privileges
echo 'Removing old database---------------------------------------------------'
rm -rf /usr/share/xt_geoip/*
mkdir -p /usr/share/xt_geoip
echo 'Downloading country databases-------------------------------------------'
mkdir /tmp/geoip-updater
cd /tmp/geoip-updater
/usr/lib/xtables-addons/xt_geoip_dl
echo 'Building geoip database-------------------------------------------------'
/usr/lib/xtables-addons/xt_geoip_build -D /usr/share/xt_geoip *.csv
echo 'Removing temporary files------------------------------------------------'
cd /tmp
rm -rf /tmp/geoip-updater
Machen /etc/cron.monthly/geoip-updater
ausführbar.
sudo chmod +x /etc/cron.monthly/geoip-updater
_Hinweis: Wenn iptables: No chain/target/match by that name
beim Versuch, eine geoip
Regel anzuwenden , eine Fehlermeldung angezeigt wird , wurde diese möglicherweise xtables-addons
nicht korrekt installiert. Versuchen Sie es mit einer anderen Installationsmethode.
Blockieren Sie alle eingehenden Pakete aus China, Hongkong, Russland und Korea.
sudo iptables -A INPUT -m geoip --src-cc CN,HK,RU,KR -j DROP
Erlaube eingehende Pakete auf dem Port 80
von überall außer den oben genannten Ländern.
sudo iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
Zulassen, dass eingehende Pakete auf der ens3
Schnittstelle am Port 22
nur aus Peru stammen (wählen Sie den Ländercode, aus dem Sie Pakete akzeptieren möchten, z. B. US
für die USA).
sudo iptables -A INPUT -i ens3 -p tcp -m tcp --dport 22 -m geoip --src-cc PE -j ACCEPT
Erlaube eingehende Pakete im Hafen 443
nur aus Peru.
sudo iptables -A INPUT -p tcp -m tcp --dport 443 -m geoip --src-cc PE -j ACCEPT
Verwenden Sie ein anderes System? MODX Revolution ist ein schnelles, flexibles, skalierbares, kostenloses und Open-Source-Content-Management-System (CMS) für Unternehmen, das i
McMyAdmin ist ein Minecraft-Server-Kontrollfeld, mit dem Sie Ihren Server verwalten können. Obwohl McMyAdmin kostenlos ist, gibt es mehrere Editionen, von denen einige pai sind
TeamTalk ist ein Konferenzsystem, mit dem Benutzer hochwertige Audio- / Videogespräche führen, Text chatten, Dateien übertragen und Bildschirme freigeben können. Es i
Verwenden Sie ein anderes System? Einführung CyberPanel ist eines der ersten Control Panels auf dem Markt, das sowohl Open Source als auch OpenLiteSpeed verwendet. Was ist das?
PhpBB ist ein Open Source Bulletin Board Programm. Dieser Artikel zeigt Ihnen, wie Sie phpBB auf einem Apache-Webserver unter Ubuntu 16.04 installieren. Es wurde geschrieben
Es kann gefährlich sein, nur einen Benutzer zu haben, nämlich root. Lassen Sie uns das beheben. Vultr bietet uns die Freiheit, mit unseren Benutzern und unseren Servern zu tun, was wir wollen
Verwenden Sie ein anderes System? ESpeak kann TTS-Audiodateien (Text-to-Speech) generieren. Diese können aus vielen Gründen nützlich sein, z. B. um Ihr eigenes Turin zu erstellen
Verwenden Sie ein anderes System? Thelia ist ein Open-Source-Tool zum Erstellen von E-Business-Websites und zum Verwalten von Online-Inhalten, die in PHP geschrieben wurden. Thelia Quellcode i
Verwenden Sie ein anderes System? Fuel CMS ist ein CodeIgniter-basiertes Content-Management-System. Der Quellcode wird auf GitHub gehostet. Diese Anleitung zeigt Ihnen, wie t
Dieses Tutorial führt Sie durch die Installation des Yunohost Complete Server-Kontrollfelds unter Debian. Folgen Sie einfach dem Tutorial und Ihr Server wird in Betrieb sein
Cockpit ist ein kostenloses Open Source-Programm für die Linux-Serververwaltung. Es ist sehr leicht und hat eine schöne, einfach zu bedienende Weboberfläche. Es erlaubt System
Gollum ist die Git-basierte Wiki-Software, die als Backend des GitHub-Wikis verwendet wird. Durch die Bereitstellung von Gollum können Sie ein GitHub-ähnliches Wiki-System auf Ihnen hosten
Einführung Haben Sie Probleme mit der Konnektivität, wenn Besucher aus anderen Ländern auf Ihre Website zugreifen? Ich frage mich, warum die Download-Geschwindigkeit von Ihrem Foreig
Verwenden Sie ein anderes System? Gitea ist ein alternatives Open-Source-Versionskontrollsystem, das von Git unterstützt wird. Gitea ist in Golang geschrieben und ist
Verwenden Sie ein anderes System? Ghost ist eine Open-Source-Blogging-Plattform, die seit 201 bei Entwicklern und normalen Benutzern immer beliebter wird
Verwenden Sie ein anderes System? Paste 2.1 ist eine einfache und flexible, kostenlose und Open-Source-Pastebin-Anwendung zum Speichern von Code, Text und mehr. Es war ursprünglich
Pip ist ein Tool zum Verwalten von Python-Paketen. Die Verwendung eines Paketmanagers ermöglicht eine effiziente Verwaltung Ihres Servers. In diesem Tutorial erkläre ich, wie t
BBR (Bottleneck Bandwidth and RTT) ist ein neuer Algorithmus zur Überlastungskontrolle, der von Google zum Linux-Kernel-TCP-Stack hinzugefügt wird. Mit BBR an Ort und Stelle,
YOURLS (Your Own URL Shortener) ist eine Open-Source-Anwendung zur URL-Verkürzung und Datenanalyse. In diesem Artikel werden wir den Installationsprozess behandeln
Verwenden Sie ein anderes System? TLS 1.3 ist eine Version des TLS-Protokolls (Transport Layer Security), das 2018 als vorgeschlagener Standard in RFC 8446 veröffentlicht wurde
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.