Permitir tráfego somente de endereços IP especificados usando iptables

3

Eu tenho um servidor dedicado (que eu só uso um ambiente de laboratório / teste). No servidor, o CentOS 5.6 está em execução e está funcionando como um host KVM.

Para proteger as coisas um pouco, quero fazer o seguinte uso 'iptables' para permitir apenas o tráfego de determinados endereços IP (meus próprios endereços).

Minha configuração atual de iptables está parecendo:

[kvm]# iptables -L -v
Chain INPUT (policy ACCEPT 4927K packets, 6424M bytes)
 pkts bytes target     prot opt in     out     source               destination         
   41  2744 ACCEPT     udp  --  virbr0 any     anywhere             anywhere            udp dpt:domain 
    0     0 ACCEPT     tcp  --  virbr0 any     anywhere             anywhere            tcp dpt:domain 
   66 21810 ACCEPT     udp  --  virbr0 any     anywhere             anywhere            udp dpt:bootps 
    0     0 ACCEPT     tcp  --  virbr0 any     anywhere             anywhere            tcp dpt:bootps 
3573K 3515M fail2ban-SSH  tcp  --  any    any     anywhere             anywhere            tcp dpt:ssh 

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
 470K  700M ACCEPT     all  --  any    virbr0  anywhere             192.168.122.0/24    state RELATED,ESTABLISHED 
 171K 9558K ACCEPT     all  --  virbr0 any     192.168.122.0/24     anywhere            
    0     0 ACCEPT     all  --  virbr0 virbr0  anywhere             anywhere            
    0     0 REJECT     all  --  any    virbr0  anywhere             anywhere            reject-with icmp-port-unreachable 
    0     0 REJECT     all  --  virbr0 any     anywhere             anywhere            reject-with icmp-port-unreachable 

Chain OUTPUT (policy ACCEPT 3115K packets, 5798M bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain fail2ban-SSH (1 references)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 DROP       all  --  any    any     somehost1.net        anywhere            
   19  2176 DROP       all  --  any    any     somehost2.net        anywhere            
   21  1668 DROP       all  --  any    any     somehost3.net        anywhere            
3573K 3515M RETURN     all  --  any    any     anywhere             anywhere

Eu mesmo não fiz alterações na configuração iptables , embora eu ache que o KVM (virt-manager ou similar) e o fail2ban fizeram algumas alterações nele.

Alguém poderia me ajudar a criar o script iptables que garante que o KVM ainda esteja funcionando, mas somente o tráfego de determinado endereço IP é permitido. TODO o resto pode ser descartado. Não deve haver nenhuma restrição do próprio servidor para a Internet.

Atualização: conforme a saída solicitada acima está com -v .

    
por St. Even 20.04.2011 / 12:24

2 respostas

5

# Set default action to drop anything not explicitly allowed
iptables -P INPUT DROP
# Allow an incoming connection from 192.168.0.1
iptables -I INPUT -s 192.168.0.1 -j ACCEPT
# Allow incoming packets from a self initiated connection to "outside"
itpables -I INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

Isso deve funcionar. Substitua 192.168.0.1 por um endereço IP que você deseja acessar.
Tenha cuidado, todas as outras conexões serão descartadas (incluindo a sua própria, se você estiver conectado via SSH ou telnet).

    
por 20.04.2011 / 13:45
0

manter a VM em um link editado por NAT afetará seriamente sua performance, o uso de redes em ponte é muito mais rápido e eficiente. A configuração mais simples seria configurar uma ponte e configurar o firewall da própria VM para descartar o que for indesejado

    
por 20.04.2011 / 22:13