Una delle strutture di sicurezza più comunemente utilizzate in Linux Netfilter, questa funzionalità è all'interno del kernel Linux e offre flessibilità per varie operazioni relative alla rete da implementare sotto forma di driver personalizzati.
Netfilter offre diverse opzioni per il filtraggio dei pacchetti, la risoluzione degli indirizzi di rete e le porte di risoluzione. Queste funzioni forniscono il necessario per indirizzare i pacchetti attraverso una funzionalità di rete, nonché per fornire la capacità di impedire che i pacchetti raggiungano posizioni sensibili all'interno di una rete di computer.
Netfilter è un insieme di strumenti all'interno del kernel Linux, che consente a moduli specifici del kernel di registrare le transazioni di rete delle funzioni di callback all'interno del kernel.
Queste funzioni sono generalmente applicate sotto forma di regole di filtro del traffico, vengono invocate come ogni nuova transazione o ogni pacchetto di dati che passa attraverso il rispettivo sistema di filtri all'interno della rete, questo sistema è un filtro firewall.
Il firewall è responsabile dell'intercettazione e della manipolazione dei pacchetti di rete. Consente inoltre la gestione dei pacchetti in diverse fasi di elaborazione. Netfilter è anche il nome dato al progetto che è responsabile della fornitura di strumenti gratuiti per firewall o firewall basati su Linux.
Il componente più popolare costruito su Netfilter è iptables tool firewall o firewall che consente di filtrare i pacchetti e anche di eseguire la risoluzione degli indirizzi di rete o di registrare ciò che sta accadendo. Il progetto Netfilter non solo offre componenti disponibili come moduli core, ma offre anche strumenti per l'uso da parte degli utenti e librerie per gli sviluppatori.
Ecco come configurare un firewall usando iptables. Per prima cosa vediamo se iptables è attivo, per farlo da una finestra di terminale scrivi quanto segue:
sudo iptables -L
Se non lo avessimo installato possiamo installarlo con la seguente istruzione:
sudo apt-get install iptables
Possiamo anche usare il comando:
whereis iptables
Restituiremo la posizione di Iptables, qualcosa di simile al seguente:
iptables: /sbin/iptables /usr/share/iptables /usr/share/man/man8/iptables.8.gz
Per iniziare nel caso di Debian/Ubuntu e derivati eseguire il comando:
sudo ufw enable // iniciar
sudo ufw disable //detener
Se utilizziamo CentOS / RHEL / Fedora, eseguiamo il seguente comando:
service iptables stop
service iptables start
service iptables restart
Come applicare le regole Iptables
Le regole per filtrare i pacchetti vengono messe in atto usando il comando iptables. Il tipo di sintassi risponde alla seguente istruzione.
Esempio Per inserire regole per consentire l'accesso alla porta 80 utilizzata dai servizi web:
iptables -A INPUT -p tcp -m tcp --sport 80 -j ACCEPT
iptables -A OUTPUT -p tcp -m tcp --dport 80 -j ACCEPT
Spieghiamo i parametri definiti dalla regola:
-A =Indica di aggiungere questa regola a un filtro a catena. La catena in cui indichiamo che stiamo facendo, il più delle volte ci occupiamo del traffico in entrata o in uscita INPUT e OUTPUT, consentendo o meno determinate porte o IP specifici per il traffico dati.
-m =per indicare che la regola del filtro deve corrispondere al mezzo o al protocollo di connessione e trasmissione, ad esempio in questo caso consentiamo il traffico dati ma solo per tcp e udp o altro protocollo n.
-s =indica il traffico dell'indirizzo IP di origine consentito, l'intervallo di indirizzi utilizzando [/netmask] o specificando la porta di origine.
ip =-d indica il traffico dell'indirizzo di destinazione consentito, l'intervallo di indirizzi utilizzando [/netmask] o specificando la porta di destinazione.
j – =indica che l'azione avrà luogo se corrisponde alla regola del filtro dei pacchetti. Per impostazione predefinita, iptables consente quattro possibili azioni:
ACCEPT indica che il pacchetto è stato accettato e può continuare.
REJECT indica che il pacchetto è stato rifiutato e notifica alla fonte che non è stato accettato, interrompe l'elaborazione del pacchetto.
DROP indica rifiuta e ignora il pacchetto, non produce alcun avviso e interrompe l'elaborazione del pacchetto.
LOG indica che il pacchetto è stato accettato e l'elaborazione continua di più regole in questa catena, può visualizzare un registro di ciò che è accaduto.
Esempio:chiudere la porta 22 Accesso remoto SSH:
iptables -A INPUT -p tcp --dport 22 -j DROP
Ciò che intendiamo è rifiutare qualsiasi ingresso o traffico dati in ingresso o tentare di connettersi alla porta 22.
Esempio:se vogliamo che uno sviluppatore o un designer abbia accesso ftp da un computer ma nessun altro, allora possiamo usare la seguente regola, che accetto FTP, porta 21 per un dato ip.
iptables -A INPUT -s Your_IP_Address -p tcp -dport 21 -j ACCEPT
Esempio:gli amministratori di database possono avere il proprio accesso da un computer. Quindi abilitiamo la connessione alla porta o al database Mysql che abbiamo.
iptables -A INPUT -s Your_IP_Address -p tcp --dport 3306 -j ACCEPT
Esempio:la maggior parte degli amministratori di server rimane chiusa la porta 25 (SMTP) per la generazione di spam e la facilità degli spammer per utilizzarla per invii di massa, quindi possiamo impedire a chiunque di utilizzarla in modo facile e semplice.
iptables -A INPUT -p tcp --dport 22 -j DROP
Esempio:se è necessario consentire l'accesso a siti Web protetti utilizzando il formato https://www.miweb.com, è necessario consentire l'accesso alla porta 443 che è l'HTTPS/SSL utilizzato per il trasferimento sicuro delle pagine Web.
iptables -A INPUT -p tcp -m tcp --sport 443 -j ACCEPT
iptables -A OUTPUT -p tcp -m tcp --dport 443 -j ACCEPT
Attenzione Amministratori di sistema
Tutti gli amministratori e gli utenti Linux dovrebbero essere consapevoli che è importante considerare questo strumento come una prima linea di difesa della sicurezza, sapere come utilizzarci per servire in molti casi poiché impedisce l'accesso al nostro sistema, ma serve anche per fermare un eventuale attacco in corso.
Un modo per personalizzare facilmente iptables in base alla nostra esigenza di ridurre al minimo potenziali problemi di sicurezza e vulnerabilità.
Se hai bisogno di conoscere tutte le porte che abbiamo nel nostro sistema possiamo utilizzare la seguente guida alle porte più comunemente utilizzate e da considerare protette.
Porte Internet da considerare
20 Trasferimento file e dati FTP
21 FTP
22 Accesso remoto SSH, SFTP
23 L'apparecchiatura di gestione remota Telnet è un protocollo non sicuro
25 L'e-mail SMTP non è sicura Spedizione
53 Risoluzione dei nomi di dominio DNS di sistema
67 BOOTP (Server) utilizzato da indirizzi IP dinamici DHCP
68 BOOTP (Client), utilizzato anche da DHCP
80 HTTP Hypertext Transfer Protocol. Servizio WWW
110 POP3 Post Office Protocol. Ricezione di email
143 Protocollo IMAP Applicazione che consente l'accesso ai messaggi archiviati su un server di posta
389 Protocollo LDAP Accesso leggero ai database
443 Protocollo HTTPS / SSL per il trasferimento sicuro di pagine Web
/>465 SMTP sicuro e crittografato con SSL. Viene utilizzato per inviare e-mail
Sistema di stampa 631 CUPS Linux e derivati
993 IMAP con sicurezza e crittografia SSL viene utilizzato per ricevere e-mail
995 POP3 con sicurezza e crittografia SSL viene utilizzato per ricevere e-mail
Port Server 1433 database SQLServer
1434 Port SQLServer monitoraggio server con SQLMonitor
1521 Server Port Oracle database
2082 porta di accesso Pannello di controllo CPanel per la gestione del Web
2083 Porta CPanel accesso sicuro con SSL.
Porta di accesso 3306 Database server MySQL MYSQL
3389 RDP Remote Desktop o Terminal Server
3396 porta di servizio Novell Novell Print
3690 Apache Subversion è uno strumento di controllo della versione, noto anche come SVN
5000 La porta plug-and-play è un insieme universale di protocolli di comunicazione che consente a computer, stampanti, punti di accesso Wi-Fi e dispositivi mobili, che si trovano in una rete
5222 Jabber / XMPP è il protocollo utilizzato oggi Facebook, Tuenti, tra gli altri WhatsApp
5223 Jabber / XMPP porta predefinita per SSL c connessioni lient
5269 Connessione server Jabber / XMPP
5432 Database del sistema di gestione PostgreSQL
5400 Protocollo desktop remoto VNC che utilizza il protocollo HTTP.
8080 è la porta utilizzata dal server Web Tomcat con JSP.