A Tiny Tiny RSS Reader telepítése FreeBSD 11 FAMP VPS-re
Más rendszert használ? A Tiny Tiny RSS Reader egy ingyenes és nyílt forráskódú, saját üzemeltetésű webalapú hírfolyam (RSS/Atom) olvasó és aggregátor, amelyet úgy terveztek, hogy
A VPS-szervereket gyakran támadják meg a behatolók. A támadások gyakori típusa több száz jogosulatlan ssh bejelentkezési kísérletként jelenik meg a rendszernaplókban. A tűzfal beállítása nagyon hasznos, de önmagában nem feltétlenül tudja megfelelően ellenőrizni a zavaró behatolási kísérleteket.
Ez az oktatóanyag bemutatja, hogyan hozzunk létre fokozott behatolási akadályt a FreeBSD számára két program, a ipfw
tűzfal és a sshguard
. Az SSHGuard egy kis kiegészítő program, amely figyeli a rendszernaplókban a "visszaélésszerű" bejegyzéseket. Amikor az elkövetők megpróbálnak hozzáférni, sshguard
utasítja, ipfw
hogy blokkolja az elkövető IP-címéről származó forgalmat. Az elkövető ekkor gyakorlatilag kizárásra kerül.
Miután megértette, hogyan működnek ezek a programok, a szervervédelem kezelése meglehetősen egyszerű. Bár ez az útmutató a FreeBSD konfigurálására összpontosít, egyes részei más operációs rendszerekre és tűzfalszoftverekre is vonatkoznak.
A FreeBSD 3 tűzfalat biztosít az alapértelmezett ( GENERIC
) kernelben: ipfw
, pf
, és ipfilter
. Mindegyiknek megvannak az előnyei és a rajongói, de ipfw
ez az FBSD natív tűzfalszoftvere, és nagyon egyszerűen használható a céljainkra. Érdemes megjegyezni, hogy ipfw
sok mindent megtesz, amint azt a man oldala mutatja, azonban olyan képességekre, mint a NAT, a forgalom alakítása stb., nincs szükség a tipikus VPS-helyzetben. Szerencsére a tűzfal alapvető funkciói könnyedén megfelelnek a követelményeinknek.
A tűzfal elindításához a rendszerindításkor adja hozzá a következőket /etc/rc.conf
:
firewall_enable="YES"
firewall_script="/usr/local/etc/IPFW.rules"
firewall_logging="YES"
A service
parancs elérhető a tűzfal kézi indításához/leállításához:
[user@vultr ~]$ sudo service ipfw start
Természetesen ipfw
nem tesz semmit, amíg nem ad hozzá szabályokat, gyakran fájlból, ebben a példában a címen található /usr/local/etc/IPFW.rules
. A szabályfájl valójában bárhol elhelyezkedhet, vagy bármilyen neve lehet, feltéve, hogy megegyezik a "firewall_script" paraméterrel. A szabályfájlt az alábbiakban részletesen ismertetjük.
sshguard
többféle változatban kapható, különböző tűzfalakkal való használatra. A pkg
segédprogram segítségével töltse le és telepítse sshguard-ipfw
:
[user@vultr ~]$ sudo pkg install sshguard-ipfw
A legtöbb esetben csak ennyit kell tennie. A megfelelő változó automatikusan beszúrásra kerül /etc/rc.conf
a rendszerindításkor:
sshguard_enable="YES"
Az alapértelmezett beállítások általában jól működnek. Ha eltérő értékekre van szükség, a sshguard
man oldal részletes információkat ad a paraméterekről:
# 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"
Kezdheted sshguard
a szokásos service
hívása:
[user@vultr ~]$ sudo service sshguard start
A legnehezebb a tűzfalszabályzat létrehozása. ipfw
használhatja a biztosított /etc/rc.firewall
szkriptet, de módosítani kell, hogy az SSHGuardhoz, valamint a különböző működési forgatókönyvekhez illeszkedjen. Számos weboldal és a FreeBSD kézikönyv hasznos információkat tartalmaz erről. A szabályfájl megírása azonban nem olyan nehéz, emellett az egyéni szabálykészlet könnyebben megérthető és szükség esetén módosítható.
A ipfw
szabályok fontos jellemzője, hogy az első meccs nyer, ami azt jelenti, hogy fontos a szabályok sorrendje. A ipfw
-ban minden szabály egy parancs, a szabályfájl pedig egy végrehajtható shell-szkript. Ez lehetővé teszi a szabálykészlet megváltoztatását a szabályok megváltoztatásával, majd a szabályfájl futtatásával a shell szkriptként:
[user@vultr /usr/local/etc]$ sudo ./IPFW.rules
Általában egy szabályfájl meghatároz egy változót a ipfw
parancshoz, majd törli az aktuális szabályokat, általános szabályokat ad ki, majd folytatja az „out” szabályok beállítását, majd a „be” szabályokat. Az ipfw kézikönyvoldala és más források rengeteg információt tartalmaznak a szabálystruktúráról és a lehetőségekről, amelyek enyhén szólva is sokak.
Mióta a FreeBSD sshguard verziója az 1.6.2-es verzióra frissült, megváltozott a szabálysértőkre vonatkozó blokkoló szabályok beillesztésének módja. Mostantól a szabálysértők címei egy ipfw-táblázatban vannak tárolva (a 22. táblázat, hogy konkrétan), ahelyett, hogy az 55000 feletti szabályokba illesztenék be, mint korábban.
Szerencsére elég egyszerű beállítani a szabályfájlt a tábla használatához. Csupán arról van szó, hogy a táblázatszabályt a megfelelő helyre kell tenni, és ügyelni kell a helyes szintaxis használatára a szabály írásakor.
Amikor sshguard
talál egy elkövetőt, felteszi az elkövető címét a tiltólistájára, és beszúrja a címet a ipfw
táblázatba is, így "kiváltja" a hozzáférés megtagadását. Ez a szabály a következő célokat éri el:
01000 deny ip from table\(22\) to any
Ebben az esetben továbbra is meg kell határozni a 01000 feletti bejövő szolgáltatásokat engedélyező szabályokat . Tegyük fel például, hogy a cím 10.20.30.40
egy szabálysértő a 22. táblázatban, és van ez az ipfw-szabály:
56420 allow tcp from any to me dst-port 22 in via $vif
Mivel ipfw
találkozik zárja 01000 mielőtt szabály 56420 , 10.20.30.40
van tiltva . A „22 in” szabály egyáltalán nem fogja látni. Ha az engedélyezési szabály "normál" számmal rendelkezik, például 00420 , akkor a rossz forgalom bekerülne , és soha nem blokkolna (mivel a 00420 kisebb, mint 01000, és "az első meccs nyer").
A frissített verzió jó tulajdonsága, hogy most, amikor az sshguard elindul, a feketelistán szereplő összes cím hozzáadódik a táblázathoz, és késedelem nélkül blokkolja a bejövő jogsértőket. A feketelista kumulatív, és a munkamenetek között megmarad.
Ezen a ponton valószínűleg ésszerű egy teljes ipfw
szabálykészletet megjeleníteni a következőhöz módosítva sshguard
. A megjegyzéseknek meglehetősen egyszerűvé kell tenniük a szabálylogika követését:
#!/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
A rendszerigények változóak, és a blokkolandó vagy feloldandó portok különböző választási lehetőségei tükröződnek a szabálykészletben. A szabálykészlet befejezése után mentse a fájlt ide /usr/local/etc/IPFW.rules
, és indítsa el az FBSD szolgáltatásokat:
# service ipfw start
# service sshguard start
A kiterjesztett tűzfalnak most futnia kell! Ellenőrizze sshguard
:
[user@vultr ~]$ sudo pgrep -lfa ssh
Ha sshguard
fut, a pid és a teljes parancssor megjelenik:
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
Ez mutatja a tűzfal szabálykészletét statisztikákkal, és azt, hogy egy csomag utoljára megfelelt a szabálynak:
[user@vultr ~]$ sudo ipfw -cat list
Órák vagy napok elteltével az elkövetők címei felkerülnek a feketelistára és a 22-es táblázatra is. A táblázatban szereplő összes cím megtekintéséhez használja ezt a parancsot:
ipfw table 22 list
Az eredményt a következőképpen nyomtatjuk ki:
10.10.10.118/32 0
10.10.10.72/32 0
...
A fent leírtak szerint az ezekről a címekről érkező kapcsolatok nem engedélyezettek. Természetesen első futáskor sshguard
nem lesznek címek a listában, de idővel elég hosszúra nyúlhat. Az egyik lehetőség, hogy külön blokkolási szabályokat hoz létre a táblázatban több bejegyzést tartalmazó címekhez, majd törli őket a feketelistáról.
Célszerű időnként ellenőrizni a naplókat, hogy megbizonyosodjon a behatolások ellenőrzéséről. Általában, /var/log/auth.log
és /var/log/security
tájékoztató jellegűek. Nyilvánvalóvá válhatnak a hálózati szolgáltatások lefedésének hiányosságai vagy hibák. A tűzfalszabályzat szükség szerinti módosítása a kiszolgáló adminisztrációjának szokásos része.
A korábbi sshguard verziókban, amikor a /var/db/sshguard/blacklist.db
fájl nagyra nőtt, megakadályozhatta sshguard
az elindulást a rendszerindításkor. A feketelista-fájl eltávolítása vagy átnevezése sshguard
elindulhat. Úgy tűnik, hogy ez a probléma megoldódott az sshguard legújabb verziójában, ezért valószínűleg már nincs szükség erre a megoldásra.
Ügyeljen arra, hogy az engedélyezőlistára helyezze azt az IP-címet, amelyről az SSH-munkamenethez csatlakozik. Ha véletlenül kizárja magát, bármikor csatlakozhat a noVNC konzolhoz a https://my.vultr.com webhelyen, és engedélyezheti IP-címét.
Összefoglalva, a ipfw
és kombinációjának használata sshguard
segít megőrizni a FreeBSD rendszer biztonságát és a feladatát. A tolakodó hálózati tevékenységek minimalizálása további előnyökkel jár: a kisebb "zaj" megkönnyíti a rendszer működésének nyomon követését és hangolását, ami hozzájárul a biztonságosabb, jobban működő szerverhez.
A FreeBSD rendszer/szerver hatékony védelme nem különösebben bonyolult. Noha szerény erőfeszítésre van szükség az üzembe helyezéshez és a működéshez, ez lényegesen nagyobb VPS-ben és projektbiztonságban kifizetődik.
Más rendszert használ? A Tiny Tiny RSS Reader egy ingyenes és nyílt forráskódú, saját üzemeltetésű webalapú hírfolyam (RSS/Atom) olvasó és aggregátor, amelyet úgy terveztek, hogy
Más rendszert használ? A Wiki.js egy ingyenes és nyílt forráskódú, modern wikialkalmazás, amely Node.js-re, MongoDB-re, Git-re és Markdownra épül. A Wiki.js forráskódja nyilvános
Más rendszert használ? A Pagekit 1.0 CMS egy gyönyörű, moduláris, bővíthető és könnyű, ingyenes és nyílt forráskódú tartalomkezelő rendszer (CMS)
Más rendszert használ? A MODX Revolution egy gyors, rugalmas, méretezhető, nyílt forráskódú, vállalati szintű tartalomkezelő rendszer (CMS), PHP nyelven írva. Ez i
Ez a cikk végigvezeti az OpenBSD 5.5 (64 bites) beállításán KVM-en Vultr VPS-sel. 1. lépés: Jelentkezzen be a Vultr vezérlőpultra. 2. lépés Kattintson a BEVEZETÉS gombra
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? A Flarum egy ingyenes, nyílt forráskódú, következő generációs fórumszoftver, amely szórakoztatóvá teszi az online beszélgetést. A Flarum forráskód o
Más rendszert használ? A TLS 1.3 a Transport Layer Security (TLS) protokoll egyik változata, amelyet 2018-ban tettek közzé javasolt szabványként az RFC 8446-ban.
Bevezetés A WordPress a domináns tartalomkezelő rendszer az interneten. A blogoktól a dinamikus tartalommal rendelkező összetett webhelyekig mindent megtesz
Más rendszert használ? A Subrion 4.1 CMS egy hatékony és rugalmas nyílt forráskódú tartalomkezelő rendszer (CMS), amely intuitív és világos tartalmat biztosít.
Ez az oktatóanyag bemutatja, hogyan konfigurálhat olyan DNS-szolgáltatást, amely könnyen karbantartható, könnyen konfigurálható, és általában biztonságosabb, mint a klasszikus BIN.
A FEMP verem, amely összehasonlítható a Linux LEMP veremével, nyílt forráskódú szoftverek gyűjteménye, amelyeket általában együtt telepítenek a FreeBS engedélyezéséhez.
A MongoDB egy világszínvonalú NoSQL adatbázis, amelyet gyakran használnak újabb webes alkalmazásokban. Nagy teljesítményű lekérdezéseket, felosztást és replikációt biztosít
Más rendszert használ? A Monica egy nyílt forráskódú személyes kapcsolatkezelő rendszer. Tekintsd úgy, mint egy CRM-et (az értékesítési csapatok által használt népszerű eszköz a th
Bevezetés Ez az oktatóanyag bemutatja az OpenBSD-t mint e-kereskedelmi megoldást PrestaShop és Apache használatával. Az Apache szükséges, mert a PrestaShop összetett UR-vel rendelkezik
Más rendszert használ? A Fork egy PHP nyelven írt nyílt forráskódú CMS. A Forks forráskódja a GitHubon található. Ez az útmutató megmutatja, hogyan kell telepíteni a Fork CM-et
Más rendszert használ? A Directus 6.4 CMS egy hatékony és rugalmas, ingyenes és nyílt forráskódú fej nélküli tartalomkezelő rendszer (CMS), amely a fejlesztők számára
A VPS-szervereket gyakran támadják meg a behatolók. A támadások gyakori típusa több száz jogosulatlan ssh bejelentkezési kísérletként jelenik meg a rendszernaplókban. Felállítása
Bevezetés Az OpenBSD 5.6 bevezetett egy új httpd démont, amely támogatja a CGI-t (FastCGI-n keresztül) és a TLS-t. Nincs szükség további munkára az új http telepítéséhez
Ez az oktatóanyag megmutatja, hogyan telepítheti a csoportmunka iRedMail programot a FreeBSD 10 friss telepítésére. Használjon legalább egy gigabájtos kiszolgálót.
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