iptables permite HTTP de qualquer lugar, MySQL internamente e bloqueia o SSH para um ip específico

1

Tenho dificuldade em entender as regras do iptables

Eu preciso:

  • Permitir tráfego HTTP para 80 e 443 de qualquer lugar
  • Permitir tráfego do MySQL 3306 internamente
  • Permitir acesso SSH de uma lista específica de endereços IP

Alguma ideia?

    
por Tom 05.03.2012 / 17:04

1 resposta

2

De acordo com o fwbuilder (recomendado) e uma rápida inspeção, o seguinte faz os testes 1 e 3. Fazer (2) depende strongmente da sua definição de "interno" (na interface, duas interfaces, etc.)

$IPTABLES -N RULE_0
$IPTABLES -A INPUT -p tcp -m tcp  -s 1.2.3.4   --dport 22  -m state --state NEW  -j RULE_0
$IPTABLES -A FORWARD -p tcp -m tcp  -s 1.2.3.4   --dport 22  -m state --state NEW  -j RULE_0
$IPTABLES -A RULE_0  -j LOG  --log-level info --log-prefix "RULE 0 -- ACCEPT "
$IPTABLES -A RULE_0  -j ACCEPT
# 
# Rule 1 (global)
# 
echo "Rule 1 (global)"
# 
$IPTABLES -N RULE_1
$IPTABLES -A OUTPUT -p tcp -m tcp  -m multiport  --dports 80,443  -m state --state NEW  -j RULE_1
$IPTABLES -A INPUT -p tcp -m tcp  -m multiport  --dports 80,443  -m state --state NEW  -j RULE_1
$IPTABLES -A FORWARD -p tcp -m tcp  -m multiport  --dports 80,443  -m state --state NEW  -j RULE_1
$IPTABLES -A RULE_1  -j LOG  --log-level info --log-prefix "RULE 1 -- ACCEPT "
$IPTABLES -A RULE_1  -j ACCEPT

Por exemplo para uma rede interna 192.168.1.0/254:

   $IPTABLES -N In_RULE_0
   $IPTABLES -A INPUT  -i eth0:1  -p tcp -m tcp  -s 192.168.1.0/24   -d 192.168.1.0/24    --dport 3306  -m state --state NEW  -j In_RULE_0
   $IPTABLES -A FORWARD  -i eth0:1  -p tcp -m tcp  -s 192.168.1.0/24   -d 192.168.1.0/24   --dport 3306  -m state --state NEW  -j In_RULE_0
   $IPTABLES -A In_RULE_0  -j LOG  --log-level info --log-prefix "RULE 0 -- ACCEPT "
   $IPTABLES -A In_RULE_0  -j ACCEPT
   $IPTABLES -N Out_RULE_0
   $IPTABLES -A OUTPUT  -o eth0:1  -p tcp -m tcp  -s 192.168.1.0/24   -d 192.168.1.0/24   --dport 3306  -m state --state NEW  -j Out_RULE_0
   $IPTABLES -A FORWARD  -o eth0:1  -p tcp -m tcp  -s 192.168.1.0/24   -d 192.168.1.0/24   --dport 3306  -m state --state NEW  -j Out_RULE_0
   $IPTABLES -A Out_RULE_0  -j LOG  --log-level info --log-prefix "RULE 0 -- ACCEPT "
   $IPTABLES -A Out_RULE_0  -j ACCEPT
    
por 05.03.2012 / 17:21