Re: [FUG-BR] Redirecionar conexao após ter redirecionado para a 80

2012-04-17 Por tôpico joao jamaicabsd
Muito obrigado pelas dicas. Estou desenvolvendo a pagina em php e depois
coloco o resultado aí pra vc's.
Té mais.

Em 9 de abril de 2012 22:06, Marcelo Gondim gon...@bsdinfo.com.brescreveu:

 Em 09/04/2012 16:44, Alessandro de Souza Rocha escreveu:
  rdr on $ext_if1 proto tcp from any to any port 1433 -  192.168.0.199
  rdr on $ext_if1 proto tcp from any to any port 3389 -  192.168.0.198
  rdr on $ext_if1 proto tcp from any to any port 80 -  192.168.0.199
 Opa Alessandro

 Gosto de adicionar uma regra antes do redir tipo essa abaixo quando tem
 NAT N:1 :

 no rdr on $ext_if1 proto tcp from any port  1024 to seu_IP_publico_NAT

 rdr on $ext_if1 proto tcp from any to any port 1433 - 192.168.0.199
 rdr on $ext_if1 proto tcp from any to any port 3389 - 192.168.0.198
 rdr on $ext_if1 proto tcp from any to any port 80 - 192.168.0.199

 Isso porque se coincidir de sair um pacote pelo Firewall cuja porta
 origem for por exemplo 1433 a resposta voltará para o IP público nessa
 porta e cairá no redir jogando o pacote para o IP 192.168.0.199 e não
 para a máquina que fez a solicitação. Se alguém souber outra forma
 elegante de fazer isso é só mandar.  ;)

  ___
 
 
  Em 9 de abril de 2012 16:35, joao jamaicabsdjamaica...@gmail.com
  escreveu:
  Boa tarde.
  Estou impressionado com a nossa lista e com todos vocês. Estou recebendo
  idéias que serão muito úteis a toda a comunidade.
  Rafael, você utiliza o PF e IPFW por funcionalidade ou pq para vc
 trabalhar
  com essas duas tabelas vc tem que fazer desta maneira? É possível fazer
  tudo em PF? Não tenho muito conhecimento em IPFW para ter que montar
 outro
  FW.
 
  Obrigado.
 
 
  Em 9 de abril de 2012 15:16, Marcelo Gondimgon...@bsdinfo.com.br
 escreveu:
 
  Em 09/04/2012 14:02, joao jamaicabsd escreveu:
  HUmmm acho que entendi.
  Então, quando o usuário logar devo pegar este IP e jogar em uma
 tabela no
  PF, massa vou testar, mas agora como vou remover esse ip desta tabela
 ou
  ela sumir se ficar inativa?
 
  Uma vez consegui fazer essas auterações com a utilização do Sudo,
  conhece?
  Muito obrigado e vou pesquisar e fazer testes referente a essa sua
 dica.
  Obrigado e qualquer outra dica aí dos parceiros eu agradeço.
 
  João Maykon
  Oi João tenho algo parecido aqui mas é com outra finalidade do tipo
  mandar uma mensagem para o assinante que está em atraso. Veja bem,
 nesse
  caso muito cuidado com o texto porque dizer que o cliente está devendo
  em tela pode gerar processo de danos morais e por isso não afirmamos
 mas
  colocamos que pode ter havido algum problema com o pagamento.
  Bem, o que quero colocar é que quando o cliente está devendo de hora em
  hora no cron eu rodo um script php que checa quem está online no
  Mikrotik e na base de dados se o cara está devendo. Eu tenho 2 tabelas
  uma no PF e outra no IPFW quando o cara tá conectado e devendo eu jogo
 o
  IP dele nessas 2 tabelas que fazem o seguinte:
 
  Na tabela do PF é feito um redir no NAT jogando o que vier dessa tabela
  com destino qualquer IP porta 80 jogando para o IP local porta 81.
  No IPFW eu aceito a conexão na porta 81 vindo dos IPs da tabela e
 também
  bloqueio o acesso externo deixando apenas dns liberado 53/tcp/udp.
 
  Assim que o cliente vê a mensagem é removido o IP dele das 2 tabelas e
 a
  conexão dele normaliza.
 
 
 
 
 
 
 
  Em 9 de abril de 2012 10:49, Rafael Henrique Faria
  rafaelhfa...@cenadigital.com.brescreveu:
 
  Bom dia João.
 
  Se eu entendi corretamente, acho bom deixar claro para o pessoal que
  você
  está querendo implementar um Capitive Portal.
 
  Neste caso, você tem que se ater aos seguintes fatos:
 
  - Nenhum usuário por definição tem acesso a rede externa
  - Qualquer acesso a qualquer IP externo com destino na porta 80 é
  redirecionado para um IP interno em uma porta interna para
 autenticação
  - Passado na autenticação o IP autenticado tem que ter acesso a rede
  externa
  - Com acesso a rede externa, qualquer acesso a um IP qualquer com
  destino
  na porta 80 deve ser redirecionado para um IP interno na porta do
 proxy,
  formando assim o proxy transparente.
  - Após um logout, ou expiração do tempo, o IP liberado deve ser
  bloqueado
  novamente.
 
  Resumindo, você tem que construir um sistema que atenda esses passos.
 
  Pelo que eu entendi, o 1o. e o 2o. você já cuidou.
  O 3o, acredito que o ideal seria vê usar uma Tabela., no PF por
 exemplo.
  E usando o comando de adicionar e remover IPs da lista, assim,
 quando um
  usuário é liberado para passagem, você simplesmente adiciona o IP do
  mesmo
  a lista de liberados, e esta lista que estará tanto liberando o
 acesso
  quanto redirecionando para o proxy.
 
  Vale lembrar que por definição, apenas o root pode adicionar e
 remover
  ips
  de listas.
  Eu já usei uma vez, um daemon que rodava como root, e conseguia
 enviar
  para
  ele via uma porta especifica o comando de adicionar/remover IPs.
  Funcionava
  muito bem... com 

Re: [FUG-BR] Redirecionar conexao após ter redirecionado para a 80

2012-04-09 Por tôpico Welinaldo Lopes Nascimento
Não entendí muito bem o que vc quer fazer, mas acho que neste caso vc tem
que usar natd e fazer regras para proxy transparente;

Em 9 de abril de 2012 10:04, joao jamaicabsd jamaica...@gmail.comescreveu:

 Bom dia pessoal.
 Estou fazendo uma ferramenta de autenticação e consigo redirecionar o
 trafego da rede local para a 80 no meu server, mas como posso fazer para
 que após o usuário validar seu usuário e senha ele ser enviado para o
 proprio server na 3128?
 Estou usando PHP.
 Alguém pode me ajudar?
 Obrigado.
 -
 Histórico: http://www.fug.com.br/historico/html/freebsd/
 Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd




-- 
#Welinaldo L N
Estudante de Desenvolvimento de Sistemas
FreeBSD Community Member #BSD/OS
.ılı..ılı.
-
Histórico: http://www.fug.com.br/historico/html/freebsd/
Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd


Re: [FUG-BR] Redirecionar conexao após ter redirecionado para a 80

2012-04-09 Por tôpico Rafael Henrique Faria
Bom dia João.

Se eu entendi corretamente, acho bom deixar claro para o pessoal que você
está querendo implementar um Capitive Portal.

Neste caso, você tem que se ater aos seguintes fatos:

- Nenhum usuário por definição tem acesso a rede externa
- Qualquer acesso a qualquer IP externo com destino na porta 80 é
redirecionado para um IP interno em uma porta interna para autenticação
- Passado na autenticação o IP autenticado tem que ter acesso a rede externa
- Com acesso a rede externa, qualquer acesso a um IP qualquer com destino
na porta 80 deve ser redirecionado para um IP interno na porta do proxy,
formando assim o proxy transparente.
- Após um logout, ou expiração do tempo, o IP liberado deve ser bloqueado
novamente.

Resumindo, você tem que construir um sistema que atenda esses passos.

Pelo que eu entendi, o 1o. e o 2o. você já cuidou.
O 3o, acredito que o ideal seria vê usar uma Tabela., no PF por exemplo.
E usando o comando de adicionar e remover IPs da lista, assim, quando um
usuário é liberado para passagem, você simplesmente adiciona o IP do mesmo
a lista de liberados, e esta lista que estará tanto liberando o acesso
quanto redirecionando para o proxy.

Vale lembrar que por definição, apenas o root pode adicionar e remover ips
de listas.
Eu já usei uma vez, um daemon que rodava como root, e conseguia enviar para
ele via uma porta especifica o comando de adicionar/remover IPs. Funcionava
muito bem... com isso você consegue fazer o seu PHP apenas conectar nesta
porta, e mandar o comando para o daemon executar o procedimento para você.

Usando o PF, seria possivel com regras como esta:

table liberados constant

rdr pass quick from liberados to any port 80 - 127.0.0.1 3128
rdr pass quick from any to any port 80 - 127.0.0.1 80

pass quick from liberados to any keep state
pass quick from any to liberados keep state

Acho que é isso.

2012/4/9 joao jamaicabsd jamaica...@gmail.com

 Bom dia pessoal.
 Estou fazendo uma ferramenta de autenticação e consigo redirecionar o
 trafego da rede local para a 80 no meu server, mas como posso fazer para
 que após o usuário validar seu usuário e senha ele ser enviado para o
 proprio server na 3128?
 Estou usando PHP.
 Alguém pode me ajudar?
 Obrigado.
 -
 Histórico: http://www.fug.com.br/historico/html/freebsd/
 Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd




-- 
Rafael Henrique da Silva Faria
-
Histórico: http://www.fug.com.br/historico/html/freebsd/
Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd


Re: [FUG-BR] Redirecionar conexao após ter redirecionado para a 80

2012-04-09 Por tôpico joao jamaicabsd
HUmmm acho que entendi.
Então, quando o usuário logar devo pegar este IP e jogar em uma tabela no
PF, massa vou testar, mas agora como vou remover esse ip desta tabela ou
ela sumir se ficar inativa?

Uma vez consegui fazer essas auterações com a utilização do Sudo, conhece?
Muito obrigado e vou pesquisar e fazer testes referente a essa sua dica.
Obrigado e qualquer outra dica aí dos parceiros eu agradeço.

João Maykon







Em 9 de abril de 2012 10:49, Rafael Henrique Faria 
rafaelhfa...@cenadigital.com.br escreveu:

 Bom dia João.

 Se eu entendi corretamente, acho bom deixar claro para o pessoal que você
 está querendo implementar um Capitive Portal.

 Neste caso, você tem que se ater aos seguintes fatos:

 - Nenhum usuário por definição tem acesso a rede externa
 - Qualquer acesso a qualquer IP externo com destino na porta 80 é
 redirecionado para um IP interno em uma porta interna para autenticação
 - Passado na autenticação o IP autenticado tem que ter acesso a rede
 externa
 - Com acesso a rede externa, qualquer acesso a um IP qualquer com destino
 na porta 80 deve ser redirecionado para um IP interno na porta do proxy,
 formando assim o proxy transparente.
 - Após um logout, ou expiração do tempo, o IP liberado deve ser bloqueado
 novamente.

 Resumindo, você tem que construir um sistema que atenda esses passos.

 Pelo que eu entendi, o 1o. e o 2o. você já cuidou.
 O 3o, acredito que o ideal seria vê usar uma Tabela., no PF por exemplo.
 E usando o comando de adicionar e remover IPs da lista, assim, quando um
 usuário é liberado para passagem, você simplesmente adiciona o IP do mesmo
 a lista de liberados, e esta lista que estará tanto liberando o acesso
 quanto redirecionando para o proxy.

 Vale lembrar que por definição, apenas o root pode adicionar e remover ips
 de listas.
 Eu já usei uma vez, um daemon que rodava como root, e conseguia enviar para
 ele via uma porta especifica o comando de adicionar/remover IPs. Funcionava
 muito bem... com isso você consegue fazer o seu PHP apenas conectar nesta
 porta, e mandar o comando para o daemon executar o procedimento para você.

 Usando o PF, seria possivel com regras como esta:

 table liberados constant

 rdr pass quick from liberados to any port 80 - 127.0.0.1 3128
 rdr pass quick from any to any port 80 - 127.0.0.1 80

 pass quick from liberados to any keep state
 pass quick from any to liberados keep state

 Acho que é isso.

 2012/4/9 joao jamaicabsd jamaica...@gmail.com

  Bom dia pessoal.
  Estou fazendo uma ferramenta de autenticação e consigo redirecionar o
  trafego da rede local para a 80 no meu server, mas como posso fazer para
  que após o usuário validar seu usuário e senha ele ser enviado para o
  proprio server na 3128?
  Estou usando PHP.
  Alguém pode me ajudar?
  Obrigado.
  -
  Histórico: http://www.fug.com.br/historico/html/freebsd/
  Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd
 



 --
 Rafael Henrique da Silva Faria
 -
 Histórico: http://www.fug.com.br/historico/html/freebsd/
 Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd




-- 
E-mail: jamaica...@gmail.com
Aux Suporte de Sistemas (UNISUL)
E-mail: joao.may...@unisul.br
MSN: joaomayk...@hotmail.com
Cel: (48) 9144 2326
-
Histórico: http://www.fug.com.br/historico/html/freebsd/
Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd


Re: [FUG-BR] Redirecionar conexao após ter redirecionado para a 80

2012-04-09 Por tôpico Rafael Henrique Faria
2012/4/9 joao jamaicabsd jamaica...@gmail.com

 HUmmm acho que entendi.
 Então, quando o usuário logar devo pegar este IP e jogar em uma tabela no
 PF, massa vou testar, mas agora como vou remover esse ip desta tabela ou
 ela sumir se ficar inativa?


Então, a sua aplicação que tem que fazer isso.
Você deve utilizar um banco de dados por exemplo... e ir monitorando o
tráfego, é como o pfSense faz, ele monitora o tráfego daquele IP (não sei
como ele faz isso), e você configura, por exemplo, quando ficar 15 minutos
sem tráfego daquele IP, o mesmo deve ser deslogado. Isso é tudo a nível de
aplicação.



 Uma vez consegui fazer essas auterações com a utilização do Sudo, conhece?
 Muito obrigado e vou pesquisar e fazer testes referente a essa sua dica.
 Obrigado e qualquer outra dica aí dos parceiros eu agradeço.


Com o sudo você consegue fazer sim... o único problema que eu vejo, é que
você abre uma brecha de segurança. Pois você tem que dar acesso do usuário
WWW ao comando pfctl, não é possivel adicionar IPs a tabelas sem acessar
esse comando, e é esse comando que faz tudo no Packet Filter, até mesmo
desabilitar o firewall completamente.

No caso do programa que roda como daemon que eu comentei, a única coisa que
ele faz, é adicionar e remover IPs de uma tabela. Nada além disso.


 João Maykon







 Em 9 de abril de 2012 10:49, Rafael Henrique Faria 
 rafaelhfa...@cenadigital.com.br escreveu:

  Bom dia João.
 
  Se eu entendi corretamente, acho bom deixar claro para o pessoal que você
  está querendo implementar um Capitive Portal.
 
  Neste caso, você tem que se ater aos seguintes fatos:
 
  - Nenhum usuário por definição tem acesso a rede externa
  - Qualquer acesso a qualquer IP externo com destino na porta 80 é
  redirecionado para um IP interno em uma porta interna para autenticação
  - Passado na autenticação o IP autenticado tem que ter acesso a rede
  externa
  - Com acesso a rede externa, qualquer acesso a um IP qualquer com destino
  na porta 80 deve ser redirecionado para um IP interno na porta do proxy,
  formando assim o proxy transparente.
  - Após um logout, ou expiração do tempo, o IP liberado deve ser bloqueado
  novamente.
 
  Resumindo, você tem que construir um sistema que atenda esses passos.
 
  Pelo que eu entendi, o 1o. e o 2o. você já cuidou.
  O 3o, acredito que o ideal seria vê usar uma Tabela., no PF por exemplo.
  E usando o comando de adicionar e remover IPs da lista, assim, quando um
  usuário é liberado para passagem, você simplesmente adiciona o IP do
 mesmo
  a lista de liberados, e esta lista que estará tanto liberando o acesso
  quanto redirecionando para o proxy.
 
  Vale lembrar que por definição, apenas o root pode adicionar e remover
 ips
  de listas.
  Eu já usei uma vez, um daemon que rodava como root, e conseguia enviar
 para
  ele via uma porta especifica o comando de adicionar/remover IPs.
 Funcionava
  muito bem... com isso você consegue fazer o seu PHP apenas conectar nesta
  porta, e mandar o comando para o daemon executar o procedimento para
 você.
 
  Usando o PF, seria possivel com regras como esta:
 
  table liberados constant
 
  rdr pass quick from liberados to any port 80 - 127.0.0.1 3128
  rdr pass quick from any to any port 80 - 127.0.0.1 80
 
  pass quick from liberados to any keep state
  pass quick from any to liberados keep state
 
  Acho que é isso.
 
  2012/4/9 joao jamaicabsd jamaica...@gmail.com
 
   Bom dia pessoal.
   Estou fazendo uma ferramenta de autenticação e consigo redirecionar o
   trafego da rede local para a 80 no meu server, mas como posso fazer
 para
   que após o usuário validar seu usuário e senha ele ser enviado para o
   proprio server na 3128?
   Estou usando PHP.
   Alguém pode me ajudar?
   Obrigado.
   -
   Histórico: http://www.fug.com.br/historico/html/freebsd/
   Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd
  
 
 
 
  --
  Rafael Henrique da Silva Faria
  -
  Histórico: http://www.fug.com.br/historico/html/freebsd/
  Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd
 



 --
 E-mail: jamaica...@gmail.com
 Aux Suporte de Sistemas (UNISUL)
 E-mail: joao.may...@unisul.br
 MSN: joaomayk...@hotmail.com
 Cel: (48) 9144 2326
 -
 Histórico: http://www.fug.com.br/historico/html/freebsd/
 Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd




-- 
Rafael Henrique da Silva Faria
-
Histórico: http://www.fug.com.br/historico/html/freebsd/
Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd


Re: [FUG-BR] Redirecionar conexao após ter redirecionado para a 80

2012-04-09 Por tôpico joao jamaicabsd
Muito obrigado pelas informações, elas são muito valiosas.
Vou fazer os teste iniciais e derrepente disponibilizo pra galera, mas
primeiro vamos ver se funciona.
obrigado.




Em 9 de abril de 2012 14:42, Rafael Henrique Faria 
rafaelhfa...@cenadigital.com.br escreveu:

 2012/4/9 joao jamaicabsd jamaica...@gmail.com

  HUmmm acho que entendi.
  Então, quando o usuário logar devo pegar este IP e jogar em uma tabela no
  PF, massa vou testar, mas agora como vou remover esse ip desta tabela ou
  ela sumir se ficar inativa?
 
 
 Então, a sua aplicação que tem que fazer isso.
 Você deve utilizar um banco de dados por exemplo... e ir monitorando o
 tráfego, é como o pfSense faz, ele monitora o tráfego daquele IP (não sei
 como ele faz isso), e você configura, por exemplo, quando ficar 15 minutos
 sem tráfego daquele IP, o mesmo deve ser deslogado. Isso é tudo a nível de
 aplicação.



  Uma vez consegui fazer essas auterações com a utilização do Sudo,
 conhece?
  Muito obrigado e vou pesquisar e fazer testes referente a essa sua dica.
  Obrigado e qualquer outra dica aí dos parceiros eu agradeço.
 
 
 Com o sudo você consegue fazer sim... o único problema que eu vejo, é que
 você abre uma brecha de segurança. Pois você tem que dar acesso do usuário
 WWW ao comando pfctl, não é possivel adicionar IPs a tabelas sem acessar
 esse comando, e é esse comando que faz tudo no Packet Filter, até mesmo
 desabilitar o firewall completamente.

 No caso do programa que roda como daemon que eu comentei, a única coisa que
 ele faz, é adicionar e remover IPs de uma tabela. Nada além disso.


  João Maykon
 
 
 
 
 
 
 
  Em 9 de abril de 2012 10:49, Rafael Henrique Faria 
  rafaelhfa...@cenadigital.com.br escreveu:
 
   Bom dia João.
  
   Se eu entendi corretamente, acho bom deixar claro para o pessoal que
 você
   está querendo implementar um Capitive Portal.
  
   Neste caso, você tem que se ater aos seguintes fatos:
  
   - Nenhum usuário por definição tem acesso a rede externa
   - Qualquer acesso a qualquer IP externo com destino na porta 80 é
   redirecionado para um IP interno em uma porta interna para autenticação
   - Passado na autenticação o IP autenticado tem que ter acesso a rede
   externa
   - Com acesso a rede externa, qualquer acesso a um IP qualquer com
 destino
   na porta 80 deve ser redirecionado para um IP interno na porta do
 proxy,
   formando assim o proxy transparente.
   - Após um logout, ou expiração do tempo, o IP liberado deve ser
 bloqueado
   novamente.
  
   Resumindo, você tem que construir um sistema que atenda esses passos.
  
   Pelo que eu entendi, o 1o. e o 2o. você já cuidou.
   O 3o, acredito que o ideal seria vê usar uma Tabela., no PF por
 exemplo.
   E usando o comando de adicionar e remover IPs da lista, assim, quando
 um
   usuário é liberado para passagem, você simplesmente adiciona o IP do
  mesmo
   a lista de liberados, e esta lista que estará tanto liberando o acesso
   quanto redirecionando para o proxy.
  
   Vale lembrar que por definição, apenas o root pode adicionar e remover
  ips
   de listas.
   Eu já usei uma vez, um daemon que rodava como root, e conseguia enviar
  para
   ele via uma porta especifica o comando de adicionar/remover IPs.
  Funcionava
   muito bem... com isso você consegue fazer o seu PHP apenas conectar
 nesta
   porta, e mandar o comando para o daemon executar o procedimento para
  você.
  
   Usando o PF, seria possivel com regras como esta:
  
   table liberados constant
  
   rdr pass quick from liberados to any port 80 - 127.0.0.1 3128
   rdr pass quick from any to any port 80 - 127.0.0.1 80
  
   pass quick from liberados to any keep state
   pass quick from any to liberados keep state
  
   Acho que é isso.
  
   2012/4/9 joao jamaicabsd jamaica...@gmail.com
  
Bom dia pessoal.
Estou fazendo uma ferramenta de autenticação e consigo redirecionar o
trafego da rede local para a 80 no meu server, mas como posso fazer
  para
que após o usuário validar seu usuário e senha ele ser enviado para o
proprio server na 3128?
Estou usando PHP.
Alguém pode me ajudar?
Obrigado.
-
Histórico: http://www.fug.com.br/historico/html/freebsd/
Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd
   
  
  
  
   --
   Rafael Henrique da Silva Faria
   -
   Histórico: http://www.fug.com.br/historico/html/freebsd/
   Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd
  
 
 
 
  --
  E-mail: jamaica...@gmail.com
  Aux Suporte de Sistemas (UNISUL)
  E-mail: joao.may...@unisul.br
  MSN: joaomayk...@hotmail.com
  Cel: (48) 9144 2326
  -
  Histórico: http://www.fug.com.br/historico/html/freebsd/
  Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd
 



 --
 Rafael Henrique da Silva Faria
 -
 Histórico: http://www.fug.com.br/historico/html/freebsd/
 Sair da lista: 

Re: [FUG-BR] Redirecionar conexao após ter redirecionado para a 80

2012-04-09 Por tôpico Marcelo Gondim
Em 09/04/2012 14:02, joao jamaicabsd escreveu:
 HUmmm acho que entendi.
 Então, quando o usuário logar devo pegar este IP e jogar em uma tabela no
 PF, massa vou testar, mas agora como vou remover esse ip desta tabela ou
 ela sumir se ficar inativa?

 Uma vez consegui fazer essas auterações com a utilização do Sudo, conhece?
 Muito obrigado e vou pesquisar e fazer testes referente a essa sua dica.
 Obrigado e qualquer outra dica aí dos parceiros eu agradeço.

 João Maykon

Oi João tenho algo parecido aqui mas é com outra finalidade do tipo 
mandar uma mensagem para o assinante que está em atraso. Veja bem, nesse 
caso muito cuidado com o texto porque dizer que o cliente está devendo 
em tela pode gerar processo de danos morais e por isso não afirmamos mas 
colocamos que pode ter havido algum problema com o pagamento.
Bem, o que quero colocar é que quando o cliente está devendo de hora em 
hora no cron eu rodo um script php que checa quem está online no 
Mikrotik e na base de dados se o cara está devendo. Eu tenho 2 tabelas 
uma no PF e outra no IPFW quando o cara tá conectado e devendo eu jogo o 
IP dele nessas 2 tabelas que fazem o seguinte:

Na tabela do PF é feito um redir no NAT jogando o que vier dessa tabela 
com destino qualquer IP porta 80 jogando para o IP local porta 81.
No IPFW eu aceito a conexão na porta 81 vindo dos IPs da tabela e também 
bloqueio o acesso externo deixando apenas dns liberado 53/tcp/udp.

Assim que o cliente vê a mensagem é removido o IP dele das 2 tabelas e a 
conexão dele normaliza.








 Em 9 de abril de 2012 10:49, Rafael Henrique Faria
 rafaelhfa...@cenadigital.com.br  escreveu:

 Bom dia João.

 Se eu entendi corretamente, acho bom deixar claro para o pessoal que você
 está querendo implementar um Capitive Portal.

 Neste caso, você tem que se ater aos seguintes fatos:

 - Nenhum usuário por definição tem acesso a rede externa
 - Qualquer acesso a qualquer IP externo com destino na porta 80 é
 redirecionado para um IP interno em uma porta interna para autenticação
 - Passado na autenticação o IP autenticado tem que ter acesso a rede
 externa
 - Com acesso a rede externa, qualquer acesso a um IP qualquer com destino
 na porta 80 deve ser redirecionado para um IP interno na porta do proxy,
 formando assim o proxy transparente.
 - Após um logout, ou expiração do tempo, o IP liberado deve ser bloqueado
 novamente.

 Resumindo, você tem que construir um sistema que atenda esses passos.

 Pelo que eu entendi, o 1o. e o 2o. você já cuidou.
 O 3o, acredito que o ideal seria vê usar uma Tabela., no PF por exemplo.
 E usando o comando de adicionar e remover IPs da lista, assim, quando um
 usuário é liberado para passagem, você simplesmente adiciona o IP do mesmo
 a lista de liberados, e esta lista que estará tanto liberando o acesso
 quanto redirecionando para o proxy.

 Vale lembrar que por definição, apenas o root pode adicionar e remover ips
 de listas.
 Eu já usei uma vez, um daemon que rodava como root, e conseguia enviar para
 ele via uma porta especifica o comando de adicionar/remover IPs. Funcionava
 muito bem... com isso você consegue fazer o seu PHP apenas conectar nesta
 porta, e mandar o comando para o daemon executar o procedimento para você.

 Usando o PF, seria possivel com regras como esta:

 tableliberados  constant

 rdr pass quick fromliberados  to any port 80 -  127.0.0.1 3128
 rdr pass quick from any to any port 80 -  127.0.0.1 80

 pass quick fromliberados  to any keep state
 pass quick from any toliberados  keep state

 Acho que é isso.

 2012/4/9 joao jamaicabsdjamaica...@gmail.com

 Bom dia pessoal.
 Estou fazendo uma ferramenta de autenticação e consigo redirecionar o
 trafego da rede local para a 80 no meu server, mas como posso fazer para
 que após o usuário validar seu usuário e senha ele ser enviado para o
 proprio server na 3128?
 Estou usando PHP.
 Alguém pode me ajudar?
 Obrigado.


-
Histórico: http://www.fug.com.br/historico/html/freebsd/
Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd


Re: [FUG-BR] Redirecionar conexao após ter redirecionado para a 80

2012-04-09 Por tôpico joao jamaicabsd
Boa tarde.
Estou impressionado com a nossa lista e com todos vocês. Estou recebendo
idéias que serão muito úteis a toda a comunidade.
Rafael, você utiliza o PF e IPFW por funcionalidade ou pq para vc trabalhar
com essas duas tabelas vc tem que fazer desta maneira? É possível fazer
tudo em PF? Não tenho muito conhecimento em IPFW para ter que montar outro
FW.

Obrigado.


Em 9 de abril de 2012 15:16, Marcelo Gondim gon...@bsdinfo.com.brescreveu:

 Em 09/04/2012 14:02, joao jamaicabsd escreveu:
  HUmmm acho que entendi.
  Então, quando o usuário logar devo pegar este IP e jogar em uma tabela no
  PF, massa vou testar, mas agora como vou remover esse ip desta tabela ou
  ela sumir se ficar inativa?
 
  Uma vez consegui fazer essas auterações com a utilização do Sudo,
 conhece?
  Muito obrigado e vou pesquisar e fazer testes referente a essa sua dica.
  Obrigado e qualquer outra dica aí dos parceiros eu agradeço.
 
  João Maykon

 Oi João tenho algo parecido aqui mas é com outra finalidade do tipo
 mandar uma mensagem para o assinante que está em atraso. Veja bem, nesse
 caso muito cuidado com o texto porque dizer que o cliente está devendo
 em tela pode gerar processo de danos morais e por isso não afirmamos mas
 colocamos que pode ter havido algum problema com o pagamento.
 Bem, o que quero colocar é que quando o cliente está devendo de hora em
 hora no cron eu rodo um script php que checa quem está online no
 Mikrotik e na base de dados se o cara está devendo. Eu tenho 2 tabelas
 uma no PF e outra no IPFW quando o cara tá conectado e devendo eu jogo o
 IP dele nessas 2 tabelas que fazem o seguinte:

 Na tabela do PF é feito um redir no NAT jogando o que vier dessa tabela
 com destino qualquer IP porta 80 jogando para o IP local porta 81.
 No IPFW eu aceito a conexão na porta 81 vindo dos IPs da tabela e também
 bloqueio o acesso externo deixando apenas dns liberado 53/tcp/udp.

 Assim que o cliente vê a mensagem é removido o IP dele das 2 tabelas e a
 conexão dele normaliza.

 
 
 
 
 
 
 
  Em 9 de abril de 2012 10:49, Rafael Henrique Faria
  rafaelhfa...@cenadigital.com.br  escreveu:
 
  Bom dia João.
 
  Se eu entendi corretamente, acho bom deixar claro para o pessoal que
 você
  está querendo implementar um Capitive Portal.
 
  Neste caso, você tem que se ater aos seguintes fatos:
 
  - Nenhum usuário por definição tem acesso a rede externa
  - Qualquer acesso a qualquer IP externo com destino na porta 80 é
  redirecionado para um IP interno em uma porta interna para autenticação
  - Passado na autenticação o IP autenticado tem que ter acesso a rede
  externa
  - Com acesso a rede externa, qualquer acesso a um IP qualquer com
 destino
  na porta 80 deve ser redirecionado para um IP interno na porta do proxy,
  formando assim o proxy transparente.
  - Após um logout, ou expiração do tempo, o IP liberado deve ser
 bloqueado
  novamente.
 
  Resumindo, você tem que construir um sistema que atenda esses passos.
 
  Pelo que eu entendi, o 1o. e o 2o. você já cuidou.
  O 3o, acredito que o ideal seria vê usar uma Tabela., no PF por exemplo.
  E usando o comando de adicionar e remover IPs da lista, assim, quando um
  usuário é liberado para passagem, você simplesmente adiciona o IP do
 mesmo
  a lista de liberados, e esta lista que estará tanto liberando o acesso
  quanto redirecionando para o proxy.
 
  Vale lembrar que por definição, apenas o root pode adicionar e remover
 ips
  de listas.
  Eu já usei uma vez, um daemon que rodava como root, e conseguia enviar
 para
  ele via uma porta especifica o comando de adicionar/remover IPs.
 Funcionava
  muito bem... com isso você consegue fazer o seu PHP apenas conectar
 nesta
  porta, e mandar o comando para o daemon executar o procedimento para
 você.
 
  Usando o PF, seria possivel com regras como esta:
 
  tableliberados  constant
 
  rdr pass quick fromliberados  to any port 80 -  127.0.0.1 3128
  rdr pass quick from any to any port 80 -  127.0.0.1 80
 
  pass quick fromliberados  to any keep state
  pass quick from any toliberados  keep state
 
  Acho que é isso.
 
  2012/4/9 joao jamaicabsdjamaica...@gmail.com
 
  Bom dia pessoal.
  Estou fazendo uma ferramenta de autenticação e consigo redirecionar o
  trafego da rede local para a 80 no meu server, mas como posso fazer
 para
  que após o usuário validar seu usuário e senha ele ser enviado para o
  proprio server na 3128?
  Estou usando PHP.
  Alguém pode me ajudar?
  Obrigado.
 

 -
 Histórico: http://www.fug.com.br/historico/html/freebsd/
 Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd




-- 
E-mail: jamaica...@gmail.com
Aux Suporte de Sistemas (UNISUL)
E-mail: joao.may...@unisul.br
MSN: joaomayk...@hotmail.com
Cel: (48) 9144 2326
-
Histórico: http://www.fug.com.br/historico/html/freebsd/
Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd


Re: [FUG-BR] Redirecionar conexao após ter redirecionado para a 80

2012-04-09 Por tôpico Alessandro de Souza Rocha
rdr on $ext_if1 proto tcp from any to any port 1433 - 192.168.0.199
rdr on $ext_if1 proto tcp from any to any port 3389 - 192.168.0.198
rdr on $ext_if1 proto tcp from any to any port 80 - 192.168.0.199
___


Em 9 de abril de 2012 16:35, joao jamaicabsd jamaica...@gmail.com escreveu:
 Boa tarde.
 Estou impressionado com a nossa lista e com todos vocês. Estou recebendo
 idéias que serão muito úteis a toda a comunidade.
 Rafael, você utiliza o PF e IPFW por funcionalidade ou pq para vc trabalhar
 com essas duas tabelas vc tem que fazer desta maneira? É possível fazer
 tudo em PF? Não tenho muito conhecimento em IPFW para ter que montar outro
 FW.

 Obrigado.


 Em 9 de abril de 2012 15:16, Marcelo Gondim gon...@bsdinfo.com.brescreveu:

 Em 09/04/2012 14:02, joao jamaicabsd escreveu:
  HUmmm acho que entendi.
  Então, quando o usuário logar devo pegar este IP e jogar em uma tabela no
  PF, massa vou testar, mas agora como vou remover esse ip desta tabela ou
  ela sumir se ficar inativa?
 
  Uma vez consegui fazer essas auterações com a utilização do Sudo,
 conhece?
  Muito obrigado e vou pesquisar e fazer testes referente a essa sua dica.
  Obrigado e qualquer outra dica aí dos parceiros eu agradeço.
 
  João Maykon

 Oi João tenho algo parecido aqui mas é com outra finalidade do tipo
 mandar uma mensagem para o assinante que está em atraso. Veja bem, nesse
 caso muito cuidado com o texto porque dizer que o cliente está devendo
 em tela pode gerar processo de danos morais e por isso não afirmamos mas
 colocamos que pode ter havido algum problema com o pagamento.
 Bem, o que quero colocar é que quando o cliente está devendo de hora em
 hora no cron eu rodo um script php que checa quem está online no
 Mikrotik e na base de dados se o cara está devendo. Eu tenho 2 tabelas
 uma no PF e outra no IPFW quando o cara tá conectado e devendo eu jogo o
 IP dele nessas 2 tabelas que fazem o seguinte:

 Na tabela do PF é feito um redir no NAT jogando o que vier dessa tabela
 com destino qualquer IP porta 80 jogando para o IP local porta 81.
 No IPFW eu aceito a conexão na porta 81 vindo dos IPs da tabela e também
 bloqueio o acesso externo deixando apenas dns liberado 53/tcp/udp.

 Assim que o cliente vê a mensagem é removido o IP dele das 2 tabelas e a
 conexão dele normaliza.

 
 
 
 
 
 
 
  Em 9 de abril de 2012 10:49, Rafael Henrique Faria
  rafaelhfa...@cenadigital.com.br  escreveu:
 
  Bom dia João.
 
  Se eu entendi corretamente, acho bom deixar claro para o pessoal que
 você
  está querendo implementar um Capitive Portal.
 
  Neste caso, você tem que se ater aos seguintes fatos:
 
  - Nenhum usuário por definição tem acesso a rede externa
  - Qualquer acesso a qualquer IP externo com destino na porta 80 é
  redirecionado para um IP interno em uma porta interna para autenticação
  - Passado na autenticação o IP autenticado tem que ter acesso a rede
  externa
  - Com acesso a rede externa, qualquer acesso a um IP qualquer com
 destino
  na porta 80 deve ser redirecionado para um IP interno na porta do proxy,
  formando assim o proxy transparente.
  - Após um logout, ou expiração do tempo, o IP liberado deve ser
 bloqueado
  novamente.
 
  Resumindo, você tem que construir um sistema que atenda esses passos.
 
  Pelo que eu entendi, o 1o. e o 2o. você já cuidou.
  O 3o, acredito que o ideal seria vê usar uma Tabela., no PF por exemplo.
  E usando o comando de adicionar e remover IPs da lista, assim, quando um
  usuário é liberado para passagem, você simplesmente adiciona o IP do
 mesmo
  a lista de liberados, e esta lista que estará tanto liberando o acesso
  quanto redirecionando para o proxy.
 
  Vale lembrar que por definição, apenas o root pode adicionar e remover
 ips
  de listas.
  Eu já usei uma vez, um daemon que rodava como root, e conseguia enviar
 para
  ele via uma porta especifica o comando de adicionar/remover IPs.
 Funcionava
  muito bem... com isso você consegue fazer o seu PHP apenas conectar
 nesta
  porta, e mandar o comando para o daemon executar o procedimento para
 você.
 
  Usando o PF, seria possivel com regras como esta:
 
  tableliberados  constant
 
  rdr pass quick fromliberados  to any port 80 -  127.0.0.1 3128
  rdr pass quick from any to any port 80 -  127.0.0.1 80
 
  pass quick fromliberados  to any keep state
  pass quick from any toliberados  keep state
 
  Acho que é isso.
 
  2012/4/9 joao jamaicabsdjamaica...@gmail.com
 
  Bom dia pessoal.
  Estou fazendo uma ferramenta de autenticação e consigo redirecionar o
  trafego da rede local para a 80 no meu server, mas como posso fazer
 para
  que após o usuário validar seu usuário e senha ele ser enviado para o
  proprio server na 3128?
  Estou usando PHP.
  Alguém pode me ajudar?
  Obrigado.
 

 -
 Histórico: http://www.fug.com.br/historico/html/freebsd/
 Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd




 --
 E-mail: jamaica...@gmail.com
 Aux 

Re: [FUG-BR] Redirecionar conexao após ter redirecionado para a 80

2012-04-09 Por tôpico Marcelo Gondim
Em 09/04/2012 16:35, joao jamaicabsd escreveu:
 Boa tarde.
 Estou impressionado com a nossa lista e com todos vocês. Estou recebendo
 idéias que serão muito úteis a toda a comunidade.
 Rafael, você utiliza o PF e IPFW por funcionalidade ou pq para vc trabalhar
 com essas duas tabelas vc tem que fazer desta maneira? É possível fazer
 tudo em PF? Não tenho muito conhecimento em IPFW para ter que montar outro
 FW.

 Obrigado.

Opa agora fiquei na dúvida se você perguntou pra mim ou pro Rafael mas 
vou te responder mesmo assim.  :)
Eu uso aqui um misto de PF e IPFW porque gosto bastante do IPFW como 
Firewall e acho o natd com menos recursos que o NAT do PF.
Como o FreeBSD me permite usar PF, IPF e IPFW  então não foi problema 
usar o NAT de um com o Firewall do outro.
Quanto à sua resposta você pode sim usar somente o PF para isso, minha 
solução foi apenas uma vontade pessoal.

Grande abraço



 Em 9 de abril de 2012 15:16, Marcelo Gondimgon...@bsdinfo.com.brescreveu:

 Em 09/04/2012 14:02, joao jamaicabsd escreveu:
 HUmmm acho que entendi.
 Então, quando o usuário logar devo pegar este IP e jogar em uma tabela no
 PF, massa vou testar, mas agora como vou remover esse ip desta tabela ou
 ela sumir se ficar inativa?

 Uma vez consegui fazer essas auterações com a utilização do Sudo,
 conhece?
 Muito obrigado e vou pesquisar e fazer testes referente a essa sua dica.
 Obrigado e qualquer outra dica aí dos parceiros eu agradeço.

 João Maykon
 Oi João tenho algo parecido aqui mas é com outra finalidade do tipo
 mandar uma mensagem para o assinante que está em atraso. Veja bem, nesse
 caso muito cuidado com o texto porque dizer que o cliente está devendo
 em tela pode gerar processo de danos morais e por isso não afirmamos mas
 colocamos que pode ter havido algum problema com o pagamento.
 Bem, o que quero colocar é que quando o cliente está devendo de hora em
 hora no cron eu rodo um script php que checa quem está online no
 Mikrotik e na base de dados se o cara está devendo. Eu tenho 2 tabelas
 uma no PF e outra no IPFW quando o cara tá conectado e devendo eu jogo o
 IP dele nessas 2 tabelas que fazem o seguinte:

 Na tabela do PF é feito um redir no NAT jogando o que vier dessa tabela
 com destino qualquer IP porta 80 jogando para o IP local porta 81.
 No IPFW eu aceito a conexão na porta 81 vindo dos IPs da tabela e também
 bloqueio o acesso externo deixando apenas dns liberado 53/tcp/udp.

 Assim que o cliente vê a mensagem é removido o IP dele das 2 tabelas e a
 conexão dele normaliza.







 Em 9 de abril de 2012 10:49, Rafael Henrique Faria
 rafaelhfa...@cenadigital.com.br   escreveu:

 Bom dia João.

 Se eu entendi corretamente, acho bom deixar claro para o pessoal que
 você
 está querendo implementar um Capitive Portal.

 Neste caso, você tem que se ater aos seguintes fatos:

 - Nenhum usuário por definição tem acesso a rede externa
 - Qualquer acesso a qualquer IP externo com destino na porta 80 é
 redirecionado para um IP interno em uma porta interna para autenticação
 - Passado na autenticação o IP autenticado tem que ter acesso a rede
 externa
 - Com acesso a rede externa, qualquer acesso a um IP qualquer com
 destino
 na porta 80 deve ser redirecionado para um IP interno na porta do proxy,
 formando assim o proxy transparente.
 - Após um logout, ou expiração do tempo, o IP liberado deve ser
 bloqueado
 novamente.

 Resumindo, você tem que construir um sistema que atenda esses passos.

 Pelo que eu entendi, o 1o. e o 2o. você já cuidou.
 O 3o, acredito que o ideal seria vê usar uma Tabela., no PF por exemplo.
 E usando o comando de adicionar e remover IPs da lista, assim, quando um
 usuário é liberado para passagem, você simplesmente adiciona o IP do
 mesmo
 a lista de liberados, e esta lista que estará tanto liberando o acesso
 quanto redirecionando para o proxy.

 Vale lembrar que por definição, apenas o root pode adicionar e remover
 ips
 de listas.
 Eu já usei uma vez, um daemon que rodava como root, e conseguia enviar
 para
 ele via uma porta especifica o comando de adicionar/remover IPs.
 Funcionava
 muito bem... com isso você consegue fazer o seu PHP apenas conectar
 nesta
 porta, e mandar o comando para o daemon executar o procedimento para
 você.
 Usando o PF, seria possivel com regras como esta:

 tableliberados   constant

 rdr pass quick fromliberados   to any port 80 -   127.0.0.1 3128
 rdr pass quick from any to any port 80 -   127.0.0.1 80

 pass quick fromliberados   to any keep state
 pass quick from any toliberados   keep state

 Acho que é isso.

 2012/4/9 joao jamaicabsdjamaica...@gmail.com

 Bom dia pessoal.
 Estou fazendo uma ferramenta de autenticação e consigo redirecionar o
 trafego da rede local para a 80 no meu server, mas como posso fazer
 para
 que após o usuário validar seu usuário e senha ele ser enviado para o
 proprio server na 3128?
 Estou usando PHP.
 Alguém pode me ajudar?
 Obrigado.


-
Histórico: 

Re: [FUG-BR] Redirecionar conexao após ter redirecionado para a 80

2012-04-09 Por tôpico Marcelo Gondim
Em 09/04/2012 16:44, Alessandro de Souza Rocha escreveu:
 rdr on $ext_if1 proto tcp from any to any port 1433 -  192.168.0.199
 rdr on $ext_if1 proto tcp from any to any port 3389 -  192.168.0.198
 rdr on $ext_if1 proto tcp from any to any port 80 -  192.168.0.199
Opa Alessandro

Gosto de adicionar uma regra antes do redir tipo essa abaixo quando tem 
NAT N:1 :

no rdr on $ext_if1 proto tcp from any port  1024 to seu_IP_publico_NAT

rdr on $ext_if1 proto tcp from any to any port 1433 - 192.168.0.199
rdr on $ext_if1 proto tcp from any to any port 3389 - 192.168.0.198
rdr on $ext_if1 proto tcp from any to any port 80 - 192.168.0.199

Isso porque se coincidir de sair um pacote pelo Firewall cuja porta 
origem for por exemplo 1433 a resposta voltará para o IP público nessa 
porta e cairá no redir jogando o pacote para o IP 192.168.0.199 e não 
para a máquina que fez a solicitação. Se alguém souber outra forma 
elegante de fazer isso é só mandar.  ;)

 ___


 Em 9 de abril de 2012 16:35, joao jamaicabsdjamaica...@gmail.com  escreveu:
 Boa tarde.
 Estou impressionado com a nossa lista e com todos vocês. Estou recebendo
 idéias que serão muito úteis a toda a comunidade.
 Rafael, você utiliza o PF e IPFW por funcionalidade ou pq para vc trabalhar
 com essas duas tabelas vc tem que fazer desta maneira? É possível fazer
 tudo em PF? Não tenho muito conhecimento em IPFW para ter que montar outro
 FW.

 Obrigado.


 Em 9 de abril de 2012 15:16, Marcelo Gondimgon...@bsdinfo.com.brescreveu:

 Em 09/04/2012 14:02, joao jamaicabsd escreveu:
 HUmmm acho que entendi.
 Então, quando o usuário logar devo pegar este IP e jogar em uma tabela no
 PF, massa vou testar, mas agora como vou remover esse ip desta tabela ou
 ela sumir se ficar inativa?

 Uma vez consegui fazer essas auterações com a utilização do Sudo,
 conhece?
 Muito obrigado e vou pesquisar e fazer testes referente a essa sua dica.
 Obrigado e qualquer outra dica aí dos parceiros eu agradeço.

 João Maykon
 Oi João tenho algo parecido aqui mas é com outra finalidade do tipo
 mandar uma mensagem para o assinante que está em atraso. Veja bem, nesse
 caso muito cuidado com o texto porque dizer que o cliente está devendo
 em tela pode gerar processo de danos morais e por isso não afirmamos mas
 colocamos que pode ter havido algum problema com o pagamento.
 Bem, o que quero colocar é que quando o cliente está devendo de hora em
 hora no cron eu rodo um script php que checa quem está online no
 Mikrotik e na base de dados se o cara está devendo. Eu tenho 2 tabelas
 uma no PF e outra no IPFW quando o cara tá conectado e devendo eu jogo o
 IP dele nessas 2 tabelas que fazem o seguinte:

 Na tabela do PF é feito um redir no NAT jogando o que vier dessa tabela
 com destino qualquer IP porta 80 jogando para o IP local porta 81.
 No IPFW eu aceito a conexão na porta 81 vindo dos IPs da tabela e também
 bloqueio o acesso externo deixando apenas dns liberado 53/tcp/udp.

 Assim que o cliente vê a mensagem é removido o IP dele das 2 tabelas e a
 conexão dele normaliza.







 Em 9 de abril de 2012 10:49, Rafael Henrique Faria
 rafaelhfa...@cenadigital.com.brescreveu:

 Bom dia João.

 Se eu entendi corretamente, acho bom deixar claro para o pessoal que
 você
 está querendo implementar um Capitive Portal.

 Neste caso, você tem que se ater aos seguintes fatos:

 - Nenhum usuário por definição tem acesso a rede externa
 - Qualquer acesso a qualquer IP externo com destino na porta 80 é
 redirecionado para um IP interno em uma porta interna para autenticação
 - Passado na autenticação o IP autenticado tem que ter acesso a rede
 externa
 - Com acesso a rede externa, qualquer acesso a um IP qualquer com
 destino
 na porta 80 deve ser redirecionado para um IP interno na porta do proxy,
 formando assim o proxy transparente.
 - Após um logout, ou expiração do tempo, o IP liberado deve ser
 bloqueado
 novamente.

 Resumindo, você tem que construir um sistema que atenda esses passos.

 Pelo que eu entendi, o 1o. e o 2o. você já cuidou.
 O 3o, acredito que o ideal seria vê usar uma Tabela., no PF por exemplo.
 E usando o comando de adicionar e remover IPs da lista, assim, quando um
 usuário é liberado para passagem, você simplesmente adiciona o IP do
 mesmo
 a lista de liberados, e esta lista que estará tanto liberando o acesso
 quanto redirecionando para o proxy.

 Vale lembrar que por definição, apenas o root pode adicionar e remover
 ips
 de listas.
 Eu já usei uma vez, um daemon que rodava como root, e conseguia enviar
 para
 ele via uma porta especifica o comando de adicionar/remover IPs.
 Funcionava
 muito bem... com isso você consegue fazer o seu PHP apenas conectar
 nesta
 porta, e mandar o comando para o daemon executar o procedimento para
 você.
 Usando o PF, seria possivel com regras como esta:

 tableliberadosconstant

 rdr pass quick fromliberadosto any port 80 -127.0.0.1 3128
 rdr pass quick from any to any