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: 34.175 ]

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

Estudo sobre os tipos de gerenciamento do SO Linux

Instalação de VMWare Workstation 6.x em sistemas Mandriva Linux

Kolourpaint - Um editor gráfico muito útil

Uma breve introdução ao Audacity

Servidor VoIP com Slackware e Asterisk

  
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