Kaip įdiegti Tiny Tiny RSS skaitytuvą „FreeBSD 11 FAMP VPS“.
Naudojate kitą sistemą? Tiny Tiny RSS Reader yra nemokama ir atviro kodo savarankiškai priglobta žiniatinklio naujienų kanalo (RSS/Atom) skaitytuvas ir kaupiklis, skirtas
Į VPS serverius dažnai nusitaiko įsibrovėliai. Įprastas atakų tipas rodomas sistemos žurnaluose kaip šimtai neteisėtų ssh prisijungimo bandymų. Užkardos nustatymas yra labai naudingas, tačiau pats savaime negali tinkamai suvaldyti trikdančių bandymų įsilaužti.
Šioje pamokoje parodyta, kaip sukurti patobulintą „FreeBSD“ įsibrovimo barjerą naudojant dvi programas – ipfw
ugniasienę ir sshguard
. SSHGuard yra nedidelė priedo programa, kuri stebi sistemos žurnalus, ar nėra „piktnaudžiavimo“ įrašų. Kai pažeidėjai bando gauti prieigą, sshguard
nurodo ipfw
blokuoti srautą, kilusį iš pažeidėjo IP adreso. Tada nusikaltėlis veiksmingai uždaromas.
Suvokus, kaip šios programos veikia, valdyti serverio apsaugą yra gana paprasta. Nors šiame vadove pagrindinis dėmesys skiriamas „FreeBSD“ konfigūravimui, dalis jo taikoma kitai OS ir ugniasienės programinei įrangai.
FreeBSD numatytajame ( GENERIC
) branduolyje pateikia 3 ugniasienes ipfw
, pf
, ir ipfilter
. Kiekvienas iš jų turi privalumų ir gerbėjų, tačiau ipfw
yra FBSD vietinė ugniasienės programinė įranga ir gana paprasta naudoti mūsų tikslams. Verta paminėti, kad ipfw
jis atlieka daug dalykų, kaip rodo jo vadovas, tačiau tokios galimybės kaip NAT, srauto formavimas ir kt. nėra reikalingos tipinei VPS situacijai. Laimei, pagrindinės ugniasienės funkcijos lengvai atitinka mūsų reikalavimus.
Norėdami paleisti ugniasienę įkrovos metu, pridėkite /etc/rc.conf
:
firewall_enable="YES"
firewall_script="/usr/local/etc/IPFW.rules"
firewall_logging="YES"
Galima service
rankiniu būdu paleisti / sustabdyti užkardą:
[user@vultr ~]$ sudo service ipfw start
Žinoma, ipfw
nieko nedarys, kol nepridės taisyklių, dažnai iš failo, šiame pavyzdyje, esančiame adresu /usr/local/etc/IPFW.rules
. Taisyklių failas iš tikrųjų gali būti bet kur arba turėti bet kokį pavadinimą, jei tik jis atitinka parametrą „firewall_script“. Taisyklių failas išsamiai aprašytas toliau.
sshguard
yra kelių skonių, skirtų naudoti su skirtingomis ugniasienėmis. Norėdami pkg
gauti ir įdiegti, naudokite programą sshguard-ipfw
:
[user@vultr ~]$ sudo pkg install sshguard-ipfw
Daugeliu atvejų tai viskas, ką reikia padaryti. Atitinkamas kintamasis automatiškai įterpiamas, kad būtų /etc/rc.conf
galima pradėti paleisties metu:
sshguard_enable="YES"
Numatytieji nustatymai paprastai veikia gerai. Jei reikia skirtingų reikšmių, sshguard
man puslapyje pateikiama išsami informacija apie parametrus:
# 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"
Galite pradėti sshguard
nuo įprasto service
iškvietimo:
[user@vultr ~]$ sudo service sshguard start
Sunkiausia dalis yra sukurti ugniasienės taisyklių rinkinį. ipfw
gali naudoti pateiktą /etc/rc.firewall
scenarijų, tačiau jis turi būti modifikuotas, kad atitiktų SSHGuard, taip pat skirtingus veikimo scenarijus. Daugelyje tinklalapių ir FreeBSD vadove yra naudingos informacijos apie tai. Tačiau parašyti taisyklių failą nėra taip sunku, be to, tinkintas taisyklių rinkinys gali būti lengviau suprantamas ir prireikus pakeistas.
Svarbi ipfw
taisyklių ypatybė yra ta, kad laimi pirmosios rungtynės, o tai reiškia, kad taisyklių tvarka yra svarbi. Be ipfw
, kiekviena taisyklė yra komandų, o taisyklė failas yra vykdoma apvalkalo scenarijus. Tai leidžia pakeisti taisyklių rinkinį pakeičiant taisykles, tada paleidžiant taisyklių failą kaip apvalkalo scenarijų:
[user@vultr /usr/local/etc]$ sudo ./IPFW.rules
Paprastai taisyklių failas apibrėžia komandos kintamąjį ipfw
, tada išvalys dabartines taisykles, išleis bendrąsias taisykles, tada pereis prie taisyklių „išleidimo“ ir „in“ taisyklių nustatymo. IPfw vadovo puslapyje ir kituose šaltiniuose yra daug informacijos apie taisyklių struktūrą ir parinktis, kurių yra mažų mažiausiai daug.
Kadangi FreeBSD sshguard versija buvo atnaujinta į 1.6.2 versiją, pasikeitė blokavimo taisyklių pažeidėjams įterpimo būdas. Dabar pažeidėjų adresai saugomi ipfw lentelėje (22 lentelė, kad būtų konkretesnė), o ne įterpiami į taisykles virš 55 000, kaip anksčiau.
Laimei, gana paprasta nustatyti taisyklių failą, kad būtų galima naudoti lentelę. Tiesiog reikia įdėti lentelės taisyklę į tinkamą vietą ir rašydami taisyklę naudoti teisingą sintaksę.
Kai sshguard
randa nusikaltėlį, tai kelia pažeidėjo adresą į savo juodąjį sąrašą, taip pat įterpia adresą į ipfw
stalo, todėl bus "sukelti" neigia galimybę. Ši taisyklė padės pasiekti šiuos tikslus:
01000 deny ip from table\(22\) to any
Šiuo atveju vis tiek būtina nustatyti taisykles, leidžiančias įeinančias paslaugas virš 01000. Pavyzdžiui, tarkime, kad adresas 10.20.30.40
yra pažeidėjas 22 lentelėje, ir mes turime šią ipfw taisyklę:
56420 allow tcp from any to me dst-port 22 in via $vif
Kadangi ipfw
susiduria su taisykle 01000 prieš taisyklę 56420 , 10.20.30.40
yra užblokuota . Tai niekada nematys taisyklė „leisti 22 colius“. Jei leidimo taisyklė turėtų „įprastą“ skaičių, pvz., 00420 , blogas srautas būtų įleidžiamas ir niekada nebūtų blokuojamas (nes 00420 yra mažesnis nei 01000 ir „laimi pirmosios rungtynės“).
Puiki atnaujintos versijos savybė yra ta, kad dabar, kai sshguard paleidžiamas, visi juodajame sąraše esantys adresai pridedami prie lentelės ir yra prieinami, kad būtų galima nedelsiant užblokuoti įeinančius pažeidėjus. Juodasis sąrašas yra kaupiamasis ir išsaugomas tarp seansų.
Šiuo metu tikriausiai būtų protinga parodyti visą ipfw
taisyklių rinkinį, pakeistą sshguard
. Komentarai turėtų padėti gana lengvai laikytis taisyklių logikos:
#!/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
Sistemos poreikiai skiriasi, o taisyklių rinkinyje atsispindi skirtingi prievadų, kuriuos norite blokuoti arba atblokuoti, pasirinkimai. Kai taisyklių rinkinys bus baigtas, išsaugokite failą /usr/local/etc/IPFW.rules
ir paleiskite FBSD paslaugas:
# service ipfw start
# service sshguard start
Papildyta ugniasienė dabar turėtų veikti! Patikrinkite sshguard
:
[user@vultr ~]$ sudo pgrep -lfa ssh
Jei sshguard
veikia, rodomas jo pid ir visa komandų eilutė:
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
Tai rodo ugniasienės taisyklių rinkinį su statistika ir paskutinį kartą, kai paketas atitiko taisyklę:
[user@vultr ~]$ sudo ipfw -cat list
Po kelių valandų ar dienų pažeidėjų adresai įtraukiami į juodąjį sąrašą, taip pat į 22 lentelę. Norėdami peržiūrėti visus adresus lentelėje, naudokite šią komandą:
ipfw table 22 list
Rezultatas spausdinamas taip:
10.10.10.118/32 0
10.10.10.72/32 0
...
Kaip aprašyta aukščiau, ryšiai iš šių adresų neleidžiami. Žinoma, pirmą kartą paleidus sshguard
sąraše nebus jokių adresų, tačiau laikui bėgant jis gali pailgėti. Viena iš galimybių yra sukurti atskiras blokavimo taisykles adresams su keliais lentelės įrašais ir ištrinti juos iš juodojo sąrašo.
Retkarčiais verta patikrinti žurnalus, kad įsitikintumėte, jog įsilaužimai yra kontroliuojami. Paprastai /var/log/auth.log
ir /var/log/security
yra informatyvūs. Gali atsirasti spragų arba klaidų, susijusių su tinklo paslaugomis. Užkardos taisyklių rinkinio keitimas pagal poreikį yra įprasta serverio administravimo dalis.
Ankstesnėse sshguard versijose, kai /var/db/sshguard/blacklist.db
failas išaugo didelis, jis galėjo neleisti sshguard
paleisti sistemos įkrovos. Pašalinus arba pervadinus juodojo sąrašo failą leidžiama sshguard
pradėti. Atrodo, kad ši problema išspręsta naujausioje sshguard versijoje, todėl šis sprendimas tikriausiai nebereikalingas.
Į baltąjį sąrašą būtinai įtraukite IP adresą, iš kurio esate prisijungę prie SSH sesijos. Jei netyčia užsiblokuosite, visada galite prisijungti prie noVNC konsolės adresu https://my.vultr.com ir įtraukti savo IP į baltąjį sąrašą.
Apibendrinant, naudojant derinys ipfw
ir sshguard
padeda išlaikyti savo FreeBSD sistemą saugus ir daro savo darbą. Įkyrios tinklo veiklos sumažinimas turi papildomos naudos: mažiau „triukšmo“ leidžia lengviau sekti ir derinti sistemos veikimą, taip prisidedant prie saugesnio ir geriau veikiančio serverio.
Efektyviai apsaugoti FreeBSD sistemą/serverį nėra ypač sudėtinga. Nors reikia šiek tiek pastangų, kad jis pradėtų veikti, tai atsiperka dėl žymiai didesnio VPS ir projekto saugumo.
Naudojate kitą sistemą? Tiny Tiny RSS Reader yra nemokama ir atviro kodo savarankiškai priglobta žiniatinklio naujienų kanalo (RSS/Atom) skaitytuvas ir kaupiklis, skirtas
Naudojate kitą sistemą? Wiki.js yra nemokama atvirojo kodo moderni wiki programa, sukurta naudojant Node.js, MongoDB, Git ir Markdown. Wiki.js šaltinio kodas yra viešas
Naudojate kitą sistemą? Pagekit 1.0 TVS yra graži, modulinė, išplečiama ir lengva, nemokama ir atviro kodo turinio valdymo sistema (TVS) su
Naudojate kitą sistemą? MODX Revolution yra greita, lanksti, keičiamo dydžio atvirojo kodo, įmonės lygio turinio valdymo sistema (TVS), parašyta PHP. Tai i
Šiame straipsnyje paaiškinama, kaip nustatyti OpenBSD 5.5 (64 bitų) KVM naudojant Vultr VPS. 1 veiksmas. Prisijunkite prie Vultr valdymo pulto. 2 veiksmas. Spustelėkite DEPLOY
Naudojate kitą sistemą? osTicket yra atvirojo kodo klientų aptarnavimo bilietų pardavimo sistema. „osTicket“ šaltinio kodas viešai priglobtas „Github“. Šioje pamokoje
Using a Different System? Flarum is a free and open-source next-generation forum software that makes online discussion fun. Flarum source code is hosted o
Naudojate kitą sistemą? TLS 1.3 yra Transport Layer Security (TLS) protokolo versija, kuri buvo paskelbta 2018 m. kaip siūlomas standartas RFC 8446.
Įvadas WordPress yra dominuojanti turinio valdymo sistema internete. Tai suteikia viską nuo tinklaraščių iki sudėtingų svetainių su dinamišku turiniu
Naudojate kitą sistemą? Subrion 4.1 TVS yra galinga ir lanksti atvirojo kodo turinio valdymo sistema (TVS), kuri suteikia intuityvų ir aiškų turinį
Ši pamoka parodys, kaip sukonfigūruoti DNS paslaugą, kurią būtų lengva prižiūrėti, lengva konfigūruoti ir kuri paprastai yra saugesnė nei klasikinis BIN.
FEMP stekas, panašus į LEMP steką Linux sistemoje, yra atvirojo kodo programinės įrangos rinkinys, kuris paprastai įdiegiamas kartu, kad įgalintų FreeBS.
MongoDB yra pasaulinės klasės NoSQL duomenų bazė, kuri dažnai naudojama naujesnėse žiniatinklio programose. Jis teikia didelio našumo užklausas, dalijimąsi ir replikaciją
Naudojate kitą sistemą? Monica yra atviro kodo asmeninių santykių valdymo sistema. Pagalvokite apie tai kaip apie CRM (populiarų įrankį, kurį naudoja pardavimų komandos th
Įvadas Ši pamoka parodo OpenBSD kaip el. prekybos sprendimą naudojant PrestaShop ir Apache. Apache reikalinga, nes PrestaShop turi sudėtingą UR
Naudojate kitą sistemą? Fork yra atvirojo kodo TVS, parašyta PHP. „Forks“ šaltinio kodas yra „GitHub“. Šis vadovas parodys, kaip įdiegti Fork CM
Naudojate kitą sistemą? „Directus 6.4 CMS“ yra galinga ir lanksti, nemokama ir atvirojo kodo turinio valdymo sistema (TVS), kuri suteikia kūrėjams
Į VPS serverius dažnai nusitaiko įsibrovėliai. Įprastas atakų tipas rodomas sistemos žurnaluose kaip šimtai neteisėtų ssh prisijungimo bandymų. Nustatyti
Įvadas OpenBSD 5.6 pristatė naują demoną pavadinimu httpd, kuris palaiko CGI (per FastCGI) ir TLS. Norint įdiegti naują http, nereikia jokių papildomų darbų
Ši pamoka parodys, kaip įdiegti grupinę programą iRedMail naujai įdiegus FreeBSD 10. Turėtumėte naudoti serverį, turintį bent vieną gigabaitą.
Dirbtinis intelektas nėra ateityje, jis čia, dabartyje Šiame tinklaraštyje Skaitykite, kaip dirbtinio intelekto programos paveikė įvairius sektorius.
Ar taip pat esate DDOS atakų auka ir esate sumišęs dėl prevencijos metodų? Perskaitykite šį straipsnį, kad išspręstumėte savo užklausas.
Galbūt girdėjote, kad įsilaužėliai uždirba daug pinigų, bet ar kada susimąstėte, kaip jie uždirba tokius pinigus? padiskutuokime.
Ar norite pamatyti revoliucinius „Google“ išradimus ir kaip šie išradimai pakeitė kiekvieno žmogaus gyvenimą šiandien? Tada skaitykite tinklaraštį, kad pamatytumėte „Google“ išradimus.
Savavaledžių automobilių koncepcija, kuri išvažiuotų į kelius su dirbtinio intelekto pagalba, yra svajonė, kurią jau kurį laiką svajojame. Tačiau nepaisant kelių pažadų, jų niekur nematyti. Skaitykite šį tinklaraštį, kad sužinotumėte daugiau…
Kadangi mokslas sparčiai vystosi, perimdamas daug mūsų pastangų, taip pat didėja rizika, kad pateksime į nepaaiškinamą singuliarumą. Skaitykite, ką mums gali reikšti išskirtinumas.
Duomenų saugojimo metodai gali būti tobulinami nuo pat Duomenų gimimo. Šiame tinklaraštyje, remiantis infografika, aprašoma duomenų saugojimo raida.
Skaitykite tinklaraštį, kad paprasčiausiai sužinotumėte apie skirtingus didžiųjų duomenų architektūros sluoksnius ir jų funkcijas.
Šiame skaitmeniniu būdu pagrįstame pasaulyje išmanieji namų įrenginiai tapo svarbia gyvenimo dalimi. Štai keletas nuostabių išmaniųjų namų įrenginių privalumų, kaip jie daro mūsų gyvenimą vertą gyventi ir paprastesnį.
Neseniai „Apple“ išleido „macOS Catalina 10.15.4“ priedą, skirtą problemoms išspręsti, tačiau atrodo, kad dėl atnaujinimo kyla daugiau problemų, dėl kurių „Mac“ įrenginiai blokuojami. Norėdami sužinoti daugiau, perskaitykite šį straipsnį