Bloqueia todos os IPs de acessar qualquer coisa no servidor

2

Eu quero bloquear todos os IPs, exceto o IP de minha casa, de fazer qualquer coisa no meu servidor.

Como posso fazer isso com o iptables? Por exemplo, digamos que o IP da minha casa é 1.2.3.4

Meu servidor ainda precisa ser capaz de se conectar a vários IPs. Além disso, isso causará algum problema geral?

Algo como isso? (não funciona)

/sbin/iptables -A INPUT -s 1.2.3.4 -j ACCEPT
iptables -A INPUT -s 0.0.0.0/0 -j DROP
iptables -A OUTPUT -d 0.0.0.0/0 -j DROP
    
por Teddy291 10.06.2015 / 21:53

2 respostas

5

Deixe a corrente OUTPUT intocada. Coloque isso na sua INPUT chain

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -s 1.2.3.4 -j ACCEPT
iptables -A INPUT -j DROP    # or REJECT

A primeira regra permite que a configuração iptables aceite tráfego para conexões estabelecidas (ou seja, aquelas iniciadas pelo seu próprio servidor para outros destinos).

    
por 10.06.2015 / 23:52
2

Você pode usar /etc/hosts.deny e /etc/hosts.allow .

/etc/hosts.allow :

ALL: allowed_ip

/etc/hosts.deny :

ALL: ALL

Esta configuração acessa seu servidor somente a partir do ip permitido (isso pode ser um problema em alguns casos). Pode ser que você tenha que usar alguns firewall para especificar o acesso ao seu servidor.

Mas acima não vai lidar com httpd e solicitações ICMP você pode tentar isso:

# Allow your server to other destinations
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# Default Policy to DROP all incoming traffic
iptables -P INPUT DROP

# Allow traffic from source 1.2.3.4
# Add an additional rule for each allowed source
iptables -A INPUT -s 1.2.3.4 -j ACCEPT
    
por 10.06.2015 / 22:12

Tags