Linux-tiedostojen käytön tarkastus. Kovettuva Linux. Valitsemme työkalut kattavaan turvatarkastukseen. Yksittäisten testien suorittaminen Lynisissä

Suurin osa yritys- ja monikomponenttijärjestelmistä, kuten MAHLA , Oracle DB käyttää alustassaan käyttöjärjestelmää, joka perustuu Linux . Tämän vuoksi he saavat niin suurta huomiota IT-auditorioilta. Tänään tässä artikkelissa esittelemme huomiosi useita ilmaisia ​​työkaluja, jotka on esitelty komentosarjojen muodossa ja jotka käyttävät tavallisia käyttöjärjestelmämekanismeja suojauskokoonpanon nopean tarkastuksen tarjoamiseksi.

Alla kuvatut järjestelmäkomennot ja komentosarjat, joita käytetään Linux-käyttöjärjestelmän suojausvaihtoehtojen pikatarkastukseen, perustuvat ISACA-yhteisön UNIX/LINUX-käyttöjärjestelmän suojauksen tarkastus-/varmistusohjelman käsikirjassa julkaisemiin turvatarkistussuosituksiin.

1. Tilin vahvistus

1.1 Listaa kaikki käyttäjät
Käyttäjäluettelo on tallennettu /etc/passwdfile-tiedostoon. Saat luettelon käyttäjistä käyttämällä seuraavaa komentosarjaa:

  1. roskakori/bash
  2. # userlistinthesystem.sh
  3. # count ja luetteloi olemassa olevat "oikeat" käyttäjät järjestelmässä.
  4. echo "[*] Olemassa olevat käyttäjät (lajiteltu aakkosjärjestykseen):"
  5. grep '/bin/bash' /etc/passwd | grep -v 'juuri' | leikkaa -f1
  6. -d':' | järjestellä
  7. echo -n “[*] Löytyneiden todellisten käyttäjien määrä: “
  8. grep '/bin/bash' /etc/passwd | grep -v 'juuri' | wc -l
1.2 Luettele estetyt tilit
Tarkastuksen aikana on tarpeen tarkistaa estettyjen ja estettyjen käyttäjien luettelo ( tilin nimi ). Seuraava komento toimii tähän:
  1. #!/bin/bash
  2. # passwd –s accountName

1.3 Näytä kaikkien käyttäjien tilastot

  • Tarkastajan on varmistettava, että tiimi ac sisällytetään järjestelmään käyttäjien toimintojen tarkistamiseen:
    1. #!/bin/bash
    Voit tarkastella käyttäjän yhteysistunnon toimintaa kunkin päivän kokonaissummalla käyttämällä komentoa:
    1. #!/bin/bash
    2. # ac -d
    Näytä tiedot käyttäjäyhteyden istuntoaktiivisuudesta (tunteina). "käyttäjä" :
    1. #!/bin/bash
    2. # AC-käyttäjä
    1.4 Käyttäjätoiminnan katselu
    Psacct- tai acct-järjestelmäsovellukset toimivat taustalla ja valvovat jokaisen käyttäjän toimintaa järjestelmässä sekä heidän kuluttamiaan resursseja. Tarkistaaksesi käyttäjien toiminnan järjestelmässä, suorita seuraava komentosarja:
    1. #!/usr/bin/envksh
    2. viimeinen -Fa|awk'
    3. /wtmp alkaa/ (seuraava; )
    4. /vielä kirjautuneena/ (seuraava; )
    5. $0 == käynnistä uudelleen (seuraava; )
    6. NF > 0 (
    7. jos(NR > 1)
    8. printf("
      ”);
    9. printf("Käyttäjä:t%s
      ”, $1); #käyttäjä
    10. printf ("Aloita:t%s %s %s %s
      ”, $3, $4, $5, $6);
    11. jos (9 dollaria == "alas")
    12. printf("Loppu:tshutdown
      ”);
    13. printf ("Loppu:t%s %s %s %s
      ”, $9, $10, $11, $12);
    14. if(substr ($NF, 1, 1) == "(")
    15. t = $NF;
    16. h = "paikallinen isäntä";
    17. t = $(NF-1);
    18. h = $NF;
    19. gsub("[()]", "", t);
    20. printf("Päälläoloaika:t%s
      ”, t);
    21. printf("Etäisäntä:t%s
      ”, h);
  • 2. Tarkista salasanakäytäntö

    2.1 Tilit tyhjällä salasanalla
    Tarkastuksen aikana on varmistettava, että järjestelmässä ei ole tai estetty tilejä, joiden avulla voit kirjautua järjestelmään ilman salasanaa. Tämä sääntö voidaan tarkistaa komennolla:

    # kissa /etc/shadow | awk -F: ($2==””)(tulosta $1)'

    2.2 Salasanan monimutkaisuuden tarkistus
    Tarkastuksen aikana on tarpeen tarkistaa salasanan monimutkaisuusasetukset, jotta vähennetään raa'an voiman (raaka voima) tai sanakirjahyökkäysten riskiä salasanaan. Jos haluat määrittää tämän säännön järjestelmässäsi, sinun on käytettävä Plug-in Authentication Module (PAM) -moduulia.
    Tarkastaja voi tarkistaa vastaavan asetuksen konfiguraatiotiedostosta:

    # vi /etc/pam.d/system-auth

    2.3 Salasanan vanhenemispäivän tarkistaminen

    Tarkastuksen aikana sinun on tarkistettava salasanan vanhenemisasetus. Salasanan vanhenemispäivän tarkistamiseksi sinun on käytettävä komentoa muuttaa. Tämä komento tulostaa yksityiskohtainen tieto salasanan voimassaoloaika sekä päivämäärä, jolloin se viimeksi vaihdettiin.
    Seuraavaa komentoa käytetään salasanojen "iän" tarkasteluun:

    #chage -l käyttäjätunnus

    Voit muuttaa salasanan vanhenemisaikaa tietylle käyttäjälle käyttämällä alla olevia komentoja:

    #chage -M 60 -käyttäjätunnus
    #chage -M 60 -m 7 -W 7 käyttäjänimi

    Vaihtoehdot (salasanan vanhenemispäivän asettaminen):
    -M – enimmäisvoimassaoloaika päivinä.
    -m – minimi voimassaoloaika päivinä.
    -W – varoitusasetus päivinä.

    2.4 Päällekkäisten salasanojen käyttö
    Järjestelmän valtuutusasetusten on oltava salasanakäytännön mukaisia. Salasanahistorian sisältävä tiedosto sijaitsee /etc/security/opaswd. Tarkistaaksesi sinun on suoritettava seuraavat vaiheet:

    RHEL: avaa tiedosto '/etc/pam.d/system-auth':

    # vi /etc/pam.d/system-auth

    Ubuntu/Debian/Linux Mint: avaa tiedosto '/etc/pam.d/common-password':

    # vi /etc/pam.d/common-password

    Lisää seuraava rivi "todennus"-osioon:

    todennus riittää pam_unix.so likeauthnullok

    Estä viimeisten kuuden salasanan käyttäminen lisäämällä seuraava rivi:

    Salasana riittää pam_unix.so nullokuse_authtok md5 shadow Remember=6

    Komennon suorittamisen jälkeen järjestelmä tallentaa kuuden edellisen salasanan historian, ja jos joku käyttäjä yrittää päivittää salasanan millä tahansa viimeisestä kuudesta salasanasta, hän saa virheilmoituksen.

    3. Suojatun yhteyden asetukset
    Telnet- ja Rlogin-protokollat ​​järjestelmään etäyhteyden muodostamiseksi ovat erittäin vanhoja ja haavoittuvia, koska salasana lähetetään verkon yli salaamattomassa muodossa. Etä- ja suojattua yhteyttä varten on käytettävä suojattua protokollaa Secure Shell (SSH). Tilintarkastajan on myös varmistettava, että vaihtoehto root sisäänkirjautuminen pois käytöstä, oletus-SSH-portti muutettu, etäkäyttö sallittu vain tietyille valtuutetuille käyttäjille. Tarkistettavat asetukset ovat SSH-määritystiedostossa:

    1. # vi /etc/ssh/sshd_config

    3.1 Kirjautuminen pääkäyttäjänä (root login)

    Tarkastuksen aikana tarkastajan tulee tarkistaa etäkirjautumisen kielto pääkäyttäjän pääkäyttäjän oikeuksilla.

    # PermitRootLogin = kyllä
    3.2 SSH-kirjautumispalvelutilin tarkistaminen

    Tarkastuksen aikana tilintarkastajan tulee tarkistaa palvelutili salasanattomalla SSH-kirjautumisarvolla. Yleensä järjestelmänvalvojat käyttävät tätä ominaisuutta ohjelmoituihin varmuuskopiot, siirtää tiedostoja ja ajaa skriptejä kauko-ohjaintilassa.

    Tarkista, että sshd_config-asetukset (/etc/ssh/sshd_config) ovat oikein viimeisen kerran.

    # PermitRootLogin ilman salasanaa

    # RSAA-todennus = kyllä

    # PubkeyAuthentication = kyllä

    3.3 Käyttöoikeusluetteloiden tarkistaminen DenyHostsissa ja Fail2banissa
    Tarkastuksen aikana sinun on tarkistettava käyttöoikeusluettelon asetukset DenyHosts Ja Fail2ban . Nämä ovat komentosarjoja, joita käytetään SSH-käyttölokien valvontaan ja analysointiin ja suojautumiseen salasanan brute force hyökkäyksiltä.

    DenyHostin ominaisuudet:

    • tallentaa ja jäljittää lokit tiedostosta /var/log/secure , kirjaa kaikki onnistuneet ja epäonnistuneet kirjautumisyritykset ja suodattaa ne.
    • valvoo epäonnistuneita kirjautumisyrityksiä
    • lähettää sähköposti-ilmoituksen estetyistä isännistä ja epäilyttävistä kirjautumisyrityksistä
    Fail2banin ominaisuudet:
    • Tallentaa ja seuraa lokit tiedostoista /var/log/secure Ja /var/log/auth.log , /var/log/pwdfail
    • erittäin muokattavissa ja monisäikeinen
    • valvoo lokitiedostoja säännöllisesti

    4. Tarkistaa järjestelmän lokit
    Tarkastuksen aikana on varmistettava, että SysLog-demoni on käynnissä ja kaikki järjestelmässä tapahtuvat merkittävät tapahtumat kirjataan tapahtumalokiin. Tarkastuksen aikana on myös varmistettava, että tapahtumalokien tallennuskäytännössä huomioidaan voimassa olevan lainsäädännön ja turvallisuuspolitiikan vaatimukset.

    4.1 Tapahtumalokit Linuxissa:

    /var/log/auth.log – valtuutusjärjestelmän loki (kirjautumiset ja todennusmekanismi).
    /var/log/dpkg.log – loki pakettien asennuksesta/poistosta dpkg:n avulla.
    /var/log/yum.log – yumia käyttävien pakettien asennuksen/poiston loki.
    /var/log/faillog – epäonnistuneiden kirjautumisyritysten loki ja niiden enimmäismäärä kullekin tilille.
    /var/log/kern.log – ydinloki (yksityiskohtainen loki Linux-ytimen viesteistä).
    /var/log/maillog tai /var/log/mail.log – sähköpostipalvelimen loki.
    /var/log/wtmp – kirjautumisloki (kaikkien järjestelmän käyttäjien rekisteröintiaika ja työn kesto).
    /var/run/utmp – tiedot järjestelmään tällä hetkellä rekisteröidyistä käyttäjistä.
    /var/log/lastlog – aiempien kirjautumisten tietueet.
    /var/log/boot – tiedot, jotka kirjataan lokiin järjestelmän käynnistyksen aikana

    5. Suojaa järjestelmätiedostot

    5.1 GRUB-käynnistyslataimen suojaaminen

    GRUB-käynnistyslataimen suojaamiseksi järjestelmänvalvojan on käytettävä salasanasalausta MD5 muoto :

    # grub-md5-crypt

    Komennon suorittamisen jälkeen järjestelmänvalvojan on avattava tiedosto /boot/grub/menu.lst tai /boot/grub/grub.conf ja lisää MD5-salasana:

    # vi /boot/grub/menu.lst

    # vi /boot/grub/grub.conf

    Äskettäin luotu MD5-salasana voidaan lisätä GRUB-määritystiedostoon.

    5.2 Käynnistyshakemiston suojaaminen /BOOT

    Tarkastuksen aikana on tarpeen tarkistaa hakemiston tila /saapas koska järjestelmän ydin ja siihen liittyvät tiedostot sijaitsevat hakemistossa /saapas. Sinun on varmistettava, että tällä hakemistolla on vain luku -oikeus estääksesi luvattomat muutokset järjestelmän tärkeisiin tiedostoihin. Tarkistaaksesi, avaa /etc/fstab-tiedosto ja tarkista kokoonpano:

    Tiedoston tulee sisältää rivi:

    LABEL=/boot /boot ext2 oletusarvot,ro 1 2

    5.3 Avointen porttien ja aktiivisten liitäntöjen tarkistaminen

    Seuraavaa komentosarjaa voidaan käyttää järjestelmässä käynnissä olevien palveluiden tarkistamiseen:

    #!/bin/bash
    if (($(ps -ef | grep -v grep | grep $palvelu | wc -l) > 0))
    sitten
    echo "$palvelu on käynnissä!!!"
    muu
    /etc/init.d/$service start
    Fi

    Näytä verkkoyhteyksiä

    # netstat -anop
    tai
    # lsof -i(lsof -ni)
    tai
    # iptraf

    Kuunteluportit
    Netstat-komennolla voit tarkastella kaikkia avoimet portit ja niihin liittyvät komennot. Esimerkki skriptistä:

    #netstat–tulpn
    Porttiskannauksen skripti on:
    skannata() (
    jos [[ -z $1 || -z $2 ]]; sitten
    echo "Käyttö: 0 dollaria
    palata
    fi
    paikallinen isäntä = $1
    paikalliset portit =()
    kotelo 2 dollaria
    *-*)
    IFS=- lue alku loppu<<< “$2”
    for ((portti=aloitus; portti<= end; port++)); do
    portit+=($portti)
    tehty
    ;;
    *,*)
    IFS=, lue -ra portit<<< “$2”
    ;; *)
    portit+=($2) ;;
    esac
    portille "$(ports[@])"; tehdä
    hälytys 1 “echo >/dev/tcp/$host/$port” &&
    echo “portti $portti on auki” ||
    echo "portti $portti on suljettu"
    tehty
    }

    Palomuuri iptables

    Tarkastuksen aikana sinun on tarkistettava Linux-palomuurin asetukset luvattoman käytön estämiseksi. Liikenteen hallitsemiseksi on luotava säännöt iptablesissa, jotka suodattavat saapuvat, lähtevät ja edelleen lähetetyt paketit IP-osoitteen ja TCP/UDP-portin numeron perusteella.

    # iptables -n -L -v --rivinumerot

    ICMP/broadcast-pyynnöt

    Tarkastuksen aikana on tarpeen varmistaa, että järjestelmät on määritetty jättämään huomiotta ping- ja yleislähetyspyynnöt. Voit tehdä tämän varmistamalla, että tiedostossa "/etc/sysctl.conf" on lisätty seuraavat rivit:

    # ohita ICMP-pyynnöt:
    net.ipv4.icmp_echo_ignore_all = 1
    # ohita lähetyspyynnöt:
    net.ipv4.icmp_echo_ignore_broadcasts = 1

    5.4 Asennettujen päivitysten tarkistaminen

    Uusimmat päivitykset on asennettava järjestelmään:

    # namia päivityksiä
    # nam tarkistuspäivitys

    6. Automaattisesti suoritettujen CRON-töiden tarkistus

    Tarkastajan on tarkistettava, kuka saa ja kuka ei saa suorittaa cron-töitä. Pääsyä croniin ohjataan tiedostojen avulla /etc/cron.allow Ja /etc/cron.deny.

    # echo ALL >>/etc/cron.deny

    7. SELINUXin pakotetun suojaustilan testaus

    Tarkastuksen aikana on tärkeää tarkistaa tila SELinux . Tämä mekanismi on otettava käyttöön järjestelmässä.
    Tilaa on kolme SELinux :

    • Täytäntöönpano: SELinux-käytäntö on pakotettu. SELinux estää pääsyn SELinuxin käytäntösääntöjen perusteella.
    • Sallittava: SELinux-käytäntöä ei pakoteta. SELinux ei estä pääsyä, mutta kiellot kirjataan toimintoina, jotka evättäisiin, jos käytäntö vaihdettaisiin pakotustilaan.
    • Pois käytöstä: SELinux ei ole käytössä. Vain diskreettejä DAC-sääntöjä käytetään.

    Tarkastuksen aikana voit tarkistaa SELinuxin tilan seuraavan komentosarjan avulla tai käyttää system-configselinux-, getenforce- tai sestatus-komentoja:

    ENABLED=`kissa /selinux/enforce`
    jos [ “$ENABLED” == 1 ]; sitten
    echo "SELinux on käytössä, pois käytöstä? (kyllä ​​ei):"
    luku pois käytöstä
    if [ $disable == "kyllä" ]; sitten
    echo "selinuxin poistaminen käytöstä"
    asetusvoima 0
    fi
    fi

    LBSA-skripti perussuojausasetusten tarkistamiseksi

    LBSA (Linux Basic Security Audit script) on perusskripti Linux-järjestelmien suojauskokoonpanon tarkastamiseen. Komentosarja on ajettava komentoriviltä oikeuksin juuri tai mieluiten ajaa säännöllisesti säännöllisin väliajoin käyttämällä cron-aikataulua konfiguraatiomuutosten systemaattiseen tarkistamiseen.

    Tämän skriptin tarkoituksena on tarkistaa nopeasti suojausasetukset ja ladata raportti, jossa kuvataan mahdolliset parametrit, joita voidaan muuttaa turvallisuuden parantamiseksi. Jos millekään vaihtoehdolle ei ole annettu suosituksia, komentosarja näyttää vain yhden rivin, jossa sekin käsittely on, ja lopullinen päätös jää aina järjestelmänvalvojalle. Ennen tarkistuksen suorittamista kehittäjät suosittelevat, että luet käyttöoppaan ja tutustut suositeltuihin osiin saadaksesi lisätietoja.

    Nykyisessä versiossa (versio 1.0.49) komentosarja tarkistaa seuraavat vaihtoehdot:

    • tilin asetusten haavoittuvuuksia
    • SSH-asetusten haavoittuvuuksia
    • haavoittuvuudet väliaikaisissa hakemistoissa ja RAM-muistiin ladatun tiedostojärjestelmän hakemistoissa (esimerkiksi /tmp, /var/tmp /dev/)
    • tiedostojen käyttöoikeudet, järjestelmähakemistojen tila
    • DRBD- ja Hearbeat-palvelujen konfigurointi

    Käsikirjoitus on melko suuri, joten emme laittaneet sitä sivulle.

    Suorita palvelimen suojaustarkastus kerran kuukaudessa havaitaksesi ajoissa mahdolliset ongelmat, jotka liittyvät palvelimeen tunkeutuviin tunkeutujiin.

    Jos et näe merkkejä kolmannen osapuolen toiminnasta VPS:ssä tai sivustossa, suorita seuraavat tarkastukset ja säädöt suojataksesi palvelinta hakkeroilta.

    Sovellustason asetukset

    Jos CMS on asennettu palvelimelle, tarkista, että kaikki uusimmat päivitykset on asennettu.

    Joomla

    Etsi sivuston juurihakemistosta changelog.txt-tiedosto, josta löydät tietoa CMS-versiosta. Jos se on vanhentunut, päivitä Joomla.

    Wordpress

    Etsi tiedosto wp-includes/version.php, josta löydät tietoa CMS-versiosta. Jos se on vanhentunut, päivitä Wordpress.

    DLE

    Hae engine/data/config.php-tiedostosta, etsi version_id-rivi ja varmista, että versio ei ole vanhentunut.

    Tarkista myös tiedostot engine/ajax/updates.php ja upgrade/index.php (parametri $dle_version).

    1C-Bitrix

    Etsi tiedosto /bitrix/modules/main/classes/general/version.php, josta löydät tietoa CMS-versiosta. Tarkista myös /bitrix/admin/update_system.php-tiedosto. Jos versio on vanhentunut, päivitä 1C-Bitrix.

    Drupal

    Etsi sivuston juurihakemistosta changelog.txt-tiedosto, josta löydät tietoa CMS-versiosta. Jos se on vanhentunut, päivitä Drupal.

    Tarkista ytimen versio tiedostosta /modules/system/system.info.

    Voit myös tunnistaa CMS-version ohjauspaneelista.

    Tarkistaa verkkopalvelin.

    Apache

    Avaa Apache-määritystiedosto (versiosta riippuen ne voivat olla tiedostot httpd.conf, httpd2.conf, apache.conf, apache2.conf) ja tarkista, sisältääkö se käskyn, joka estää verkkopalvelimen versiota koskevien tietojen näyttämisen. :

    ServerTokens Prod

    Jos tätä ohjetta ei ole, lisää ja tallenna tiedosto.

    Etsi safe.conf-tiedosto, avaa se katselua varten ja vertaa sen sisältöä seuraavan esimerkin kanssa:

    Asetukset +Sisältää -FollowSymLinks +SymLinksIfOwnerMatch AllowOverride FileInfo AuthConfig Limit Indexes Asetukset Järjestä salli, estä Salli kaikilta php_admin_value open_basedir "." Valinnat - Indeksit Toiminto php-cgi /php-bin/php

    Secure.conf-tiedostosi ei saa poiketa merkittävästi annetusta esimerkistä.

    Tarkista asennettu MRM komennolla

    Apachectl -V

    Vahvemman suojauksen saamiseksi käytä mpm_itk-tiedostoa, ellei mpm_prefork ole pakottava tarve.

    Jos haluat muuttaa MRM:ää, suorita uudelleenasennus sen jälkeen, kun olet tehnyt varmuuskopiot asetustiedostoista. Tarkista uudelleenasennuksen jälkeen, onko käyttäjä sivuston ja sen kaikkien hakemistojen omistaja.

    Nginx

    Avaa verkkopalvelimen määritystiedosto (nginx.conf), siirry http-osioon ja tarkista, sisältääkö se käskyjä, jotka rajoittavat yhteyksien määrää yhdestä IP-osoitteesta:

    Limit_zone slimits $binary_remote_addr 5m; limit_conn slimits 10; tai (uusimmat versiot) limit_conn_zone $binary_remote_addr zone=addr:10m; limit_conn addr 10;

    Jos näitä ohjeita ei ole, lisää ja tallenna tiedosto.

    Estä jotkin käyttäjäagentit estääksesi ei-toivotun liikenteen. Lisää ohje Nginx-määritystiedoston http-osioon

    If ($http_user_agent ~* LWP::Simple|BBBike|wget|msnbot) (palautus 403;)

    Estä viittausroskaposti lisäämällä käsky Nginx-määritystiedoston http-osioon

    If($http_referer ~*(babes|myydään|tyttö|korut|rakkaus|nudit|orgaaninen|pokeri|porno|seksi|teini))(palautus 403;)

    ISP-manager

    Suorita seuraavat tarkistukset ISPmanager-ohjauspaneelissa.

    Tarkista, onko pääsy ohjauspaneeliin rajoitettu IP-osoitteen perusteella.

    Määritä tietojen varmuuskopiointi, jos se ei ole käytössä. Suosittelemme käyttämään ulkoista asemaa varmuuskopiointiin, jotta estetään tietojen häviäminen arkiston mukana.

    PHP

    Avaa php.ini-määritystiedosto ja lisää seuraavat käskyt.

    Expose_php=Off - estää PHP-versiota koskevien tietojen lähettämisen HTTP-otsikossa; sql.safe_mode=Päällä - ota SQL:n vikasietotila käyttöön; post_max_size=8M - rajoittaa POST-menetelmällä lähetettävien tietojen kokoa; disable_functions exec, system, passthru, proc_open, shell_exec - poista jotkin toiminnot käytöstä turvallisuussyistä.

    NTP

    Lisää NTP-määritystiedostoon (oletuksena /etc/ntp.conf rivit, jotka estävät rekursiiviset pyynnöt):

    Rajoita oletuskoodi rajoitettu nomodify notrap nopeer noquery rajoittaa -6 oletuskoodi rajoitettu nomodify notrap nopeer noquery rajoittaa 127.0.0.1 rajoittaa -6::1

    Sitoa

    Aseta named.conf-tiedostoon seuraavat rivit poistaaksesi rekursiiviset kyselyt:

    Salli-rekursio ( 127.0.0.1; 82.146.32.0/19; 78.24.216.0/21; 92.63.96.0/20; 62.109.0.0/19; 188.120.224.0/19; 188.120.224.0/19; 188.120.224.1 ; .40.1 1 12,0/21 94.250.248.0/21; );

    Tarkistetaan sivustohakemiston omistajaa

    Tarkista, kuka omistaa pääsivustohakemiston ja kaikki sen alihakemistot.

    Siirry ISPmanager-työkalurivillä kohtaan "Järjestelmä" -> "Tiedostonhallinta" ja avaa sivustohakemisto. Varmista, että "Omistaja"- ja "Ryhmä"-sarakkeet sisältävät sivuston omistavan käyttäjän. Voit muuttaa näitä määritteitä napsauttamalla työkalupalkin Attribuutit-painiketta.

    Kelvolliset sivuston omistajien nimet ovat apache, www, www-data, jos käytät mpm_preforkia. Suosittelemme mpm_itk:n käyttöä turvallisuuden vahvistamiseksi.

    Jos sivusto sisältää jaettuja kansioita (esim. upload, tmp), niiden voimassa oleva omistajan nimi on 777. Varmista, että tämä käyttäjä on asennettu vain tarvittaviin hakemistoihin suorittamalla komento

    Etsi ./ -perm 0777

    Se löytää kaikki 777:n omistamat kansiot ja tiedostot.

    Asetukset käyttöjärjestelmätasolla

    rkhunter

    Käytä rkhunter-apuohjelmaa tunnistaaksesi mahdolliset palvelimen haavoittuvuudet.

    Asenna apuohjelma käyttämällä komentoa:

    Yum install rkhunter - CentOS OS apt-get install rkhunter - Debian/Ubuntu OS tee kaikki asennukset puhtaiksi -C /usr/ports/security/rkhunter tai pkg install rkhunter - FreeBSD OS

    Päivitä tämän apuohjelman tietokanta suorittamalla komennot

    Rkhunter -- päivitys

    Rkhunter --propupd

    Suorita järjestelmän tarkistus komennolla

    Rkhunter -c --cs2

    Vahvistusprosessin aikana sinun on painettava Enter-näppäintä useita kertoja jatkaaksesi. Kun olet valmis, yhteenveto skannaustuloksesta tulee näkyviin.

    Tarkistuksen tulokset sijoitetaan lokitiedostoon /var/log/rkhunter/rkhunter.log; tarkista siitä varoitukset ja virheet.

    sysctl

    Käytä sysctl-apuohjelmaa järjestelmän ytimen parametrien hallintaan. Avaa apuohjelman määritystiedosto /etc/sysctl.conf ja kirjoita seuraavat rivit.

    Poista käytöstä mahdollisuus reitittää saapuva liikenne, koska hyökkääjä voi käyttää tätä kykyä huijata IP-osoitteita:

    Net.ipv4.conf.all.accept_source_route = 0

    Poista vastaukset ICMP-pyyntöihin lähetyskanavalla - tämä auttaa estämään smurffihyökkäyksiä:

    Net.ipv4.icmp_echo_ignore_broadcasts = 1

    Poista virheellisten virheilmoitusten kirjaaminen käytöstä:

    Net.ipv4.icmp_ignore_bogus_error_responses = 1

    Ota muistin ylivuotosuoja käyttöön:

    Kernel.exec-shield = 1 (CentOS)

    Ota ASLR-muistin käyttö käyttöön:

    Kernel.randomize_va_space = 2

    Poista ICMP-viestien edelleenlähetys käytöstä:

    Net.ipv4.conf.all.accept_redirects = 0 net.ipv4.conf.default.accept_redirects = 0

    Jos et käytä VPN:ää tai muita erikoissovelluksia palvelimella, poista edelleenlähetys käytöstä:

    Net.ipv4.conf.all.forwarding = 0

    Ota käyttöön suojaus SYN-tulvaa vastaan ​​- SYN-evästeiden käyttö:

    Net.ipv4.tcp_syncookies = 1

    Aseta SYN-ACK-pakettien lähetysyritysten lukumäärä:

    Net.ipv4.tcp_synack_retries = 3

    Aseta aika, jonka jälkeen palvelin tarkistaa yhteyden, jos sitä ei ole käytetty pitkään aikaan (oletuksena se on 2 tuntia):

    Net.ipv4.tcp_keepalive_time=1800

    Aseta, kuinka monta kertaa yhteys tarkistetaan ennen sen sulkemista:

    Net.ipv4.tcp_keepalive_probes=3

    Aseta aika, jonka pistoke pysyy FIN-WAIT-2-tilassa:

    net.ipv4.tcp_fin_timeout=30

    fstab

    Tarkista fstab-määritystiedosto (/etc/fstab), joka sisältää tietoja levyistä, osioista ja tallennuslaitteista ja kertoo, kuinka ne on asennettu järjestelmään.

    Vi /etc/fstab

    Huomaa, että ei-root-osioissa on oltava nodev-vaihtoehto. Jos /tmp on asennettu erilliseen osioon, lisää kyseiseen osioon nodev, noexec, nosuid.

    rsyslog

    Tarkista järjestelmän lokitiedosto /etc/rsyslog.conf.

    Vi /etc/rsyslog.conf

    Huomaa seuraavat rivit, joiden pitäisi näyttää tältä:

    Varmista myös, että lokitiedosto ei ole tyhjä, ts. kirjaus on suoritettu oikein.

    sudo

    Tarkista, että sudo (tai su) -apuohjelma on määritetty oikein, jolloin käyttäjä voi suorittaa joitain komentoja ja ohjelmia pääkäyttäjänä. Tämän apuohjelman asetukset ovat /etc/sudoers- tai /usr/local/etc/sudoers-määritystiedostossa. Avaa se muokkausta varten

    Vi /etc/sudoers

    Etsi rivi, joka on kirjoitettu oletuksena ja sallii pääkäyttäjän suorittaa mitä tahansa komentoja.

    Jos haluat antaa kaikille käyttäjille oikeuden suorittaa komentoja pääkäyttäjänä, lisää seuraava rivi:

    ALL ALL=/bin/su tai ALL ALL=/usr/bin/su

    Jos haluat antaa tietylle käyttäjälle oikeuden suorittaa vain tiettyjä komentoja pääkäyttäjänä, lisää rivi:

    %users ALL=/sbin/mount - käyttäjäryhmä voi käyttää sudoa vain mount-komennolla user ALL=/sbin/mount - käyttäjä voi käyttää sudoa vain mount-komennolla

    Verkkotason asetukset

    Tarkista, mitkä palvelimen portit ovat avoinna ja mitkä palvelut käyttävät niitä suorittamalla komennon

    Netstat -tuplnw | awk "(tulosta $4,$NF)" | lajitella | uniq

    Esimerkiksi merkintä 127.0.0.1:53 748/named tarkoittaa, että nimetty palvelu käyttää porttia 53. Tarkista, että vain tarvittavat palvelut ovat käynnissä ja poista kaikki muut käytöstä.

    FTP

    Aseta passiivisessa FTP-tilassa käytettävät portit. Voit tehdä tämän avaamalla FTP-palvelimesi asetustiedoston muokkausta varten ja lisäämällä rivit:

    vsftpd.conf:lle:

    Pasv_min_port=1028 pasv_max_port=1048

    proftpd.conf:lle:

    Passiiviset portit 1028 1048

    Älä käytä FTP-protokollaa, ellei se ole ehdottoman välttämätöntä; käytä sen sijaan SFTP:tä. Jos FTP:tä tarvitaan edelleen, lisää seuraavat rivit asetustiedostoon:

    vsftpd.conf:lle:

    Xferlog_enable=KYLLÄ (lokitiedoston pitäminen ftp:n kautta) anonymous_enable=EI (estää nimettömät käyttäjäyhteydet) anon_upload_enable=EI anon_mkdir_write_enable=EI

    proftpd.conf:lle:

    osiossa ... poista kaikki osat ja lisää rivit

    Kiellä kaikki Kiellä kaikki

    iptables

    Tarkista, onko palomuuri määritetty oikein. Suorita iptablesille komento

    Iptables -nL

    Tämä komento näyttää kaikki iptables-palomuurisäännöt komentorivillä. Näitä sääntöjä voi tarkastella ja muokata myös palomuurin asetustiedostossa /etc/sysconfig/iptables - CentOS OS:lle, /etc/network/if-up.d/ispmgrfw - Debian/Ubuntu OS:lle.

    Sulje palomuurisäännöissä kaikki portit paitsi ne, joita palvelimella toimivat palvelut käyttävät. Voit tehdä tämän muuttamalla rivejä

    :INPUT ACCEPT :FORWARD ACCEPT :OUTPUT ACCEPT on:INPUT DROP :FORWARD DROP :OUTPUT DROP

    Avaa tarvittavat portit lisäämällä rivejä, kuten

    A TULO -p tcp -m tcp --dport 53 -j HYVÄKSY -A INPUT -p udp -m udp --dport 53 -j HYVÄKSY -A TULO -p tcp -m moniportti --urheilu 53,80,25,443,953 -j HYVÄKSYÄ

    jossa 53 on portin numero, joka on avattava.

    Ennen kuin teet muutoksia palomuurin asetustiedostoon, tee työtiedostosta kopio.

    Palomuurisäännöt voidaan määrittää ISPmanagerin ohjauspaneelista.

    SSH

    Avaa SSH-määritystiedosto:

    Vi /etc/ssh/sshd_config

    Tarkista, että seuraavia rivejä ei ole kommentoitu:

    Protokolla 2 (käyttääksesi protokollan toista versiota) IgnoreRhosts kyllä ​​(älä käytä .rhost-tiedostoa) HostbasedAuthentication ei (älä todenna isäntää) PermitRootLogin ei (estä pääkäyttäjän käyttö) PermitEmptyPasswords ei (älä käytä tyhjiä salasanoja) PermitUserEnvironment ei (estä käyttäjää asettamasta ympäristömuuttujia) PasswordAuthentication kyllä ​​(salli salasanatodennus)

    Ota SFTP käyttöön lisäämällä rivi kohtaan sshd_config:

    Alijärjestelmä sftp /usr/lib/openssh/sftp-server

    Tarkista sähköpostijonosi täyttyminen ja varmista, ettei siinä ole roskapostiviestejä.

    Suorita mailq-komento ja tarkastele viestiluetteloa. Jos luettelo on erittäin suuri, tarkista valikoivasti viestit, jotka voivat olla roskapostia. Määritä kirjeen lähettäjä käyttämällä tunnistetta (esimerkiksi BD65F10DEE4). Tiimi

    Exim -Mvh viestin tunnus

    näyttää sähköpostin otsikon ja komennon

    Exim -Mvb-viestin tunnus

    avulla voit tarkastella viestin runkoa.

    Viestin otsikoiden joukossa Lähettäjä:-kenttä sisältää lähettäjän ja X-PHP-Originating-Script sisältää skriptin, joka lähetti viestin.

    Ohjelmisto

    Tarkista palvelinohjelmistosi haavoittuvuuksien varalta.

    OS CentOS

    Suorita komento, joka luettelee äskettäin muokatut ohjelmistotiedostot:

    Rpm -qVa - tulostaa kaikki tiedostot, rpm -qVa | awk "$2!="c" (tulosta $0)" - tulostaa tiedostoja paitsi lokeja.

    Analysoi, mitä tiedostoja on muutettu ja miten, käyttämällä seuraavia parametriarvoja:

    S - muokattu tiedostokoko M - muokattu oletusoikeudet 5 - muokattu MD5-tarkistussumma D - muokattu pää-/alanumerot laitteelle L - muokattu symbolinen linkki U - muokattu tiedoston omistaja G - muokattu ryhmä T - muokattu tiedoston muokkauspäivämäärä (mtime) c - asetustiedosto d - dokumentaatiotiedosto g - tiedosto, joka ei sisälly pakettiin l - lisenssitiedosto r - README-tiedosto

    Esimerkiksi rivi S.5....T. c /etc/httpd/conf/httpd.conf tarkoittaa, että httpd.conf on asetustiedosto, jonka kokoa, tarkistussummaa ja viimeisintä muokkauspäivää on muutettu. Koska tämä on asetustiedosto, nämä muutokset eivät ole epäilyttäviä.

    Kiinnitä huomiota tiedostoihin, joiden tarkistussumman arvoja on muutettu ilman näkyvää syytä. Suorita tällaisille tiedostoille komento:

    Stat /usr/sbin/sshd && tiedosto /usr/sbin/sshd jossa usr/sbin/sshd on tiedoston polku.

    Komennon seurauksena näytölle tulee yksityiskohtaisia ​​tietoja tähän tiedostoon tehdyistä muutoksista.

    Suorittaa komennon:

    Nam - tietoturvapäivitys

    asentaaksesi tietoturvapäivityksen.

    Debian OS

    Suorita komennot, jotka tarkistavat asennettujen ohjelmien MD5-tarkistussummat:

    # apt-get install debsums # debsums -c

    Suorita seuraavat komennot tarkistaaksesi suojauspäivitykset:

    # echo 'deb http://security.debian.org wheezy/updates pääavustus ei-ilmainen' >> /etc/apt/sources.list # grep security /etc/apt/sources.list > /etc/apt/secsrc .list # apt-get -s -o Dir::Etc::sourcelist="secsrc.list" -o Dir::Etc::sourceparts="-" päivitys

    Asenna tietoturvapäivitys suorittamalla komento:

    # apt-get -o Dir::Etc::sourcelist="secsrc.list" -o Dir::Etc::sourceparts="-" päivitys

    Tarkista gpg-sovitus kaikissa arkistoissa suorittamalla komennot:

    # grep -ri gpgcheck /etc/yum.conf # grep -ri gpgcheck /etc/yum.repos.d/ Varmista, että rivit näyttävät tältä: gpgcheck=1 # grep -ri AllowUnauthenticated /etc/apt/

    Lomakkeen rivit

    APT::Get::AllowUnauthenticated "true";

    ei pitäisi olla.

    Käyttämättömät palvelut

    OS CentOS

    Chkconfig --list

    Chkconfig --del palvelun_nimi, jossa palvelun_nimi on palvelun nimi.

    Debian OS

    Suorita komento, joka luettelee käyttämättömät palvelut:

    Sysv-rc-conf

    Käynnistyksen poistaminen käytöstä käyttämätön palvelu suorita komento:

    Sysv-rc-conf pois palvelun_nimi, jossa palvelun_nimi on palvelun nimi.

    Linux-palvelimen turvallisuus on erittäin tärkeää tietojesi suojaamiseksi, henkistä omaisuutta, sekä aikaa murtovarkaiden käsissä. Turvallisuutta varten käyttöjärjestelmä Linux vastaa Järjestelmänvalvoja. Tässä artikkelissa tarkastellaan kahtakymmentä asiaa, jotka sinun on tehtävä Linux-käyttöjärjestelmäsi kanssa, jotta se pysyy aina turvassa. Jos tämä kotitietokone, silloin ei ehkä ole mitään järkeä murehtia niin paljon turvallisuudesta; vahvat salasanat ja porttien pääsyn estäminen Internetistä riittää. Mutta julkisen palvelimen tapauksessa sinun tulee kiinnittää huomiota sen suojan varmistamiseen.

    Nämä ohjeet sopivat mihin tahansa jakeluun riippumatta siitä, käytätkö CentOS:tä, Red Hatia vai Ubuntua, Debiania.

    1. Viestinnän salaus

    Kaikki verkon kautta siirrettävä data on avoinna seurantaa varten. Siksi siirrettävät tiedot on mahdollisuuksien mukaan salattava salasanoilla, avaimilla tai varmenteilla.

    Käytä scp-, ssh-, rsync- tai sftp-tiedostoja tiedostojen siirtämiseen. On myös mahdollista liittää etätiedostojärjestelmä kotihakemistoosi käyttämällä työkaluja, kuten shhfs.

    GnuPG antaa sinun salata ja allekirjoittaa tietosi erityisellä yksityisellä avaimella. Siellä on myös toimintoja avainten hallintaan ja julkisten avainten käyttöön.

    Fugu on graafinen työkalu tiedostojen siirtämiseen SFTP-protokollan avulla. SFTP on hyvin samanlainen kuin FTP, mutta koko istunto on salattu. Tämä tarkoittaa, että salasanoja tai komentoja ei lähetetä tekstimuodossa. Siksi tällaiset siirrot ovat vähemmän haavoittuvia kolmansille osapuolille. Voit myös käyttää FileZillaa, se on monialustainen FTP asiakas tukee FTS-toimintaa SSH/TLS:n ja SSH File Transfer Protocol (SFTP) -protokollan kautta.

    OpenVPN on tehokas ja kevyt VPN-asiakas, joka tukee SSH-salausta.

    2. Älä käytä FTP:tä, Telnetiä, Rloginia ja RSH:ta

    Useimmissa verkoissa kuka tahansa samassa verkossa oleva voi siepata käyttäjätunnukset, salasanat FTP-, Telnet- ja RSH-komennoista pakettihaistelijan avulla. Yleinen ratkaisu tähän ongelmaan on käyttää OpenSSH:ta, SFTP:tä tai SFTP:tä, joka lisää SSL:n tai TLS:n tavalliseen FTP:hen. Suorita tämä komento poistaaksesi NIS, RSH ja muut vanhat palvelut:

    yum erase inetd xinetd ypserv tftp-server telnet-palvelin rsh-serve

    3. Vähennä ohjelmistojen määrää

    Tarvitsetko todella kaikki verkkopalvelut asennettuna? Älä asenna tarpeettomia asioita ohjelmisto näiden ohjelmien haavoittuvuuksien välttämiseksi. Käytä paketinhallintaasi nähdäksesi asennetut ohjelmat ja poista kaikki tarpeettomat:

    nam lista asennettu
    $yum listapaketti
    $yum poista paketti

    dpkg --list
    $ dpkg -- infopaketti
    $ apt-get poista paketti

    4. Yksi auto - yksi palvelu

    Aja eri palveluita erillisillä palvelimilla tai virtuaalikoneita. Tämä rajoittaa vaarantuvien palveluiden määrää. Jos hyökkääjä voi esimerkiksi hakkeroida Apachen, hän saa pääsyn koko palvelimeen. Mukaan lukien palvelut, kuten MySQL, palvelin Sähköposti ja niin edelleen. Voit käyttää virtualisointiin ohjelmistoja, kuten XEN tai OpenVZ.

    5. Pidä Linux-ytimesi ja ohjelmistosi ajan tasalla

    Suojauskorjausten asentaminen on erittäin tärkeä osa Linux-palvelimesi suojaamista. Käyttöjärjestelmä tarjoaa kaikki työkalut järjestelmän pitämiseen ajan tasalla ja päivittämiseen uusiin versioihin. Kaikki tietoturvapäivitykset tulee ottaa käyttöön mahdollisimman pian. Myös tässä sinun on käytettävä paketinhallintaasi. Esimerkiksi:

    Tai Debian-pohjaisille järjestelmille:

    sudo apt päivitys && sudo apt päivitys

    Voit määrittää Red Hatin tai Fedoran ilmoittamaan sinulle sähköpostitse, kun uusia tietoturvapäivityksiä on saatavilla. Voit myös määrittää automaattinen päivitys cronin kautta tai voit käyttää Debianin aptcronia ilmoittamaan sinulle, kun järjestelmä on päivitettävä.

    6. Käytä suojauslaajennuksia Linuxissa

    Linux-käyttöjärjestelmän mukana tulee erilaisia ​​suojauskorjauksia, joita voidaan käyttää suojautumiseen väärä kokoonpano tai haittaohjelma. Mutta voit myös käyttää muita sovellusten käytönvalvontajärjestelmiä, kuten SELinux tai AppArrmor.

    SELinux tarjoaa erilaisia ​​suojauskäytäntöjä Linux-ytimelle. Täällä voit hallita pääsyä mihin tahansa järjestelmäresurssiin rooleilla. Vain ohjelma, jonka rooli sallii tämän, voi käyttää tiettyä resurssia, eikä edes pääkäyttäjän oikeuksilla ole merkitystä. SELinux lisää huomattavasti Linux-järjestelmän turvallisuutta, koska jopa rootin katsotaan olevan normaali käyttäjä. Lisätietoja on kuvattu erillisessä artikkelissa.

    7. Käyttäjätilit ja vahvat salasanat

    Käytä useradd- ja usermod-komentoja käyttäjätilien luomiseen ja ylläpitoon. Varmista, että sinulla on hyvä ja vahva salasana, sen tulee sisältää vähintään kahdeksan merkkiä, mieluiten eri kirjaimissa, mukaan lukien erikoismerkit tai numerot. Esimerkiksi 8 merkkiä, joista seitsemän on kirjaimia ja yksi on symboli tai numero. Käytä työkaluja, kuten John the Ripper, löytääksesi heikkoja käyttäjien salasanoja palvelimelta ja määritä pam_cracklib.so pakottamaan salasanakäytäntö.

    8. Vaihda salasanat ajoittain

    Muutoskomennon avulla voit määrittää päivien lukumäärän ennen pakotetun salasanan vaihdon päivämäärää. Järjestelmä käyttää näitä tietoja määrittääkseen, milloin käyttäjän tulee muuttaa niitä. Nämä asetukset sijaitsevat tiedostossa /etc/login.defs. Voit poistaa salasanan vanhenemisen käytöstä kirjoittamalla seuraavan komennon:

    muuta -l käyttäjätunnusta

    Saat tietoja salasanan vanhenemismerkkijonosta kirjoittamalla komennon:

    Voit myös määrittää kaiken manuaalisesti /etc/shadow-tiedostossa:

    (käyttäjän salasana): (viimeinen mahdollisuus):(maximum_days): (minimum_days): (Varoitus):(deaktivointi):(expiration_line):

    • Minimipäivät- salasanan vaihtojen välinen vähimmäisaikaväli eli kuinka usein käyttäjä voi vaihtaa salasanan.
    • Päivien enimmäismäärä- kuinka monta päivää salasana on voimassa, tämän ajanjakson jälkeen käyttäjä on pakotettu vaihtamaan salasana.
    • Varoitus- päivien määrä, jonka jälkeen käyttäjää varoitetaan, että hänen on vaihdettava salasana.
    • Vanhenemisrivi- päivien lukumäärä 1. tammikuuta 1970 alkaen, jolloin tili poistetaan kokonaan käytöstä.

    chage -M 60 -m 7 -W 7 käyttäjätunnus

    On myös suositeltavaa estää käyttäjiä käyttämästä vanhoja salasanoja, muuten kaikki yritykset pakottaa heidät vaihtamaan salasanansa mitätöidään.

    9. Estä tilit epäonnistuneiden kirjautumisyritysten jälkeen

    Linux-käyttöjärjestelmässä voit käyttää faillog-komentoa tarkastellaksesi käyttäjien epäonnistuneita kirjautumisyrityksiä. Voit myös käyttää sitä rajoittamaan epäonnistuneita kirjautumisyrityksiä. Kaikki tiedot epäonnistuneista kirjautumisyrityksistä tallennetaan tiedostoon /var/log/faillog. Voit tarkastella sitä kirjoittamalla:

    Ja jos haluat rajoittaa kirjautumisyrityksiä tietylle tilille, käytä:

    faillog -r -u käyttäjä

    Voit myös estää tilejä tai poistaa niiden eston manuaalisesti passwd-komennolla. Käytön estäminen:

    passwd -l käyttäjä

    Ja lukituksen avaaminen:

    passwd -u käyttäjä

    On myös suositeltavaa tarkistaa, onko järjestelmässä tilejä, joilla on tyhjiä salasanoja. Voit tehdä tämän suorittamalla:

    awk -F: "($2 == "") (tulosta)" /etc/shadow

    Tarkista myös, onko käyttäjiä ryhmällä tai ID 0. Tällaisia ​​käyttäjiä saa olla vain yksi, ja se on root. Voit tarkistaa tämän komennon avulla:

    awk -F: "($3 == "0") (tulosta)" /etc/passwd

    Siinä pitäisi olla vain yksi rivi:

    root:x:0:0:root:/root:/bin/bash

    Jos on muita, poista ne. Käyttäjät ja erityisesti heidän heikot salasanansa ovat yksi haavoittuvimmista asioista, jotka voivat rikkoa suojauksen Linuxissa.

    10. Poista root-kirjautuminen käytöstä

    Säilyttääksesi Linux-järjestelmäsi turvallisuuden, älä koskaan kirjaudu sisään pääkäyttäjänä. Voit käyttää sudoa saadaksesi tarvittavat käyttöoikeudet ja suorittaaksesi halutun komennon superkäyttäjänä. Tämän komennon avulla voit olla paljastamatta pääkäyttäjän salasanaa muille järjestelmänvalvojille, ja se sisältää myös työkaluja toimintojen valvontaan, rajoittamiseen ja seurantaan.

    11. Palvelimen fyysinen turvallisuus

    Linux-palvelinturvallisuuden tulee sisältää fyysinen suojaus. Sinun on rajoitettava fyysistä pääsyä palvelinkonsoliin. Määritä BIOS niin, että käynnistystä ulkoisista tietovälineistä, kuten DVD, CD tai USB, ei tueta. Aseta myös salasana BIOSiin ja GRUB-käynnistyslataukseen suojataksesi niiden asetukset.

    12. Poista tarpeettomat palvelut käytöstä

    Poista käytöstä kaikki käyttämättömät palvelut ja demonit. Älä myöskään unohda poistaa näitä palveluita käynnistyksestä. Voit tarkastella luetteloa kaikista Red Hat -järjestelmien aktiivisista palveluista komennolla:

    chkconfig --list | grep "3:on"

    Voit poistaa palvelun käytöstä seuraavasti:

    huoltopalvelupysäkki
    $ chkconfig palvelu pois päältä

    Löydä kaikki avoimet ohjelmat portit:

    Sama voidaan tehdä nmap-skannerilla:

    nmap -sT -O localhost

    Käytä iptablesia sulkeaksesi kaikki portit, joihin ei pitäisi päästä verkosta. Tai lopeta tarpeettomat palvelut kuten yllä on kuvattu.

    13. Poista X-palvelin

    X-palvelin palvelintietokoneessa on täysin valinnainen. Sinun ei tarvitse ajaa graafista ympäristöä erillisessä Apache- tai sähköpostipalvelimessa. Poista tämä ohjelmisto parantaaksesi turvallisuutta ja suorituskykyä.

    14. Määritä Iptables

    iptables on käyttäjätilaohjelma ytimeen sisäänrakennetun Netfilter-palomuurin konfigurointiin. Sen avulla voit suodattaa kaiken liikenteen ja sallia vain tietyntyyppisen liikenteen. Käytä myös TCPWrappersia - ACL-järjestelmää Internet-käytön suodattamiseen. Voit estää monenlaisia ​​DOS-hyökkäyksiä käyttämällä iptablesia. Verkkoturvallisuus Linuxissa on erittäin tärkeä osa järjestelmän yleistä turvallisuutta.

    15. Määritä ydin

    Tiedosto /etc/sysctl.conf tallentaa ytimen asetukset, jotka ladataan ja otetaan käyttöön järjestelmän käynnistyksen aikana.

    Ota puskurin ylivuotosuojaus käyttöön:

    kernel.exec-shield=1
    kernel.randomize_va_space=1

    Ota IP-huijaussuoja käyttöön:

    net.ipv4.conf.all.rp_filter=1

    Poista IP-osoitteen uudelleenohjaus käytöstä:

    net.ipv4.conf.all.accept_source_route=0

    Ohita lähetyspyynnöt:

    net.ipv4.icmp_echo_ignore_broadcasts=1
    net.ipv4.icmp_ignore_bogus_error_messages=1

    Kirjaa kaikki väärennetyt paketit:

    net.ipv4.conf.all.log_martians = 1

    16. Osioita kiintolevy

    Erottaminen kovalevy osioihin tiedostojen tarkoituksesta riippuen parantaa Linux-käyttöjärjestelmien turvallisuutta. On suositeltavaa luoda erilliset osiot seuraaville hakemistoille:

    • /Koti
    • /var ja /var/tmp

    Tee erilliset osiot Apachen juurihakemistoille ja FTP-palvelimille. Avaa /etc/fstab-tiedosto ja määritä tarvittavien osioiden erikoisasetukset:

    • noexec- Älä suorita ohjelmia tai suoritettavia tiedostoja tässä osiossa, vain komentosarjat ovat sallittuja
    • nodev- älä salli symbolisia tai erikoislaitteita tässä osiossa.
    • nosuid- älä salli SUID/SGID-käyttöä tämän osan ohjelmille.

    17. Käytä levytilan rajoituksia

    Rajoita käyttäjien käytettävissä olevaa levytilaa. Luo levykiintiö hakemistoon /etc/fstab, liitä tiedostojärjestelmät uudelleen ja luo levykiintiötietokanta. Tämä parantaa Linuxin turvallisuutta.

    18. Poista IPv6 käytöstä

    Seuraavan sukupolven Internet-protokolla IPv6 korvaa tulevaisuudessa jo käytössä olevan IPv4:n. Mutta tällä hetkellä ei ole työkaluja IPv6-pohjaisen verkon turvallisuuden tarkistamiseen. Monet Linux-jakelut sallivat IPv6:n oletuksena. Hakkerit voivat lähettää ei-toivottua liikennettä ilman, että järjestelmänvalvojat pystyvät seuraamaan sitä. Joten jos et tarvitse tätä palvelua, poista se käytöstä.

    19. Poista käytöstä käyttämättömät SUID- ja SGID-binaarit

    Kaikki suoritettavat tiedostot, joissa SUID- tai SGID-lippu on käytössä, ovat mahdollisesti vaarallisia. Tämä lippu tarkoittaa, että ohjelma suoritetaan pääkäyttäjän oikeuksin. Tämä tarkoittaa, että jos ohjelmassa on haavoittuvuuksia tai virheitä, paikallinen tai etäkäyttäjä voi käyttää tätä tiedostoa. Etsi kaikki tällaiset tiedostot käyttämällä seuraavaa komentoa:

    löytää / -perm +4000

    Etsi tiedostoja, joissa on SGID-lippu:

    löytää / -perm +2000

    Tai yhdistetään tämä kaikki yhteen komentoon:

    etsi / \(-perm -4000 -o -perm -2000 \) -print
    $ etsi / -polku -leimaa -o -tyyppi f -perm +6000 -ls

    Sinun on tutkittava jokainen löydetty tiedosto yksityiskohtaisesti ymmärtääksesi, kuinka tarpeellista tietty tiedosto on.

    20. Julkiset tiedostot

    On myös suositeltavaa löytää tiedostoja, joita kaikki järjestelmän käyttäjät voivat muokata. Voit tehdä tämän käyttämällä seuraavaa komentoa:

    etsi /hakemisto -xdev -tyyppi d \(-perm -0002 -a ! -perm -1000 \) -tulostus

    Nyt sinun on tarkistettava, onko kunkin tiedoston ryhmän ja omistajan oikeudet asetettu oikein ja aiheuttaako tämä turvallisuusriskin.

    On myös suositeltavaa etsiä kaikki tiedostot, jotka eivät kuulu kenellekään:

    etsi /hakemisto -xdev \(-nouser -o -nogroup \) -print

    21. Käytä keskitettyä todennusjärjestelmää

    Ilman keskitettyä todennusjärjestelmää käyttäjätiedoista tulee epäjohdonmukaisia, mikä voi johtaa siihen, että tunnistetiedot vanhentuvat ja tilit unohtuvat, jotka olisi pitänyt poistaa jo kauan sitten. Keskitetty palvelu mahdollistaa käyttäjätilien ja todennustietojen hallinnan erilaisia ​​järjestelmiä Linux ja Unix. Voit synkronoida todennustiedot palvelimien välillä. Mutta älä käytä NIS-palvelua, katso parempi Open DAP:iin.

    Yksi tällaisen järjestelmän mielenkiintoisista toteutuksista on Kerberos. Sen avulla käyttäjät voidaan todentaa yksityisellä avaimella verkoissa, joissa paketteja voidaan siepata ja muokata. Kerberos käyttää symmetristä avainta tietojen salaamiseen ja vaatii toimiakseen avaintenhallintakeskuksen. Voit määrittää etäkirjautumisen, etäkopion, tiedostojen suojatun kopioinnin järjestelmien välillä ja muita korkeatasoisia tehtäviä.

    22. Hakkuu ja auditointi

    Määritä lokikirjaus ja tarkastus kerätäksesi ja tallentaaksesi kaikki epäonnistuneet kirjautumiset ja hakkerointiyritykset. Oletusarvoisesti kaikki lokit tai ainakin suurin osa niistä sijaitsevat /var/log/-kansiossa. Puhuimme yksityiskohtaisemmin siitä, mistä tietyt ihmiset ovat vastuussa erillisessä artikkelissa.

    Voit katsella lokeja apuohjelmilla, kuten logwatch tai logcheck. Ne tekevät lokien lukemisesta erittäin helppoa. Et voi tarkastella koko tiedostoa, vaan vain sinua kiinnostavat tapahtumat, ja myös lähettää itsellesi ilmoituksen sähköpostitse.

    Tarkkaile järjestelmää auditd-palvelun avulla. Ohjelma kirjoittaa levylle kaikki sinua kiinnostavat tarkastustapahtumat. Kaikki tarkastusasetukset tallennetaan tiedostoon /etc/audit.rules. Kun järjestelmä käynnistyy, palvelu lukee kaikki säännöt tästä tiedostosta. Voit avata sen ja määrittää kaiken tarpeen mukaan tai käyttää erillistä apuohjelmaa - auditctl. Voit määrittää seuraavat:

    • Järjestelmän käynnistys- ja sammutustapahtumat
    • Tapahtuman päivämäärä ja aika
    • Käyttäjätapahtumat (esimerkiksi pääsy tiettyyn tiedostoon)
    • Tapahtuman tyyppi (muokkaa, käytä, poista, kirjoita, päivitä jne.)
    • Onnistuminen tai epäonnistuminen tapahtuman toteutuksessa
    • Tallennusverkkoasetukset muuttavat tapahtumia
    • Tallenna muutokset käyttäjiin ja ryhmiin
    • Tiedostojen muutosten seuranta

    23. Suojaa OpenSSH-palvelimesi

    Salli vain protokollan 2 käyttö:

    Poista kirjautuminen pääkäyttäjänä:

    24. Asenna IDS

    IDS tai tunkeutumisen havaitsemisjärjestelmä yrittää havaita epäilyttävän, haitallisen toiminnan, kuten DOS-hyökkäys, porttiskannaus tai jopa tietokoneen hakkerointi seuraamalla verkkoliikennettä.

    On hyvä käytäntö ottaa tällainen ohjelmisto käyttöön ennen kuin järjestelmä on alttiina Internetiin. Voit asentaa AIDEn, se on HIDS (isäntäpohjainen IDS), joka voi hallita kaikkia näkökohtia sisäinen rakenne järjestelmäsi.

    Snort on ohjelmisto verkkotunkeutumisyritysten tunnistamiseen. Se voi suorittaa pakettianalyysin ja kirjaamisen sekä analysoida verkkoliikennettä reaaliajassa.

    25. Suojaa tiedostosi ja hakemistosi

    Linuxilla on erinomainen suojaus tiedostojen luvattomalta käytöltä. Kuitenkin Linuxin ja tiedostojärjestelmä ei tarkoita mitään, kun hyökkääjällä on fyysinen pääsy tietokoneeseen ja hän voi yksinkertaisesti muodostaa yhteyden HDD tietokoneelta toiseen järjestelmään tietojen kopioimiseksi. Voit kuitenkin suojata tiedostosi helposti salauksella:

    • Jos haluat salata ja purkaa tiedoston salasanalla, käytä GPG:tä
    • Voit myös suojata tiedostoja OpenSSL:llä
    • Hakemiston salaus tehdään ecryptfs:llä
    • TrueCrypt on ilmainen levyn salaustyökalu Windowsille ja Linuxille

    johtopäätöksiä

    Nyt tietokoneesi Linux-käyttöjärjestelmän tietoturva paranee huomattavasti. Älä unohda asettaa monimutkaisia ​​salasanoja aika ajoin. Kirjoita suosikkijärjestelmän suojaustyökalusi kommentteihin.

    Tässä materiaalissa tutustumme Linuxin kovettamisen tärkeimpiin apuohjelmiin. Venäjän kielellä tätä kutsutaan "Linux-järjestelmien tietoturvatason tarkistamiseksi ja asetusten oikeellisuuden arvioimiseksi tietoturvallisuuden näkökulmasta". Emme tietenkään vain käy läpi ohjelmia, vaan annamme myös esimerkkejä niiden käytöstä.

    Oma tilintarkastaja tai oma turva

    Ylläpitäjät ja varsinkin tietoturvan tarkastajat joutuvat usein turvallisuuden tarkistamisen eteen Suuri määrä isännöi hyvin lyhyessä ajassa. Ja tietysti näiden ongelmien ratkaisemiseksi Enterprise-segmentissä on erikoistyökaluja, kuten esimerkiksi verkkoturvaskannerit. Olen varma, että lukijamme tuntevat ne kaikki - avoimen lähdekoodin OpenVAS-moottorista kaupallisiin tuotteisiin, kuten Nessus tai Nexpose. Tätä ohjelmistoa käytetään kuitenkin yleensä vanhentuneiden ja siksi haavoittuvien ohjelmistojen etsimiseen ja sitten korjaustiedostojen hallintaan. Lisäksi kaikki skannerit eivät ota huomioon joitain Linuxin ja muiden avoimen lähdekoodin tuotteiden sisäänrakennettujen suojausmekanismien erityispiirteitä. Ja viimeisenä mutta ei vähäisimpänä, emissiohinta on tärkeä, koska kaupallisiin tuotteisiin on varaa vain yrityksillä, jotka osoittavat budjettia tälle liiketoiminnalle.

    Siksi tänään puhumme erikoistuneesta vapaasti jaettujen apuohjelmien joukosta, jotka pystyvät diagnosoimaan järjestelmän nykyisen tietoturvatason, arvioimaan mahdollisia riskejä, esimerkiksi "lisäpalveluita" Internetissä tai epävarmaa oletuskonfiguraatiota ja jopa tarjota vaihtoehtoja havaittujen puutteiden korjaamiseksi. Toinen näiden työkalujen käytön etu on kyky replikoida tavallisia maatilan testiskenaarioita useista Linux-järjestelmistä ja luoda dokumentoitu testikanta lokien ja yksittäisten raporttien muodossa.

    Turvatarkastuksen käytännön näkökohdat

    Jos katsot tarkastajan silmin, testaustapa voidaan jakaa kahteen tyyppiin.

    Ensimmäinen- tämä on ns. vaatimustenmukaisuusvaatimusten noudattamista, jossa tarkistetaan missä tahansa kansainvälisessä standardissa tai "parhaassa käytännössä" määrättyjen pakollisten turvaelementtien olemassaolo. Klassinen esimerkki on PCI DSS -vaatimukset maksutietojärjestelmille, SOX404, NIST-800 sarja,.

    Toinen- Tämä on puhtaasti rationaalinen lähestymistapa, joka perustuu kysymykseen "Mitä muuta turvallisuuden vahvistamiseksi voidaan tehdä?" Pakollisia vaatimuksia ei ole - vain tietosi, selkeä pää ja taitavat kädet. Tämä on esimerkiksi ytimen version ja/tai sovelluspakettien päivittämistä, palomuurin käyttöönottoa, pakottamista ja määrittämistä.

    Kaikkea, mikä liittyy toiseen lähestymistapaan, kutsutaan yleensä erityistermiksi Kovettumista, joka voidaan myös määritellä "toimiksi, joilla pyritään parantamaan käyttöjärjestelmän (tai ohjelman) alkusuojaustasoa ensisijaisesti standardikeinoin."

    Vaatimusten noudattaminen tarkistetaan yleensä valmisteltaessa pakollista auditointia, kuten PCI DSS tai muu sertifiointiauditointi. Kiinnitämme enemmän huomiota kovettumiskomponenttiin. Kaikki suuret kehittäjät tarjoavat tuotteitaan Kovettumisohjeet- oppaat, jotka sisältävät vinkkejä ja suosituksia turvallisuuden vahvistamiseen ottaen huomioon vakioturvamekanismit ja ohjelmiston erityispiirteet. Joten Red Hatilla, Debianilla, Oraclella, Ciscolla on samanlaiset oppaat.

    TIEDOT

    Hardening on tietoturvan maailmasta peräisin oleva termi, jolla tarkoitetaan prosessia, jolla varmistetaan järjestelmän (ohjelman) turvallisuus vähentämällä sen haavoittuvuutta ja pääsääntöisesti käyttämällä vain tavallisia apuohjelmia tai suojamekanismeja.

    Sudo apt-get päivitys sudo apt-get install lynis

    Ja RPM-suuntautuneille jakeluille (asianmukaisten tietovarastojen lisäämisen jälkeen):

    Yum asenna linus -y

    Asennus macOS:ään:

    $ brew haku lynis $ brew asentaa lynis

    Lyniksen käynnistämiseksi sinun tarvitsee määrittää vain yksi avain. Jos esimerkiksi haluat suorittaa kaikki saatavilla olevat testit, sinun tulee määrittää -c (tarkista kaikki) -kytkin:

    # Tyypillinen testisarja sudo lynis auditointijärjestelmä # Täysi testisarja sudo lynis audit system -c # Etäisäntätarkastusjärjestelmän etätarkistus







    Ennen auditointia on aina hyvä tarkistaa, onko uusi versio Lynis:

    Lynis-päivitystiedot && Lynis-päivitysten tarkistus

    Lynis-apuohjelmassa on tavallisen lisäksi vielä yksi tila - etuoikeutettu laukaisu:

    Lynis audit --pentest

    Jos haluat laittaa testauksen aloittaneen tarkastajan nimen, lisää vain -auditor-parametri :

    Sudo lynis auditointijärjestelmä -c -auditor isä

    Varmennusprosessia voidaan jatkaa (Enter) tai pakottaa lopettamaan (Ctrl+C) missä tahansa auditoinnin vaiheessa. Suoritettujen testien tulokset kirjoitetaan Lynis-lokiin /var/log/lynis.log . Huomaa, että loki korvataan aina, kun apuohjelma käynnistetään.

    Jos haluat testata järjestelmällisesti automaattitilassa, voit määrittää sopivan työn Cron-aikataululle käyttämällä -cronjob-kytkintä. Tässä tapauksessa apuohjelma käynnistyy määritetyn mallin (config) mukaisesti eikä näytä interaktiivisia viestejä, kysymyksiä tai varoituksia. Kaikki tulokset tallennetaan lokiin. Tässä on esimerkiksi komentosarja apuohjelman käynnistämiseksi oletuskonfiguraatiolla kerran kuukaudessa:

    #!/bin/sh AUDITOR="automaattinen" DATE=$(päivämäärä +%Y%m%d) HOST=$(isäntänimi) LOG_DIR="/var/log/lynis" REPORT="$LOG_DIR/raportti-$( HOST).$(DATE)" DATA="$LOG_DIR/report-data-$(HOST).$(DATE).txt" cd /usr/local/lynis ./lynis -c –auditori "$(AUDITOR)" –cronjob > $(REPORT) mv /var/log/lynis-report.dat $(DATA) # End

    Tallenna tämä komentosarja hakemistoon /etc/cron.monthly/lynis. Älä myöskään unohda lisätä polkuja lokien tallennusta varten (/usr/local/lynis ja /var/log/lynis), muuten se ei ehkä toimi oikein.

    Näet luettelon kaikista kutsuttavissa olevista komennoista:

    Lynis näyttää komennot

    Erityisen uteliaat voivat katsoa asetuksia oletuskonfiguraatiosta:

    Lynis näyttää asetukset

    Lyhyet ohjeet apuohjelman käyttöön:

    Mies Lynis

    Tarkistuksen tuloksiin perustuvat mahdolliset tilat rajoittuvat seuraavaan luetteloon: EI MITÄÄN, HEIKKO, VALMIS, LÖYTYNYT, NOT_FOUND, OK, VAROITUS.


    Yksittäisten testien suorittaminen Lynisissä

    Käytännössä voi olla tarpeen suorittaa vain muutama testi. Jos palvelimesi esimerkiksi suorittaa vain Mail Server- tai Apache-toimintoja. Tätä varten voimme käyttää parametria -tests. Komennon syntaksi on seuraava:

    Lynis -testaa "Test-IDs"

    Jos sinun on vaikea ymmärtää testitunnisteiden suuren määrän vuoksi, voit käyttää ryhmäparametria -test-category . Tämän vaihtoehdon avulla Lynis suorittaa vain testitunnuksia, jotka kuuluvat tiettyyn luokkaan. Suunnittelemme esimerkiksi palomuuri- ja ydintestien suorittamista:

    ./lynis -tests-category "palomuurin ydin"

    Lisäksi Lyniksen toimivuutta laajentavat erilaiset lisäosat, joita voit lisätä itse tai voit lisätä uusia olemassa olevaan hakemistoon.

    Korjausehdotuksia

    Kaikki varoitukset listataan tulosten jälkeen. Jokainen niistä alkaa varoitustekstillä, minkä jälkeen sen luonut testi ilmoitetaan sen vieressä suluissa. Seuraava rivi ehdottaa ratkaisua ongelmaan, jos sellainen on olemassa. Itse asiassa viimeinen rivi on URL-osoite, josta voit tarkastella tietoja ja löytää lisäsuosituksia ongelman korjaamiseksi.

    Profiilit

    Tarkastusta hallitsevat profiilit määritellään tiedostoissa, joiden pääte on .prf, joka sijaitsee /etc/lynis-hakemistossa. Oletusprofiili on nimetty ennustettavasti: default.prf . Kehittäjät eivät suosittele sen muokkaamista suoraan: on parempi lisätä kaikki muutokset, jotka haluat tehdä tarkastuksessa, samassa hakemistossa olevaan custom.prf-tiedostoon.

    Jatkoa on vain jäsenille

    Vaihtoehto 1. Liity "sivusto"-yhteisöön lukeaksesi kaiken sivuston materiaalin

    Yhteisön jäsenyys tietyn ajanjakson sisällä antaa sinulle pääsyn KAIKKIIN Hacker-materiaaliin, lisää henkilökohtaista kumulatiivista alennustasi ja voit kerätä ammattimaisen Xakep Score -luokituksen!