Basic iptables para um servidor web: SSL Tomcat, postgres, ssh e é isso

2

Isso é provavelmente tão básico quanto possível, mas eu sou um desenvolvedor e realmente não tenho experiência com iptbles.

As únicas conexões que eu preciso abrir são:

eth0 (voltado para o exterior)

  1. ssh
  2. ping
  3. SSL para tomcat (porta de encaminhamento 443 para 8443)

eth1 (sub-rede local)

  1. conexão ao servidor postgres

Todo o resto deve estar bloqueado. Minhas tentativas atuais parecem deixar todas as outras portas abertas. Eu me pergunto o que dá.

Obrigado serverfault!

    
por bdd 23.05.2010 / 07:29

6 respostas

2

# Block incoming on eth0
iptables -A INPUT -i eth0 -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -i eth0 -p icmp --icmp-type echo-request -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 8443 -j ACCEPT

# Block incoming on eth1
iptables -A INPUT -i eth1 -p tcp --dport 5432 -j ACCEPT

# Block everything by default
iptables -j INPUT -i eth0 -j DROP
iptables -j INPUT -i eth1 -j DROP

# NAT
iptables -t nat -A PREROUTING -p tcp --dport 443 -j REDIRECT --to-ports 8443

Nota: Eu fiz o que você disse, mas você pode querer permitir todos os pacotes icmp, às vezes eles são úteis.

Nota 2: Eu assumo que "servidor postgres" é o mesmo host.

    
por 12.09.2010 / 14:22
0

Depois de colocar essas regras em vigor, você precisa colocar uma regra que salta para REJECT ou DROP, ou é necessário alterar a política padrão da cadeia ( -P ).

    
por 23.05.2010 / 07:36
0

experimente o programa linux ufw, isso torna a configuração do iptables muito mais fácil

    
por 23.05.2010 / 09:10
0

Precisamos saber o que você já tem.

E não vamos escrever essas regras para você. Se você quiser que alguém escreva regras de iptables para você, contrate um consultor.

Então, vamos ver o que você já tem.

Se este é o CentOS, como eu acho que você está sugerindo, você pode nos mostrar / etc / sysconfig / iptables, ou a saída de ambos

iptables -L -vn

e

iptables -L -vn -t nat
    
por 01.07.2010 / 03:26
0

Experimente este site para uma configuração de inicialização limpa: link

    
por 12.09.2010 / 13:13
0
iptables -P INPUT DROP # drop will be default policy
iptables -i eth0 -A INPUT -p tcp --dport 22 -j ACCEPT # ssh
iptables -i eth0 -A INPUT -p tcp --dport 443 -j ACCEPT # delete this if prerouting works
iptables -i eth0 -A INPUT -p tcp --dport 8443 -j ACCEPT # 8443
iptables -i eth0 -A INPUT -p icmp --icmp-type 8 -j ACCEPT # ping
iptables -i eth1 -A INPUT -j ACCEPT # all from eth1

#route port 443 to 8443 from eth0

iptables -t nat -i eth0 -A PREROUTING -p tcp -m tcp --dport 443 -j REDIRECT --to-ports 8443 
    
por 12.09.2010 / 14:35