Quindi, assumerò che il tuo server non faccia altro che ecommerce . Pertanto, le uniche porte necessarie sono:
80 - HTTP predefinito, in modo che tu possa accettare connessioni e reindirizzare a ...
443 - SSL / TLS per transazioni sicure.
SSH, ma ... è preferibile scegliere una porta casuale alta al posto dello standard 22.
Inserisci SSH su una porta casuale elevata
In / etc / ssh / sshd_config, cambia la direttiva porta in una porta casuale alta. Puoi scegliere manualmente una porta "Non assegnato" dall'elenco di porte IANA, oppure, puoi essere pigro e utilizzare uno script che ho scritto che scarica l'elenco delle porte corrente, trova le porte non assegnate e ne seleziona a caso uno.
Questo non significa necessariamente "aumentare la sicurezza", ma abbassa il numero di sonde che cercano frutte basse a 22 anni.
Per ragioni, supponiamo che tu abbia scelto 32637 come porta. Questo è importante nell'ultima parte della risposta.
Configura iptables
In primo luogo, dobbiamo farlo come uno script in modo che possa essere completato in una sola volta.
Ecco un elenco per bloccare il server . Ma il codice è anche sotto:
#!/bin/bash
#Default deny
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
#Allow established sessions
iptables -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
#Allow localhost
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
#Allow tcp/80 (HTTP)
iptables -A INPUT -p tcp --dport 80 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
#Allow tcp/443 (HTTPS)
iptables -A INPUT -p tcp --dport 443 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
#Allow SSH on our random port
iptables -A INPUT -p tcp --dport 32637 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
Ecco come funziona:
- Iniziamo per impostazione predefinita bloccando tutto da qualsiasi luogo. Dato che stai usando eCommerce e hai solo bisogno di 80 e 443, per impostazione predefinita blocchiamo tutto il resto.
- Successivamente permettiamo alle sessioni stabilite di rimanere attive e funzionanti. Questo è così che non ci disconnettiamo durante il processo. Ma è anche utile per le sessioni che verranno stabilite in seguito per rimanere stabilite.
- Quindi, permettiamo l'host locale. Immagino tu stia parlando con un server DB (MySQL?) Per Magento.
- Le ultime tre regole consentono esplicitamente 80, 443 e 32637, che sono HTTP, HTTPS e SSH sulla nostra porta casuale alta configurata sopra.
E, naturalmente, se vuoi reimpostare iptables, qui vai:
iptables -F
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
in entrata o in uscita
Tutto sopra è in entrata.
Per quanto riguarda il blocco in uscita: qui, assumiamo che il tuo server non sia compromesso, che debba inviare conferme via e-mail e che sia altrimenti ben mantenuto. C'è un blocco in uscita no . Se il tuo server è pulito e ben gestito, non c'è davvero alcun motivo per farlo.
A meno che tu non abbia una ragione ... ma un Magento predefinito (installazione di applicazioni web) che sia correttamente mantenuto e protetto non ne ha davvero bisogno perché non dovrebbe inviare connessioni, scansioni o richieste di rouge.