How to Install Tiny Tiny RSS Reader on a FreeBSD 11 FAMP VPS
Using a Different System? Tiny Tiny RSS Reader is a free and open source self-hosted web-based news feed (RSS/Atom) reader and aggregator, designed to allo
Servery VPS sú často cieľom útočníkov. Bežný typ útoku sa objavuje v systémových protokoloch ako stovky neoprávnených pokusov o prihlásenie cez ssh. Nastavenie brány firewall je veľmi užitočné, ale samo o sebe nemusí dostatočne kontrolovať rušivé pokusy o prienik.
Tento tutoriál ukazuje, ako vytvoriť rozšírenú bariéru proti vniknutiu pre FreeBSD pomocou dvoch programov, ipfw
firewallu a sshguard
. SSHGuard je malý doplnkový program, ktorý monitoruje systémové protokoly, či neobsahujú „zneužívajúce“ záznamy. Keď sa páchatelia pokúsia získať prístup, sshguard
vydá pokyn ipfw
na zablokovanie prevádzky pochádzajúcej z adresy IP páchateľa. Páchateľ je potom účinne vylúčený.
Keď pochopíte, ako tieto programy fungujú, správa ochrany servera je veľmi jednoduchá. Hoci je táto príručka zameraná na konfiguráciu FreeBSD, jej časti sa vzťahujú na iný operačný systém a softvér brány firewall.
FreeBSD poskytuje 3 firewally vo svojom predvolenom ( GENERIC
) jadre ipfw
, pf
, a ipfilter
. Každý z nich má výhody a fanúšikov, ale ipfw
je to natívny firewallový softvér FBSD a je celkom jednoduchý na použitie na naše účely. Stojí za zmienku, že ipfw
robí veľa vecí tak, ako ukazuje manuálová stránka, avšak schopnosti ako NAT, tvarovanie prevádzky atď. nie sú pre typickú situáciu VPS potrebné. Našťastie základné funkcie firewallu ľahko spĺňajú naše požiadavky.
Ak chcete spustiť bránu firewall pri spustení, pridajte do /etc/rc.conf
:
firewall_enable="YES"
firewall_script="/usr/local/etc/IPFW.rules"
firewall_logging="YES"
service
Príkaz je k dispozícii pre štart / ručne zastaviť firewall:
[user@vultr ~]$ sudo service ipfw start
Prirodzene, ipfw
neurobí nič, kým nepridá pravidlá, často zo súboru, v tomto príklade umiestnenom na adrese /usr/local/etc/IPFW.rules
. Súbor pravidiel môže byť v skutočnosti umiestnený kdekoľvek alebo môže mať akýkoľvek názov, pokiaľ sa zhoduje s parametrom „firewall_script“. Súbor pravidiel je podrobne popísaný nižšie.
sshguard
prichádza v niekoľkých variantoch na použitie s rôznymi bránami firewall. Použite pkg
nástroj na načítanie a inštaláciu sshguard-ipfw
:
[user@vultr ~]$ sudo pkg install sshguard-ipfw
Vo väčšine prípadov je to všetko, čo človek musí urobiť. Príslušná premenná sa automaticky vloží do /etc/rc.conf
pre spustenie pri štarte:
sshguard_enable="YES"
Predvolené nastavenia zvyčajne fungujú dobre. Ak sú potrebné iné hodnoty, sshguard
manuálová stránka poskytuje podrobné informácie o parametroch:
# 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"
Môžete začať sshguard
obvyklým service
vyvolaním:
[user@vultr ~]$ sudo service sshguard start
Najťažšou časťou je vytvorenie sady pravidiel brány firewall. ipfw
môže použiť poskytnutý /etc/rc.firewall
skript, ale musí byť upravený tak, aby vyhovoval SSHGuard, ako aj rôznym operačným scenárom. Množstvo webových stránok a Manuál FreeBSD obsahuje užitočné informácie o tom. Napísanie súboru pravidiel však nie je také ťažké, okrem toho môže byť vlastný súbor pravidiel ľahšie pochopiteľný a v prípade potreby ho možno zmeniť.
Dôležitou vlastnosťou ipfw
pravidiel je, že prvý zápas vyhráva, čo znamená, že poradie pravidiel je dôležité. V ipfw
, každé pravidlo je príkaz a súbor pravidiel je spustiteľný skript shell. To umožňuje zmeniť sadu pravidiel zmenou pravidiel a potom spustiť súbor pravidiel ako skript shellu:
[user@vultr /usr/local/etc]$ sudo ./IPFW.rules
Vo všeobecnosti bude súbor pravidiel definovať premennú pre ipfw
príkaz, potom vymaže aktuálne pravidlá, vydá všeobecné pravidlá, potom pristúpi k nastaveniu pravidiel „out“, po ktorých nasledujú pravidlá „in“. Manuálna stránka ipfw a ďalšie zdroje obsahujú množstvo informácií o štruktúre pravidiel a možnostiach, ktorých je prinajmenšom veľa.
Odkedy bola verzia FreeBSD sshguard aktualizovaná na verziu 1.6.2, zmenil sa spôsob vkladania pravidiel blokovania pre páchateľov. Teraz sa adresy páchateľov uchovávajú v tabuľke ipfw (konkrétne v tabuľke 22), a nie sú vložené do pravidiel nad 55 000 ako predtým.
Našťastie je celkom jednoduché nastaviť súbor pravidiel na používanie tabuľky. Ide len o to umiestniť pravidlo tabuľky na správne miesto a uistiť sa, že pri písaní pravidla používate správnu syntax.
Keď sshguard
nájde páchateľa, umiestni adresu páchateľa na svoju čiernu listinu a tiež vloží adresu do ipfw
tabuľky, takže "spustí" odmietnutie prístupu. Toto pravidlo bude spĺňať tieto účely:
01000 deny ip from table\(22\) to any
V tomto prípade je stále potrebné nastaviť pravidlá umožňujúce prichádzajúce služby nad 01000. Povedzme napríklad, že adresa 10.20.30.40
je páchateľom v tabuľke 22 a máme toto pravidlo ipfw:
56420 allow tcp from any to me dst-port 22 in via $vif
Keďže ipfw
narazí na pravidlo 01000 pred pravidlom 56420 , 10.20.30.40
je zablokovaný . Pravidlo „povoliť 22 palcov“ to vôbec neuvidí. Ak by pravidlo povolenia malo „bežné“ číslo ako 00420 , zlá prevádzka by bola vpustená dovnútra a nikdy by sa nezablokovala (pretože 00420 je menšie ako 01000 a „vyhráva prvý zápas“).
Príjemnou vlastnosťou aktualizovanej verzie je, že teraz, keď sa spustí sshguard, všetky adresy v čiernej listine sa pridajú do tabuľky a sú k dispozícii na okamžité blokovanie prichádzajúcich páchateľov. Čierna listina je kumulatívna a uchováva sa medzi reláciami.
V tomto bode je pravdepodobne rozumné ukázať kompletnú ipfw
sadu pravidiel upravenú pre sshguard
. Komentáre by mali uľahčovať dodržiavanie logiky pravidla:
#!/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
Potreby systému sa líšia a rôzne možnosti blokovania alebo odblokovania sa odrážajú v sade pravidiel. Po dokončení sady pravidiel uložte súbor /usr/local/etc/IPFW.rules
a spustite služby FBSD:
# service ipfw start
# service sshguard start
Rozšírený firewall by teraz mal byť spustený! Skontrolujte sshguard
:
[user@vultr ~]$ sudo pgrep -lfa ssh
Ak sshguard
je spustený, zobrazí sa jeho pid a celý príkazový riadok:
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
Zobrazuje súbor pravidiel brány firewall so štatistikami a poslednýkrát, kedy sa paket zhodoval s pravidlom:
[user@vultr ~]$ sudo ipfw -cat list
Po niekoľkých hodinách alebo dňoch sa adresy páchateľov pridajú do čiernej listiny a tiež do tabuľky 22. Ak chcete zobraziť všetky adresy v tabuľke, použite tento príkaz:
ipfw table 22 list
Výsledok sa vytlačí takto:
10.10.10.118/32 0
10.10.10.72/32 0
...
Ako je uvedené vyššie, pripojenia z týchto adries sú zakázané. Samozrejme, pri prvom spustení sshguard
nebudú v zozname žiadne adresy, ale časom sa môže dosť pretiahnuť. Jednou z možností je vytvorenie samostatných pravidiel blokovania pre adresy s viacerými položkami v tabuľke a ich následné odstránenie z čiernej listiny.
Je dobré občas skontrolovať protokoly, aby ste sa uistili, že narušenia sú kontrolované. Vo všeobecnosti /var/log/auth.log
a /var/log/security
sú informatívne. Môžu sa objaviť medzery alebo chyby v pokrytí sieťových služieb. Úprava sady pravidiel brány firewall podľa potreby je bežnou súčasťou správy servera.
V predchádzajúcich verziách sshguard, keď sa /var/db/sshguard/blacklist.db
súbor zväčšil, mohol zabrániť sshguard
spusteniu pri zavádzaní systému. Odstránenie alebo premenovanie súboru čiernej listiny je povolené sshguard
. Zdá sa, že tento problém je vyriešený v najnovšej verzii sshguard, takže toto riešenie už pravdepodobne nie je potrebné.
Uistite sa, že ste na bielu listinu pridali IP adresu, z ktorej ste pripojení k relácii SSH. Ak sa náhodou uzamknete, vždy sa môžete pripojiť ku konzole noVNC na https://my.vultr.com a pridať svoju IP na bielu listinu.
Stručne povedané, použitie kombinácie ipfw
a sshguard
pomáha udržiavať váš systém FreeBSD bezpečný a robiť svoju prácu. Minimalizácia rušivých sieťových aktivít má ďalšiu výhodu: menej „šumu“ uľahčuje sledovanie a ladenie prevádzky systému, čo prispieva k bezpečnejšiemu a lepšie fungujúcemu serveru.
Efektívna ochrana systému/servera FreeBSD nie je nijak zvlášť komplikovaná. Aj keď je potrebné vynaložiť skromné úsilie na jeho uvedenie do prevádzky, vyplatí sa v podstatne vyššej bezpečnosti VPS a projektu.
Using a Different System? Tiny Tiny RSS Reader is a free and open source self-hosted web-based news feed (RSS/Atom) reader and aggregator, designed to allo
Používate iný systém? Wiki.js je bezplatná a open source moderná wiki aplikácia postavená na Node.js, MongoDB, Git a Markdown. Zdrojový kód Wiki.js je verejný
Používate iný systém? Pagekit 1.0 CMS je krásny, modulárny, rozšíriteľný a ľahký, bezplatný a open source systém na správu obsahu (CMS) s
Používate iný systém? MODX Revolution je rýchly, flexibilný, škálovateľný, open source podnikový systém správy obsahu (CMS) napísaný v PHP. To i
Tento článok vás prevedie nastavením OpenBSD 5.5 (64-bit) na KVM s Vultr VPS. Krok 1. Prihláste sa do ovládacieho panela Vultr. Krok 2. Kliknite na DEPLOY
Používate iný systém? osTicket je open-source systém podpory zákazníkov. Zdrojový kód osTicket je verejne hosťovaný na Github. V tomto návode
Používate iný systém? Flarum je bezplatný a otvorený softvér fóra novej generácie, vďaka ktorému je online diskusia zábavná. Zdrojový kód Flarum je hostovaný o
Používate iný systém? TLS 1.3 je verzia protokolu Transport Layer Security (TLS), ktorý bol publikovaný v roku 2018 ako navrhovaný štandard v RFC 8446.
Úvod WordPress je dominantný redakčný systém na internete. Poháňa všetko od blogov až po zložité webové stránky s dynamickým obsahom
Používate iný systém? Subrion 4.1 CMS je výkonný a flexibilný open source systém na správu obsahu (CMS), ktorý prináša intuitívny a prehľadný obsah
Tento tutoriál vám ukáže, ako nakonfigurovať službu DNS, ktorá sa ľahko udržiava, ľahko konfiguruje a je vo všeobecnosti bezpečnejšia ako klasický BIN
Zásobník FEMP, ktorý je porovnateľný so zásobníkom LEMP v systéme Linux, je kolekcia softvéru s otvoreným zdrojovým kódom, ktorý sa zvyčajne inštaluje spoločne, aby umožnil FreeBS.
MongoDB je prvotriedna databáza NoSQL, ktorá sa často používa v novších webových aplikáciách. Poskytuje vysokovýkonné dotazy, zdieľanie a replikáciu
Používate iný systém? Monica je open source systém riadenia osobných vzťahov. Predstavte si to ako CRM (populárny nástroj používaný predajnými tímami v th
Úvod Tento tutoriál demonštruje OpenBSD ako riešenie pre elektronický obchod využívajúce PrestaShop a Apache. Vyžaduje sa Apache, pretože PrestaShop má zložité UR
Používate iný systém? Fork je open source CMS napísaný v PHP. Zdrojový kód Forks je hostený na GitHub. Táto príručka vám ukáže, ako nainštalovať Fork CM
Používate iný systém? Directus 6.4 CMS je výkonný a flexibilný, bezplatný a open source systém správy obsahu bez hlavy (CMS), ktorý poskytuje vývojárom
Servery VPS sú často cieľom útočníkov. Bežný typ útoku sa objavuje v systémových protokoloch ako stovky neoprávnených pokusov o prihlásenie cez ssh. Nastavenie
Úvod OpenBSD 5.6 predstavilo nového démona s názvom httpd, ktorý podporuje CGI (cez FastCGI) a TLS. Na inštaláciu nového http nie je potrebná žiadna ďalšia práca
Tento tutoriál vám ukáže, ako nainštalovať groupware iRedMail na novú inštaláciu FreeBSD 10. Mali by ste použiť server s aspoň jedným gigabajtom o
Umelá inteligencia nie je v budúcnosti, je tu priamo v súčasnosti V tomto blogu si prečítajte, ako aplikácie umelej inteligencie ovplyvnili rôzne sektory.
Ste aj vy obeťou DDOS útokov a máte zmätok ohľadom metód prevencie? Ak chcete vyriešiť svoje otázky, prečítajte si tento článok.
Možno ste už počuli, že hackeri zarábajú veľa peňazí, ale premýšľali ste niekedy nad tým, ako môžu zarábať také peniaze? poďme diskutovať.
Chcete vidieť revolučné vynálezy od Google a ako tieto vynálezy zmenili život každého dnešného človeka? Potom si prečítajte na blogu a pozrite si vynálezy spoločnosti Google.
Koncept samoriadených áut vyraziť na cesty s pomocou umelej inteligencie je snom, ktorý máme už nejaký čas. Ale napriek niekoľkým prísľubom ich nikde nevidno. Prečítajte si tento blog a dozviete sa viac…
Ako sa veda vyvíja rýchlym tempom a preberá veľa nášho úsilia, zvyšuje sa aj riziko, že sa vystavíme nevysvetliteľnej singularite. Prečítajte si, čo pre nás môže znamenať singularita.
Spôsoby ukladania údajov sa môžu vyvíjať už od zrodu údajov. Tento blog sa zaoberá vývojom ukladania údajov na základe infografiky.
Prečítajte si blog, aby ste čo najjednoduchším spôsobom spoznali rôzne vrstvy architektúry veľkých dát a ich funkcie.
V tomto digitálnom svete sa inteligentné domáce zariadenia stali kľúčovou súčasťou života. Tu je niekoľko úžasných výhod inteligentných domácich zariadení o tom, ako robia náš život, ktorý stojí za to žiť, a ktorý zjednodušujú.
Spoločnosť Apple nedávno vydala doplnkovú aktualizáciu macOS Catalina 10.15.4 na opravu problémov, ale zdá sa, že táto aktualizácia spôsobuje ďalšie problémy, ktoré vedú k blokovaniu počítačov Mac. Prečítajte si tento článok a dozviete sa viac