Ho un progetto per proteggere Ubuntu Server il più possibile. Il server è un server di web hosting. Il server eseguirà LAMP, Mail e DNS.
Ho un progetto per proteggere Ubuntu Server il più possibile. Il server è un server di web hosting. Il server eseguirà LAMP, Mail e DNS.
Risposte:
Ecco un elenco di cose che faccio per proteggere il mio server.
sudo ufw enable
) e consenti solo le porte effettivamente utilizzate. ( sudo ufw allow 80
)sudo apt-get install denyhosts
)Qualche altra cosa da considerare. Molte persone dimenticano l'accesso fisico. Tutte le configurazioni software nel mondo non significano nulla se posso entrare fisicamente con un LiveCD e rubare i tuoi dati. Attenzione all'ingegneria sociale. Poni domande per verificare chi è al telefono e assicurarti che abbiano l'autorizzazione per effettuare la richiesta che stanno facendo.
Dato che sono ancora un "nuovo" utente, non posso pubblicare più di 2 link. Puoi leggere di più su questo argomento qui: https://help.ubuntu.com/12.04/serverguide/index.html e prestare particolare attenzione a https://help.ubuntu.com/12.04/serverguide/security.html
iptables
regole estremamente specifiche per impedire l'accesso esterno a qualsiasi servizio che non si intende utilizzare, se si dispone di uno strano- installazione di palla che richiede routing avanzato e roba comunque.
/ dev / shm può essere utilizzato in un attacco contro un servizio in esecuzione, come httpd. Modifica / etc / fstab per renderlo più sicuro.
Apri una finestra Terminale e inserisci quanto segue:
sudo vi /etc/fstab
Aggiungi la seguente riga e salva. Sarà necessario riavviare per rendere effettiva questa impostazione:
tmpfs /dev/shm tmpfs defaults,noexec,nosuid 0 0
Il file /etc/sysctl.conf contiene tutte le impostazioni di sysctl. Impedire il routing di origine dei pacchetti in entrata e registrare gli IP non validi immettere quanto segue in una finestra del terminale
sudo vi /etc/sysctl.conf
Modifica il file /etc/sysctl.conf e annulla commento o aggiungi le seguenti righe:
# IP Spoofing protection
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.default.rp_filter = 1
# Ignore ICMP broadcast requests
net.ipv4.icmp_echo_ignore_broadcasts = 1
# Disable source packet routing
net.ipv4.conf.all.accept_source_route = 0
net.ipv6.conf.all.accept_source_route = 0
net.ipv4.conf.default.accept_source_route = 0
net.ipv6.conf.default.accept_source_route = 0
# Ignore send redirects
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
# Block SYN attacks
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_max_syn_backlog = 2048
net.ipv4.tcp_synack_retries = 2
net.ipv4.tcp_syn_retries = 5
# Log Martians
net.ipv4.conf.all.log_martians = 1
net.ipv4.icmp_ignore_bogus_error_responses = 1
# Ignore ICMP redirects
net.ipv4.conf.all.accept_redirects = 0
net.ipv6.conf.all.accept_redirects = 0
net.ipv4.conf.default.accept_redirects = 0
net.ipv6.conf.default.accept_redirects = 0
# Ignore Directed pings
net.ipv4.icmp_echo_ignore_all = 1
Per ricaricare sysctl con le ultime modifiche, inserisci:
sudo sysctl -p
Apri un Terminale e inserisci quanto segue:
sudo vi /etc/host.conf
Aggiungi o modifica le seguenti righe:
order bind,hosts
nospoof on
Modifica il file php.ini:
sudo vi /etc/php5/apache2/php.ini
Aggiungi o modifica le seguenti righe:
disable_functions = exec,system,shell_exec,passthru
register_globals = Off
expose_php = Off
magic_quotes_gpc = On
DenyHosts è un programma Python che blocca automaticamente gli attacchi SSH aggiungendo voci a /etc/hosts.deny. DenyHosts informerà inoltre gli amministratori Linux di offendere host, utenti attaccati e accessi sospetti.
Apri un Terminale e inserisci quanto segue:
sudo apt-get install denyhosts
Dopo l'installazione modificare il file di configurazione /etc/denyhosts.conf e modificare l'e-mail e altre impostazioni come richiesto.
Per modificare le impostazioni e-mail dell'amministratore, aprire una finestra del terminale e inserire:
sudo vi /etc/denyhosts.conf
Modificare i seguenti valori come richiesto sul server:
ADMIN_EMAIL = root@localhost
SMTP_HOST = localhost
SMTP_PORT = 25
#SMTP_USERNAME=foo
#SMTP_PASSWORD=bar
SMTP_FROM = DenyHosts nobody@localhost
#SYSLOG_REPORT=YES
Fail2ban è più avanzato di DenyHosts in quanto estende il monitoraggio del registro ad altri servizi tra cui SSH, Apache, Courier, FTP e altro.
Fail2ban esegue la scansione dei file di registro e vieta gli IP che mostrano segni dannosi: troppi errori di password, ricerca di exploit, ecc.
In genere Fail2Ban veniva quindi utilizzato per aggiornare le regole del firewall per rifiutare gli indirizzi IP per un determinato periodo di tempo, sebbene fosse possibile configurare qualsiasi altra azione arbitraria. Fail2Ban è dotato di filtri per vari servizi (apache, corriere, ftp, ssh, ecc.).
Apri un Terminale e inserisci quanto segue:
sudo apt-get install fail2ban
Dopo l'installazione, modifica il file di configurazione /etc/fail2ban/jail.local e crea le regole del filtro come richiesto.
Per modificare le impostazioni aprire una finestra del terminale e inserire:
sudo vi /etc/fail2ban/jail.conf
Attiva tutti i servizi che desideri che fail2ban controlli monitorando enabled = false in * enabled = true *
Ad esempio, se si desidera abilitare il monitoraggio SSH e vietare il jail, trovare la riga seguente e modificare abilitato da false a true . Questo è tutto.
[ssh]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
Se desideri ricevere e-mail da Fail2Ban se gli host sono vietati, modifica la seguente riga nel tuo indirizzo e-mail.
destemail = root@localhost
e cambia la seguente riga da:
action = %(action_)s
a:
action = %(action_mwl)s
È inoltre possibile creare filtri delle regole per i vari servizi che fail2ban deve monitorare e che non sono forniti per impostazione predefinita.
sudo vi /etc/fail2ban/jail.local
Buone istruzioni su come configurare fail2ban e creare i vari filtri sono disponibili su HowtoForge . Fai clic qui per un esempio
Al termine con la configurazione di Fail2Ban riavviare il servizio con:
sudo /etc/init.d/fail2ban restart
Puoi anche controllare lo stato con.
sudo fail2ban-client status
Sia RKHunter che CHKRootkit sostanzialmente fanno la stessa cosa: controlla il tuo sistema per i rootkit. Nessun danno nell'uso di entrambi.
Apri un Terminale e inserisci quanto segue:
sudo apt-get install rkhunter chkrootkit
Per eseguire chkrootkit, apri una finestra del terminale e inserisci:
sudo chkrootkit
Per aggiornare ed eseguire RKHunter. Apri un Terminale e inserisci quanto segue
sudo rkhunter --update
sudo rkhunter --propupd
sudo rkhunter --check
Nmap ("Network Mapper") è un'utilità gratuita e open source per il rilevamento della rete e il controllo della sicurezza.
Apri un Terminale e inserisci quanto segue:
sudo apt-get install nmap
Scansiona il tuo sistema alla ricerca di porte aperte con:
nmap -v -sT localhost
Scansione SYN con il seguente:
sudo nmap -v -sS localhost
Logwatch è un sistema di analisi dei log personalizzabile. Logwatch analizza i registri del sistema e crea un rapporto che analizza le aree specificate. Logwatch è facile da usare e funzionerà direttamente dal pacchetto sulla maggior parte dei sistemi.
Apri un Terminale e inserisci quanto segue:
sudo apt-get install logwatch libdate-manip-perl
Per visualizzare l'output di logwatch usare meno:
sudo logwatch | less
Per inviare tramite e-mail un rapporto logwatch degli ultimi 7 giorni a un indirizzo e-mail, immettere quanto segue e sostituire mail@domain.com con l'e-mail richiesta. :
sudo logwatch --mailto mail@domain.com --output mail --format html --range 'between -7 days and today'
Tiger è uno strumento di sicurezza che può essere utilizzato sia come controllo di sicurezza che come sistema di rilevamento delle intrusioni.
Apri un Terminale e inserisci quanto segue:
sudo apt-get install tiger
Per eseguire la tigre, inserisci:
sudo tiger
Tutti gli output di Tiger possono essere trovati in / var / log / tiger
Per visualizzare i rapporti sulla sicurezza della tigre, apri un Terminale e inserisci quanto segue:
sudo less /var/log/tiger/security.report.*
magic_quotes_gpc = On
. Le citazioni di Magic sono state prima deprecate e poi rimosse: php.net/manual/en/security.magicquotes.whynot.php
Da quando hai detto che si tratta di web-hosting-server ... Vorrei condividere le mie migliori pratiche ed esperienze di 5 lunghi anni nella linea di web hosting.
Dalle mie esperienze passate, piuttosto che andare subito nell'inferno della configurazione, dovresti prima assemblare le uve basse di sicurezza appese come indicato nell'articolo dato.
Dal momento che stai avendo LAMP, quindi devi essere molto cauto su PHP e le sue impostazioni php.ini. Questo è un buon collegamento per proteggere PHP. PHP ha dei superpoteri che possono diventare loop di sicurezza se non configurati correttamente.
Puoi usare un cron job per verificare quando i tuoi file sono stati modificati senza la tua autorizzazione e possibilmente hackerati; usando questo cron job . Preferisco Notepad ++ per confrontare i risultati cron (scarica direttamente l'email cron dal tuo server web e apri in Notepad ++).
Se vuoi installare qualche SEM, allora cPanel è il migliore (comunque pagato). Webmin e zpanel sono ottime alternative gratuite. Webmin è meglio perché almeno usa certificati autofirmati e aggiunge sicurezza.
Se vuoi che qualcosa funzioni subito, puoi scegliere Turnkey Linux. Si basa su Ubuntu, estremamente facile da implementare e flessibile per le tue esigenze. Con pochissimo sforzo ottieni la sicurezza fuori dalla scatola. Questo è il loro stack LAMP . Personalmente uso e preferisco solo questo.
Se stai iniziando da zero, puoi anche installare ISPconfig3. Istruzioni qui .
puoi testare la tua sicurezza cercando di penetrare la tua sicurezza usando Back-Track-Linux .
mantenere complesse password lunghe e casuali. Non archiviarli su PC. prendi nota. Utilizzare un CD live per accedere a questi accessi.
ottenere un software di protezione della forza bruta come fail2ban.
Non eseguire quei demoni che non ti servono.
Blocca tutte le porte non necessarie . fare molta attenzione con la porta SSH (22).
Procurati un IP statico sul sistema attraverso il quale gestirai il server. Apporta la maggior parte delle cose al blocco IP e consenti solo al tuo IP particolare di accedere a quei luoghi di configurazione come la porta 22.
Alla fine della giornata ... lavora con la massima tranquillità, non emozionarti con l'installazione e applicare il buon senso ti porta ben oltre.
**My heartiest best wishes to you. good luck.**
brute force attacks
e dictionary attacks
.. La password lunga casuale è l'unico modo per proteggerti da tali attacchi.
Approfitta del progetto Bastille Linux.
Fornisce uno strumento interattivo per eseguire ulteriori misure di rafforzamento della sicurezza per aumentare la sicurezza globale e ridurre la suscettibilità al compromesso per il sistema Ubuntu (da Bastille Linux ).
Offre una funzionalità di valutazione e reporting, in modo da poter dire quali parti del sistema non sono bloccate. Esamina il sistema in sola lettura, riferendo sullo stato di ciascuno dei suoi elementi di indurimento. Ad esempio, Bastille potrebbe verificare se il server DNS è bloccato in una prigione chroot, se telnet è spento o anche se le password devono avere una buona lunghezza. Puoi dare un'occhiata a una demo solo Web di questo tramite questo link (maggiori informazioni ).
Puoi avere un'anteprima della demo Web (solo) qui .
Utilizzare nmap
su tutte le interfacce sulla macchina, in modo da sapere quali servizi si eseguono sulla macchina. Questo è uno strumento essenziale per la sicurezza.
Rimuovi tutti i servizi che non ti servono sulle tue interfacce esterne. Puoi configurare MySQL per l'ascolto solo su interfacce specifiche, come localhost.
Usa ufw per proteggere il tuo servizio SSH (e possibili altri) in modo che non consenta troppe connessioni (fallite) al minuto dalla stessa macchina. Ciò renderà più difficili gli attacchi di forza bruta. Modificare il numero di porta non è così utile, solo oscurità, nessuna sicurezza.
Sii restrittivo con il numero di account sul tuo computer. Inoltre, non installare più pacchetti / programmi di quelli effettivamente utilizzati. Installa solo client X11, non un server X11.
Consenti solo ssh-login alla macchina con certificati digitali, nessuna password. Ciò renderà anche gli attacchi di forza bruta difficili / impossibili.
Vorrei anche consultare il documento CIS Debian Benchmarks e ha un numero significativo di procedure e processi per rafforzare il sistema operativo che si applicherà a Ubuntu poiché è un derivato di Debian. Vorrei anche consultare:
La sicurezza ha sempre un prezzo. Stabilire alcuni confini realistici ti aiuterà a raggiungere i tuoi obiettivi. Vorrei considerare i seguenti aspetti:
Controllando tutti i collegamenti che sono pubblicati qui, penso che questo dovrebbe essere aggiunto. Va nel dettaglio non solo su come configurare il software, ma anche sul piano di sicurezza. Inoltre, ogni comando da eseguire viene spiegato con una fonte.
Non molto tempo fa ho scritto un post su questo come proteggere Ubuntu 16.04-18.04. Questi passaggi includono:
Sostituisci la password Accedi con chiavi autorizzate Installa un firewall sul tuo server Linux
e un po 'di più. https://hostup.org/blog/how-to-secure-a-ubuntu-linux-server-in-3-simple-steps/