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

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


Configurando o ambiente



Iniciando a configuração do ambiente.

Editando o inittab:

# vi /etc/inittab

No inittab alterar a linha do runlevel da seguinte forma:

De:

id:2:initdefault:

Para:

id:5:initdefault:

Desabilitar o acesso ao console, comentando as seguintes linhas:

#2:23:respawn:/sbin/getty 38400 tty2
#3:23:respawn:/sbin/getty 38400 tty3
#4:23:respawn:/sbin/getty 38400 tty4
#5:23:respawn:/sbin/getty 38400 tty5
#6:23:respawn:/sbin/getty 38400 tty6

No final do arquivo, adicionar:

#Alterando para modo gráfico sem autenticacão
x2:5:respawn:/usr/X11R6/bin/nologonX

Salve o arquivo e reinicie o init.

# init q

Deve-se criar um usuário limitado, com o qual será executado a solução.

Agora vamos criar um script para a execução do Xorg sem a necessidade e login:

# vi /usr/X11R6/bin/nologonX

O script contém o seguinte:

#!/bin/bash
su - /usr/X11R6/bin/startx < /dev/tty14 > /dev/tty15

Após a sua criação, salve e torne-o executável:

# chmod +x /usr/X11R6/bin/nologonX

Apenas por questão de segurança, verificar as permissões do script:

# ls -l /usr/X11R6/bin/nologonX

Que deve exibir a seguinte saída:

rwxr-x-rx

Atenção, após a configuração do ambiente gráfico, ao se iniciar a máquina, o console ficará indisponível, sendo acessado apenas via SSH, portanto cuidado com o acesso remoto ao servidor, este é essencial para futura manutenção do equipamento.

Editar o arquivo .xinitrc:

# vi ~/.xinitrc

Insira as seguintes linhas:

# Limitando o mouse a 3 botoes
xmodmap -e "pointer = 1 4 5"
# Desabilitar a tecla control
xmodmap -e "clear Control"
# Desabilitar a tecla Alt
xmodmap -e "clear Mod1"
# Mapear as teclas de função, desativando-as
xmodmap -e "keysym F12 = A"
xmodmap -e "keysym F11 = A"
xmodmap -e "keysym F3 = A"

# Iniciar o gerenciador de janelas XFCE
exec /usr/bin/xfwm4 &

# loop infinito, evitando acesso ao console.
# Dessa forma se o navegador for fechado ou apresentar algum erro
# o script de inicialização é reinvocado
while true; do
   exec iceweasel
done

GRUB

Limitar o acesso ao grub, inserindo senha.

Criar uma senha criptografada:

# grub-md5-crypt

O comando grub-md5-crypt gera um hash, que será utilizado no arquivo de configuração do grub. Copie o hash gerado.

Inserir a senha de administrador no grub:

# vi /boot/grub/menu.lst

Descomentar a seguinte linha:

password --md5 hash-aqui

Insira o hash criptografado nesta linha.

Remover a entrada do single-user do menu.lst, comentando as seguintes linhas (ou semelhantes):

# title Debian GNU/Linux, kernel 2.6.26-2-486 (single-user mode)
# root (hd0,0)
#kernel /boot/vmlinuz-2.6.26-2-486 root=/dev/hda1 ro single
#initrd /boot/initrd.img-2.6.26-2-486

Configurar o tempo de espera de inicialização para 0:

timeout 5

Altere o valor de 5 (cinco) para 0 (zero).

Página anterior     Próxima página

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

WhatsApp no Debian 8.7.1 via Genymotion

Hugin - Criando fotos panorâmicas navegáveis

Matando o rato

Kolourpaint - Um editor gráfico muito útil

Conhecendo o POV-Ray

  
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