Como Bloquear o Acesso ao Sistema, para Somente em rede Interna (Finalizado)

Caros Amigos,
Este assunto já foi debatido aqui, porém como hoje o sistema pode ser aberto por qualquer browser seja por qualquer dispositivo que tenha acesso a internet, não só em rede Windows, porém em Linux e Mac e Android. Estou com a necessidade de bloquear o acesso ao sistema permitindo somente na rede interna do Cliente e liberando o aceso somente em outros dispositivos autorizados e ou ADM.

Alguém já consegue fazer este controle?
Seja em Windows, Mac, Linux ou Android?

Adeilson de Oliveira

Não entendi muito, mas se você publicar em um servidor local e acessar pelo IP não resolve?

Rodrigo,

Peço desculpas pela falta de esclarecimentos, hoje o projeto é publicado em um provedor externo, onde temos clientes acessando as suas bases e os projetos.
Porém os clientes desejariam que o sistema deles fosse acessado somente internamente pelo computadores e dispositivos locais. E não desejaria que fosse acessado fora do local de trabalho exemplo:
Ao chegar às 07:00 ligaria os computadores teria acesso ao sistema na rede local, se no mesmo horário alguém acessa pelo celular em casa não seria liberado ha não ser se fosse o diretor por exemplo.

Estou pesquisando algo para tentar pegar o nome do computador e ou dispositivo e gravar em uma tabela, porém não seria a melhor opção uma vez que pode ser alterado este nome.
Não sei se é possível e ou se tem alguma forma de pegar o MAC pelo PHP e controlar pelo Mac o acesso dos usuários.

Obrigado

Entendi, acho que o melhor a fazer é verificar após o login horário e data para ver se pode acessar ou não.
Para pegar o MAC via php você tem que habilitar o exec no php.ini e isso não é legal.

Rodrigo,
Na pesquisa as pessoas não orienta a habilitar, o controle de horário e data eu já faço o problema é abrir em dispositivos e locais não autorizados.
Por isto preciso achar uma forma de controlar este acesso fora do ambiente do cliente.

Vamos continuar pesquisando, caso alguém tenha algum caminho por favor poderia sinalizar… Abraços

Se esse servidor for local, você pode deixar o acesso por IP e desabilitar o acesso dele no NAT do roteador.

isso fica bem dificil…
Si o IP do cliente for DINÂMICO dai ferro mesmo fica difícil, si for IP ESTATICO dai é fácil.

De outro modo eu não vejo forma de bloquear o acceso.

O acesso por IP que me referi foi
http://ipdoservidor/sistema (ip local)

Esse NoIp não ajudaria caso o IP seja dinâmico:
https://www.youtube.com/watch?v=rCwkglR14lg

Rodrigo o projeto esta em um provedor na Nuvem, não esta local.

Willian, o IP é Dinâmico…

Celso eu instalei o No-IP para se autenticar na rede, porém o problema é como o PHP pegar o endereço da rede pelo nome se eu faço um teste:
ping domínio_do_cliente.no-ip.com ele me traz o IP corrente, porém como fazer o PHP pegar este IP, estou procurando várias funções mais nenhuma que possa ajudar.

Estou ainda tentando uma forma de uma função para pegar o nome do hardware que esta sendo acessado.

Adeilson

Bom o melhor a fazer é tirar da nuvem e instalar em um servidor local.
Aí você pode configurar seu roteador para acessar externo por uma porta (via dmz ou virtual server) e passar esse link do roteador para os diretores ou quem tiver acesso.

Para isso, vc deve ter alguns usuários que nunca vão acessar de fora, apenas de dentro da empresa.

Quando algum desses usuários acessar (vc tem a certeza que esses só acessam de dentro) vc grava o ip numa tabela no cloud, atualiza data e hora.

Nos dispositivos que tiverem permissão de acessar de fora beleza, tudo fica igual.

Mas os usuários que não tiverem que permissão de acessar de fora, vc verifica se o ip dele é igual ao gravado na tabela.

pode também deixar uma maquina de dento da empresa rodando um script para gravar o ip no agendador de tarefas do windows (a cada 15 minutos por exemplo).

tendo o ip gravado (seja ele dinamico ou não) você sempre saberá quem acessa de dentro e de fora da empresa.

E se você criar um arquivo criptografado e colocá-lo na máquina?
Somente quem tem este arquivo e passar pela validação, terá acesso ao sistema.

Depende da infra que tiver no servidor e redes

Firewall, IPs fixos, poder criar VPN etc…

É só criar cookies de 10 anos, coloca um script special com senha que você mesmo vai rodar em cada pc, dispositivo, ai ele vai marcar esse dispositivo com o nome dele e o cookie de 10 anos, ai no login você confere se esse cookie existe se existir libera o acesso se não dá mensagem que o dispositivo não esta cadastrado para acesso.

E desmarcar nesses dispositivos o checkbox ‘apagar cookies’ caso o usuário limpar o histórico não leva junto seu cookie.

cookies: a máquina pode receber manutenção e os cookies podem ser limpos.

não sei por que possa depender da infra estrutura. O firewall deve permitir que se rode pelo browser a porta 80, se não, ninguém acessa o sistema, a meu ver não depende da infra.

arquivo criptografado na máquina??? O Php esta num servidor nas nuvens, como o php poderá ler esse arquivo criptografado na máquina cliente? a não ser que o usuário faça upload do arquivo sempre que for se logar para liberar a maquina dele.

“cookies: a máquina pode receber manutenção e os cookies podem ser limpos.
não sei por que possa depender da infra estrutura. O firewall deve permitir que se rode pelo browser a porta 80, se não, ninguém acessa o sistema, a meu ver não depende da infra.
arquivo criptografado na máquina??? O Php esta num servidor nas nuvens, como o php poderá ler esse arquivo criptografado na máquina cliente? a não ser que o usuário faça upload do arquivo sempre que for se logar para liberar a maquina dele.”

Solução ainda complicada de controlar e limitar quem poderá acessar e por qual dispositivo. Pois é algo que o cliente esta alegando de segurança da informação para que um funcionário não chegue a ter acesso fora da empresa somente pessoas autorizadas…
Bom Haroldo estou tentando achar uma forma pela sua lógica… o Problema será gravar o primeiro IP sempre para conferência…
A função no NO-IP é uma boa porém não achei nada do PHP para pegar o IP pelo nome do domínio…

Já viu isso:
http://php.net/manual/pt_BR/function.gethostbyname.php

Já fez um cotação para saber quanto fica um plano com ip fixo?

Celso,
Na região dele não tem esta disponibilidade, precisaria ser o IP dedicado e o valor é inviável para o seu negócio…

Vou estudar o gethostbyname()

Adeilson

Acho que encontrei uma solução.
o link abaixo retorna via JSON os dados da empresa que administra o IP (altere o IP)
http://ip-api.com/json/aqui-o-ip-com-ponto?callback=yourfunction
ex:
http://ip-api.com/json/189.108.8.233?callback=yourfunction

Se o acesso for aí da empresa sempre retornará os mesmos dados, independente do IP. Aí você pode validar.