Internetas. Kompiuteris. Pagalba. Patarimas. Remontas

Tinklo nustatymas, (tinklo kortelės) Ubuntu sąsajos. Pavojingi Linux pažeidžiamumai PPPoE ryšio nustatymas

Kasmetinėje LinuxCon konferencijoje 2015 m. GNU/Linux branduolio kūrėjas Linusas Torvaldsas pasidalijo savo nuomone apie sistemos saugumą. Jis pabrėžė, kad reikia sušvelninti tam tikrų klaidų poveikį kompetentinga apsauga, kad sugedus vienam komponentui, kitas sluoksnis padengtų problemą.

Šioje medžiagoje bandysime aprėpti šią temą praktiniu požiūriu:

7. Įdiekite ugniasienes

Neseniai atsirado naujas pažeidžiamumas, leidžiantis DDoS atakas prieš serverius, kuriuose veikia Linux. 2012 m. pabaigoje su 3.6 versija pasirodė sistemos branduolio klaida. Pažeidžiamumas leidžia įsilaužėliams suleisti virusus į atsisiuntimo failus, tinklalapius ir atidaryti Tor ryšius, o įsilaužimas nereikalauja daug pastangų – tiks IP klaidinimo metodas.

Didžiausia šifruotų HTTPS arba SSH ryšių žala yra ryšio nutraukimas, tačiau užpuolikas gali į neapsaugotą srautą įterpti naujo turinio, įskaitant kenkėjiškas programas. Apsaugai nuo tokių atakų tinka ugniasienė.

Blokuokite prieigą naudodami ugniasienę

Ugniasienė yra viena iš svarbiausių priemonių blokuoti nepageidaujamą srautą. Rekomenduojame leisti tik tikrai būtiną eismą ir visiškai blokuoti visus kitus.

Paketų filtravimui dauguma Linux paskirstymų turi iptables valdiklį. Jį dažniausiai naudoja pažengę vartotojai, o supaprastintam sąrankai galite naudoti UFW priemones Debian/Ubuntu arba FirewallD sistemoje Fedora.

8. Išjungti nereikalingas paslaugas

Virdžinijos universiteto ekspertai rekomenduoja išjungti visas paslaugas, kuriomis nesinaudojate. Kai kurie foniniai procesai nustatomi taip, kad būtų paleidžiami automatiškai ir vykdomi tol, kol sistema išsijungia. Norėdami sukonfigūruoti šias programas, turite patikrinti inicijavimo scenarijus. Paslaugas galima paleisti per inetd arba xinetd.

Jei jūsų sistema sukonfigūruota per inetd, tada /etc/inetd.conf faile galite redaguoti foninių „daemon“ programų sąrašą, kad išjungtumėte paslaugos įkėlimą, eilutės pradžioje tiesiog įdėkite „#“ ženklą; paverčiant jį iš vykdomojo failo į komentarą.

Jei sistema naudoja xinetd, tada jos konfigūracija bus /etc/xinetd.d kataloge. Kiekvienas katalogo failas apibrėžia paslaugą, kurią galima išjungti nurodant disable = yes, kaip šiame pavyzdyje:

Paslaugos pirštas (socket_type = srautas laukti = nėra vartotojo = niekas serveris = /usr/sbin/in.fingerd disable = taip )
Taip pat verta patikrinti, ar nėra nuolatinių procesų, kurių nevaldo inetd arba xinetd. Paleisties scenarijus galite konfigūruoti /etc/init.d arba /etc/inittab kataloguose. Atlikę pakeitimus paleiskite komandą šakninėje paskyroje.

/etc/rc.d/init.d/inet paleiskite iš naujo

9. Apsaugokite serverį fiziškai

Neįmanoma visiškai apsisaugoti nuo užpuoliko, turinčio fizinę prieigą prie serverio, atakų. Todėl būtina apsaugoti patalpą, kurioje yra jūsų sistema. Duomenų centrai rimtai stebi saugumą, riboja prieigą prie serverių, įrengia apsaugos kameras ir priskiria nuolatinę apsaugą.

Norėdami patekti į duomenų centrą, visi lankytojai turi atlikti tam tikrus autentifikavimo veiksmus. Taip pat primygtinai rekomenduojama visose centro vietose naudoti judesio jutiklius.

10. Apsaugokite serverį nuo neteisėtos prieigos

Neteisėtos prieigos sistema arba IDS renka sistemos konfigūracijos ir failų duomenis ir toliau lygina šiuos duomenis su naujais pakeitimais, kad nustatytų, ar jie kenkia sistemai.

Pavyzdžiui, „Tripwire“ ir „Aide“ įrankiai renka sistemos failų duomenų bazę ir apsaugo juos naudodami raktų rinkinį. Psad naudojamas stebėti įtartiną veiklą naudojant ugniasienės ataskaitas.

Bro sukurtas stebėti tinklą, sekti įtartinus veiklos modelius, rinkti statistiką, vykdyti sistemos komandas ir generuoti įspėjimus. RKHunter gali būti naudojamas apsisaugoti nuo virusų, dažniausiai rootkit. Ši programa patikrina jūsų sistemą pagal žinomų pažeidžiamumų duomenų bazę ir gali nustatyti nesaugius programų nustatymus.

Išvada

Aukščiau išvardyti įrankiai ir nustatymai padės iš dalies apsaugoti sistemą, tačiau saugumas priklauso nuo jūsų elgesio ir situacijos supratimo. Be priežiūros, atsargumo ir nuolatinio saviugdos visos apsaugos priemonės gali neveikti.

Kaip rašo cvedetails.com, nuo 1999 metų „Linux“ branduolyje buvo aptiktos 1305 spragos, iš kurių 68 – 2015 metais. Dauguma jų nekelia jokių ypatingų problemų, yra pažymėti kaip Vietinis ir Žemas, o kai kuriuos galima iškviesti tik susietus su tam tikromis programomis ar OS nustatymais. Iš esmės skaičiai nedideli, bet branduolys nėra visa OS. Pažeidžiamumų taip pat galima rasti GNU Coreutils, Binutils, glibs ir, žinoma, vartotojų programose. Pažvelkime į įdomiausius.

LINUX branduolio pažeidžiamumas

OS: Linux
Lygis: Vidutinis, Žemas
Vektorius: Nuotolinis
CVE: CVE-2015-3331, CVE-2015-4001, CVE-2015-4002, CVE-2015-4003
Išnaudoti: koncepcija, https://lkml.org/lkml/2015/5/13/740, https://lkml.org/lkml/2015/5/13/744

Birželio mėn. rastas Linux branduolio iki 3.19.3 pažeidžiamumas __driver_rfc4106_decrypt funkcijoje arch/x86/crypto/aesni-intel_glue.c dėl RFC4106 įdiegimo x86 procesoriams, palaikantiems AES instrukcijų rinkinio plėtinį AES-NI (siūloma „Intel“, „Intel Advanced Encryption Standard Instructions“) kai kuriais atvejais netinkamai apskaičiuoja buferio adresus. Jei IPsec tunelis sukonfigūruotas naudoti šį režimą (AES algoritmas – CONFIG_CRYPTO_AES_NI_INTEL), pažeidžiamumas gali sukelti atminties sugadinimą, strigtis ir potencialiai nuotolinį CryptoAPI kodo vykdymą. Be to, įdomiausia, kad problema gali kilti pati, visiškai legaliame eisme, be pašalinio įsikišimo. Paskelbimo metu problema buvo išspręsta.

Buvo nustatytos penkios „Linux 4.0.5 ozwpan“ tvarkyklės, turinčios eksperimentinę būseną, pažeidžiamumas, keturios iš jų leidžia organizuoti DoS ataką sudaužant branduolį, siunčiant specialiai sukurtus paketus. Problema susijusi su buferio perpildymu dėl netinkamo sveikųjų ženklų tvarkymo, kai apskaičiavimas memcpy tarp reikalingo_dydžio ir poslinkio grąžino neigiamą skaičių, todėl duomenys nukopijuojami į krūvą.

Rasta oz_hcd_get_desc_cnf funkcijoje drivers/staging/ozwpan/ozhcd.c ir failo drivers/staging/ozwpan/ozusbsvc1.c funkcijose oz_usb_rx ir oz_usb_handle_ep_data. Kiti pažeidžiamumai buvo susiję su galimu padalijimu iš 0, sistemos kilpomis arba galimybe skaityti iš sričių, esančių už paskirto buferio ribų.

„Ozwpan“ tvarkyklė, naujas „Linux“ priedas, gali būti susietas su esamais „Ozmo Devices“ („Wi-Fi Direct“) suderinamais belaidžiais įrenginiais. Pateikiamas USB pagrindinio valdiklio įgyvendinimas, tačiau gudrybė ta, kad vietoj fizinio ryšio periferinis įrenginys bendrauja per Wi-Fi. Vairuotojas priima tinklo paketus, kurių tipas (ethertype) 0x892e, tada juos analizuoja ir paverčia įvairiomis USB funkcijomis. Kol kas jis naudojamas retai, todėl jį galima išjungti iškraunant ozwpan.ko modulį.

LINUX UBUNTU

OS: Linux Ubuntu 12.04–15.04 (branduolis iki 2015 m. birželio 15 d.)
Lygis: Kritinis
Vektorius: Vietinis
CVE: CVE-2015-1328
Išnaudoti: https://www.exploit-db.com/exploits/37292/

Kritinis „OverlayFS“ failų sistemos pažeidžiamumas leidžia „root“ prieigą prie Ubuntu sistemų, kurios leidžia neprivilegijuotam vartotojui įdiegti OverlayFS skaidinius. Numatytieji nustatymai, reikalingi pažeidžiamumui išnaudoti, naudojami visose Ubuntu 12.04–15.04 šakose. Pats OverlayFS Linux branduolyje pasirodė palyginti neseniai – pradedant 3.18-rc2 (2014), tai yra SUSE plėtra, pakeičianti UnionFS ir AUFS. OverlayFS leidžia sukurti virtualią kelių sluoksnių failų sistemą, kuri sujungia keletą kitų failų sistemų dalių.

Failų sistema yra sukurta iš apatinio ir viršutinio sluoksnių, kurių kiekvienas yra prijungtas prie atskirų katalogų. Apatinis sluoksnis naudojamas skaityti tik bet kokių „Linux“ palaikomų failų sistemų kataloguose, įskaitant tinklo. Viršutinis sluoksnis paprastai yra rašomas ir nepaisys apatinio sluoksnio duomenų, jei failai dubliuojami. Jis yra paklausus tiesioginiuose platinimuose, konteinerių virtualizacijos sistemose ir organizuojant kai kurių darbalaukio programų konteinerių veikimą. Naudotojų vardų erdvėse galite sukurti savo naudotojų ir grupių ID rinkinius konteineriuose. Pažeidžiamumą sukelia neteisingas prieigos teisių patikrinimas kuriant naujus failus pagrindinės failų sistemos kataloge.

Jei branduolys sukurtas naudojant CONFIG_USER_NS=y (įgalinti vartotojo vardų erdvę) ir jungiant nurodoma vėliavėlė FS_USERNS_MOUNT, įprastas vartotojas OverlayFS gali prijungti kitoje vardų erdvėje, įskaitant tas, kurios leidžia atlikti šaknines operacijas. Tokiu atveju operacijos su failais su root teisėmis, atliekamos tokiose vardų erdvėse, gauna tas pačias privilegijas atliekant veiksmus su pagrindine failų sistema. Todėl galite prijungti bet kurį FS skaidinį ir peržiūrėti arba modifikuoti bet kurį failą ar katalogą.

Publikavimo metu jau buvo galimas branduolio naujinimas su fiksuotu „Ubuntu“ moduliu OverlayFS. O jei sistema atnaujinta, problemų neturėtų kilti. Tuo pačiu atveju, kai atnaujinti neįmanoma, kaip laikiną priemonę, turėtumėte nustoti naudoti OverlayFS pašalindami modulį overlayfs.ko.

PAGRINDINIŲ PROGRAMŲ PAŽEIDIMAI

OS: Linux
Lygis: Kritinis
Vektorius: vietinis, nuotolinis
CVE: CVE-2015-0235
Išnaudoti: https://www.qualys.com/research/security-advisories/exim_ghost_bof.rb

Pavojingas pažeidžiamumas GNU glibc standartinėje bibliotekoje, kuri yra pagrindinė „Linux“ OS dalis, ir kai kuriose „Oracle Communications Applications“ ir „Oracle Pillar Axiom“ versijose, aptikta „Qualys“ įsilaužėlių kodo audito metu. Gavo kodinį pavadinimą GHOST. Tai yra buferio perpildymas funkcijoje __nss_hostname_digits_dots(), kurią naudoja glibc funkcijos, tokios kaip gethostbyname() ir gethostbyname2(), kad gautų pagrindinio kompiuterio pavadinimą (taigi ir pavadinimas GetHOST). Norėdami išnaudoti pažeidžiamumą, turite sukelti buferio perpildymą, naudodami netinkamą pagrindinio kompiuterio pavadinimo argumentą, taikomą programai, atliekančiai pavadinimo sprendimą per DNS. Tai yra, teoriškai šis pažeidžiamumas gali būti taikomas bet kuriai programai, kuri vienu ar kitu laipsniu naudoja tinklą. Galima iškviesti vietoje arba nuotoliniu būdu, leidžiant vykdyti savavališką kodą.

Įdomiausia, kad klaida buvo ištaisyta dar 2013 metų gegužę, tarp glibc 2.17 ir 2.18 leidimų buvo pristatytas pataisas, tačiau problema nebuvo priskirta saugos pataisoms, todėl į ją nebuvo kreipiamas dėmesys. Dėl to daugelis platinimų buvo pažeidžiami. Iš pradžių buvo pranešta, kad pati pirmoji pažeidžiama versija buvo 2.2, išleista 2000 m. lapkričio 10 d., tačiau yra tikimybė, kad ji pasirodys iki 2.0. Be kita ko, buvo paveikti platinimai RHEL/CentOS 5.x–7.x, Debian 7 ir Ubuntu 12.04 LTS. Šiuo metu galimos karštosios pataisos. Patys įsilaužėliai pasiūlė įrankį, kuris paaiškina pažeidžiamumo esmę ir leidžia patikrinti jūsų sistemą. Viskas gerai Ubuntu 12.04.4 LTS:

$ wget https : //goo.gl/RuunlE

$gcc gistfile1. c - o CVE - 2015 - 0235

$. / CVE - 2015 - 0235

nėra pažeidžiamas

Sistemos tikrinimas naudojant GHOST

Beveik iš karto buvo išleistas modulis, leidžiantis nuotoliniu būdu vykdyti kodą x86 ir x86_64 Linux su veikiančiu Exim pašto serveriu (su įjungtu parametru helo_try_verify_hosts arba helo_verify_hosts). Vėliau pasirodė kiti diegimai, pavyzdžiui, Metasploit modulis, skirtas tinklaraščiui patikrinti „WordPress“.

Šiek tiek vėliau, 2015 m., GNU glibc buvo aptiktos dar trys spragos, leidžiančios nuotoliniam vartotojui atlikti DoS ataką arba perrašyti atminties langelius už krūvos ribos: CVE-2015-1472, CVE-2015-1473, CVE-2015- 1781 m.

OS: Linux (GNU Coreutils)
Lygis:Žemas
Vektorius: Vietinis, nuotolinis
CVE: CVE-2014-9471
Išnaudoti: Nr

GNU Coreutils yra vienas iš pagrindinių *nix paketų, įskaitant beveik visas pagrindines priemones (cat, ls, rm, date...). Problema buvo nustatyta laiku. Funkcijos parse_datetime trūkumas gali leisti nuotoliniam užpuolikui, neturinčiam paskyros sistemoje, sukelti paslaugų atsisakymą ir galbūt vykdyti savavališką kodą per specialiai sukurtą datos eilutę, naudojant laiko juostą. Pažeidžiamumas atrodo taip:

$ touch ‘-- data = TZ = ”123”345”@1'

Segmentacijos gedimas

$ data - d 'TZ = "Europa / Maskva" "00 : 00 + 1 valanda"'

Segmentacijos gedimas

$ data ‘-- data = TZ = ”123”345”@1'

* * * Klaida datoje: nemokama () : netinkama rodyklė: 0xbfc11414 * * *

GNU Coreutils pažeidžiamumas

Jei pažeidžiamumo nėra, gausime pranešimą apie neteisingą datos formatą. Beveik visi Linux platinimo kūrėjai pranešė apie pažeidžiamumą. Šiuo metu yra atnaujinimas.


Įprasta pataisytų GNU Coreutils išvestis

OS:„Linux“ (grep 2.19–2.21)
Lygis:Žemas
Vektorius: Vietinis
CVE: CVE-2015-1345
Išnaudoti: Nr

Pažeidžiamumų retai randama grep programoje, kuri naudojama ieškant teksto naudojant šabloną. Tačiau šią priemonę dažnai vadina kitos programos, įskaitant sistemines, todėl pažeidžiamumų buvimas yra daug problemiškesnis, nei atrodo iš pirmo žvilgsnio. Dėl kwset.c funkcijos bmexec_trans klaidos gali būti nuskaityti nepainicijuoti duomenys iš srities, esančios už paskirto buferio ribų, arba programa gali sugesti. Įsilaužėlis gali tuo pasinaudoti sukurdamas specialų duomenų rinkinį, pateikiamą programos įvestis naudojant grep -F. Šiuo metu yra atnaujinimų. Nėra jokių išnaudojimų, kurie naudoja pažeidžiamumą arba Metasploit modulį.

FREBSD pažeidžiamumas

OS: FreeBSD
Lygis:Žemas
Vektorius: Vietinis, nuotolinis
CVE: CVE-2014-0998, CVE-2014-8612, CVE-2014-8613
Išnaudoti: https://www.exploit-db.com/exploits/35938/

2015 metų CVE duomenų bazėje pažeidžiamumų nėra daug, tiksliau – tik šeši. 2015 m. sausio pabaigoje „Core Exploit Writers Team“ tyrėjai aptiko tris FreeBSD 8.4–10.x pažeidžiamumus. CVE-2014-0998 yra susijęs su VT konsolės tvarkyklės (Newcons), kuri suteikia kelis virtualius terminalus, įgalinamu parametru kern.vty=vt, įdiegimu /boot/loader.conf.
CVE-2014-8612 atsiranda naudojant SCTP protokolą ir jį sukelia klaida SCTP srauto ID patvirtinimo kode, kuriame įdiegiami SCTP lizdai (vietinis prievadas 4444). Esmė yra funkcijos sctp_setopt() klaida (sys/netinet/sctp_userreq.c). Tai suteikia vietiniam neprivilegijuotam vartotojui galimybę įrašyti arba nuskaityti 16 bitų branduolio atminties duomenų ir išplėsti savo teises sistemoje, atskleisti neskelbtinus duomenis arba sugriauti sistemą.

CVE-2014-8613 leidžia suaktyvinti NULL rodyklės nuorodą, kai apdorojamas išoriškai gautas SCTP paketas, kai nustatyta SCTP lizdo parinktis SCTP_SS_VALUE. Skirtingai nuo ankstesnių versijų, CVE-2014-8613 gali būti naudojamas nuotoliniu būdu sukelti branduolio gedimą, siunčiant specialiai sukurtus paketus. FreeBSD 10.1 versijoje galite apsisaugoti nustatydami kintamąjį net.inet.sctp.reconfig_enable į 0, taip išjungdami RE_CONFIG blokų apdorojimą. Arba tiesiog uždrausti programoms (naršyklėms, el. pašto klientams ir kt.) naudoti SCTP ryšius. Nors paskelbimo metu kūrėjai jau buvo išleidę atnaujinimą.


FreeBSD pažeidžiamumo statistika

OPENSSL pažeidžiamumas

OS: OpenSSL
Lygis: Nuotolinis
Vektorius: Vietinis
CVE: CVE-2015-1793
Išnaudoti: Nr

2014 m. OpenSSL – plačiai naudojamame kriptografiniame pakete, skirtame darbui su SSL/TLS, buvo aptiktas kritinis „Heartbleed“ pažeidžiamumas. Šis incidentas vienu metu sukėlė didžiulę kritiką dėl kodo kokybės, ir, viena vertus, tai paskatino alternatyvų, tokių kaip LibreSSL, atsiradimą, kita vertus, patys kūrėjai pagaliau ėmėsi verslo.

Geriausi pardavėjai pagal pažeidžiamumą

Kritinį pažeidžiamumą aptiko Adamas Langley iš Google ir Davidas Benjaminas iš BoringSSL. Dėl OpenSSL 1.0.1n ir 1.0.2b versijų pakeitimų OpenSSL bandė rasti alternatyvią sertifikato tikrinimo grandinę, jei pirmasis bandymas sukurti patikimą grandinę buvo nesėkmingas. Tai leidžia apeiti sertifikato tikrinimo procedūrą ir suorganizuoti patvirtintą ryšį naudojant netikrą sertifikatą, kitaip tariant – ramiai privilioti vartotoją į netikras svetaines ar el. pašto serverį arba atlikti bet kokią MITM ataką, kur naudojamas sertifikatas.

Aptikę pažeidžiamumą, liepos 9 d. kūrėjai išleido 1.0.1p ir 1.0.2d leidimus, kurie išsprendė šią problemą. 0.9.8 arba 1.0.0 versijose šio pažeidžiamumo nėra.

Linux.Encoder

Rudens pabaiga pasižymėjo daugybės šifravimo virusų pasirodymu – pirmiausia Linux.Encoder.0, vėliau – modifikacijos Linux.Encoder.1 ir Linux.Encoder.2, kurios užkrėtė daugiau nei 2500 svetainių. Antivirusinių kompanijų teigimu, atakuojami „Linux“ ir „FreeBSD“ serveriai, kurių svetainės veikia naudojant įvairias TVS – „WordPress“, „Magento CMS“, „Joomla“ ir kt. Piratai naudojasi nenustatytu pažeidžiamumu. Toliau buvo patalpintas apvalkalo scenarijus (failas error.php), kurio pagalba buvo atliekami bet kokie tolesni veiksmai (per naršyklę). Visų pirma, buvo paleistas „Linux“ kodavimo įrenginys „Trojan“.

Encoder, kuris nustatė OS architektūrą ir paleido išpirkos reikalaujančią programinę įrangą. Kodavimo priemonė buvo paleista su žiniatinklio serverio teisėmis (Ubuntu - www-data), kurių visiškai pakanka failams užšifruoti kataloge, kuriame saugomi CMS failai ir komponentai. Šifruoti failai gauna naują plėtinį.šifruota.

Išpirkos reikalaujanti programa taip pat bando apeiti kitus OS katalogus, jei teisės sukonfigūruotos neteisingai, ji gali lengvai peržengti svetainės ribas. Tada failas README_FOR_DECRYPT.txt buvo išsaugotas kataloge, kuriame yra failų iššifravimo instrukcijos ir įsilaužėlių reikalavimai. Šiuo metu antivirusinės kompanijos pristatė komunalines paslaugas, kurios leidžia iššifruoti katalogus. Pavyzdžiui, rinkinys iš Bitdefender. Tačiau reikia atsiminti, kad visos komunalinės paslaugos, skirtos failams iššifruoti, nepašalina apvalkalo kodo ir viskas gali pasikartoti.

Atsižvelgiant į tai, kad daugelis vartotojų, dalyvaujančių kuriant ar eksperimentuojant su svetainės administravimu, dažnai įdiegia žiniatinklio serverį savo namų kompiuteryje, turėtumėte susirūpinti saugumu: blokuoti prieigą iš išorės, atnaujinti programinę įrangą, atlikti eksperimentus VM. Ir pati idėja ateityje galėtų būti panaudota atakuojant namų sistemas.

IŠVADA

Sudėtinga programinė įranga be klaidų fiziškai neegzistuoja, todėl tenka susitaikyti su tuo, kad pažeidžiamumų bus aptinkama nuolat. Tačiau ne visi jie gali būti tikrai problemiški. O apsisaugoti galite atlikdami paprastus veiksmus: pašalinkite nenaudojamą programinę įrangą, stebėkite naujas spragas ir būtinai įdiekite saugos naujinimus, sukonfigūruokite ugniasienę, įdiekite antivirusinę programą. Nepamirškite apie specialias technologijas, tokias kaip SELinux, kurios gali pakenkti demonui ar vartotojo programai.

Yra paplitusi klaidinga nuomonė, kad serveriai, kuriuose veikia Linux OS, yra patys saugiausi ir apsaugoti nuo išorinių įsilaužimų. Deja, bet kurio serverio saugumas priklauso nuo daugelio veiksnių ir priemonių, užtikrinančių tai, ir praktiškai nepriklauso nuo naudojamos operacinės sistemos.

Nusprendėme pradėti straipsnių seriją, skirtą tinklo saugumui su Ubuntu serveriu, nes šios platformos sprendimai labai domina mūsų skaitytojus ir daugelis mano, kad Linux sprendimai yra saugūs.

Tuo pačiu metu maršrutizatorius su tam skirtu IP adresu yra „vartai“ į vietinį tinklą, ir tik nuo administratoriaus priklausys, ar šie vartai bus patikima kliūtis, ar bus šalies vartai, uždaryti vinis.

Kita paplitusi klaidinga nuomonė yra samprotavimai tokiu stiliumi: „kam to reikia, mūsų serveriui, mes neturime nieko įdomaus“. Iš tiesų, jūsų vietinis tinklas gali nesudominti užpuolikų, tačiau jie gali naudoti įsilaužtą serverį šlamštui siųsti, atakoms prieš kitus serverius, anoniminį tarpinį serverį, trumpai tariant, kaip atspirties tašką savo šešėliniams sandoriams.

O tai jau nemalonu ir gali būti įvairių problemų šaltinis: nuo tiekėjo iki teisėsaugos institucijų. Taip pat nereikėtų pamiršti apie virusų plitimą, svarbios informacijos vagystes ir sunaikinimą, taip pat apie tai, kad įmonės prastovos sukelia gana apčiuopiamų nuostolių.

Nepaisant to, kad straipsnis yra skirtas Ubuntu serveriui, pirmiausia apžvelgsime bendras saugumo problemas, kurios vienodai taikomos bet kuriai platformai ir yra pagrindai, be kurių nėra prasmės diskutuoti išsamiau.

Kur prasideda saugumas?

Ne, saugumas prasideda ne nuo ugniasienės, visai ne nuo aparatinės įrangos, saugumas prasideda nuo vartotojo. Juk kokia nauda iš geriausių specialistų sumontuotų šauniausių metalinių durų, jei šeimininkas raktą palieka po kilimėliu?

Todėl pirmas dalykas, kurį turėtumėte padaryti, yra atlikti saugumo auditą. Neišsigąskite šio žodžio, viskas nėra taip sudėtinga: nubraižykite schematinį tinklo planą, kuriame pažymėsite saugią zoną, potencialaus pavojaus zoną ir didelio pavojaus zoną, taip pat sudarykite sąrašą vartotojų, kurie turi (turėtų turėti) prieiga) į šias zonas.

Saugi zona turėtų apimti vidinius tinklo išteklius, kurie nėra pasiekiami iš išorės ir kuriems yra priimtinas žemas saugumo lygis. Tai gali būti darbo stotys, failų serveriai ir kt. įrenginiai, prie kurių prieiga ribojama iki įmonės vietinio tinklo.

Į galimą pavojaus zoną patenka serveriai ir įrenginiai, kurie neturi tiesioginės prieigos prie išorinio tinklo, bet kurių atskiros paslaugos pasiekiamos iš išorės, pavyzdžiui, žiniatinklio ir pašto serveriai, esantys už ugniasienės, bet vis tiek aptarnaujantys išorinio tinklo užklausas.

Pavojingoje zonoje turėtų būti įrenginiai, kuriuos galima pasiekti tiesiogiai iš išorės, tai turėtų būti vienas maršrutizatorius.

Jei įmanoma, potencialiai pavojinga zona turėtų būti dedama į atskirą potinklį – demilitarizuotą zoną (DMZ), kuri nuo pagrindinio tinklo yra atskirta papildoma užkarda.

LAN įrenginiai turėtų turėti prieigą tik prie tų DMZ paslaugų, kurių jiems reikia, pvz., SMTP, POP3, HTTP, o kiti ryšiai turėtų būti užblokuoti. Tai leis jums patikimai atskirti užpuoliką ar kenkėjišką programą, kuri pasinaudojo atskiros tarnybos pažeidžiamumu demilitarizuotoje zonoje, užkertant kelią prieigai prie pagrindinio tinklo.

Fiziškai DMZ galima organizuoti įdiegus atskirą serverio/aparatinės įrangos ugniasienę arba prie maršrutizatoriaus pridedant papildomą tinklo plokštę, tačiau pastaruoju atveju teks daug dėmesio skirti maršrutizatoriaus saugumui. Tačiau bet kuriuo atveju vieno serverio saugumą užtikrinti daug lengviau nei serverių grupės.

Kitas žingsnis turėtų būti vartotojų sąrašo analizė, ar jiems visiems reikia prieigos prie DMZ ir maršrutizatoriaus (išskyrus viešąsias paslaugas), ypatingas dėmesys turėtų būti skiriamas vartotojams, jungiantiems iš išorės.

Paprastai tam reikia labai nepopuliaraus žingsnio – slaptažodžių politikos vykdymo. Visi slaptažodžiai vartotojams, kurie turi prieigą prie svarbių paslaugų ir gali prisijungti iš išorės, turi sudaryti mažiausiai 6 simbolius ir juose, be mažųjų raidžių, turi būti simbolių iš dviejų kategorijų iš trijų: didžiosios raidės, skaičiai, ne abėcėliniai simboliai. .

Be to, slaptažodis neturėtų apimti vartotojo prisijungimo ar jo dalies, datų ar vardų, kurie gali būti susieti su vartotoju, ir, pageidautina, neturėtų būti žodyno žodis.

Pravartu pradėti keisti slaptažodžius kas 30–40 dienų. Akivaizdu, kad tokia politika gali sukelti vartotojų atmetimą, tačiau visada turėtumėte atsiminti, kad slaptažodžiai mėgsta 123 arba qwerty prilygsta rakto palikimui po kilimėliu.

Serverio apsauga – nieko papildomo.

Dabar, turėdami idėją, ką ir nuo ko norime apsaugoti, pereikime prie paties serverio. Sudarykite visų paslaugų ir paslaugų sąrašą, tada pagalvokite, ar jų visų reikia šiame konkrečiame serveryje, ar jas galima perkelti kur nors kitur.

Kuo mažiau paslaugų, tuo lengviau užtikrinti saugumą ir mažesnė tikimybė, kad serveris bus pažeistas dėl vienos iš jų kritinio pažeidžiamumo.

Konfigūruokite paslaugas, aptarnaujančias vietinį tinklą (pvz., kalmarus), kad jos priimtų užklausas tik iš vietinės sąsajos. Kuo mažiau paslaugų iš išorės, tuo geriau.

Pažeidžiamumo skaitytuvas bus geras pagalbininkas užtikrinant saugumą, jis turėtų būti naudojamas išorinei serverio sąsajai nuskaityti. Naudojome vieno žinomiausių produktų – XSpider 7.7 – demonstracinę versiją.

Skaitytuvas rodo atvirus prievadus, bando nustatyti veikiančios paslaugos tipą ir, jei pavyks, jos pažeidžiamumą. Kaip matote, teisingai sukonfigūruota sistema yra gana saugi, tačiau neturėtumėte palikti rakto po kilimėliu, jei maršrutizatoriuje yra atvirų prievadų 1723 (VPN) ir 3389 (RDP, persiųstas į terminalo serverį); gera priežastis pagalvoti apie slaptažodžių politiką.

Taip pat turėtume kalbėti apie SSH saugumą, šią paslaugą dažniausiai naudoja administratoriai nuotoliniam serverio valdymui ir ji labai domina užpuolikus. SSH nustatymai saugomi faile /etc/ssh/sshd_config, atlikti visi toliau aprašyti pakeitimai. Visų pirma, norėdami tai padaryti, turėtumėte išjungti autorizaciją, pridėkite parinktį:

PermitRootLogin Nr

Dabar užpuolikas turės atspėti ne tik slaptažodį, bet ir prisijungimo vardą, o supervartotojo slaptažodžio jis vis tiek nežinos (tikimės, kad jis nesutampa su jūsų slaptažodžiu). Visos administracinės užduotys jungiantis iš išorės turi būti atliekamos iš apačios sudo prisijungti kaip neprivilegijuotas vartotojas.

Verta aiškiai nurodyti leidžiamų vartotojų sąrašą ir galite naudoti tokius įrašus kaip vartotojas@host, kuri leidžia nurodytam vartotojui prisijungti tik iš nurodyto pagrindinio kompiuterio. Pavyzdžiui, norėdami leisti vartotojui ivanov prisijungti iš namų (IP 1.2.3.4), turėtumėte pridėti šį įrašą:

AllowUser [apsaugotas el. paštas]

Taip pat išjunkite pasenusio ir mažiau saugaus SSH1 protokolo naudojimą, leidžiantį tik antrajai protokolo versijai, pakeiskite šią eilutę į formą:

2 protokolas

Nepaisant visų priemonių, kurių buvo imtasi, vis tiek bus bandoma prisijungti prie SSH ir kitų viešųjų paslaugų, kad būtų išvengta slaptažodžio atspėjimo, naudokitės programa fail2ban, kuri leidžia automatiškai uždrausti vartotoją po kelių nesėkmingų prisijungimo bandymų. Galite įdiegti naudodami komandą:

Sudo apt-get install fail2ban

Ši programa yra paruošta veikti iš karto po įdiegimo, tačiau patartume nedelsiant pakeisti kai kuriuos parametrus, atlikti failo pakeitimus /etc/fail2ban/jail.conf. Pagal numatytuosius nustatymus kontroliuojama tik prieiga prie SSH, o uždraudimo laikas yra 10 minučių (600 sekundžių), mūsų nuomone, verta jį padidinti keičiant šią parinktį:

Bantime = 6000

Tada slinkite per failą ir įgalinkite jūsų sistemoje veikiančių paslaugų skyrius, nustatydami parametrą po atitinkamos sekcijos pavadinimo įjungtas valstybėje tiesa, pavyzdžiui, paslaugai proftpd tai atrodys taip:


įjungta = tiesa

Kitas svarbus parametras maksretrija, kuris yra atsakingas už maksimalų prisijungimo bandymų skaičių. Pakeitę nustatymus nepamirškite iš naujo paleisti paslaugos:

Sudo /etc/init.d/fail2ban paleiskite iš naujo

Komunalinių paslaugų žurnalą galite pamatyti adresu /var/log/fail2ban.log.

Administravimo įrankių diegimas ir konfigūravimas, tinklo konfigūravimas

Įdiegę pagrindinę operacinę sistemą ubuntu14.04 iš minimalaus platinimo, pirmiausia turime susirūpinti, kaip patogiai ją valdyti. Iš esmės *nix serveriams konfigūruoti ir valdyti naudojamas ssh/telnet, tačiau pastaruoju metu tam atsirado ir gana tinkamų įrankių, pagrįstų žiniatinklio sąsajomis. Naudoju nemokamus sprendimus Webmin Ir Ajenti. Abi šios plokštės vertos dėmesio ir, nepaisant to, kad jos gali viską padaryti atskirai, kiekviena iš jų labiau tinka kai kuriems dalykams, todėl geriau turėti abi. Norėčiau atkreipti dėmesį, kad koviniuose gamybos serveriuose tokie sprendimai nėra diegiami remiantis saugumu. Juk kuo daugiau valdymo sistemų, tuo didesnė tikimybė rasti jose pažeidžiamumą. Todėl, jei jūsų saugumo reikalavimai yra „paranojinio“ lygio, tiesiog sutikite su tuo, kad su serveriu turėsite dirbti tik per ssh (per konsolę).

Tinklo nustatymas ubuntu 14.04

Norėdami susisiekti su mūsų serveriu tinkle, pirmiausia turite jį sukonfigūruoti. Pagal numatytuosius nustatymus diegimo metu tinklas buvo sukonfigūruotas automatiškai ir jei diegimo programa tinkle aptiko DHCP serverį, greičiausiai jis jau sukonfigūravo viską, kaip reikia. Jei tinkle nėra DHCP serverio, diegimo programa vis tiek viską sukonfigūravo remdamasi maršrutizatoriaus, prie kurio prijungta tinklo plokštė, apklausa. Norėdami pamatyti, kaip šiuo metu sukonfigūruotas tinklas, tiesiog įveskite terminalą:

Ką mes čia matome:

Turime dvi tinklo sąsajas eth0 ir lo, kur lo yra "loopback sąsaja", o eth0 yra mūsų tinklo plokštės pavadinimas, o jei lo yra nepakitusi tinklo sąsaja, visos kitos sąsajos gali skirtis pavadinimu. Jei sistemos bloke yra įdiegtos dvi tinklo plokštės, jų sąsajos greičiausiai atrodys kaip eth0 ir eth1 ir pan. Sąsajos pavadinimo tipas priklauso nuo tinklo plokštės tipo, pavyzdžiui, jei tinklo plokštė veikia per WiFi protokolą, greičiausiai jos pavadinimas bus wlan0.

Norėdami sukonfigūruoti tinklą, redaguokite šį failą:

sudo nano /etc/network/interfaces

Perkelkime ją į šią formą:

iface eth0 inet statinis
adresas 192.168.0.184
tinklo kaukė 255.255.255.0
vartai 192.168.0.1
auto eth0
dns vardų serveriai 8.8.8.8 8.8.4.4

Kur: iface eth0 inet statinis— nurodo, kad sąsaja (iface eth0) yra IPv4 (inet) adresų diapazone su statiniu IP (statinis);
adresas 192.168.0.184— rodo, kad mūsų tinklo plokštės IP adresas yra 192.168.0.184;
tinklo kaukė 255.255.255.0— rodo, kad mūsų potinklio kaukė (tinklo kaukė) yra 255.255.255.0;
vartai 192.168.0.1— numatytasis šliuzo adresas 192.168.0.254;
auto eth0— nurodo sistemai, kad eth0 sąsaja turi būti įjungta automatiškai, kai sistema paleidžiama naudojant aukščiau nurodytus parametrus.
eth0— prijungiamos sąsajos pavadinimas. Sąsajų sąrašą galima peržiūrėti įvedus ifconfig
dns vardų serveriai— DNS serveriai rašomi atskirti tarpu.

Kaip matote mano atveju, nusprendžiau nustatyti statinį IP 192.168.0.184

perkraukite serverį naudodami komandą

Mes sujungiame savo serverį iš tinklo ir įsitikiname, kad jis matomas. Dabar atėjo laikas užmegzti ryšį su juo per SSH, kad tai padarytume, mes iš tikrųjų įdiegsime ssh serverį:

sudo apt-get install ssh

Dabar prie mūsų serverio galite prisijungti per ssh per putty programą, pavyzdžiui, dabar galite įvesti komandas ne rankiniu būdu, o nukopijuodami ir įklijuodami mums reikalingas eilutes į ssh klientą, nes ateityje tai labai palengvins sąranką , kaip greitai pamatysite patys:

VISOS KOMANDOS PO ŠIA EILUTĖS ĮVEDAMOS KAIP SUPERVARTOTOJAS, ir norėdami įeiti į supervartotojo režimą, turite įvesti:

Webmin diegimas

echo "deb https://download.webmin.com/download/repository sarge contrib" >> /etc/apt/sources.list echo "deb https://webmin.mirror.somersettechsolutions.co.uk/repository sarge contrib" >> /etc/apt/sources.list wget https://www.webmin.com/jcameron-key.asc apt-key add jcameron-key.asc apt-get update apt-get install -y webmin

aidas "deb https://download.webmin.com/download/repository sarge contrib">>

aidas „deb https://webmin.mirror.somersettechsolutions.co.uk/repository sarge contrib“>> /etc/apt/sources. sąrašą

wget https: //www.webmin.com/jcameron-key.asc

apt-key pridėti jcameron-key. asc

apt - gauti atnaujinimą

apt - gauti įdiegti - y webmin

Viskas! Įdiegtos ir sukonfigūruotos 6 nuosekliai įvestos komandos ir webmin. Dabar galite prisijungti prie savo naršyklės adresu:

https://192.168.0.184:10000

Pagal numatytuosius nustatymus webmin atrodo minimalistiškai, numatytoji sąsaja rodoma anglų kalba, bet viskas pritaikoma!

Mes tai darome taip:

Pasirodo taip:

Kasmetinėje LinuxCon konferencijoje 2015 m. GNU/Linux branduolio kūrėjas Linusas Torvaldsas pasidalijo savo nuomone apie sistemos saugumą. Jis pabrėžė, kad reikia sušvelninti tam tikrų klaidų poveikį kompetentinga apsauga, kad sugedus vienam komponentui, kitas sluoksnis padengtų problemą.

Šioje medžiagoje bandysime aprėpti šią temą praktiniu požiūriu:

7. Įdiekite ugniasienes

Neseniai atsirado naujas pažeidžiamumas, leidžiantis DDoS atakas prieš serverius, kuriuose veikia Linux. 2012 m. pabaigoje su 3.6 versija pasirodė sistemos branduolio klaida. Pažeidžiamumas leidžia įsilaužėliams suleisti virusus į atsisiuntimo failus, tinklalapius ir atidaryti Tor ryšius, o įsilaužimas nereikalauja daug pastangų – tiks IP klaidinimo metodas.

Didžiausia šifruotų HTTPS arba SSH ryšių žala yra ryšio nutraukimas, tačiau užpuolikas gali į neapsaugotą srautą įterpti naujo turinio, įskaitant kenkėjiškas programas. Apsaugai nuo tokių atakų tinka ugniasienė.

Blokuokite prieigą naudodami ugniasienę

Ugniasienė yra viena iš svarbiausių priemonių blokuoti nepageidaujamą srautą. Rekomenduojame leisti tik tikrai būtiną eismą ir visiškai blokuoti visus kitus.

Paketų filtravimui dauguma Linux paskirstymų turi iptables valdiklį. Jį dažniausiai naudoja pažengę vartotojai, o supaprastintam sąrankai galite naudoti UFW priemones Debian/Ubuntu arba FirewallD sistemoje Fedora.

8. Išjungti nereikalingas paslaugas

Virdžinijos universiteto ekspertai rekomenduoja išjungti visas paslaugas, kuriomis nesinaudojate. Kai kurie foniniai procesai nustatomi taip, kad būtų paleidžiami automatiškai ir vykdomi tol, kol sistema išsijungia. Norėdami sukonfigūruoti šias programas, turite patikrinti inicijavimo scenarijus. Paslaugas galima paleisti per inetd arba xinetd.

Jei jūsų sistema sukonfigūruota per inetd, tada /etc/inetd.conf faile galite redaguoti foninių „daemon“ programų sąrašą, kad išjungtumėte paslaugos įkėlimą, eilutės pradžioje tiesiog įdėkite „#“ ženklą; paverčiant jį iš vykdomojo failo į komentarą.

Jei sistema naudoja xinetd, tada jos konfigūracija bus /etc/xinetd.d kataloge. Kiekvienas katalogo failas apibrėžia paslaugą, kurią galima išjungti nurodant disable = yes, kaip šiame pavyzdyje:

Paslaugos pirštas (socket_type = srautas laukti = nėra vartotojo = niekas serveris = /usr/sbin/in.fingerd disable = taip )
Taip pat verta patikrinti, ar nėra nuolatinių procesų, kurių nevaldo inetd arba xinetd. Paleisties scenarijus galite konfigūruoti /etc/init.d arba /etc/inittab kataloguose. Atlikę pakeitimus paleiskite komandą šakninėje paskyroje.

/etc/rc.d/init.d/inet paleiskite iš naujo

9. Apsaugokite serverį fiziškai

Neįmanoma visiškai apsisaugoti nuo užpuoliko, turinčio fizinę prieigą prie serverio, atakų. Todėl būtina apsaugoti patalpą, kurioje yra jūsų sistema. Duomenų centrai rimtai stebi saugumą, riboja prieigą prie serverių, įrengia apsaugos kameras ir priskiria nuolatinę apsaugą.

Norėdami patekti į duomenų centrą, visi lankytojai turi atlikti tam tikrus autentifikavimo veiksmus. Taip pat primygtinai rekomenduojama visose centro vietose naudoti judesio jutiklius.

10. Apsaugokite serverį nuo neteisėtos prieigos

Neteisėtos prieigos sistema arba IDS renka sistemos konfigūracijos ir failų duomenis ir toliau lygina šiuos duomenis su naujais pakeitimais, kad nustatytų, ar jie kenkia sistemai.

Pavyzdžiui, „Tripwire“ ir „Aide“ įrankiai renka sistemos failų duomenų bazę ir apsaugo juos naudodami raktų rinkinį. Psad naudojamas stebėti įtartiną veiklą naudojant ugniasienės ataskaitas.

Bro sukurtas stebėti tinklą, sekti įtartinus veiklos modelius, rinkti statistiką, vykdyti sistemos komandas ir generuoti įspėjimus. RKHunter gali būti naudojamas apsisaugoti nuo virusų, dažniausiai rootkit. Ši programa patikrina jūsų sistemą pagal žinomų pažeidžiamumų duomenų bazę ir gali nustatyti nesaugius programų nustatymus.

Išvada

Aukščiau išvardyti įrankiai ir nustatymai padės iš dalies apsaugoti sistemą, tačiau saugumas priklauso nuo jūsų elgesio ir situacijos supratimo. Be priežiūros, atsargumo ir nuolatinio saviugdos visos apsaugos priemonės gali neveikti.
Ar jums patiko straipsnis? Pasidalinkite su draugais!
Ar šis straipsnis buvo naudingas?
Taip
Nr
Ačiū už jūsų atsiliepimus!
Kažkas nutiko ir jūsų balsas nebuvo įskaitytas.
Ačiū. Jūsų žinutė buvo išsiųsta
Radote klaidą tekste?
Pasirinkite jį, spustelėkite Ctrl + Enter ir mes viską sutvarkysime!