Mostrando postagens com marcador Linux. Mostrar todas as postagens
Mostrando postagens com marcador Linux. Mostrar todas as postagens

05/06/2020

Scripts de inicialização com Systemd

     O systemd é um sistema de inicialização (init system) composto por um conjunto de programas executado em segundo plano (ou seja, um daemon). Atualmente, a maioria das distribuições linux utiliza este daemon para gerenciar a inicialização do sistema. Dessa forma, se for necessário adcionar algum script a inicialização do Linux, não basta mais colocar o mesmo no /etc/rc.local, é necessário seguir o padrão do systemd.

     A inclusão de um script na inicializa é necessário que sejam seguidos alguns passos conforme a seguir.

1. Criação do script

     Embora o systemd seja o responsável pela inicialização do Linux, ele não inicializa scripts naturalmente, logo o script propriamente dito ainda é necessário.

     Crie o script para executar a ação desejada e salve no diretório que desejar. Como exemplo, será utilizado o script vpn_manager.sh salvo em /usr/local/sbin, pois facilita a posterior utilização.

2. Definir o momento da execução.

     O systemd executa as units (seus scripts) de acordo com o nível de execução definido no script. Assim, para informar quando deve ocorrer a execução, é necessário informar após qual processo ela deve ocorrer.
systemd-analyze plot > systemd.svg 
     O comando acima gera um relatório com todas as inicializações, sequência e tempo de inicialização individual, resultando em uma “imagem” com um gráfico. Para conseguir visualiza-la pode-se utilizar um navegador como Chrome, Chromium ou Firefox. Ou então algum programa de imagem ImageMagick, gimp, inkscape, etc.

3. Criando um serviço no daemon

Criar um arquivo com a nomenclatura [vpn_manager].service em /lib/systemd/system/, incluindo o conteúdo a seguir:
[Unit]
# Descricao do que sera executado
Description=gerenciamento de vpn
# Esta unit sera executada apos o servico definido
After=network.service openvpn.service

[Service]
# Tipo de inicialização
Type=simple
# Para que o systema considere o servico como ativo após executado
#RemainAfterExit=yes
# Este campo exige o caminho completo até o script a ser executado
ExecStart=/usr/local/sbin/vpn_manager.sh

[Install]
# Serviço valido para o runlevel multi-user.targe
WantedBy=multi-user.target 
Outras configurações pode ser realizadas, incluindo opções de start, status e stop. Mais informações podem ser encontradas nesse link ou nas referências.

4. Efetivando a configuração

chmod +x /usr/local/sbin/vpn_manager.sh
systemctl enable /lib/systemd/system/vpn_manager.service
systemctl daemon-reload
reboot
A primeira linha da permissão de execução para o script, caso ainda não tenha sido feito. A segunda habilita o service, a terceira recarrega ao daemon e a última reinicia o sistema para testar a configuração.  Sempre que forem realizadas alterações no daemon, o mesmo deve ser recarregado.

12/05/2020

Acessar Linux remotamente via RDP

      Geralmente os acesso remotos são realizados nos servidores via ssh. Mas por algum motivo, pode vir a ser necessário um acesso ao ambiente gráfico de um equipamento que não é um servidor e que somente o acesso ssh pode não resolver.
     Em momentos distintos, relativamente próximos, tive necessidade deste tipo de acesso em dois computadores, com distribuições Mint e Ubuntu e não fiquei muito surpreso ao ver que para cada uma é necessária uma configuração diferente.
     Logo, seguem as configurações realizadas em casa distribuição, que obviamente foram retiradas de algumas outras páginas, cujos endereços estão nas referências.


Configuração no Mint

Nesse senário, é possível apenas uma conexão remova por usuário, podendo o usuário estar logado localmente

1. Basta instalar o pacotes necessários e reiniciar o computador:
# sudo apt-get install xrdp xorgxrdp
2. Configura xrdp para permitir uma sessão remota. Caso essa linha não seja configurada, um erro de acesso é exibido após a senha. Alterar para mate-session ou para o ambiente gráfico que estiver utilizando
# echo env -u SESSION_MANAGER -u DBUS_SESSION_BUS_ADDRESS cinnamon-session > ~/.xsession
3. Agora basta realizar o acesso por onde desejar, tando por outro SO Linux, utilizando o remina ou rdesktop ou por um SO Windows utilizando o assistente para conexão de área de trabalho remota.


Configuração no Ubuntu

1. Instalar o xrdp:
# apt-get install xrdp
2. Instalar o mate para área de trabalho alternativa, pois não encontrei uma solução para utilizar o Gnome.
# apt-get install mate-core mate-desktop-environment mate-notification-daemon
3. Configura xrdp para uso do mate
# sed -i.bak '/fi/a #xrdp multiple users configuration \n mate-session \n' /etc/xrdp/startwm.sh
4. Caso o teclado não funcione, este link foi o que funcionou para o meu caso. Caso está não funcione, em uma das referências, existe outra forma de realizar a configuração do teclado.

Referências


03/03/2020

Sincronização de data e hora no linux

     Em algumas instalações pode ocorrer de o servidor ficar com a hora incorreta devido ao fuso horário em que se encontra. A timezone na qual o dispositivo se encontra, pode ser verificada com o comando timedatectl e reconfigurada com o comando dpkg-reconfigure tzdata.

     Após a reconfiguração da timezone pode ser necessário manter o servidor com a hora sincronizada através de um servidor NTP. Essa configuração pode ser realizada com a instalação do ntpdate e configuração da sua execução periódica no crontab com a inclusão da linha * */2 * * * ntpdate [IP/URLdo servidor NTP 2>&1 >  /dev/null.
apt-get install ntpdate
     Alguns endereços de servidores NTP mais estáveis e/ou confiáveis são:
  • 0.pool.ntp.org
  • 1.pool.ntp.org
  • a.ntp.org
  • b.ntp.org
  • c.ntp.org
     Também existem outras formas de configurar a sincronização de data e hora, que podem ser pesquisadas na web ou em alguns dos links nas referências do post.

Referências 

12/07/2019

Instalando Packet Tracer no linux

     A Cisco disponibiliza um simulador de rede com alguns dos seus equipamentos, permitindo criar cenários que vão desde configurações básicas até ambientes completos. A utilização do programa exige uma conta no site netacad.com, ambiente de treinamento da Cisco, para acesso a todas as funcionalidades, no entanto permite um acesso mais restrito como usuário convidado.

     Após realizar o cadastramento e login no Net Acad, é possível baixar a última versão do programa (7.2.1), para Windows e Linux nas versões 32 e 64 bits. Além das versões para desktop, também são disponibilizadas versões para dispositivos móveis com iOS e Android.
     A instalação nos dois ambientes ocorre de forma trivial, no entanto para linux algumas bibliotecas ficam faltando, sendo necessário a sua instalação. De uma forma resumida, os passos a seguir resultam na instalação correta da versão 7.2.1:
1. Descompactar o aquivo .tar.gz em um diretório:
mkdir pkttar -xvzf Packet Tracer 7.2.1 for Linux 64 bit.tar.gz -C pkt/
2. Acessar o diretrório e instalar o programa. Caso seja executado como usuário sem poderes administrativos, será solicitada a senha de root.
cd pkt
./install
3. Agora a instalação das bibliotecas pendentes, como root.
apt install libqt5xml5 libqt5webkit5 libqt5script5 libqt5scripttools5 libqt5sql5
wget http://ftp.us.debian.org/debian/pool/main/libp/libpng/libpng12-0_1.2.50-2+deb8u3_amd64.deb
dpkg -i libpng12-0_1.2.50-2+deb8u3_amd64.deb
4. Pronto, o programa já pode ser executado com o comando abaixo:
/opt/pt/bin/PacketTracer7

Corrigindo o atalho

     Ao executar somente o comando packettracer, o programa não inicializa, sendo necessário passar todo o caminho como no passo 4 descrito anteriormente. 
     Para que esse comando execute corretamente, é necessário editar o arquivo /opt/pt/packettracer realizando uma das duas alterações descritas abaixo.
  • trocar a linha pushhd $PTDIR/bin > /dev/null por cd $PTDIR/bin > /dev/null. 
  • ou alterar a linha seguinte incluindo o caminho necessário /opt/pt/bin/PacketTracer7 "$@" > /dev/null 2>&1

Referências

16/02/2019

Raspberry - configuração básica

     Na última postagem compilei informações sobre algumas das formas de instalar um SO no Raspyberry. Agora descrevo algumas configurações que foram realizadas.

SSH

     Nas instalações do raspbian  que realizei, foi necessário instalar o openssh-server, já na versão pré configurada do ubuntu 16.04, a instalação não foi necessária. Mas de qualquer forma, o processo incluindo a instalação do pacote será:

1. Instalar o openssh-server
apt-get install openssh-server
2. Alterar a porta caso deseje
sed -i 's/#Port 22/Port 4242/' /etc/ssh/sshd_config
3. Habilitar a inicialização com o sistema

update-rd.c ssh enable
4. Reiniciar e testar o acesso.

Transmission Web

      Versão do cliente BitTorrent Transmission que roda em um servidor e pode ser gerenciada por uma interface web ou ou cliente instalado em outro computador.

1. Instalação
apt-get install transmission-daemon
2. Criação do diretório
mkdir /media/dados/torrents
chmod -R 775 /media/dados/torrents
chown -R [user_local]:debian-transmission /media/dados/torrents
usermod -G sudo,debian-transmission [user_local]

3. Configuração básica
service transmission-daemon stop
vim /etc/transmission-daemon/settings.json
...
"download-dir": "/media/dados/torrents",
"incomplete-dir-enabled": false,
"rpc-authentication-required": true,
"rpc-bind-address": “0.0.0.0″,
"rpc-enabled": true,
"rpc-password": "[senha]",
"rcp-port": 9091,
"rpc-username": "[user_local]",
"rpc-whitelist-enabled": false, 
...
service transmission-daemon start
4. Testar acesso em um computador cliente
  • Via navegador: http://192.168.1.2:9091
  • Via cliente remoto: 
    • apt-get install transmission-gtk e,
    • acessar trasmission-gui
    • configurar e conectar

SAMBA

     Compartilhamento de arquivos através do protocolo SMB, permitindo compartilhar os arquivos em rede.

1. Instalar os pacotes necessários
sudo apt-get install samba samba-common-bin
2. Adicionar o usuário ao samba
smbpasswv -a [user_local]
3. Configuração básica que necessitam ser alteradas
vim /etc/samba/smb.conf
....
workgroup=[grupo_dominio]
netbios name=[hostname]
....
; o ponto e virgula comenta a linha
[privado]
    comment = compartilhamento privado
    browseable = no
    path = /media/dados/privado
    guest ok = no
    writeable = yes
    public = no
    create mask = 775
    valid user=[usuario_valido]

   valid group=[grupo_usuario_valido]
 
[publico]
   comment = compartilhamento público

   browseable = yes
   path = /media/dados/publico
   guest ok = yes
   read only = yes
   writeable = no
   public = yes   

....
service smbd restart
     O que faz cada uma das opções nos compartilhamentos:
  • [nome]: nome do compartilhamento
  • comment: comentário
  • browseable : permite ou impede a descoberta de rede
  • path: caminho do diretório compartilhado. Se estiver incorreto, o compartilhamento será exibido mas não acessível.
  • guest ok: permite acesso com usuário anonimo
  • read only: se o mesmo é somente para leitura
  • writeable: permite que seja editável e tem prioridade sobre a configração read only
  • public: define se todos podem acessar o compartilhamento 
  • create mask: mascara com a qual o compartilhamentos será criado
  • valid user: usuário válidos para acessar
  • valid group: grupo válidos para acessa
    • em ambas as configuraçoes valid* o usuário deve ser adicionado com smbpasswd -a [login]
4. Testando o acesso
  • smb://192.162.1.2/publico
  • smb://192.162.1.2/privado

Referências

09/02/2019

Raspberry - Instalação de SO

     O Raspiberry Pi suporta uma gama de sistemas operacionais, estando dentre as oficiais, o Windows 10 IOT Core, Ubuntu e Raspbian (distribuição dedicada à Raspberry Pi, baseada no Debian). 
     As formas de instalação também são variadas, podendo ser realizado através
do:
  • NOOBS (New Out Of the Box Software): pacote que contem várias versões do SO com uma interface para instalação.
  • GNOME Disks:  é um front-end gráfico do udisks incluido no pacote gnome-disk-utility
  • Linha de comando 
     A instalação será realizada a partir de um computador com SO Linux e será utilizado o SO Ubuntu Server 16.04, podendo ser utilizados outros SOs Linux compatíveis. Para instalção do Windows ou a partir de ou SO, existem links nas referências.
     Após a instalação, documentei algumas configurações adicionais em um outro post.

Requisitos    

Instalação via linha de comando

1. Descobrir o ponto de montagem do cartao SD e desmontar
    df -h
    umont /dev/mmcblk0p1
    umont /dev/mmcblk0p2
2. Formatar o cartao de memoria em FAT
    mkfs.vfat -I -F 32 /dev/mmcblk0
3. Descompactar a iso em um diretorio qualquer e gravar no cartão
    unxz ubuntu-16.04-preinstalled-server-armhf+raspi3.img.xz
    dd bs=4M if=ubuntu....raspi3.img of=/dev/mmcblk0 status=progress conv=fsync

Instalação via Gnome Disk

     Possibilidade de instalação gráfica que já vem por default no ubuntu ou mint, mas caso necessário, a instalação pode ser realizada como descrito a seguir:
sudo apt-get install gnome-disk-utility

 Instalação
  1. Com o  Gnome Disks aberto, selecione o disco que será formatado e no canto superior esquerdo, abra o menu e escolha restaurar imagem no disco
  2. Na janela aberta, clique para buscar a imagens a ser instalada
  3. Na janela aberta, escola a ISO desejada
  4. Inicie o processo de  gravação
  5. Apenas confirme que a imagem será restaurada
  6. Aguarda alguns minutos para finalizar
  7. Remova o dispositivo no  mesmo menu onde iniciou o processo de restauração.


Usuário e senha

Após a instalação, o acesso poder ser realizado com os dados a seguirm de acordo com o SO instalado.
  • Ubuntu 16.04 server : usuário ubuntu e senha ubuntu
  • Raspbian server: usuário pi e senha raspberry

Outras instalações

Referências




13/03/2018

Acesso console via linux em switches gerenciáveis

Requisitos

Para configurar o acesso via console a partir do SO Linux é necessário:
  • cabo padrão cisco RJ45 – SERIAL (RS 232) ou cabo USB - USB Mini ,o que for compatível com as entradas disponíveis computador a ser utilizado
  • emulador de terminal. Ex: Minicom.

Conexão console USB

1. Estabeleça a conexão física entre o computador e o switch.

2. Como usuário root, acessar as configurações do emulador com comando ''minicom -s''

3. Acessar item: ''Configuração da porta serial'', utilizando as setas do teclado para navegação.

4. Escolher opção ''A - Dispositivo serial'', pressionando  a tecla ''A'' e alterar para /dev/ttyUSB0 e pressionar ''Enter''. O dispositivo serial pode sofrer alterações no caminho e pode ser localizado com o uso do comando dmesg.

5. Escolher opção ''E - BPS/Paridade/Bits'', pressionando a tecla ''E'' e na nova janela, escolher a opção ''C'' e pressionar ''Enter'', retornando ao menu anterior.


6. Alterar para ''Não'', as opções ''F - Controle de Fluxo por Hardware'' e ''G - Controle de Fluxo por Software'', pressionando respectivamente as teclas ''F'' e ''G''.

7. Pressionar ''Enter'' para retornar ao menu inicial e navegar até a opção ''Salvar configuração como dfl'' e pressionar ''Enter''.

8. A opção ''Sair'' encerra a configuração e abre o emulador acessando o console. A opção ''Sair do Minicom'' retorna para o terminal.

9. Após configurado, para acessar o dispositivo via console, basta executar o comando ''minicom'' como root.

10. Para sair do minicom, pressionar CTRL+A+X;

Conexão console Serial

Difere da configuração anterior onde definir-se o dispositivo serial, que deve ser alterado em geral para "/dev/ttyACM0".

Referências

  • http://www.cisco.com/c/en/us/support/docs/switches/catalyst-6000-series-switches/10600-9.html
  • http://labcisco.blogspot.com.br/2016/01/conexao-terminal-em-dispositivos-cisco.html

01/02/2018

SSH - no matching key exchange method found

     Esse erro - alerta - aviso, é exibido devido a utilização de algoritmos de criptografia mais antigos em uso no servidor que se deseja conectar. O melhor mesmo seria corrigir essa situação no servidor, mas caso não seja possível, a configuração abaixo resolve o problema.
     Da página do projeto oficial do Open SSH, de onde está solução foi retirada, a tradução dada pelo google para o primeiro parágrafo que explica a situação, é a seguinte:

OpenSSH implementa todos os algoritmos criptográficos necessários para compatibilidade com os padrões compatíveis de implementações SSH, mas uma vez que alguns dos algoritmos mais antigos tornaram-se fracos, nem todos eles são ativadas por padrão. Esta página descreve o que fazer quando o OpenSSH se recusa a conectar-se com algum servidor que suporta apenas algoritmos legados.

Para corrigir esse "problema", é necessário incluir o endereço que utiliza um algoritmo mais antigo e também o algoritmo utilizado, no arquivo ~/.ssh/config, tal como o exemplo a seguir, onde cada par de linhas define servidor e algoritmo utilizado:
# Usa o algoritmo +ssh-dss para o meuservidor.com.br
Host meuservidor.com.br
      KeyAlgorithms +ssh-dss
#
# Usa o algoritmo +diffie-hellman-group1-sha1 para meuservidor2.com.br
Host meuservidor2.com.br
     KexAlgorithms +diffie-hellman-group1-sha1
#
# Usa o algoritmo +diffie-hellman-group1-sha1 para toda rede 192.168.*.*
Host 192.168.*.*
      KexAlgorithms +diffie-hellman-group1-sha1

Referências

  • https://www.openssh.com/legacy.html
  • http://blog.ffelix.eti.br/ssh-no-matching-key-exchange-method-found-their-offer-diffie-hellman-group1-sha1/

10/06/2015

Servidor FTP - vsftpd

Mais uma concatenação de posts que me levaram ao objetivo desejado, configurar um servidor ftp no linux. No final do post coloco as referências de onde copiei os passo abaixo.

1. Instale o servidor:
# apt-get install vsftps

2. Edite o arquivo de configuração localizado em /etc/vsftps.conf, para um funcionamento básico, com as seguintes configurações:
# vim /etc/vsftpd.conf
# Desativar o acesso anonimo 
anonymous_enable=NO .. 
# Permitir acesso a usuários locais 
local_enable=YES 
# Permitir que o usuário possa gravar/criar no diretório 
write_enable=YES 
# Bloquear o acesso dos usuário somente a sua pasta 
chroot_local_user=YES

3. Para evitar a autenticação de usuários FTP via ssh ou localmente, será criado um shell fack, limitando o acesso de usuários FTP somente ao FTP:
# echo "/bin/false" >> /etc/shells

4. Criar um grupo para os usuários do FTP:
# groupadd ftpusers

5. Criar um diretório separado onde serão criados os usuários FTP, não que seja necessário, mas mantém organizado.
# mkdir /home/ftp

6. Criar os diretórios dos usuários:
# mkdir /home/ftp/user1 
# mkdir /home/ftp/user2 
# mkdir /home/ftp/user3

7. Criar os usuários direcionando para os seus diretórios, grupo ftp e bash:
# useradd user1 -d /home/ftp/user1 -s /bin/false -G ftpusers 
# useradd user2 -d /home/ftp/user2 -s /bin/false -G ftpusers 
# useradd user3 -d /home/ftp/user3 -s /bin/false -G ftpusers

8. Alterar as permissões dos diretórios de cada usuários:
# chown user1:ftpusers /home/ftp/user1 
# chown user2:ftpusers /home/ftp/user2 
# chown user3:ftpusers /home/ftp/user3

9. Ajustar as permissões dos diretórios para que somente o usuário tenha acesso de escrita:
# chmod -R 2750 /home/ftp/

10. Reiniciar o serviço:
# service vsftpd restart

Referências

21/04/2015

Instalação do phpMyadmin

O phpMyadmin é uma interface web para administração de base de dados em MySql, assim como o phpPgadmin para o postgreSql. Antes de instalar o phhMyadmin é recomendado que o mysql já esteja rodando, o que pode ser visto em um outro post onde trata da instalação dos mysql, apache e php.

1. Instale o pacote do phpmyadmin. Várias dependências serão instaladas.
#apt-get install phpmyadmin

2. Será exibida a tela abaixo para escolher o servidor web a ser configurado automaticamente com o phpmyadmin.


3. Uma nova tela será exibida solicitando a configuração padrão para o funcionamento padrão do phpmyadmin.


4. Insira a senha do usuário root do MySql


5. Insira a senha para o phpmyadmin inserir com o servidor de base de dados, para o usuário phpmyadmin e confirme a senha

6. Para acessar basta digitar o endereço no navegador: http://localhost/phpmyadmin.

Referências
  1. http://www.vivaolinux.com.br/
  2. http://minhasdicaslinux.blogspot.com.br/