Finestre.  Virus.  I Quaderni.  Internet.  ufficio.  Utilità.  Autisti

C'è un malinteso comune secondo cui i server che eseguono il sistema operativo Linux siano i più sicuri e protetti dalle intrusioni esterne. Purtroppo non è così, la sicurezza di qualsiasi server dipende da una serie di fattori e misure per garantirla, e praticamente non dipende dal sistema operativo utilizzato.

Abbiamo deciso di iniziare una serie di articoli dedicati a sicurezza della rete Con Server Ubuntu, perché le soluzioni su questa piattaforma sono di grande interesse per i nostri lettori e perché molti credono che le soluzioni Linux siano sicure di per sé.

Allo stesso tempo, un router con un indirizzo IP dedicato è un "gateway" per la rete locale e dipenderà solo dall'amministratore se questo gate sarà una barriera affidabile o se si rivelerà un cancello di campagna chiuso con un garofano.

Un altro malinteso comune, ragionamento nello stile: "ma chi ne ha bisogno, il nostro server, non abbiamo niente di interessante". In effetti, la tua rete locale potrebbe non essere di alcun interesse per gli aggressori, tuttavia possono utilizzare un server compromesso per inviare spam, attacchi ad altri server, un proxy anonimo, insomma, come punto di partenza per le loro azioni oscure.

E questo è già spiacevole e può servire come fonte di vari problemi: dal fornitore alle forze dell'ordine. E non bisogna dimenticare la diffusione di virus, il furto e la distruzione di informazioni importanti, nonché il fatto che un periodo di inattività di un'impresa porta a perdite abbastanza tangibili.

Nonostante l'articolo sia dedicato a Ubuntu Server, per prima cosa considereremo i problemi di sicurezza generali che si applicano ugualmente a qualsiasi piattaforma e sono le basi, senza le quali non ha senso discutere la questione in modo più dettagliato.

Dove inizia la sicurezza?

No, la sicurezza non inizia con un firewall, non inizia affatto con un firewall. mezzi tecnici, la sicurezza inizia con l'utente. Dopotutto, qual è il punto della porta di metallo più bella installata di più i migliori specialisti se il proprietario lascia la chiave sotto il tappeto?

Pertanto, la prima cosa da fare è condurre un controllo di sicurezza. Non aver paura di questa parola, non è tutto così difficile: disegna un piano di rete schematico su cui contrassegnare una zona sicura, una zona di potenziale pericolo e una zona di maggiore pericolo, e fai anche un elenco di utenti che hanno (dovrebbero avere) accesso a queste zone.

La zona sicura dovrebbe includere risorse di rete interne alle quali non vi è accesso dall'esterno e per le quali è accettabile un basso livello di sicurezza. Queste possono essere postazioni di lavoro file server e così via. dispositivi il cui accesso è limitato dalla rete locale dell'azienda.

La zona di potenziale pericolo dovrebbe includere server e dispositivi che non hanno accesso diretto alla rete esterna, ma alcuni dei cui servizi sono accessibili dall'esterno, ad esempio server Web e di posta situati dietro il firewall, ma che allo stesso tempo servono richieste dalla rete esterna.

La zona di pericolo dovrebbe includere dispositivi direttamente accessibili dall'esterno, nel caso ideale dovrebbe essere un router.

Se possibile, una zona potenzialmente pericolosa dovrebbe essere spostata in una sottorete separata, una zona demilitarizzata (DMZ), che è separata dalla rete principale da un firewall aggiuntivo.

I dispositivi LAN dovrebbero essere in grado di accedere solo ai servizi nella DMZ di cui hanno bisogno, come SMTP, POP3, HTTP, altre connessioni dovrebbero essere bloccate. Ciò isolerà in modo affidabile un utente malintenzionato o un malware che ha sfruttato una vulnerabilità in un servizio separato con una zona demilitarizzata, bloccandone l'accesso alla rete principale.

Fisicamente, la DMZ può essere configurata installando un firewall server / hardware separato o aggiungendo una scheda di rete aggiuntiva al router, ma in quest'ultimo caso dovrai prestare molta attenzione alla sicurezza del router. Ma in ogni caso, è molto più facile proteggere un singolo server che un gruppo di server.

Il passo successivo dovrebbe essere quello di analizzare l'elenco degli utenti, se tutti hanno bisogno di accedere alla DMZ e al router (ad eccezione dei servizi pubblici), occorre prestare particolare attenzione agli utenti che si connettono dall'esterno.

Questo di solito richiede il passo molto impopolare di applicare una politica di password. Tutte le password degli utenti con accesso ai servizi critici e con possibilità di connettersi dall'esterno devono contenere almeno 6 caratteri e contenere, oltre alle lettere minuscole, caratteri di due delle tre categorie: lettere maiuscole, numeri, caratteri non alfabetici.

Inoltre, la password non deve includere il login dell'utente o parte di esso, non deve contenere date e nomi associabili all'utente e, preferibilmente, non deve essere una parola del dizionario.

È una buona idea prendere l'abitudine di cambiare le password ogni 30-40 giorni. È chiaro che una tale politica può causare il rifiuto da parte degli utenti, ma dovresti sempre ricordare che le password come 123 O qwerty equivalgono alla chiave lasciata sotto il tappeto.

Sicurezza del server - niente di più.

Ora, avendo un'idea di cosa vogliamo proteggere e da cosa, passiamo al server stesso. Fai un elenco di tutti i servizi e servizi, quindi valuta se sono tutti necessari su questo particolare server o se possono essere spostati da qualche parte.

Minore è il numero di servizi, più facile è garantire la sicurezza, minore è la possibilità che un server venga compromesso a causa di una vulnerabilità critica in uno di essi.

Configura i servizi di rete locale (come squid) per accettare solo le richieste dall'interfaccia locale. Minori sono i servizi disponibili esternamente, meglio è.

Un buon assistente di sicurezza è uno scanner di vulnerabilità che dovrebbe scansionare l'interfaccia esterna del server. Abbiamo utilizzato una versione demo di uno dei prodotti più famosi: XSpider 7.7.

Lo scanner mostra le porte aperte, cerca di determinare il tipo di servizio in esecuzione e, in caso di successo, le relative vulnerabilità. Come puoi vedere, un sistema correttamente configurato è abbastanza sicuro, ma non dovresti lasciare la chiave sotto il tappetino, la presenza di porte aperte 1723 (VPN) e 3389 (RDP, inoltrate al terminal server) sul router è un buon ragione per pensare alla politica delle password.

Separatamente, vale la pena parlare della sicurezza di SSH, questo servizio comunemente usato dagli amministratori per telecomando server ed è di particolare interesse per gli intrusi. Le impostazioni SSH sono memorizzate in un file /etc/ssh/sshd_config, vengono apportate tutte le modifiche descritte di seguito. Prima di tutto, dovresti disabilitare l'autorizzazione sotto l'utente root, per fare ciò, aggiungi l'opzione:

PermessoRootLogin no

Ora l'attaccante dovrà indovinare non solo la password, ma anche il login, mentre non conoscerà ancora la password del superutente (speriamo che non corrisponda alla tua password). Tutte le attività amministrative durante la connessione dall'esterno devono essere eseguite da sotto sudo accedendo come utente non privilegiato.

Vale la pena specificare esplicitamente l'elenco degli utenti consentiti, mentre è possibile utilizzare record come [e-mail protetta] , che consente all'utente specificato di connettersi solo dall'host specificato. Ad esempio, per consentire all'utente ivanov di connettersi da casa (IP 1.2.3.4), aggiungere la seguente voce:

Consenti utente [e-mail protetta]

Disabilita anche l'uso del protocollo SSH1 obsoleto e meno sicuro, consentendo solo la seconda versione del protocollo, per fare ciò, modifica la seguente riga nel modulo:

Protocollo 2

Nonostante tutte le misure adottate, ci saranno ancora tentativi di connessione a SSH e ad altri servizi pubblici, per evitare di indovinare le password, utilizzare l'utilità fail2ban, che consente di bannare automaticamente un utente dopo diversi tentativi di autorizzazione falliti. Puoi installarlo con il comando:

sudo apt-get install fail2ban

Questa utility è pronta per funzionare subito dopo l'installazione, tuttavia, ti consigliamo di modificare immediatamente alcuni parametri, per questo apportare modifiche al file /etc/fail2ban/jail.conf. Per impostazione predefinita, viene controllato solo l'accesso a SSH e il tempo di ban è di 10 minuti (600 secondi), a nostro avviso vale la pena aumentarlo modificando la seguente opzione:

Bantime = 6000

Quindi scorrere il file e abilitare le sezioni per i servizi in esecuzione sul proprio sistema impostando il parametro dopo il nome della sezione corrispondente abilitato in uno stato VERO, ad esempio per il servizio profpt sarà simile a questo:


abilitato=vero

Altro parametro importante maxretry, responsabile del numero massimo di tentativi di connessione. Dopo aver modificato le impostazioni, non dimenticare di riavviare il servizio:

sudo /etc/init.d/fail2ban restart

Puoi vedere il registro dell'utilità in /var/log/fail2ban.log.

Nessuno di noi desidera che le informazioni personali cadano nelle mani sbagliate. Ma come proteggere il sistema da attacchi e furti di dati? Devi davvero leggere manuali lunghi chilometri sulla configurazione e sugli algoritmi di crittografia? Per niente necessario. In questo articolo, ti mostrerò come rendere sicuro un sistema Linux in soli 30 minuti.

introduzione

Viviamo in un'epoca dispositivi mobili e permanente in linea. Andiamo in un bar con un laptop ed eseguiamo server Web su Internet su macchine domestiche. Ci registriamo su centinaia di siti e utilizziamo le stesse password per i servizi web. Abbiamo sempre uno smartphone in tasca, che è pieno di decine di password e memorizza le chiavi di diversi server SSH. Ci siamo così abituati al fatto che i servizi di terze parti si prendono cura della nostra privacy che abbiamo già smesso di prestarvi attenzione.

Quando ho perso il mio smartphone, sono stato molto fortunato perché l'antifurto installato su di esso si è rivelato efficiente e mi ha permesso di cancellare da remoto tutti i dati dalla memoria del dispositivo. Quando ho inavvertitamente aperto una porta SSH su auto di casa con un utente senza password (!) al mondo esterno (!!), sono stato molto fortunato che gli script kiddies siano entrati nella macchina, che, a parte la divertente storia della conchiglia, non ha lasciato tracce serie della loro permanenza in il sistema. Quando ho pubblicato accidentalmente un annuncio su Internet con la mia password Gmail, sono stato molto fortunato che ci fosse una persona gentile che mi ha avvertito.

Forse sto scherzando, ma credo fermamente che incidenti del genere siano accaduti a molti che leggono queste righe. Ed è un bene se queste persone, a differenza di me, si prendessero seriamente cura di proteggere la propria auto. Dopotutto, l'antifurto potrebbe non funzionare, e invece di uno script kiddy, persone serie potrebbero salire in macchina, e io potrei perdere non uno smartphone, ma un laptop, sul quale, a parte la password dell'utente, non c'era altra protezione. No, fare affidamento su un'autenticazione a due fattori di Google e password stupide non vale assolutamente la pena nella nostra epoca, è necessario qualcosa di più serio.

Questo articolo è una guida unixoid paranoica dedicata alla protezione totale di una macchina Linux da qualsiasi cosa. Non oso dire che tutto ciò che è descritto qui è obbligatorio per l'uso. Al contrario, è una raccolta di ricette, le cui informazioni possono essere utilizzate per proteggere te stesso e i dati a quelle frontiere in cui è necessario nella tua situazione particolare.

Parola d'ordine!

Tutto inizia con le password. Sono ovunque: nella finestra di login in una distribuzione Linux, nei moduli di registrazione sui siti Internet, sui server FTP e SSH e sulla schermata di blocco di uno smartphone. Lo standard per le password oggi è di 8-12 caratteri maiuscoli e minuscoli con numeri inclusi. Genera tali password per il tuo propria mente abbastanza noioso, ma c'è un modo semplice per farlo automaticamente:

$ openssl rand -base64 6

Nessuna applicazione esterna, nessuna estensione del browser Web, OpenSSL è disponibile su qualsiasi macchina. Anche se, se è più conveniente per qualcuno, può installare e utilizzare pwgen per questi scopi (si dice che la password sarà più resistente):

$ pwgen -Bs 8 1

Dove archiviare le password? Oggi ogni utente ne ha così tanti che è semplicemente impossibile tenere tutto a mente. Ti fidi del sistema di salvataggio automatico del browser? Puoi, ma chissà come li tratteranno Google o Mozilla. Snowden ha detto che non era molto buono. Pertanto, le password devono essere memorizzate sulla macchina stessa in un contenitore crittografato. I padri fondatori raccomandano di utilizzare KeePassX per questo. La cosa è grafica, che agli stessi padri fondatori non piace molto, ma funziona ovunque, compreso il noto Google Probe Android (KeePassDroid). Non resta che trasferire il database con le password nel posto giusto.

Crittografiamo

Crittografia: quanto c'è in questa parola... Oggi la crittografia è ovunque e da nessuna parte allo stesso tempo. Siamo costretti a utilizzare le versioni HTTPS dei siti, ma non ci interessa. Ci dicono: "Crittografa la tua home directory" e noi diciamo: "Lo installerò più tardi". Ci dicono: "Il passatempo preferito dei dipendenti di Dropbox è ridere delle foto personali degli utenti" e noi: "Lasciateli ridere". Nel frattempo, la crittografia è oggi l'unico mezzo assoluto di protezione. Ed è molto conveniente e leviga le rughe.

In Linux puoi trovare tonnellate di strumenti di crittografia per tutto e per tutto, dalle partizioni del disco rigido ai singoli file. I tre strumenti più conosciuti e testati nel tempo sono dm-crypt/LUKS, ecryptfs ed encfs. Il primo crittografa interi dischi e partizioni, il secondo e il terzo - directory con Informazioni importanti, ogni file separatamente, il che è molto comodo se è necessario eseguire backup incrementali o utilizzarlo insieme a Dropbox. Esistono anche diversi strumenti meno conosciuti, tra cui TrueCrypt per esempio.

Prenoterò subito che la crittografia dell'intero disco è un compito difficile e, soprattutto, inutile. Non c'è e non può esserci nulla di particolarmente confidenziale nella directory principale, ma la home directory e lo scambio sono solo un deposito di informazioni. Inoltre, il secondo è persino più grande del primo, poiché i dati e le password già decifrati possono arrivare lì (i normali programmatori vietano al sistema di inserire tali dati in uno scambio, ma una tale minoranza). Configurare la crittografia per entrambi è molto semplice, basta installare gli strumenti di crittografia:

$ sudo apt-get install ecryptfs-utils

E, infatti, abilita la crittografia:

$ sudo ecryptfs-setup-swap $ ecryptfs-setup-private

Successivamente, inserisci la tua password utilizzata per il login e accedi al sistema. Sì, è davvero così semplice. Il primo comando crittograferà e rimonterà lo swap modificando le righe necessarie in /etc/fstab. Il secondo creerà le directory ~/.Private e ~/Private, che memorizzeranno rispettivamente i file crittografati e decrittografati. Quando accedi, verrà attivato il modulo PAM pam_ecryptfs.so, che monterà la prima directory sulla seconda con crittografia dei dati trasparente. Dopo lo smontaggio, ~/Private sarà vuoto e ~/.Private conterrà tutti i file in forma crittografata.

Non è vietato crittografare l'intera home directory nel suo insieme. Le prestazioni non diminuiranno molto, ma tutti i file saranno protetti, inclusa la stessa directory di rete ~/Dropbox. È fatto così:

# ecryptfs-migrate-home -u vasya

A proposito, dovrebbe esserci 2,5 volte più spazio su disco rispetto ai dati di Vasya, quindi consiglio di ripulire in anticipo. Al termine dell'operazione, è necessario accedere immediatamente come utente vasya e verificare se funziona:

$ montaggio | grep Private /home/vasya/.Private su /home/vasya type ecryptfs ...

Se tutto è OK, la copia non crittografata dei dati può essere sovrascritta:

$ sudo rm -r /home/vasya.*

Copriamo le nostre tracce

OK, le password sono in un posto sicuro, anche i file personali, e adesso? E ora dobbiamo assicurarci che alcuni pezzi dei nostri dati personali non cadano nelle mani sbagliate. Non è un segreto per nessuno che quando un file viene eliminato, il suo contenuto effettivo rimane sul supporto anche se la formattazione viene eseguita successivamente. I nostri dati crittografati saranno al sicuro anche dopo la cancellazione, ma per quanto riguarda le unità flash e altre schede di memoria? È qui che torna utile l'utilità srm, che non solo elimina il file, ma riempie anche i blocchi di dati rimasti dopo di esso con spazzatura:

$ sudo apt-get install secure-delete $ srm secret-file.txt home-video.mpg

# dd if=/dev/zero of=/dev/sdb

Questo comando cancellerà tutti i dati sulla chiavetta sdb. Successivamente, resta da creare una tabella delle partizioni (con una partizione) e formattarla nel file system desiderato. Si consiglia di utilizzare fdisk e mkfs.vfat per questo, ma puoi anche cavartela con la grafica gparted.

Prevenzione degli attacchi BruteForce

Fail2ban è un demone che scansiona i log alla ricerca di tentativi di indovinare le password per i servizi di rete. Se vengono rilevati tali tentativi, l'indirizzo IP sospetto viene bloccato da iptables o TCP Wrapper. Il servizio è in grado di avvisare il proprietario dell'host dell'incidente tramite e-mail e reimpostare il blocco dopo un tempo specificato. Fail2ban è stato originariamente sviluppato per proteggere SSH, oggi ci sono esempi già pronti per Apache, lighttpd, Postfix, exim, Cyrus IMAP, named e così via. Inoltre, un processo Fail2ban può proteggere più servizi contemporaneamente.

In Ubuntu/Debian, per installare, digitiamo:

# apt-get install fail2ban

Le configurazioni si trovano nella directory /etc/fail2ban. Dopo aver modificato la configurazione, riavviare fail2ban con il comando:

# /etc/init.d/fail2ban riavvio

Minaccia dall'esterno

Ora occupiamoci delle minacce provenienti dalle viscere World Wide Web. È qui che dovrei iniziare a parlare di iptables e pf in esecuzione su una macchina dedicata che esegue OpenBSD, ma è tutto ridondante quando c'è ipkungfu. Cos'è? Questo è uno script che farà tutto il lavoro sporco di configurazione del firewall per noi, senza dover creare elenchi di regole lunghi chilometri. Installare:

$ sudo apt-get install ipkungfu

Modifica configurazione:

$ sudo vi /etc/ipkungfu/ipkungfu.conf # La rete locale, se c'è - scriviamo l'indirizzo di rete insieme alla maschera, altrimenti - scriviamo l'indirizzo di loopback LOCAL_NET="127.0.0.1" # La nostra macchina non è un gateway GATEWAY=0 # Chiude le porte necessarie FORBIDDEN_PORTS="135 137 139" # Blocca i ping, il 90% dei kiddis cadrà in questa fase BLOCK_PINGS=1 # Eliminazione di pacchetti sospetti (flooding di vario tipo) SUSPECT="DROP" # Eliminazione di pacchetti "errati" (alcuni tipi di DoS) KNOWN_BAD="DROP" # Scansione delle porte? Colpa! PORT_SCAN="DROP"

Per abilitare ipkungfu, apri il file /etc/default/ipkungfu e modifica la riga IPKFSTART = 0 in IPKFSTART = 1. Esegui:

$ sudo ipkungfu

Inoltre, apporteremo modifiche a /etc/sysctl.conf:

$ sudo vi /etc/systcl.conf # Elimina i reindirizzamenti ICMP (contro gli attacchi MITM) net.ipv4.conf.all.accept_redirects=0 net.ipv6.conf.all.accept_redirects=0 # Abilita il meccanismo TCP syncookies net.ipv4 .tcp_syncookies =1 # Varie modifiche (anti-spoofing, aumento della coda delle connessioni TCP "semiaperte" e così via) net.ipv4.tcp_timestamps=0 net.ipv4.conf.all.rp_filter=1 net.ipv4.tcp_max_syn_backlog= 1280 kernel .core_uses_pid=1

Attiva modifiche:

$ sudo sysctl -p

Rilevamento delle intrusioni

Snort è uno degli strumenti preferiti dagli amministratori e un pilastro in tutte le guide sulla sicurezza. Una cosa con una lunga storia e possibilità colossali, a cui sono dedicati interi libri. Cosa fa nella nostra guida a configurazione rapida sistema sicuro? Ed ecco il posto per lui, Snort non ha bisogno di essere configurato:

$ sudo apt-get install snort $ snort -D

Tutto! Non sto scherzando, impostazioni predefinite Snort è più che sufficiente per proteggere i tipici servizi di rete, se li hai, ovviamente. Hai solo bisogno di guardare il registro di tanto in tanto. E in esso puoi trovare righe come queste:

[**] Tentativo di overflow della risposta del probe MS-SQL [**] http://www.securityfocus.com/bid/9407]

Ops. Qualcuno ha provato a causare un overflow del buffer in MySQL. C'è anche un collegamento a una pagina con una descrizione dettagliata del problema. Bellezza.

Qualcuno ha ereditato...

Qualcuno particolarmente intelligente è stato in grado di aggirare il nostro firewall, superare Snort, ottenere l'accesso root al sistema e ora accede regolarmente al sistema utilizzando la backdoor installata. Non va bene, la backdoor deve essere trovata, rimossa e il sistema aggiornato. Per cercare rootkit e backdoor, usa rkhunter:

$ sudo apt-get install rkhunter

Lanciamo:

$ sudo rkhunter -c --sk

Il software controllerà l'intero sistema alla ricerca di rootkit e visualizzerà i risultati. Se il malware viene ancora trovato, rkhunter indicherà il luogo e potrà essere sovrascritto. Un registro più dettagliato si trova qui: /var/log/rkhunter.log. È meglio eseguire rkhunter come cron job giornaliero:

$ sudo vi /etc/cron.daily/rkhunter.sh #!/bin/bash /usr/bin/rkhunter -c --cronjob 2>&1 | mail -s "Risultati scansione RKhunter" [e-mail protetta]

Sostituiamo l'indirizzo email di Vasya con il nostro e rendiamo eseguibile lo script:

$ sudo chmod +x /etc/cron.daily/rkhunter.sh

$ sudo rkhunter --update

A proposito, può essere aggiunto prima del comando check nello script cron. Altri due strumenti di ricerca rootkit:

$ sudo apt-get install tiger $ sudo tiger $ sudo apt-get install lynis $ sudo lynis -c

In effetti, le stesse uova Fabergé viste dall'alto, ma hanno basi diverse. Forse con il loro aiuto sarà possibile rivelare cosa si è perso rkhunter. Bene, per cominciare, debsums è uno strumento per verificare i checksum dei file, pacchetti installati con una norma. Abbiamo messo:

$ sudo apt-get install debsums

Iniziamo il controllo:

$ sudo debsums -ac

Come sempre? launch può essere aggiunto ai cron job.



Al di fuori

Ora parliamo di come mantenere il tuo anonimato sul Web e ottenere l'accesso a siti e pagine bloccati su richiesta di varie organizzazioni di copyright e altri Mizulin. Il modo più semplice per farlo è utilizzare uno delle migliaia di server proxy in tutto il mondo. Molti di loro sono gratuiti, ma spesso tagliano il canale alla velocità di un antico modem analogico.

Per navigare in sicurezza nei siti e attivare il proxy solo se necessario, puoi utilizzare una delle tante estensioni per Chrome e Firefox, che si trovano facilmente nella directory del proxy switcher. Installiamo, guidiamo nell'elenco dei proxy necessari e passiamo a quello richiesto, vedendo al posto della pagina il cartello "L'accesso alla pagina è limitato su richiesta del signor Skumbrievich".

In quelle situazioni in cui l'intero sito è caduto sotto il filtro e il suo indirizzo è stato inserito nella lista nera sul lato dei server DNS dei provider, è possibile utilizzare server DNS gratuiti i cui indirizzi sono pubblicati. Basta prendere due indirizzi qualsiasi e aggiungerli a /etc/resolv.conf:

server dei nomi 156.154.70.22 server dei nomi 156.154.71.22

Per impedire a vari tipi di client DHCP e NetworkManager di sovrascrivere il file con gli indirizzi ricevuti dal provider o dal router, rendiamo il file non scrivibile utilizzando gli attributi estesi:

$ sudo chattr +i /etc/resolv.conf

Successivamente, il file diventerà protetto da scrittura per tutti, incluso root.

Per anonimizzare ulteriormente la tua esperienza di navigazione, puoi anche utilizzare il demone dnscrypt, che crittograferà tutte le richieste al server DNS oltre al server proxy utilizzato per connettersi al sito stesso. Installare:

$ wget http://download.dnscrypt.org/dnscrypt-proxy/dnscrypt-proxy-1.3.2.tar.bz2 $ bunzip2 -cd dnscrypt-proxy-*.tar.bz2 | tar xvf - $ cd dnscrypt-proxy-* $ sudo apt-get install build-essential $ ./configure && make -j2 $ sudo make install

Specificare l'indirizzo di loopback in /etc/resolv.conf:

$ vi /etc/resolv.conf server dei nomi 127.0.0.1

Avviamo il demone:

$ sudo dnscrypt-proxy --daemonize

A proposito, ci sono versioni di dnscrypt per Windows, iOS e Android.

Instradamento della cipolla

Che cos'è il routing delle cipolle? Questo è Tor. E Tor, a sua volta, è un sistema che ti consente di creare un file completamente rete anonima con accesso a Internet. Il termine "cipolla" è qui utilizzato in relazione al modello di lavoro, in cui qualsiasi pacchetto di rete sarà "avvolto" in tre livelli di crittografia e passerà attraverso tre nodi sulla strada per il destinatario, ognuno dei quali rimuoverà il proprio strato e trasmettere ulteriormente il risultato. Tutto, ovviamente, è più complicato, ma per noi l'unica cosa importante è che questo è uno dei pochi tipi di networking che ti consente di mantenere il completo anonimato.

Tuttavia, dove c'è l'anonimato, ci sono problemi di connessione. E Tor ne ha almeno tre: è terribilmente lento (grazie alla crittografia e al passaggio attraverso una catena di nodi), creerà un carico sulla tua rete (perché tu stesso sarai uno dei nodi), ed è vulnerabile a intercettazione del traffico. Quest'ultima è una naturale conseguenza della possibilità di accedere a Internet dalla rete Tor: l'ultimo nodo (l'uscita) rimuoverà l'ultimo strato di crittografia e potrà accedere ai dati.

Tuttavia, Tor è molto facile da installare e utilizzare:

$ sudo apt-get install

Tutto, ora sulla macchina locale ci sarà un server proxy che porta alla rete Tor. Indirizzo: 127.0.0.1:9050, puoi inserirlo nel browser utilizzando la stessa estensione o aggiungerlo tramite le impostazioni. Tieni presente che si tratta di SOCKS, non di un proxy HTTP.


INFORMAZIONI

La versione Android di Tor si chiama Orbot.

Mettere dentro riga di comando la password non è stata salvata nella cronologia, puoi usare un trucco intelligente chiamato "aggiungi uno spazio all'inizio del comando".

È ecryptfs che viene utilizzato per crittografare la home directory in Ubuntu.

La lotta contro l'alluvione

Ecco alcuni comandi che possono aiutarti con il flooding del tuo host.

Conteggio del numero di connessioni su una porta specifica:

$ netstat -na | grep ":porta\" | wc -l

Conteggio del numero di connessioni TCP "semiaperte":

$ netstat -na | grep ":porta\" | grep SYN_RCVD | wc -l

Visualizzazione dell'elenco degli indirizzi IP da cui vengono effettuate le richieste di connessione:

$ netstat -na | grep ":porta\" | ordina | uniq -c | sort-nr | meno

Analisi dei pacchetti sospetti con tcpdump:

# tcpdump -n -i eth0 -s 0 -w output.txt dst port porta e host del server IP

Abbandoniamo le connessioni dell'attaccante:

# iptables -A INPUT -s ip dell'aggressore -p tcp --destination-port port -j DROP

Limitiamo il numero massimo di connessioni "semiaperte" da un IP a una porta specifica:

# iptables -I INPUT -p tcp --syn --dport port -m iplimit --iplimit-above 10 -j DROP

Disabilita le risposte alle richieste ICMP ECHO:

# iptables -A INPUT -p icmp -j DROP --icmp-type 8

conclusioni

È tutto. Senza entrare nei dettagli e senza bisogno di studiare manuali, abbiamo realizzato una Linux-box protetta da intrusioni esterne, da rootkit e altre infezioni, dall'intervento umano diretto, dall'intercettazione del traffico e dalla sorveglianza. Non resta che aggiornare regolarmente il sistema, disabilitare l'accesso con password tramite SSH, rimuovere i servizi non necessari ed evitare errori di configurazione.

Molti utenti incontrano problemi quando tentano di configurare una connessione Internet in Ubuntu. Molto spesso ciò è dovuto all'inesperienza, ma potrebbero esserci altri motivi. L'articolo fornirà istruzioni per l'impostazione di diversi tipi di connessioni con analisi dettagliata tutte le possibili complicazioni nel processo di attuazione.

Esistono molti tipi di connessioni Internet, ma questo articolo coprirà quelle più popolari: rete cablata, PPPoE e DIAL-UP. Parlerà anche di un'impostazione separata del server DNS.

Attività preparatorie

Prima di iniziare a stabilire una connessione, dovresti assicurarti che il tuo sistema sia pronto per questo. Immediatamente dovrebbe essere chiarito che i comandi eseguiti in "Terminale", si dividono in due tipologie: richiedono diritti utente (saranno preceduti dal simbolo $ ) e richiede i diritti di superutente (il simbolo è all'inizio # ). Prestare attenzione a questo, perché diritti necessari la maggior parte dei comandi rifiuterà semplicemente di essere eseguita. Vale anche la pena chiarire che i personaggi stessi in "Terminale" non c'è bisogno di entrare.

Dovrai completare una serie di passaggi:


Tra le altre cose, devi conoscere il nome della scheda di rete. Per scoprirlo, entra "Terminale" questa riga:

$ sudo lshw -C rete

Di conseguenza, vedrai qualcosa di simile a questo:

Il nome della tua scheda di rete si troverà di fronte alla parola "nome logico". IN questo caso "enp3s0". È questo nome che apparirà nell'articolo, potrebbe essere diverso per te.

Nota: se il tuo computer ne ha più di uno adattatori di rete, verranno numerati di conseguenza (enp3s0, enp3s1, enp3s2 e così via). Decidi con quale lavorerai e usalo nelle impostazioni successive.

Metodo 1: terminale

"Terminale"- Questo rimedio universale sulla configurazione di tutto in Ubuntu. Con il suo aiuto sarà possibile stabilire una connessione Internet di tutti i tipi, di cui parleremo ora.

Configurazione della rete cablata

La configurazione di una rete cablata in Ubuntu viene eseguita effettuando nuove impostazioni in file di configurazione "interfacce". Pertanto, prima devi aprire questo stesso file:

Nota: l'editor di testo Gedit viene utilizzato nel comando per aprire il file di configurazione, ma puoi scrivere qualsiasi altro editor nella parte corrispondente, ad esempio vi.

Ora devi decidere quale tipo di IP ha il tuo provider. Ne esistono di due varietà: statica e dinamica. Se non lo sai per certo, chiama il tecnico. supporto e consultazione con l'operatore.

Innanzitutto, affrontiamo l'IP dinamico: la sua configurazione è più semplice. Dopo l'introduzione squadra precedente, nel file che si apre, specificare le seguenti variabili:

iface [nome interfaccia] inet dhcp
automatico [nome interfaccia]

  • iface [nome interfaccia] inet dhcp- si riferisce all'interfaccia selezionata, che ha un indirizzo IP dinamico (dhcp);
  • automatico [nome interfaccia]- quando si accede al sistema, si connette automaticamente all'interfaccia specificata con tutti i parametri specificati.

Dopo essere entrato, dovresti ritrovarti con qualcosa del genere:

Un IP statico è un po' più difficile da configurare. La cosa principale è conoscere tutte le variabili. Nel file di configurazione, è necessario inserire le seguenti righe:

iface [nome interfaccia] inet statico
indirizzo [indirizzo]
maschera di rete [indirizzo]
porta [indirizzo]
dns-nameserver [indirizzo]
automatico [nome interfaccia]


Dopo aver inserito tutti i parametri, vedrai qualcosa del genere:

Non dimenticare di salvare le impostazioni effettuate prima di chiudere l'editor di testo.

Tra le altre cose, in Ubuntu è possibile impostare temporaneamente una connessione Internet. Differisce dal fatto che i dati specificati non modificano in alcun modo i file di configurazione e, dopo aver riavviato il PC, tutte le impostazioni specificate in precedenza verranno ripristinate. Se è la prima volta che provi a configurare una connessione cablata su Ubuntu, questo è il modo consigliato per iniziare.

Tutti i parametri vengono impostati utilizzando un comando:

$ sudo ip addr add 10.2.119.116/24 dev enp3s0

  • 10.2.119.116 - Indirizzo IP scheda di rete(potrebbe essere diverso per te)
  • /24 - il numero di bit nella parte del prefisso dell'indirizzo;
  • enp3s0- interfaccia della rete a cui è collegato il cavo del provider.

Dopo aver inserito tutti i dati necessari ed eseguito il comando in "Terminale", puoi verificarne la correttezza. Se Internet è apparso sul PC, tutte le variabili sono corrette e possono essere inserite nel file di configurazione.

Impostazione DNS

Impostazione di una connessione DNS in diversi versioni di Ubuntu eseguita diversamente. Nelle versioni del sistema operativo a partire dalla 12.04 - in un modo, nelle versioni precedenti - in un altro. Considereremo solo l'interfaccia di connessione statica, poiché quella dinamica implica il rilevamento automatico dei server DNS.

La configurazione nelle versioni del sistema operativo superiori alla 12.04 avviene in un file già noto "interfacce". Devi inserire la riga "server dei nomi DNS" ed elenca i valori separati da uno spazio.

Quindi prima apri via "Terminale" file di configurazione "interfacce":

$ sudo gedit /etc/network/interfaces

dns-nameserver [indirizzo]

Di conseguenza, dovresti ottenere qualcosa del genere, solo i valori potrebbero essere diversi:

Se desideri configurare il DNS su una versione precedente di Ubuntu, il file di configurazione sarà diverso. Apriamolo con "Terminale":

$ sudo gedit /etc/resolv.conf

Successivamente, puoi impostare gli indirizzi DNS necessari al suo interno. Vale la pena tenere presente che, contrariamente all'inserimento dei parametri in "interfacce", v "resolv.conf" gli indirizzi vengono scritti ogni volta da un paragrafo, viene utilizzato un prefisso prima del valore "server dei nomi"(senza virgolette).

Configurazione di una connessione PPPoE

Configurazione PPPoE tramite "Terminale" non implica l'introduzione di molti parametri in vari file di configurazione sul computer. Al contrario, verrà utilizzato un solo comando.

Quindi, per stabilire una connessione punto-punto (PPPoE), è necessario eseguire le seguenti operazioni:


Dopo tutti i passaggi eseguiti, il tuo computer stabilirà una connessione Internet se hai fatto tutto bene.

Si noti che per impostazione predefinita l'utility pppoeconf denomina la connessione creata provider dsl. Se è necessario terminare la connessione, eseguire in "Terminale" comando:

$ sudo poff provider dsl

Per ristabilire la connessione, inserire:

$ sudo pon provider dsl

Nota: se ti connetti alla rete utilizzando l'utility pppoeconf, la gestione della rete tramite Network Manager non sarà possibile, a causa delle impostazioni nel file di configurazione "interfaces". Per ripristinare tutte le impostazioni e trasferire il controllo a Network Manager, è necessario aprire il file "interfaces" e sostituire tutti i contenuti con il testo mostrato di seguito. Dopo essere entrati, salvare le modifiche e riavviare la rete con il comando "$ sudo /etc/init.d/networking restart" (senza virgolette). Riavvia anche l'utility Network Manager eseguendo "$ sudo /etc/init.d/NetworkManager restart" (senza virgolette).

Impostazione di una connessione DIAL-UP

Per configurare DIAL-UP, puoi utilizzare due utilità di console: pppconfig E wvdial.

Configurare una connessione utilizzando pppconfig abbastanza semplice. Generalmente questo metodo molto simile al precedente pppoeconf): allo stesso modo ti verranno poste domande, rispondendo alle quali, di conseguenza, stabilirai una connessione a Internet. Innanzitutto, esegui l'utilità stessa:

$sudo pppconfig

Successivamente, segui le istruzioni. Se non si conoscono alcune delle risposte, si consiglia di contattare l'operatore da quelle. supporto dal proprio ISP e consultarsi con loro. Dopo aver completato tutte le impostazioni, verrà stabilita la connessione.

Per quanto riguarda l'impostazione con wvdial, allora è un po' più complicato. Per prima cosa devi installare il pacchetto stesso tramite "Terminale". Per fare ciò, esegui il seguente comando:

$ sudo apt install wvdial

Include un'utilità progettata per configurare automaticamente tutti i parametri. È chiamato "wvdialconf". Eseguirlo:

$ sudo wvdialconf

Dopo la sua esecuzione in "Terminale" verranno visualizzati molti parametri e caratteristiche: non è necessario capirli. Devi solo sapere che l'utilità ha creato un file speciale wvdial.conf, in cui ho inserito automaticamente i parametri necessari, leggendoli dal modem. Successivamente, è necessario modificare il file creato wvdial.conf, aprilo tramite "Terminale":

$ sudo gedit /etc/wvdial.conf

Come puoi vedere, la maggior parte delle impostazioni è già stata scritta, ma gli ultimi tre punti devono ancora essere integrati. Dovrai inserire rispettivamente il tuo numero di telefono, nome utente e password. Tuttavia, non affrettarti a chiudere il file, per un lavoro più conveniente si consiglia di aggiungere alcuni parametri in più:

  • Secondi di inattività = 0- la connessione non verrà interrotta anche con una lunga inattività al computer;
  • Tentativi di chiamata = 0- fa infiniti tentativi di stabilire una connessione;
  • Comando di composizione=ATDP- il numero verrà composto in modo pulsato.

Di conseguenza, il file di configurazione sarà simile a questo:

Si noti che le impostazioni sono divise in due blocchi, intitolati con nomi tra parentesi. Ciò è necessario per creare due versioni dell'utilizzo dei parametri. Quindi, i parametri sotto «» , sarà sempre eseguito, e sotto «» - quando si specifica l'opzione appropriata nel comando.

Dopo aver completato tutte le impostazioni, per stabilire una connessione DIAL-UP, è necessario emettere questo comando:

Se desideri stabilire una connessione a impulsi, scrivi quanto segue:

$ sudo wvdial pulse

Per terminare una connessione stabilita, "Terminale" necessario premere una combinazione di tasti ctrl+c.

Metodo 2: Gestore di rete

Ubuntu ha utilità speciale, che aiuterà a stabilire la connessione della maggior parte delle specie. Inoltre, lei ha GUI. Questo è il gestore di rete, che viene richiamato facendo clic sull'icona corrispondente sul lato destro del pannello superiore.

Configurazione della rete cablata

Inizieremo allo stesso modo con la configurazione di una rete cablata. Per prima cosa devi aprire l'utilità stessa. Per fare ciò, fai clic sulla sua icona e premi "Cambia connessioni" v menù contestuale. Successivamente, nella finestra che appare, procedi come segue:


Dopo tutti i passi compiuti connessione internet cablata deve essere installato. Se ciò non accade, controlla tutti i parametri inseriti, potresti aver commesso un errore da qualche parte. Inoltre, non dimenticare di controllare se la casella è spuntata. "Gestione della rete" nel menu a discesa dell'utilità.

Impostazione DNS

Per stabilire una connessione, potrebbe essere necessario impostazione manuale Server DNS. Per fare ciò, procedi come segue:


Configurazione PPPoE

Configurare una connessione PPPoE in Network Manager è facile come "Terminale". Basterà infatti specificare login e password ricevuti dal provider. Ma diamo un'occhiata più da vicino.


Ora nel menu Network Manager è apparsa una nuova connessione DSL, selezionando la quale si avrà accesso a Internet. Ricorda che a volte è necessario riavviare il computer affinché le modifiche abbiano effetto.

Conclusione

Di conseguenza, possiamo dire che il sistema operativo Ubuntu ha molti strumenti per configurare la connessione Internet necessaria. L'utility Network Manager ha un'interfaccia grafica, che semplifica enormemente il lavoro, soprattutto per i principianti. Tuttavia "Terminale" permette di più configurazione flessibile, inserendo quei parametri che non sono nell'utility.

Secondo cvedetails.com, dal 1999 in Kernel Linux Sono state rilevate 1305 vulnerabilità, di cui 68 nel 2015. La maggior parte di essi non presenta problemi particolari, sono contrassegnati come locali e bassi e alcuni possono essere chiamati solo in riferimento a determinate applicazioni o impostazioni del sistema operativo. In linea di principio, i numeri sono piccoli, ma il kernel non è l'intero sistema operativo. Le vulnerabilità si trovano anche in GNU Coreutils, Binutils, glibs e, naturalmente, nelle applicazioni utente. Analizziamo quelli più interessanti.

VULNERABILITÀ NEL KERNEL LINUX

Sistema operativo: Linux
Livello: Medio, Basso
Vettore: A distanza
CVE: CVE-2015-3331, CVE-2015-4001, CVE-2015-4002, CVE-2015-4003
impresa: concetto, https://lkml.org/lkml/2015/5/13/740 , https://lkml.org/lkml/2015/5/13/744

Una vulnerabilità rilevata a giugno nel kernel Linux precedente alla 3.19.3 nella funzione __driver_rfc4106_decrypt nel file arch/x86/crypto/aesni-intel_glue.c è dovuta al fatto che l'implementazione di RFC4106 per i processori x86 che supportano l'AES AES-NI L'estensione del set di comandi (proposta Intel, Intel Advanced Encryption Standard Instructions) calcola in modo errato gli indirizzi del buffer in alcuni casi. Se il tunnel IPsec è configurato per utilizzare questa modalità (l'algoritmo AES è CONFIG_CRYPTO_AES_NI_INTEL), la vulnerabilità potrebbe causare il danneggiamento della memoria, arresti anomali e l'esecuzione potenzialmente remota del codice CryptoAPI. E la cosa più interessante è che il problema può sorgere da solo, su un traffico completamente legale, senza interferenze esterne. Al momento della pubblicazione, il problema è stato risolto.

Cinque vulnerabilità sono state identificate nel driver Linux 4.0.5 ozwpan, che ha lo stato di sperimentale, quattro delle quali consentono un attacco DoS attraverso un crash del kernel inviando pacchetti appositamente predisposti. Il problema è legato ad un buffer overflow dovuto ad una errata gestione degli interi con segno, in cui il calcolo in memcpy tra required_size e offset ha restituito un numero negativo, di conseguenza i dati vengono copiati nell'heap.

Si trova nella funzione oz_hcd_get_desc_cnf in drivers/staging/ozwpan/ozhcd.c e nelle funzioni oz_usb_rx e oz_usb_handle_ep_data nel file drivers/staging/ozwpan/ozusbsvc1.c. In altre vulnerabilità, c'era una situazione di possibile divisione per 0, un loop di sistema o la capacità di leggere da aree al di fuori dei limiti del buffer allocato.

Il driver ozwpan, uno dei nuovi driver Linux, può essere abbinato a quello esistente dispositivi senza fili compatibile con la tecnologia Ozmo Devices ( Wi-Fi diretto). Fornisce un'implementazione di un controller host USB, ma il trucco è che invece di una connessione fisica, la periferica comunica tramite Wi-Fi. Autista Accetta pacchetti di rete con tipo (ethertype) 0x892e, quindi li analizza e li traduce in varie funzionalità USB. Finora è utilizzato in rari casi, quindi può essere disabilitato scaricando il modulo ozwpan.ko.

LinuxUbuntu

Sistema operativo: linux ubuntu 12.04–15.04 (core fino al 15 giugno 2015)
Livello: Critico
Vettore: Locale
CVE: CVE-2015-1328
impresa: https://www.exploit-db.com/exploits/37292/

Vulnerabilità critica sul file system OverlayFS ti consente di ottenere l'accesso come root Sistemi Ubuntu, che consentono il montaggio di partizioni OverlayFS da parte di un utente senza privilegi. Le impostazioni predefinite necessarie per sfruttare la vulnerabilità sono utilizzate in tutti i rami di Ubuntu 12.04-15.04. Lo stesso OverlayFS è apparso nel kernel Linux relativamente di recente: dal 3.18-rc2 (2014), è uno sviluppo SUSE per sostituire UnionFS e AUFS. OverlayFS ti consente di creare un multistrato virtuale sistema di file, che combina diverse parti di altri file system.

FS viene creato dai livelli inferiore e superiore, ciascuno dei quali è collegato a directory separate. Il livello inferiore viene utilizzato solo per la lettura nelle directory di qualsiasi file system supportato da Linux, inclusi quelli di rete. Il livello superiore è generalmente scrivibile e sovrascriverà i dati del livello inferiore se i file vengono duplicati. È richiesto nelle distribuzioni Live, nei sistemi di virtualizzazione dei container e per l'organizzazione del lavoro dei container di alcune applicazioni desktop. Gli spazi dei nomi per gli utenti (spazi dei nomi utente) consentono di creare i propri set di identificatori di utenti e gruppi nei contenitori. La vulnerabilità è causata da un controllo errato dei diritti di accesso durante la creazione di nuovi file nella directory del FS sottostante.

Se il kernel è compilato con CONFIG_USER_NS=y (abilita spazio dei nomi utente) e il flag FS_USERNS_MOUNT è specificato durante il montaggio, OverlayFS può essere montato da un utente normale in uno spazio dei nomi diverso, incluso dove le operazioni con come radice. Allo stesso tempo, le operazioni con file con diritti di root eseguite in tali spazi dei nomi ricevono gli stessi privilegi quando si eseguono operazioni con il FS sottostante. Pertanto, puoi montare qualsiasi partizione FS e visualizzare o modificare qualsiasi file o directory.

Al momento della pubblicazione, era già disponibile un aggiornamento del kernel con il modulo OverlayFS patchato da Ubuntu. E se il sistema è aggiornato, non dovrebbero esserci problemi. Nello stesso caso, quando l'aggiornamento non è possibile, come misura temporanea, dovresti smettere di usare OverlayFS rimuovendo il modulo overlayfs.ko.

VULNERABILITÀ NELLE APP PRINCIPALI

Sistema operativo: Linux
Livello: Critico
Vettore: locale, remoto
CVE: CVE-2015-0235
impresa: https://www.qualys.com/research/security-advisories/exim_ghost_bof.rb

Una pericolosa vulnerabilità nella libreria standard GNU glibc, che è la parte principale del sistema operativo Linux, e in alcune versioni di Oracle Communications Applications e Oracle Pillar Axiom, scoperta durante un audit del codice da parte di hacker di Qualys. Ha ricevuto il nome in codice GHOST. Implica un overflow del buffer all'interno della funzione __nss_hostname_digits_dots(), che viene utilizzata da funzioni glibc come gethostbyname() e gethostbyname2() (da qui il nome GetHOST) per ottenere il nome host. Per sfruttare la vulnerabilità, è necessario causare un overflow del buffer con un argomento hostname non valido in un'applicazione che esegue la risoluzione dei nomi tramite DNS. Cioè, in teoria, questa vulnerabilità può essere applicata a qualsiasi applicazione che utilizza la rete in una certa misura. Può essere chiamato localmente e in remoto, consentendo l'esecuzione di codice arbitrario.

La cosa più interessante è che il bug è stato risolto nel maggio 2013, tra le versioni di glibc 2.17 e 2.18 è stata inviata una patch, ma il problema non è stato classificato come patch di sicurezza, quindi non è stato prestato attenzione. Di conseguenza, molte distribuzioni erano vulnerabili. Inizialmente, è stato riferito che la primissima versione vulnerabile era la 2.2 datata 10 novembre 2000, ma esiste la possibilità che compaia fino alla 2.0. Le distribuzioni RHEL/CentOS 5.x–7.x, Debian 7 e Ubuntu 12.04 LTS sono state interessate, tra le altre vulnerabilità. Le correzioni sono attualmente disponibili. Gli stessi hacker hanno offerto un'utilità che spiega l'essenza della vulnerabilità e ti consente di controllare il tuo sistema. In Ubuntu 12.04.4 LTS va tutto bene:

$ wget https://goo.gl/RuunlE

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

$. /CVE-2015-0235

non vulnerabile

Controllo del sistema per GHOST

Quasi immediatamente, è stato rilasciato il modulo k, che consente di eseguire in remoto codice su Linux x86 e x86_64 con un'interfaccia funzionante server email Exim (con l'opzione helo_try_verify_hosts o helo_verify_hosts abilitata). Successivamente sono apparse altre implementazioni, come il modulo Metasploit per il controllo di un blog WordPress.

Poco dopo, nel 2015, sono state scoperte altre tre vulnerabilità in GNU glibc che consentono a un utente remoto di eseguire un attacco DoS o sovrascrivere le celle di memoria al di fuori del limite dello stack: CVE-2015-1472, CVE-2015-1473, CVE-2015- 1781.

Sistema operativo: Linux (GNU Coreutils)
Livello: Basso
Vettore: locale, remoto
CVE: CVE-2014-9471
impresa: NO

GNU coreutils è uno dei principali pacchetti *nix, include quasi tutte le utilità di base (cat, ls, rm, date...). Problema trovato in data. Un bug nella funzione parse_datetime consente a un utente malintenzionato remoto che non ha account sul sistema, causare un Denial of Service ed eventualmente eseguire codice arbitrario utilizzando una stringa di data appositamente predisposta utilizzando un fuso orario. La vulnerabilità è simile a questa:

$ touch '-- data=TZ="123"345"@1"

Errore di segmentazione

$ data - d 'TZ = ”Europa / Mosca ”“00 : 00 + 1 ora ”'

Errore di segmentazione

$data '-- data=TZ="123"345"@1"

* * * Errore in ` date ': free() : puntatore non valido : 0xbfc11414 * * *

Vulnerabilità in GNU Coreutils

Se non ci sono vulnerabilità, riceveremo un messaggio sul formato della data errato. Quasi tutti gli sviluppatori hanno segnalato la presenza della vulnerabilità. Distribuzioni Linux. Al momento è disponibile un aggiornamento.


Output normale di GNU Coreutils con patch

Sistema operativo: Linux (grep 2.19–2.21)
Livello: Basso
Vettore: Locale
CVE: CVE-2015-1345
impresa: NO

L'utilità grep, utilizzata per cercare testo in base a un modello, trova raramente vulnerabilità. Ma questa utility viene spesso chiamata da altri programmi, compresi quelli di sistema, quindi la presenza di vulnerabilità è molto più problematica di quanto sembri a prima vista. Un errore nella funzione bmexec_trans in kwset.c può causare la lettura di dati non inizializzati da un'area esterna al buffer allocato o l'arresto anomalo dell'applicazione. Questo può essere sfruttato da un hacker creando un insieme speciale di dati forniti come input all'applicazione usando grep -F. Gli aggiornamenti sono attualmente disponibili. Non ci sono exploit che utilizzano la vulnerabilità o un modulo per Metasploit.

VULNERABILITÀ IN FREEBSD

Sistema operativo: FreeBSD
Livello: Basso
Vettore: locale, remoto
CVE: CVE-2014-0998, CVE-2014-8612, CVE-2014-8613
impresa: https://www.exploit-db.com/exploits/35938/

Non ci sono così tante vulnerabilità nel database CVE per il 2015, per essere più precisi, solo sei. Tre vulnerabilità sono state trovate in FreeBSD 8.4-10.x alla fine di gennaio 2015 dai ricercatori del Core Exploit Writers Team. CVE-2014-0998 è correlato all'implementazione del driver della console VT (Newcons) che fornisce diversi terminali virtuali abilitati dall'opzione kern.vty=vt in /boot/loader.conf.
CVE-2014-8612 si è manifestato durante l'utilizzo del protocollo SCTP ed è causato da un errore nel codice per il controllo dell'ID del flusso SCTP che implementa i socket SCTP (porta locale 4444). La linea di fondo è l'errore di memoria insufficiente nella funzione sctp_setopt() (sys/netinet/sctp_userreq.c). Ciò offre a un utente locale non privilegiato la possibilità di scrivere o leggere 16 bit di dati della memoria del kernel ed elevare i propri privilegi sul sistema, esporre dati sensibili o arrestare il sistema.

CVE-2014-8613 consente di attivare la dereferenziazione del puntatore null durante l'elaborazione di un pacchetto SCTP ricevuto esternamente impostando l'opzione SCTP_SS_VALUE socket SCTP. A differenza dei precedenti, è possibile utilizzare CVE-2014-8613 chiamata remota crash del kernel inviando pacchetti appositamente predisposti. In FreeBSD 10.1, puoi proteggerti impostando la variabile net.inet.sctp.reconfig_enable su 0, disabilitando così l'elaborazione dei blocchi RE_CONFIG. O semplicemente disabilitare le applicazioni (browser, client di posta elettronica, ecc.) dall'utilizzo delle connessioni SCTP. Sebbene al momento della pubblicazione, gli sviluppatori abbiano già rilasciato un aggiornamento.


Statistiche sulla vulnerabilità di FreeBSD

VULNERABILITÀ IN OPENSSL

Sistema operativo: OpenSSL
Livello: A distanza
Vettore: Locale
CVE: CVE-2015-1793
impresa: NO

Nel 2014 è stata rilevata una vulnerabilità Heartbleed critica in OpenSSL, un pacchetto crittografico ampiamente utilizzato per lavorare con SSL/TLS. L'incidente un tempo ha causato massicce critiche alla qualità del codice e, da un lato, ha portato all'emergere di alternative come LibreSSL, dall'altro gli stessi sviluppatori si sono finalmente messi al lavoro.

Migliori fornitori per vulnerabilità

Una vulnerabilità critica è stata scoperta da Adam Langley di Google e David Benjamin di BoringSSL. Le modifiche apportate nelle versioni 1.0.1n e 1.0.2b di OpenSSL hanno fatto sì che OpenSSL tentasse di trovare una catena di verifica del certificato alternativa se il primo tentativo di creare la catena di attendibilità non è riuscito. Ciò consente di aggirare la procedura di verifica del certificato e organizzare una connessione verificata utilizzando un certificato falso, in altre parole, attirare con calma l'utente su siti o server falsi. E-mail o implementare qualsiasi attacco MITM in cui viene utilizzato il certificato.

Dopo la scoperta della vulnerabilità, il 9 luglio gli sviluppatori hanno rilasciato le versioni 1.0.1p e 1.0.2d, in cui questo problema è stato risolto. Le versioni 0.9.8 o 1.0.0 non presentano questa vulnerabilità.

Linux.Encoder

La fine dell'autunno è stata contrassegnata dalla comparsa di una serie di virus crittografici, prima Linux.Encoder.0, seguito dalle modifiche di Linux.Encoder.1 e Linux.Encoder.2, che hanno infettato più di 2500 siti. Secondo le società di antivirus, i server su Linux e FreeBSD con siti Web in esecuzione utilizzando vari CMS: WordPress, Magento CMS, Joomla e altri vengono attaccati. Gli hacker utilizzano una vulnerabilità non specificata. Successivamente, è stato inserito uno script di shell (file error.php), con l'aiuto del quale sono state eseguite ulteriori azioni (tramite il browser). In particolare, è stato lanciato un trojan codificatore Linux.

Encoder, che ha determinato l'architettura del sistema operativo e ha lanciato il ransomware. Il codificatore è stato lanciato con i diritti del server Web (Ubuntu - www-data), che è abbastanza per crittografare i file nella directory in cui sono archiviati i file e i componenti CMS. I file crittografati ottengono una nuova estensione .encrypted.

Il ransomware tenta anche di aggirare altre directory del sistema operativo, se i diritti non sono configurati correttamente, potrebbe benissimo andare oltre i confini del sito web. Inoltre, nella directory è stato salvato il file README_FOR_DECRYPT.txt, contenente le istruzioni per decrittografare i file ei requisiti dell'hacker. SU questo momento le società antivirus hanno introdotto utilità che consentono di decrittografare le directory. Ad esempio, un set di Bitdefender. Ma devi ricordare che tutte le utilità progettate per decrittografare i file non rimuovono lo shellcode e tutto può accadere di nuovo.

Considerando che molti utenti che sviluppano o sperimentano l'amministrazione di siti Web spesso installano un server Web su computer di casa, dovresti preoccuparti della sicurezza: chiudere l'accesso dall'esterno, aggiornare il software, organizzare esperimenti sulla VM. E l'idea stessa può essere utilizzata in futuro quando si attaccano i sistemi domestici.

CONCLUSIONE

Il software complesso senza bug non esiste fisicamente, quindi devi sopportare il fatto che le vulnerabilità verranno scoperte continuamente. Ma non tutti possono presentare problemi reali. E puoi proteggerti adottando semplici passaggi: rimuovi il software inutilizzato, monitora nuove vulnerabilità e assicurati di installare aggiornamenti di sicurezza, configura un firewall, installa un antivirus. E non dimenticare tecnologie speciali come SELinux, che sono perfettamente in grado di compromettere un demone o un'applicazione utente.

Si può certamente affermare così Linux Di più sicuro(protetto) rispetto a Windows. Sicurezza v Linux integrato e non avvitato da qualche parte sul lato, come è implementato in Windows. Sicurezza sistemi Linux copre l'area dal kernel al desktop, ma ci sono possibilità che gli hacker danneggino la tua home directory (/home).

I tuoi byte di foto, home video, documenti e dati di carte di credito o portafogli sono le informazioni più preziose su un computer. Ovviamente, Linux non è suscettibile a tutti i tipi di worm e virus Internet per Windows. Ma gli aggressori possono trovare un modo per accedere ai tuoi dati nella tua home directory.

Dopo aver preparato il tuo vecchio computer o HDD prima di vendere la formattazione, pensi che sarà sufficiente? Esistono molti strumenti moderni per il recupero dei dati. Un hacker può facilmente recuperare i tuoi dati da disco rigido, indipendentemente dal sistema operativo in cui hai lavorato.

Su questo argomento, ricordo l'esperienza di un'azienda che riacquista computer e dischi usati. Nel corso delle loro attività, hanno emesso un verdetto secondo cui il 90% dei precedenti proprietari del proprio computer non si è preso cura di pulire adeguatamente i propri supporti di memorizzazione prima della vendita. E stavano estraendo byte di dati molto sensibili. È persino spaventoso immaginare che da qualche parte nei cestini del tuo disco rigido ci siano informazioni per entrare nella tua banca online o nel tuo portafoglio online.

Inizia con le nozioni di base sulla sicurezza di Linux

Passiamo alle basi (), che si adattano a quasi tutti
Distribuzioni Linux.

Crittografia del file system in Linux per una sicurezza Linux più completa

Le password personalizzate non risolveranno il problema se vuoi davvero che nessuno sia in grado di leggere la tua home directory (/home) o una certa dimensione in byte. Puoi farlo in modo che anche un utente con i più alti privilegi di root non possa ficcare il naso.

Elimina i file sensibili in modo che nessun altro possa recuperarli

Se decidi di vendere o donare il tuo computer o supporto di archiviazione, non dare per scontato che la semplice formattazione cancellerà definitivamente i tuoi file. Puoi installare lo strumento di eliminazione sicura sul tuo Linux, che include l'utilità srm per rimozione sicura File.

Inoltre, non dimenticare il firewall disponibile nel kernel Linux. Tutte le distribuzioni Linux includono lptables, che fa parte del kernel. Lptables ti consente di filtrare i pacchetti di rete. Naturalmente, puoi configurare questa utility nel terminale. Ma questo metodo va oltre il potere di molti, incluso me. Quindi installo e configuro facilmente come se stessi giocando.

Come tutti Sistema operativo, Linux tende ad accumulare spazzatura durante l'esecuzione di varie applicazioni. E non è colpa di Linux, poiché varie applicazioni, come browser, editor di testo e persino lettori video, funzionano al di fuori del livello del kernel e accumulano file temporanei. È possibile installare l'utilità di smaltimento dei rifiuti universale BleachBit.

Navigazione anonima, nascondendo il tuo IP - molto importante per la sicurezza della tua identità sotto il sistema operativo Linux


In conclusione, voglio dirtelo navigazione web anonima. A volte capita che sia necessario, come faccio io, quando, di nascosto da mia moglie, visito siti a contenuto erotico. Ovviamente stavo scherzando.

Sarà difficile per gli aggressori raggiungerti se non riescono a determinare la tua posizione. Copriamo le tracce con una semplice configurazione di due utilità che lavorano insieme chiamate privoxy e tor.

Secondo me, seguire e impostare tutte queste regole proteggerà te e il tuo computer del 90%.

P.S. Sto usando un cloud chiamato Dropbox. Conservo i miei articoli vecchi e nuovi, non ancora pubblicati. È conveniente avere accesso ai tuoi file da qualsiasi parte del mondo e su qualsiasi computer. Quando si scrivono articoli per il sito in editor di testo tengo il mio documenti di testo con una password e solo dopo lo carico sul server dropbox. Non dovresti mai trascurare la sicurezza extra, che giocherà solo nelle tue mani.

Se noti un errore, seleziona una parte di testo e premi Ctrl + Invio
CONDIVIDERE: