Na verdade, isso não o torna mais seguro. Os endereços MAC podem ser configurados ("falsificados") na maioria dos SOs para a maioria dos modelos de NIC. Um invasor pode farejar o tráfego e simplesmente falsificar seu endereço MAC configurado.
Em vez disso, faça o seu VNC ouvir em loopback e SSH na máquina, usando o recurso de túnel SSH para conectar ao VNC.
Se você insistir em usar seu método inseguro, iptables
(netfilter) poderá fazer isso:
iptables -I INPUT -m mac --mac-source 00:XX:YY:ZZ:AA:BB -j ACCEPT
esta regra foi adicionada a uma cadeia com o DROP
( ou REJECT
) a política padrão aceitaria apenas o MAC fornecido. Pode ser combinado ainda para verificar outros parâmetros também. Basicamente eu iria entregá-lo para uma cadeia diferente se eu fosse você, verificando primeiro nas camadas superiores para as conexões com as portas relevantes (5900?) E, em seguida, fazer a filtragem MAC. Afinal, você só deseja filtrar este único serviço para estar disponível somente a partir deste MAC - não em qualquer serviço. Se você está interessado apenas no MAC e na porta:
iptables -I INPUT -p tcp --destination-port 5900 -m mac --mac-source 00:XX:YY:ZZ:AA:BB -j ACCEPT
Nota:
-m mac
requer o módulo mac
(para netfilter), então isso deve estar disponível.
Eu só usaria esses métodos para sair de uma lista negra. Por exemplo, configurei um tar pit para tentativas de conexão SSH (semelhante ao que sshguard
e programas semelhantes fazem). Assim como a porta batendo, poderia fazer sentido usar um certo MAC como um sinal para remover (ou seja, remover da lista negra) o IP de conexão. Mas como um mecanismo de segurança por si só, de jeito nenhum. Muito fácil de fingir.