A Node.js állandó alkalmazások beállítása az Ubuntu 16.04 rendszeren
A Node.js alkalmazások méretezhetőségük miatt népszerűek. Több egyidejű folyamat több kiszolgálón történő futtatása alacsonyabb késleltetést és hosszabb üzemidőt eredményez
iptables
egy hatékony eszköz a Linux kernel integrált tűzfalának beállítására. A legtöbb Ubuntu disztribúción előre telepítve van, de ha testreszabott Ubuntu verziót használ, vagy konténerben fut, valószínűleg manuálisan kell telepítenie.
sudo apt-get install iptables iptables-persistent
A telepítés után, ha a rendszer megkérdezi, hogy mentse-e az aktuális szabályokat, ez pillanatnyilag nem számít, mert később eltávolítani vagy új szabályokat fog létrehozni.
A netcat
paranccsal ( a kiszolgálótól eltérő számítógépen) tesztelheti, hogy melyik port van nyitva vagy zárva.
nc -z -w5 -v SERVER_IP PORT
nc
a netcat parancs.-z
csak küldjön egy csomagot hasznos teher nélkül.-w5
várjon legfeljebb 5 másodpercet a válaszra.-v
bőbeszédű mód.SERVER_IP
ki a szerver címét.PORT
ki a tesztelni kívánt portra, ha nyitva van (pl 22
. ).A szerveren a netstat
paranccsal megtekintheti, hogy mely portok figyelnek éppen a kapcsolatokra.
sudo netstat -tulpn
Megjegyzés: Bár netstat
praktikus megoldás megtalálni azokat a portokat, amelyekkel dolgozni szeretne, tisztában kell lennie a kiszolgálóra jelenleg telepített alkalmazásokkal, és hogy mely portok figyelnek, nem kell minden portot engedélyeznie a netstat
kimenetben .
sudo iptables -A INPUT -p tcp -m tcp --dport 22 --m geoip --src-cc PE -j ACCEPT
-A INPUT
adjunk hozzá egy szabályt a INPUT
lánchoz, a lánc szabályok csoportja, az útmutatóban leginkább használt szabályok a INPUT
, OUTPUT
és a PREROUTING
.-p tcp
beállítva tcp
protokollként, amelyre ez a szabály vonatkozni fog, használhat más protokollokat is, például a udp
, icmp
vagy a all
.-m tcp
használja a tcp
modult. iptables
modulokon keresztül támogatja a további szolgáltatásokat, amelyek közül néhány már előre telepítve van iptables
, mások pedig, például a geoip
modul.--dport 22
a -val kezdődő parancsok --
további opciókat jeleznek a korábban használt modulhoz, ebben az esetben azt mondjuk a tcp
modulnak, hogy csak a portra vonatkozzon 22
.-m geoip
használja a geoip
modult. Ez országonként korlátozza a csomagokat (további információ az 5. lépésben).--src-cc PE
mondd meg a geoip
modulnak, hogy korlátozza a bejövő csomagokat a Peruból érkezőkre. További országkódokért keressen ISO 3166 country codes
az interneten.-j ACCEPT
az -j
argumentum megmondja iptables
, hogy mi a teendő, ha egy csomag megfelel az előző argumentumokban megadott megszorításoknak. Ebben az esetben ACCEPT
ezek a csomagok lesznek , a többi opció a REJECT
, DROP
és így tovább. További lehetőségeket iptables jump targets
találhat az interneten keresve .Sorolja fel az összes szabályt.
sudo iptables -L
Sorolja fel az összes parancsot, amelyet a jelenleg használt szabályok létrehozásához használtak, amelyek hasznosak a szabályok szerkesztéséhez vagy törléséhez.
sudo iptables -S
Egy adott szabály törléséhez válasszon egy szabályt a listából, sudo iptables -S
és cserélje ki -A
a következőre -D
.
# -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
sudo iptables -D INPUT -p tcp -m tcp --dport 22 -j ACCEPT
Sorolja fel az összes számozott szabályt a INPUT
láncban.
sudo iptables -L INPUT --line-numbers
Számozott szabály törlése.
sudo iptables -D INPUT 2
Az összes szabály törléséhez.
sudo iptables -F
Figyelmeztetés: megszakadhat a kapcsolat, ha SSH-n keresztül csatlakozik .
Csak a OUTPUT
lánc szabályait törölje .
sudo iptables -F OUTPUT
Engedélyezés SSH
a eth0
felületen
sudo iptables -A INPUT -i eth0 -p tcp -m tcp --dport 22 -j ACCEPT
-i eth0
szabály alkalmazása egy adott felületre, ha engedélyezni szeretné, hogy bármely felületről távolítsa el ezt a parancsot.A bejövő csomagok korlátozása egy adott IP-re (pl 10.0.3.1/32
. ).
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
megad egy IP/alhálózatot, amelyről engedélyezi a kapcsolatokat.Állítsa be az alapértelmezett láncszabályokat.
Figyelmeztetés: a folytatás előtt győződjön meg arról, hogy a megfelelő SSH-szabályokat alkalmazta, ha távoli kiszolgálón dolgozik .
sudo iptables -P INPUT DROP
sudo iptables -P FORWARD DROP
sudo iptables -P OUTPUT ACCEPT
-P INPUT DROP
letilt minden bejövő csomagot (azaz senki nem fog tudni csatlakozni a futó szerverekhez, mint például az Apache, SQL stb.).-P FORWARD DROP
letilt minden továbbított csomagot (azaz amikor a rendszert routerként használja).-P OUTPUT ACCEPT
engedélyezi az összes kimenő csomagot (azaz amikor végrehajt egy HTTP
kérést).Minden forgalom engedélyezése a loopback felületen ( ajánlott ).
sudo iptables -A INPUT -i lo -j ACCEPT
sudo iptables -A OUTPUT -o lo -j ACCEPT
Mentse el az aktuális iptables
szabályokat.
sudo netfilter-persistent save
sudo netfilter-persistent reload
Ha egy tárolóban fut, a netfilter-persistent
parancs valószínűleg nem fog működni, ezért újra kell konfigurálnia a iptables-persistent
csomagot.
sudo dpkg-reconfigure iptables-persistent
DNS-lekérdezések engedélyezése.
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
A state
modul segítségével engedélyezheti RELATED
és ESTABLISHED
kimenő csomagokat.
sudo iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
Engedélyezze a kívánt portokat; ebben az esetben HTTP
portok.
sudo iptables -A OUTPUT -p tcp --dport 80 -m state --state NEW -j ACCEPT
További portok, amelyeket érdemes használni.
FTP
: tcp a 21-es portonHTTPS
: tcp a 443-as portonDHCP
: udp a 67-es portonNTP
: udp a 123-as portonMegjegyzés: Ha engedélyezni szeretné, apt-get
szükséges lehet a FTP
és aHTTPS
.
Engedélyezze a visszaadott forgalmat csak a RELATED
már meglévő ESTABLISHED
kapcsolatokhoz ( ajánlott, mert néha kétirányú kommunikációra van szükség).
sudo iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
Külső ping kérések engedélyezése.
sudo iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
sudo iptables -A OUTPUT -p icmp --icmp-type echo-reply -j ACCEPT
Előre forgalom eth0
port 2200
a 10.0.3.21:22
(hasznos, ha azt szeretné, hogy ki egy SSH szervert futtató tároló belsejében).
sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 2200 -j DNAT --to-destination 10.0.3.21:22
Ha SSH használatával sikeresen bejelentkezik a szerverére, akkor állandó kapcsolat jön létre (azaz nem jön létre új kapcsolat, még akkor sem, ha 1 óránál hosszabb ideig csatlakozik). Ha nem sikerül, és újra megpróbál bejelentkezni, új kapcsolat jön létre. Ez blokkolja a folyamatos SSH-bejelentkezési kísérleteket az új kapcsolatok óránkénti korlátozásával.
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
Átirányítása kérelmek port 443
a port 4430
(hasznos, ha azt szeretné, hogy kötődik a port 443
nélkül 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
a hálózati interfész.-m geoip
országblokk modul (lásd az 5. lépést).Figyelmeztetés: Ne használja lo
, az operációs rendszer eldob minden, a loopback felületre átirányított csomagot .
xtables-addons
A xtables-addons
modult többféle módszerrel telepítheti , nyugodtan használja az Önnek legmegfelelőbb telepítési módot.
Telepítés a segítségével apt-get
.
sudo apt-get install xtables-addons-common
Telepítés a segítségével module-assistant
.
sudo apt-get install module-assistant xtables-addons-source
sudo module-assistant --verbose --text-mode auto-install xtables-addons
Telepítés forrásból.
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
Építsen fel egy "országok" adatbázist.
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
Indítsa újra a rendszert.
sudo reboot
A xtables-addons
sikeres telepítés után az első újraindítás után futtassa, depmod
különben az országblokkolás nem fog megfelelően működni (ez csak az első alkalommal szükséges).
sudo depmod
Hozzon létre egy szkriptet a címen /etc/cron.monthly/geoip-updater
az geoip
adatbázis havi frissítéséhez .
#!/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
Tedd /etc/cron.monthly/geoip-updater
végrehajthatóvá.
sudo chmod +x /etc/cron.monthly/geoip-updater
_Megjegyzés: Ha iptables: No chain/target/match by that name
hibaüzenetet kap egy geoip
szabály alkalmazásakor , akkor lehetséges, hogy xtables-addons
a telepítés nem megfelelő. Próbálkozzon másik telepítési módszerrel.
Blokkolja az összes bejövő csomagot Kínából, Hongkongból, Oroszországból és Koreából.
sudo iptables -A INPUT -m geoip --src-cc CN,HK,RU,KR -j DROP
A 80
fenti országok kivételével mindenhonnan bejövő csomagok engedélyezése a porton .
sudo iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
Csak Peruból engedélyezze a bejövő csomagokat az ens3
interfészen a porton 22
(bátran válassza ki azt az országkódot, amelyről csomagokat szeretne fogadni, például US
az Egyesült Államok esetében).
sudo iptables -A INPUT -i ens3 -p tcp -m tcp --dport 22 -m geoip --src-cc PE -j ACCEPT
443
Csak Peruból engedélyezze a bejövő csomagokat a porton .
sudo iptables -A INPUT -p tcp -m tcp --dport 443 -m geoip --src-cc PE -j ACCEPT
A Node.js alkalmazások méretezhetőségük miatt népszerűek. Több egyidejű folyamat több kiszolgálón történő futtatása alacsonyabb késleltetést és hosszabb üzemidőt eredményez
Építőeszközök telepítése Számos eszközre lesz szükség. Futtassa a következő parancsot: apt-get install make g++ libssl-dev git Node.js forrás letöltése It i
Más rendszert használ? Az osTicket egy nyílt forráskódú ügyfélszolgálati jegyértékesítő rendszer. Az osTicket forráskódja nyilvánosan a Githubon található. Ebben az oktatóanyagban
Más rendszert használ? Bevezetés A Bro egy hatékony nyílt forráskódú hálózatelemző keretrendszer. A Bros elsődleges célja a hálózati biztonság figyelése. Br
This article will teach you how to setup a Minecraft Pocket Edition server on CentOS 6. Setting up a Minecraft PE server is quite simple. First, install th
A GruntJS egy JavaScript-feladat futtató, amely a NodeJS tetejére íródott. Használható az alkalmazás ismétlődő feladatainak automatizálására, mint például a kicsinyítés, a fordítás
A ZNC egy ingyenes és nyílt forráskódú IRC kidobó, amely állandóan csatlakozik a hálózathoz, így az ügyfelek offline állapotban is fogadhatják az elküldött üzeneteket. Thi
A PM2 egy nagyon népszerű Node folyamatkezelő, amely megkönnyíti a NodeJS alkalmazások futtatását. A PM2 megkönnyíti az alkalmazások újraindítását, az összeomlás automatikus újraindítását
Using a Different System? HAProxy is a network software application that offers high availability, load balancing, and proxying for TCP and HTTP networ
Bevezetés A Strapi egy nyílt forráskódú NodeJS Content Management Framework, amely biztonságos és méretezhető, gyártásra kész API-alkalmazások létrehozására szolgál.
Using a Different System? Introduction In this guide, you will learn how to set up an Unturned 2.2.5 server on a Vultr VPS running Ubuntu 16.04. Note: Thi
A Ruby on Rails (RoR) egy Ruby programozási nyelven írt keretrendszer, amely lehetővé teszi a Ruby használatát HTML, CSS és hasonló programokkal kombinálva.
A Chrome V8 Engine által hajtott Node.js egy népszerű nyelv, amelyet gyorsan méretezhető alkalmazások készítésére használnak. Számos projektet támogatott már, többek között
This tutorial explains how to setup a Mumble server (Murmur) on Arch Linux. Everything done in this tutorial is done as the root user. Installation an
This tutorial explains how to setup a Counter-Strike: Global Offensive server on Arch Linux. This tutorial assumes that you logged in with a standard use
Más rendszert használ? Az osTicket egy nyílt forráskódú ügyfélszolgálati jegyértékesítő rendszer. Az osTicket forráskódja nyilvánosan a Githubon található. Ebben az oktatóanyagban
Bevezetés Az iptables egy hatékony eszköz a Linux kernelek integrált tűzfalának konfigurálására. A legtöbb Ubuntu disztribúcióra azonban előre telepítve van
LXC containers (Linux containers) are an operating system feature in Linux that can be used to run multiple isolated Linux systems on a single host. Thes
Más rendszert használ? Az osTicket egy nyílt forráskódú ügyfélszolgálati jegyértékesítő rendszer. Az osTicket forráskódja nyilvánosan a Githubon található. Ebben az oktatóanyagban
Más rendszert használ? Az osTicket egy nyílt forráskódú ügyfélszolgálati jegyértékesítő rendszer. Az osTicket forráskódja nyilvánosan a Githubon található. Ebben az oktatóanyagban
A mesterséges intelligencia nem a jövőben, hanem itt a jelenben. Ebben a blogban Olvassa el, hogyan hatott a mesterséges intelligencia alkalmazások különböző ágazatokra.
Ön is DDOS támadások áldozata, és tanácstalan a megelőzési módszereket illetően? Olvassa el ezt a cikket a kérdések megoldásához.
Talán hallottál már arról, hogy a hackerek sok pénzt keresnek, de elgondolkodtál már azon, hogyan kereshetnek ennyi pénzt? beszéljük meg.
Szeretné látni a Google forradalmi találmányait, és azt, hogy ezek a találmányok hogyan változtatták meg minden mai ember életét? Ezután olvassa el a blogot, és nézze meg a Google találmányait.
Az önvezető autók koncepciója, hogy mesterséges intelligencia segítségével kerüljenek az utakra, már egy ideje álmunk. De számos ígéret ellenére sehol sem látszanak. Olvassa el ezt a blogot, hogy többet megtudjon…
Ahogy a tudomány gyors ütemben fejlődik, átveszi erőfeszítéseink nagy részét, megnő annak a kockázata is, hogy alávetjük magunkat egy megmagyarázhatatlan szingularitásnak. Olvassa el, mit jelenthet számunkra a szingularitás.
Az adatok tárolási módjai az Adatok születése óta alakulhatnak. Ez a blog egy infografika alapján mutatja be az adattárolás fejlődését.
Olvassa el a blogot, hogy a legegyszerűbb módon ismerje meg a Big Data Architecture különböző rétegeit és azok funkcióit.
Ebben a digitálisan vezérelt világban az intelligens otthoni eszközök az élet döntő részévé váltak. Íme az intelligens otthoni eszközök néhány elképesztő előnye, hogyan teszik életünket érdemessé és egyszerűbbé.
Az Apple a közelmúltban kiadott egy kiegészítést a macOS Catalina 10.15.4-hez a problémák megoldására, de úgy tűnik, hogy a frissítés több problémát okoz, ami a Mac gépek blokkolásához vezet. További információért olvassa el ezt a cikket