As primeiras três linhas referem-se a 10.180.x.x quando penso que você quis dizer 10.8.x.x?
Se sim, a linha iptables -A FORWARD -s 10.180.0.10 -d 10.8.0.6 -j ACCEPT
é desnecessária.
Caso contrário, parece bom.
Eu tenho uma grande rede OpenVPN. A maioria dos endereços tem acesso livre um ao outro. No entanto, alguns IPs precisam ser restritos a apenas alguns outros IPs.
Por exemplo, 10.8.0.6 só pode ter permissão para se comunicar com 10.8.0.10. Mas 10.8.0.10 e todos os outros endereços na sub-rede podem se comunicar uns com os outros sem restrição. O seguinte código do iptables vai conseguir isso?
# allow communication between 10.8.0.6 and 10.8.0.10, deny any additional
# access to 10.8.0.6
iptables -A FORWARD -s 10.180.0.6 -d 10.8.0.10 -j ACCEPT
iptables -A FORWARD -s 10.180.0.10 -d 10.8.0.6 -j ACCEPT
iptables -A FORWARD -s 10.180.0.6 -j DROP
# Begin required lines for server operation
iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -s 10.8.0.0/16 -j ACCEPT
iptables -A FORWARD -j REJECT
iptables -t nat -A POSTROUTING -s 10.8.0.0/16 -o eth0 -j MASQUERADE
/etc/init.d/dnsmasq restart
# End required lines for server operation
Obrigado
Você está correto, deveria ter sido 10.8.x.x. MAS, ainda não está funcionando. Os endereços que estou tentando restringir ainda têm acesso a todos os servidores. Aqui está o meu atual rc.local
# Begin access restriction lines
# eg. allow communication between 10.8.0.122 and 10.8.0.58, deny any additional$
# client access only to certain systems
iptables -A FORWARD -s 10.8.0.122 -d 10.8.0.58 -j ACCEPT
iptables -A FORWARD -s 10.8.0.122 -d 10.8.0.66 -j ACCEPT
iptables -A FORWARD -s 10.8.0.122 -d 10.8.0.70 -j ACCEPT
iptables -A FORWARD -s 10.8.0.122 -d 10.8.0.62 -j ACCEPT
iptables -A FORWARD -s 10.8.0.122 -j DROP
# client access only to certain systems
iptables -A FORWARD -s 10.8.0.126 -d 10.8.0.58 -j ACCEPT
iptables -A FORWARD -s 10.8.0.126 -d 10.8.0.66 -j ACCEPT
iptables -A FORWARD -s 10.8.0.126 -d 10.8.0.70 -j ACCEPT
iptables -A FORWARD -s 10.8.0.126 -d 10.8.0.62 -j ACCEPT
iptables -A FORWARD -s 10.8.0.126 -j DROP
# End access restriction lines
# Begin required lines for server operation
iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -s 10.8.0.0/16 -j ACCEPT
iptables -A FORWARD -j REJECT
iptables -t nat -A POSTROUTING -s 10.8.0.0/16 -o eth0 -j MASQUERADE
/etc/init.d/dnsmasq restart
# End required lines for server operation
exit 0
Obrigado
ATUALIZAÇÃO:
saída de iptables -L -v -n
root@li590-32:~# iptables -L -n -v
Chain INPUT (policy ACCEPT 2455K packets, 430M bytes)
pkts bytes target prot opt in out source destination
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
4597K 2770M ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
32180 1813K ACCEPT all -- * * 10.8.0.0/16 0.0.0.0/0
0 0 REJECT all -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-port-unreachable
0 0 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
0 0 ACCEPT all -- * * 10.8.0.0/16 0.0.0.0/0
0 0 REJECT all -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-port-unreachable
0 0 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
0 0 ACCEPT all -- * * 10.8.0.0/16 0.0.0.0/0
0 0 REJECT all -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-port-unreachable
0 0 ACCEPT all -- * * 10.8.0.122 10.8.0.58
0 0 ACCEPT all -- * * 10.8.0.122 10.8.0.66
0 0 ACCEPT all -- * * 10.8.0.122 10.8.0.70
0 0 ACCEPT all -- * * 10.8.0.122 10.8.0.62
0 0 DROP all -- * * 10.8.0.122 0.0.0.0/0
0 0 ACCEPT all -- * * 10.8.0.126 10.8.0.58
0 0 ACCEPT all -- * * 10.8.0.126 10.8.0.66
0 0 ACCEPT all -- * * 10.8.0.126 10.8.0.70
0 0 ACCEPT all -- * * 10.8.0.126 10.8.0.62
0 0 DROP all -- * * 10.8.0.126 0.0.0.0/0
0 0 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
0 0 ACCEPT all -- * * 10.8.0.0/16 0.0.0.0/0
0 0 REJECT all -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-port-unreachable
Chain OUTPUT (policy ACCEPT 3144K packets, 2737M bytes)
pkts bytes target prot opt in out source destination
As primeiras três linhas referem-se a 10.180.x.x quando penso que você quis dizer 10.8.x.x?
Se sim, a linha iptables -A FORWARD -s 10.180.0.10 -d 10.8.0.6 -j ACCEPT
é desnecessária.
Caso contrário, parece bom.
iptables
trabalha em uma base de ganhos de primeira correspondência de dispositivo, então o conjunto completo de regras que você postou deixa claro o problema: nenhuma das restrições que você colocou após as duas primeiras linhas está vendo tráfego, porque a primeira e as segundas regras estão combinando - e permitindo - todo o tráfego que você tenta igualar e negar mais tarde.
Ou você precisará descobrir onde essas duas primeiras linhas estão sendo definidas e garantir que todas as suas linhas adicionais sejam movidas antes delas, ou para inserir todas as novas linhas antes dos dois primeiros usando iptables -I FORWARD 1
no script acima, para inserir continuamente cada nova linha no início da corrente FORWARD
em vez de adicioná-la ao final.
O primeiro método é preferido, pois é mais fácil de manter; mas você não diz em qual distro você está trabalhando, então não posso dizer onde as regras estão sendo definidas.
De qualquer forma, você precisa ter certeza de que na cadeia final, as regras DROP
altamente específicas vêm antes de qualquer regra ACCEPT
menos específica que corresponderia (e, portanto, permitiria) o mesmo tráfego.