Você está Fazendo errado meu amigo.
Além do NAT local e do "Carrier-Grade NAT" (que significa as informações que você recebe de ifconfig
em sistemas clientes pode ser um endereço privado que você não pode usar nas listas de acesso do seu servidor), a segurança baseada em IP é uma farsa: ISPs podem mudar atribuições de rede pública, usuários finais podem estar em IPs dinâmicos, ou alguém pode falsifique o BGP e passe pela sua segurança.
Se você quiser proteger adequadamente seu site, minhas recomendações serão:
-
SSL com autenticação de certificado mútuo
Muito seguro, suportado por praticamente todos os navegadores, mas um pouco difícil de administrar porque você precisa emitir certificados de clientes para todos os seus usuários e explicar como instalá-los (e os certificados estão vinculados às máquinas que você instalou para que os usuários não consigam fazer login na casa da vovó).
Vale a pena se você precisar de segurança. -
SSL e autenticação de dois fatores
Usando algo como o Google Authenticator, além de um nome de usuário / senha, dando aos seus usuários autenticação real de dois fatores (algo que você sabe - nome de usuário / senha e algo que você tem - o dispositivo com o autenticador sendo executado). Isso pode exigir um pouco de trabalho de sua parte, seja em seu aplicativo ou no servidor com algo comomod_auth_external
, mas é uma segurança muito boa: não sofre as limitações da autenticação de certificado mútuo e é quase impossível para a força bruta. -
SSL e nome de usuário / autenticação de senha
Apenas tão seguro quanto o nome de usuário / senha, mas é por isso que temos boas políticas de senha.
Isso é suscetível a ataques de força bruta, portanto, as técnicas de mitigação precisariam ser empregadas.