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.834 ]

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

Compiz Fusion no Ubuntu

Nota Fiscal Eletrônica 2.0 em linha de comando (parte 1)

Lançamento do GFP Open (Gerenciador Financeiro Pessoal) versão 0.0.1.2

Atualizando o Slackware com SlackGrade

Um olhar sobre o Portage-Tools - Parte III

  
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