Terminal de acesso (Quiosque) com Debian e Firefox

Esse artigo tem por intuito auxiliar na criação de terminais de acesso, os chamados quiosques, para aplicativos web. Pode ser adaptado para a utilização de aplicativos na máquina também, com poucas alterações. Quiosques tem por objetivo fornecer um único serviço de forma objetiva, limitando a ação do usuário na máquina e aproveitar máquinas de baixa performance.

[ Hits: 32.841 ]

Por: Daniel Magalhães Bicalho em 24/11/2010


Finalizando



Firewall

Após esse passo, também criamos um script de firewall, para, caso o usuário consiga acesso a barra de endereços, não consiga navegar em outras páginas.

Exemplo de script:

#!/bin/bash
IPTABLES=/sbin/iptables

# Apagando todas as regras
$IPTABLES -F
$IPTABLES -X
$IPTABLES -t nat -F
$IPTABLES -t nat -X
$IPTABLES -t mangle -F
$IPTABLES -t mangle -X


# Mudando a politica
$IPTABLES -P INPUT DROP
$IPTABLES -P OUTPUT DROP
$IPTABLES -P FORWARD DROP

# Libera conexões pre-estabelecidas
$IPTABLES -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

# Liberar https
$IPTABLES -A OUTPUT -p tcp -d 200.131.68.7 --sport 1024:65535 --destination-port 443 -m state --state NEW -j ACCEPT

# Liberar http
$IPTABLES -A OUTPUT -p tcp -d 200.131.68.7 --destination-port 80 -m state --state NEW -j ACCEPT

# Liberar ssh
$IPTABLES -A INPUT -i eth0 -p tcp --dport 22 -j ACCEPT
$IPTABLES -A INPUT -p tcp --dport 22 -m state --state NEW -j ACCEPT

# Liberar ntp dos clientes
$IPTABLES -A OUTPUT -p udp --destination-port 123 -m state --state NEW -j ACCEPT

# Desloquear academico
#$IPTABLES -v -I OUTPUT -d 200.131.68.7 -j ACCEPT

# Liberar DNS
$IPTABLES -A OUTPUT -p tcp --dport 53 -m state --state NEW -j ACCEPT
$IPTABLES -A OUTPUT -p udp --dport 53 -m state --state NEW -j ACCEPT

Configurando o Iceweasel

No caso deste quiosque, não foi necessário instalar nenhum plugin. Avalie a necessidade da sua solução.

Agora, vamos acessar o console de configurações do Iceweasel, através do endereço about:config.

Vamos desabilitar a recuperação de sessão do navegador, de forma que, em caso de erro, não seja necessária nenhuma intervenção do usuário.

Localizar a entrada browser.sessionstore.enable e alterar o seu valor para false para que o navegador fique em tela cheia e não permita intervenção do usuário para o modo janela.

Reinicie o computador, que deve iniciar com o página desejada.

Espero ter ajudado.

Página anterior    

Páginas do artigo
   1. Introdução
   2. Configurando o ambiente
   3. Finalizando
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

Configurando sua gravadora no Linux

Incrementando o Spacefm com plugins e ações personalizadas

Utilizando o celular como webcam no Linux

Instalando fontes true type no Linux via Kcontrol

Image2mpeg - Prepare suas imagens para apresentação em DVD

  
Comentários
[1] Comentário enviado por removido em 25/11/2010 - 12:17h

Muito bem detalhado.
Parabéns pelo artigo !

[2] Comentário enviado por reng.unip em 26/11/2010 - 16:26h

Ótimo artigo, muito proveitoso, parabéns.

[3] Comentário enviado por gorke em 29/11/2010 - 12:46h

Vlw pelo artigo. Muito bem feito.

Tava procurando algo assim. Vou usar seu esquema como base para o que preciso aqui.

[4] Comentário enviado por danielmb em 29/11/2010 - 14:16h

Obrigado pelo apoio pessoal

[5] Comentário enviado por vitorcid em 01/12/2010 - 15:41h

Daniel, mto útil seu artigo! Parabéns.

Cara, as linha que devem ser escritas no .bashrc não funcionaram aqui pra mim.
O ctrl e os F?? continuam funcionando e o iceweasel não fica em loop.

Fiz num ambiente Debian Lenny, alguma sugestão do que possa ser?

abraço

[6] Comentário enviado por vitorcid em 01/12/2010 - 16:08h

correcao, onde eu escrevi .bashrc na verdade é o .xinitrc
mesmo assim não funcionou

abraços

[7] Comentário enviado por danielmb em 02/12/2010 - 08:22h

vitorcid,

A minha solução também foi baseada em um Debian Lenny e foi tudo testado bem antes da redação do material.
Vou fazer alguns questionamentos que podem parece triviais:

você já verificou as permissões do arquivo?
o .xinitrc está no home do usuário configurado para acessar sem login?
verifique a sintaxe e qualquer dúvida, poste o seu .xinitrc aqui para dar uma checada.

Abraços

[8] Comentário enviado por rodrigorcoimbra em 15/03/2012 - 09:57h

danielmb,


no debian squeeze nao tem o X11R6, fiquei meio perdido em como proceder, pois só tem o X11, me desculpe a ignorancia, pois não tenho conhecimento suficiente na area!

[9] Comentário enviado por alerocha79 em 02/12/2013 - 19:33h

Quiosque funcionando: consegui usando o Debian 7.2, bloqueia todos os sites da internet e só acessa um domínio.

Passos:

A) Configurar o firewall (arquivo: firewall.sh, e dê permissão de execução – sudo chmod a+x firewall.sh, salvei em /home/firewall.sh):

#######################INICIODOARQUIVO########
#!/bin/bash

# Apagando todas as regras
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X

# Mudando a politica – Começa bloqueando tudo
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP

# Libera conexões pre-estabelecidas
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

# Liberar https – aqui você coloca o ip do domínio
iptables -A OUTPUT -p tcp -d xx.xx.xx.xx --dport 443 -m state --state NEW -j ACCEPT

# Liberar http – aqui você coloca o ip do domínio
iptables -A OUTPUT -p tcp -d xx.xx.xx.xx --dport 80 -m state --state NEW -j ACCEPT

# Liberar DNS
iptables -A OUTPUT -p tcp --dport 53 -m state --state NEW -j ACCEPT
iptables -A OUTPUT -p udp --dport 53 -m state --state NEW -j ACCEPT

#Liberar DHCP - na minha rede interna usa dhcp
iptables -A OUTPUT -p tcp --dport 67 -m state --state NEW -j ACCEPT
iptables -A OUTPUT -p udp --dport 67 -m state --state NEW -j ACCEPT

#######################FIM

B) deixar configurado para quando iniciar a máquina executar o firewall.sh
edite:
sudo gedit /etc/rc.local

#############INICIODOARQUIVO
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

/home/./firewall.sh
exit 0
#################################FIM

Inicie:
sudo /etc/init.d/rc.local start

C)Agendei para executar o script de 5 em 5 minutos no cron (precaução minha):

Configurando o cron:
crontab -e

######INICIO
# Todos os dias de 5 em 5 minutos
*/5 * * * * /etc/init.d/rc.local start

#######FIM

Monitorando para ver se está sendo executado:
sudo tail -f grep CRON /var/log/syslog

D) Configurando para iniciar a máquina e abrir só o firefox
edite:
sudo gedit /etc/X11/Xsession.d/99x11-common_start

###########INICIODOARQUIVO

# $Id: 99x11-common_start 305 2005-07-03 18:51:43Z dnusinow $

# This file is sourced by Xsession(5), not executed.

#exec $STARTUP

exec firefox javascript:%20resizeTo\(1280,1024\)

# vim:set ai et sts=2 sw=2 tw=80:

######FIM


[10] Comentário enviado por joorlando3 em 26/07/2014 - 09:01h

Obrigado pelo artigo, com algumas modificações consegui fazer um "quiosque" com o Debian 7.5. Muito bom mesmo.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts