Il blocco di tutte le porte (in e out) è facile ma è difficile con la parola "tranne". Non conosco alcuna regola che soddisfi la condizione.
PS: So che questa domanda non è una novità. Ma in realtà, non ho trovato nulla di utile. Aiutatemi quindi!
Il blocco di tutte le porte (in e out) è facile ma è difficile con la parola "tranne". Non conosco alcuna regola che soddisfi la condizione.
PS: So che questa domanda non è una novità. Ma in realtà, non ho trovato nulla di utile. Aiutatemi quindi!
Risposte:
Prima il ! è il simbolo NON.
iptables -A INPUT -p tcp -m tcp -m multiport ! --dports 80,443 -j DROP
In secondo luogo, le regole che hai scritto potrebbero non avere i risultati previsti. Rilasci tutto, inclusa la risposta alla connessione sulla porta 80. Pertanto, non sarai in grado di connetterti ad esso ai fini di un server web.
Queste regole consentono connessioni CORRELATE e STABILITE quindi un server web dovrebbe funzionare, se questo è in realtà ciò che stai cercando di fare.
iptables -A INPUT -p tcp -m tcp -m multiport --dports 80,443 -j ACCEPT
<insert further allowed list here>
iptables -A INPUT -m conntrack -j ACCEPT --ctstate RELATED,ESTABLISHED
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -j DROP
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -j DROP
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -j DROP
!
essere evitato in questo modo \!
, se viene utilizzata la shell Bash?
!
Non è necessario sfuggire a una pianura . Mi dispiace per il falso allarme.
# Set the default policy of the INPUT chain to DROP
iptables -P INPUT DROP
# Accept incomming TCP connections from eth0 on port 80 and 443
iptables -A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 443 -j ACCEPT
Questo dovrebbe darti ciò di cui hai bisogno
È possibile impostare l'azione predefinita su DROP, quindi creare regole di eccezione per consentire 80 e 443, in questo modo:
# Setting default policies:
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
# Exceptions to default policy
iptables -A INPUT -p tcp --dport 80 -j ACCEPT # HTTP
iptables -A INPUT -p tcp --dport 443 -j ACCEPT # HTTPS
iptables esaminerà l'elenco delle "eccezioni" fino a quando non trova una corrispondenza. Quindi eseguirà l'azione specificata dal -j
parametro (ACCETTA in questo caso). Se non trova una corrispondenza, tornerà alla politica predefinita e rilascerà il pacchetto.
Si noti che con questa soluzione alternativa tutti i sottodomini verranno bloccati. Ad esempio con questo metodo lo farai funzionare su www.mydomain.com, ma il tuo sottodominio diciamo che www.sub.mydomain.com non si aprirà per errori DNS.
iptables -nvL
?
ssh
.