![iptables bloqueia tudo menos http/https/ssh](https://rvso.com/image/769301/iptables%20bloqueia%20tudo%20menos%20http%2Fhttps%2Fssh.png)
Eu tenho essa configuração de iptables no meu vps que deve rodar o Wordpress. O que eu quero fazer é bloquear todas as solicitações recebidas, exceto http na porta 80, https na porta 443 e ssh na porta 22.
Chain INPUT (policy ACCEPT)
num target prot opt source destination
1 f2b-sshd tcp -- anywhere anywhere multiport dports ssh
Chain FORWARD (policy ACCEPT)
num target prot opt source destination
Chain OUTPUT (policy ACCEPT)
num target prot opt source destination
Chain f2b-sshd (1 references)
num target prot opt source destination
1 REJECT all -- [retracted_ip] anywhere reject-with icmp-port-unreachable
2 REJECT all -- [retracted].com anywhere reject-with icmp-port-unreachable
3 RETURN all -- anywhere anywhere
Encontrei alguns comandos online, mas não tenho certeza se eles podem entrar em conflito com o fail2ban.
Responder1
Em geral:
As regras de firewall são processadas na ordem em que são definidas e aparecem (na saída dos comandos iptables -L -v -n --line-numbers
, e/ou similares).iptables -L -v -n -t nat --line-numbers
iptables-save
Criar novas regras nas cadeias erradas e/ou na ordem errada resultará em consequências indesejadas, quebra de funcionalidade, segurança e/ou bloqueio de tráfego válido.
Esteja ciente de que executar iptables
comandos de baixo nível para gerenciar seu firewall nem sempre é a melhor solução. Pelo que eu sei, no Ubuntu, é preferível usar as ferramentas UFW e funcionará de maneira confiável em conjunto com o fail2ban.
Fail2ban cria uma ou mais cadeias personalizadas (que lidam com a maior parte do trabalho pesado para bloquear endereços IP específicos com comportamento inadequado) como a f2b-sshd
cadeia. Normalmente você deixa o fail2ban gerenciar as entradas nessas cadeias.
Além disso, o fail2ban cria regras para as cadeias personalizadas que cria na INPUT
cadeia. Normalmente essas regras devem virprimeiro no INPUT
cadeia, antes de quaisquer outras regras que você criar.
Na configuração atual do firewall, quando você usa iptables com a -A
opção para anexar novas regras à cadeia INPUT, tudo deve funcionar.
A execução dos comandos a seguir anexará as regras usuais para criar um firewall que permite ssh, http e https, e que bloqueia todo o outro tráfego de entrada.
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
iptables -A INPUT -j REJECT --reject-with icmp-host-prohibited
Responder2
Primeiro vamos fazer backup :)
sudo iptables-save > ./mybackup
Se você perdeu a conexão e deseja o KVM, pode voltar facilmente ao início do backup
sudo iptables-restore < ./mybackup
Então você pode começar a adicionar regras
sudo iptables -A INPUT -d YOURIPPUBLIC -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A INPUT -d YOURIPPUBLIC -p tcp -m tcp --dport 443 -j ACCEPT
sudo iptables -A INPUT -d YOURIPPUBLIC -p tcp -m tcp --dport 80 -j ACCEPT
sudo iptables -A INPUT -d YOURIPPUBLIC -p tcp -m tcp --dport 22 -j DROP
sudo iptables -A INPUT -d YOURIPPUBLIC -j DROP
isso acima se você quiser fazer firewall para ip diferente da sua instância, YOURIPPUBLIC : 33.33.33.33 ou com netmask 33.33.33.33/32
RELACIONADO, ESTABELECIDO - Se obtido antes da conexão, basta pular todas as próximas regras do firewall. Para conectar-se, siga as próximas regras :)
se você quiser toda a rede
sudo iptables -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
sudo iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
sudo iptables -A INPUT -p tcp -m tcp --dport 22 -j DROP
sudo iptables -A INPUT -j DROP
Você pode salvar para editar mais tarde:
iptables-save > /.mynew.iptables.list.txt