-
Configuração de máquina virtual ⚙️
4.1 Instalação do sudo e configuração dos utilizadores e grupos 👤
4.2 Instalação e configuração do SSH 📶
4.3 Instalação e configuração de UFW 🔥🧱
4.4 Configuração de senha forte para o sudo 🔒
-
8.1 Particionamento manual do disco 🛠
Clique aqui para o redireccionar para o URL onde pode descarregar a ISO em segurança.
Para realizar a instalação, é necessário um software de virtualização. Neste tutorial iremos utilizar VirtualBox. Se já tiver o VirtualBox instalado e tiver a ISO Debian, podemos começar com o tutorial.
1 ◦ Abra a VirtualBox e clique em Nueva
.
2 ◦ Escolha o nome da sua máquina e a pasta onde ela estará localizada. É importante colocar a máquina dentro da pasta sgoinfre, porque se não a colocarmos lá ficaremos sem espaço e a instalação falhará (dependendo do campus, o caminho sgoinfre pode mudar).
3 ◦ Seleccione a quantidade de RAM a reservar para a máquina.
4 ◦ Seleccione agora a segunda opção para criar um disco rígido virtual.
5 ◦ Escolhemos a primeira opção VDI
, uma vez que descarregámos uma imagem de disco.
6 ◦ Seleccionar a primeira opção Reservado dinámicamente
para que a memória seja reservada na máquina real tal como é utilizada na máquina virtual até ser atingido o limite máximo disponível na máquina virtual.
7 ◦ Depois de definirmos a quantidade recomendada 12 GB
, devemos clicar em Crear
. Se fizermos o bónus seleccionaremos 30 GB
.
8 ◦ Pode parecer que terminámos a instalação, mas ainda há mais alguns passos a dar. Precisamos de clicar na configuração
9 ◦ Depois clique em Storage
, clique novamente no emoticon 💿 à direita e novamente clique em Select a disk file
.
10 ◦ Seleccione a ISO que acabámos de descarregar e clique em Abrir
e depois clique em Aceptar
.
- ◦ Uma vez concluídas todas as etapas acima mencionadas, podemos
Iniciar
a nossa máquina virtual.
➤ Espera❗️ A sua visão é muito importante 👀❗️ A fim de aumentar a janela deve fazer o seguinte
Utilize a tecla command
para mover a captura do rato da máquina real para a máquina virtual e vice-versa.
1 ◦ Escolheremos a versão sem interface gráfica Install
como o assunto indica para não utilizar nenhuma. Sempre que quisermos confirmar algo, carregaremos em Enter
e para nos movermos através das opções utilizaremos as setas.
2 ◦ Escolheremos o idioma a utilizar para a instalação e o idioma predefinido que o sistema será definido como Inglês
.
3 ◦ Entre no seu país, território ou zona. No meu caso colocarei Outro
.
4 ◦ Como seleccionei outros, tenho de indicar o meu continente ou região. No meu caso coloquei Europa
🇪🇺.
5 ◦ Seleccionamos o país. No meu caso Espanha
🇪🇸.
6 ◦ Seleccione United States
.
7 ◦ É importante seleccionar American English
como a configuração do teclado, caso contrário, terá as teclas erradas a prender.
8 ◦ Neste passo devemos escolher o Host Name
da máquina, que deve ser o seu login seguido de 42.
9 ◦ Deixaremos esta secção vazia, pois o assunto não menciona nada sobre Domain Name
.
10 ◦ Temos de introduzir uma palavra-passe para a conta de administração do sistema. É importante escrevê-la ou tirar uma fotografia da mesma, pois iremos utilizá-la. Se quiser ver a palavra-passe para se certificar de que a digitou correctamente, introduza na tabulação a opção Show Password in Clear
deve carregar na barra de espaço e a chave será afixada.
11 ◦ Repetimos o processo novamente para verificar que não o escrevemos mal.
12 ◦ Escolhemos o nome do nosso novo utilizador. Como o assunto indica que temos de criar um utilizador adicional que não seja root com o nosso login, por este motivo chamarei ao meu novo utilizador gemartin
.
Voltamos a colocar o nome do utilizador.
13 ◦ Agora temos de introduzir a palavra-passe do nosso novo utilizador. Tal como a anterior, repetiremos o processo para verificar que não a digitou mal e é também importante que a guarde porque a utilizaremos mais tarde.
14 ◦ Seleccionamos a hora da nossa localização.
15 ◦ Vamos escolher a terceira opção Guied - use entire disk and set up encrypted LVM
uma vez que o subject nos diz que devem ser divisórias encriptadas. Manual
e clique aqui ❗️
16 ◦ Seleccione o disco em que pretende particionar (deve haver apenas um disco).
17 ◦ Uma vez escolhido o disco, devemos parti-lo conforme solicitado. Para o fazermos correctamente, temos de seleccionar a segunda opção Separate /home partition
.
18 ◦ Vamos escolher a opção Yes
para que as alterações sejam escritas em disco e o gestor de volume lógico (LVM) possa ser configurado.
19 ◦ Clicamos em Cancel, pois não é necessário apagar os dados no disco.
20 ◦ Mais uma vez teremos de definir uma palavra-passe, desta vez será a frase de encriptação. Como mencionei anteriormente, terá de repetir o processo e deverá escrevê-la, pois será importante no futuro.
21 ◦ En este paso debemos introducir la cantidad de volumen que usaremos para la partición guiada. Debemos introducir max
o el numero de tamaño maximo disponible en mi caso es 12.4 GB
.
22 ◦ Para finalizar a partição e escrever as alterações no disco, clicaremos na opção Finish partitioning and write changes to disk
.
23 ◦ Seleccione a opção Yes
para continuar e confirmar que não queremos fazer mais nenhuma alteração ao disco.
24 ◦ Escolhemos a opção No
porque não precisamos de quaisquer pacotes adicionais.
25 ◦ Escolhemos o nosso país.
26 ◦ Escolhemos deb.debian.org
pois é isto que a debian recomenda.
27 ◦ Deixe esta opção vazia e clique em Continue
.
28 ◦ Escolhemos a opção No
porque não queremos que os criadores vejam as nossas estatísticas, mesmo que estas sejam anónimas.
29 ◦ Remover todas as opções de software (com a barra de espaço) e clicar em Continue
.
30 ◦ Vamos seleccionar Yes
para instalar GRUB boot no disco rígido
31 ◦ Escolha o dispositivo para a instalação do bootloader /dev/sda (ata_VBOX_HARDDISK)
.
32 ◦ Vamos dar Continue
para terminar a instalação.
➤ A primeira coisa a fazer é seleccionar Debian GNU/Linux
.
➤ Temos de introduzir a palavra-passe de encriptação que utilizámos anteriormente. No meu caso, é Hello42bcn
.
➤ Temos de introduzir o utilizador e a palavra-passe que criámos. No meu caso, o utilizador é gemartin
e a palavra-chave Hola42spain
.
1 ◦ Para instalar o sudo primeiro temos de estar no utilizador raiz, para isso vamos colocar Su
no terminal e introduzir a palavra-passe, no meu caso é Hola42bcn
. Uma vez que tenhamos acedido ao utilizador root, devemos colocar o comando apt install sudo
para instalar os pacotes necessários.
2 ◦ Precisamos de reiniciar a máquina para que as alterações produzam efeito. Para tal, utilizar o comando sudo reboot
e esperar que a máquina reinicie.
3 ◦ Uma vez reiniciada, devemos reintroduzir a encriptação e as palavras-passe dos utilizadores. Para verificar se instalámos correctamente o sudo
, voltaremos a entrar no utilizador root e introduziremos o comando sudo -V
, este comando para além de nos mostrar a versão do sudo também nos mostrará os argumentos passados para configurar quando o sudo foi criado e os plugins que podem mostrar informações mais detalhadas. (Opcional) ➤ Uma vez que a saída do comando é muito longa, se o quisermos ver completamente, devemos redireccionar a saída do comando para um ficheiro sudo -V > file.txt
e depois editar o ficheiro nano file.txt
. Ou colocar | more
após o comando.
4 ◦ Continuando no utilizador root criaremos um utilizador com o nosso login com o comando sudo adduser login
, pois já criámos o utilizador na instalação, devemos ver que o utilizador já existe.
5 ◦ Agora precisamos de criar um novo grupo chamado user42
. Para o criar, faça sudo addgroup user42
.
🧠 O que é GID❓ É o Identificador do Grupo, abreviatura de Group Identifier 🆔.
🤔 O grupo foi criado correctamente? A verdade é que se não tiver havido qualquer mensagem de erro, ainda podemos verificar se foi criada com o comando getent group nombre_grupo
ou também podemos fazer cat /etc/group
e podemos ver todos os grupos e os utilizadores dentro deles.
6 ◦ Com o comando sudo adduser group
, iremos incluir o utilizador no grupo. Devemos incluir o utilizador nos grupos sudo
e user42
.
7 ◦ Depois de os termos introduzido para verificar se tudo foi feito correctamente, podemos executar o comando getent group group_name
ou podemos também editar o ficheiro /etc/group nano /etc/group
e nos grupos sudo
e login42
o nosso utilizador deve aparecer.
🧠 O que é SSH❓ É o nome de um protocolo e do programa que o implementa, cuja função principal é o acesso remoto a um servidor através de um canal seguro no qual toda a informação é encriptada.
1 ◦ A primeira coisa que faremos é sudo apt update
para actualizar os repositórios por nós definidos no ficheiro /etc/apt/sources.list
2 ◦ A seguir instalaremos a principal ferramenta de conectividade para o login remoto com o protocolo SSH, esta ferramenta é OpenSSH. Para a instalar, introduza o comando sudo apt install openssh-server
. Na mensagem de confirmação coloque Y
, depois aguarde que a instalação termine.
Para verificar se foi instalado correctamente, faremos o sudo service ssh status
e este deve mostrar-se activo.
3 ◦ Uma vez terminada a instalação, foram criados alguns ficheiros que temos de configurar. Para tal, utilizaremos Nano ou se preferir outro editor de texto. O primeiro ficheiro a editar é /etc/ssh/sshd_config
. Se não estiver no utilizador root não terá permissões de escrita, para isso faremos su
e colocaremos a palavra-passe para introduzir o utilizador root ou se não quiser introduzir o utilizador root colocar sudo no início do comando sudo nano /etc/ssh/sshd_config
.
4 ◦ O #
no início de uma linha significa que é comentado, as linhas que vamos modificar devem remover o comentário. Uma vez editado o ficheiro, devemos modificar as seguintes linhas:
➤ #Port 22 -> Port 4242
➤ #PermitRootLogin prohibit-password -> PermitRootLogin no
Uma vez modificadas estas linhas, devemos guardar as alterações feitas no ficheiro e parar de o editar.
5 ◦ Temos agora de editar o ficheiro /etc/ssh/ssh_config
.
Iremos editar a seguinte linha:
➤ #Port 22 -> Port 4242
6 ◦ Finalmente, temos de reiniciar o serviço ssh para actualizar as modificações que acabámos de fazer. Para o fazer, devemos digitar o comando sudo service ssh restart
e, uma vez reiniciado, vamos olhar para o estado actual com sudo service ssh status
e para confirmar que as alterações foram feitas no ouvinte do servidor, a porta 4242 deve aparecer.
🧠 O que é UFW❓ É um [firewall].(https://es.wikipedia.org/wiki/Cortafuegos_(inform%C3%A1tica)) que utiliza a linha de comando para configurar iptables utilizando um pequeno número de comandos simples.
1 ◦ A primeira coisa a fazer é instalar o UFW, para o fazer utilizaremos o comando sudo apt install ufw
, depois escreveremos um y
para confirmar que o queremos instalar e esperar que termine.
2 ◦ Uma vez instalada, devemos activá-la, para o fazer devemos colocar o seguinte comando sudo ufw enable
e depois devemos indicar que a firewall está activa.
3 ◦ Agora o que precisamos de fazer é permitir que a nossa firewall permita ligações através da porta 4242. Fá-lo-emos com o seguinte comando sudo ufw allow 4242
.
4 ◦ Finalmente, verificaremos se tudo está correctamente configurado, olhando para o estado da nossa firewall, onde as ligações através da porta 4242 já devem aparecer como permitidas. Para ver o estado, utilizaremos o comando sudo ufw status
.
1 ◦ Vamos criar um ficheiro no caminho /etc/sudoers.d/. Decidi chamar o meu ficheiro sudo_config, pois é aqui que a configuração da senha será armazenada. O comando exacto para criar o ficheiro é touch /etc/sudoers.d/sudo_config
.
2 ◦ Devemos criar o directório sudo no caminho /var/log porque cada comando que executamos com o sudo, tanto a entrada como a saída devem ser armazenadas nesse directório. Para o criar utilizaremos o comando mkdir /var/log/sudo
.
3 ◦ Devemos editar o ficheiro criado no passo 1. Como disse antes, pode usar qualquer editor que quiser, mas eu usarei nano. Comando para editar o ficheiro: nano /etc/sudoers.d/sudo_config
.
4 ◦ Uma vez editado o ficheiro, deve introduzir os seguintes comandos para cumprir todos os requisitos do subject.
Defaults passwd_tries=3
Defaults badpass_message="Mensaje de error personalizado"
Defaults logfile="/var/log/sudo/sudo_config"
Defaults log_input, log_output
Defaults iolog_dir="/var/log/sudo"
Defaults requiretty
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin"
➤ Como deve ser o ficheiro.
🤔 O que cada comando does❓
1 ◦ O primeiro passo é a edição do ficheiro login.defs.
2 ◦ Uma vez que estamos a editar o ficheiro, modificaremos os seguintes parâmetros:
➤ PASS_MAX_DAYS 99999 -> PASS_MAX_DAYS 30
➤ PASS_MIN_DAYS 0 -> PASS_MIN_DAYS 2
PASS_MAX_DAYS: Este é o tempo de expiração da palavra-passe. O número corresponde a dias.
PASS_MIN_DAYS: O número mínimo de dias permitido antes de alterar uma palavra-passe.
PASS_WARN_AGE: O utilizador receberá uma mensagem de aviso indicando que o número de dias especificado permanece até a sua senha expirar.
3 ◦ Para continuar com a configuração temos de instalar os seguintes pacotes com este comando sudo apt install libpam-pwquality
, depois colocar Y
para confirmar a instalação e esperar que termine.
4 ◦ A próxima coisa a fazer é voltar atrás e editar um ficheiro e modificar algumas linhas. Faremos nano /etc/pam.d/com palavras-passe comuns
.
5 ◦ Após nova tentativa=3, devemos acrescentar os seguintes comandos:
minlen=10
ucredit=-1
dcredit=-1
lcredit=-1
maxrepeat=3
reject_username
difok=7
enforce_for_root
➤ É assim que a linha deve ser
➤ Esta é a aparência que deve ter no ficheiro
🤔 O que cada comando does❓
minlen=10 ➤ O número mínimo de caracteres que a senha deve conter.
ucredit=-1 ➤ Deve conter pelo menos uma letra maiúscula. Colocamos o - como deve conter pelo menos um caracter, se colocarmos + queremos dizer no máximo esses caracteres.
dcredit=-1 ➤ Deve conter pelo menos um dígito.
lcredit=-1 ➤ Deve conter pelo menos uma letra minúscula.
maxrepeat=3 ➤ Não se pode ter o mesmo carácter mais de 3 vezes seguidas.
reject_username ➤ Não pode conter o nome do utilizador.
difok=7 ➤ Deve ter pelo menos 7 caracteres que não façam parte da senha antiga.
enforce_for_root ➤ Iremos implementar esta política para o utilizador de raiz.
6 ◦ A política de palavras-passe recentemente implementada afecta apenas os novos utilizadores. Portanto, é necessário atualizar as contas de utilizador que foram criadas antes desta política para cumprir os novos requisitos de segurança. Para verificar se o utilizador não está em conformidade com a política, vamos utilizar o comando sudo chage -l username
.
É assim que se apresenta, devemos verificar se os dias
7 ◦ Se verificarmos que este utilizador não cumpre a política devemos modificar o número mínimo e máximo de dias entre alterações de password, para isso vamos utilizar o seguinte comando: sudo chage -m <time> <username> y sudo chage -M <time> <username>
.
-m é para o número mínimo de dias e -M para o número máximo de dias.
Os comandos devem ter o seguinte aspeto
Quando as alterações tiverem sido aplicadas, deverá ter o seguinte aspeto:
1 ◦ Para ligar via SSH temos de fechar a máquina, abrir a VirtualBox e clicar na configuração.
2 ◦ Uma vez na configuração devemos clicar na secção Red
, clicar emAvanzadas
para nos mostrar mais opções e clicar emReenvío de puertos
.
3 ◦ Clique no seguinte emoticon para adicionar uma regra de reencaminhamento.
4 ◦ Finalmente, acrescentaremos o porto 4242
ao anfitrião e convidado. Os IP's não são necessários. Clique no botão de aceitação para aplicar as alterações.
➤ Para nos podermos ligar à máquina virtual a partir da máquina real, temos de abrir um terminal na máquina real e escrever ssh gemartin@localhost -p 4242
, pedir-nos-á a palavra-passe do utilizador e assim que a introduzirmos veremos o login a verde e isso significa que estaremos ligados.
Esta é uma parte muito importante do projecto. Deve-se prestar atenção a tudo, muito importante não copiar e colar directamente o ficheiro sem saber o que faz o quê. Na avaliação, deve explicar cada comando se o avaliador o pedir.
🧠 O que é um script❓ É uma sequência de comandos armazenados num ficheiro que, quando executado, fará a função de cada comando.
Para ver a arquitectura do SO e a sua versão do kernel utilizaremos o comando uname -a
("-a" == "--all" ) que basicamente imprimirá toda a informação excepto se o tipo de processador for desconhecido ou a plataforma de hardware.
Para exibir o número de núcleos físicos, faremos uso do ficheiro /proc/cpuinfo que fornece informações sobre o processador: o seu tipo, marca, modelo, desempenho, etc. Utilizaremos o comando grep "physical id" /proc/cpuinfo | wc -l
com o comando grep procuraremos dentro do ficheiro "physical id" e com wc -l contaremos as linhas do resultado do grep. Fazemo-lo porque a forma de quantificar os núcleos não é muito comum. Se houver um processador, marcará 0 e se houver mais do que um processador, mostrará toda a informação do processador separadamente contando os processadores usando notação zero. Desta forma, contamos simplesmente o número de linhas, pois é mais conveniente quantificá-lo desta forma.
Mostrar o número de núcleos virtuais é muito semelhante ao anterior. Utilizaremos novamente o ficheiro /proc/cpuinfo, mas, neste caso, utilizaremos o comando grep processor /proc/cpuinfo | wc -l
. A utilização é praticamente a mesma que a anterior, excepto que em vez de contarmos as linhas físicas de id, iremos contar as linhas do processador. Fazemo-lo desta forma pela mesma razão que anteriormente, a forma de quantificar marcas 0 se houver um processador.
Para exibir a memória do carneiro utilizaremos o comando free
para ver num relance informações sobre o carneiro, a peça usada, gratuita, reservada para outros recursos, etc. Para mais informações sobre o comando utilizaremos gratuitamente --help. Utilizaremos gratuitamente --mega porque no assunto existe essa unidade de medida (Megabyte). É importante usar --mega e não -m. Com -m referir-nos-emos à unidade de medida Mebibyte e esta não é a especificada no assunto.
Uma vez executado este comando, devemos filtrar a nossa pesquisa uma vez que não precisamos de toda a informação que nos dá, a primeira coisa que devemos mostrar é a memória utilizada, para isso utilizaremos o comando awk
, o que este comando faz é processar dados com base em ficheiros de texto, ou seja, podemos utilizar os dados que nos interessam no ficheiro X. Finalmente o que faremos é comparar se a primeira palavra de uma linha for igual a "Mem:" imprimiremos a terceira palavra dessa linha que será a memória utilizada. O comando completo em conjunto seria free --mega | awk '$1 == "Mem:" {print $3}'
. No script, o valor de retorno deste comando será atribuído a uma variável que será concatenada com outras variáveis, para que tudo se mantenha igual ao especificado no assunto.
Para obter a memória total, o comando é praticamente o mesmo que o anterior, a única alteração é que em vez de imprimir a terceira palavra da linha, queremos a segunda palavra free --mega | awk '$1 == "Mem:" {print $2}'
.
Por último, precisamos de calcular a % de memória utilizada. O comando é novamente semelhante aos anteriores, a única modificação que faremos está na parte da impressão. Como a operação para obter a percentagem não é exacta, pode dar-nos muitas casas decimais e no assunto apenas 2 são mostradas, pelo que faremos o mesmo, por isso utilizamos %.2f
para que apenas 2 casas decimais sejam mostradas. Outra coisa que talvez não saiba é que na impressão para mostrar um %
tem de colocar %%
. O comando completo free --mega | awk '$1 == "Mem:" {printf("(%.2f%%%%)\n", $3/$2*100)}'
.
A fim de ver a memória de disco ocupada e disponível, utilizaremos o comando df
que significa "sistema de ficheiros de disco", que é utilizado para obter uma visão completa da utilização do espaço em disco. Como o assunto indica que a memória utilizada é mostrada em MB, utilizaremos a bandeira -m. Em seguida, iremos grep para mostrar apenas linhas contendo "/dev/" e depois grep novamente com a bandeira -v para excluir linhas contendo "/boot". Finalmente utilizaremos o comando awk e acrescentaremos o valor da terceira palavra de cada linha para imprimir o resultado final da soma. O comando completo é o seguinte: df -m | grep "/dev/" | grep -v "/boot" | awk '{memory_use += $3} END {print memory_use}'
.
Para obter o espaço total, utilizaremos um comando muito semelhante. As únicas diferenças serão que os valores que adicionaremos serão os $2 em vez de $3 e a outra diferença é que no assunto aparece o tamanho total em Gb, pelo que, como resultado da soma nos dá o número em Mb devemos transformá-lo em Gb, pois deve dividir-se o número entre 1024 e retirar as casas decimais.
Finalmente, precisamos de mostrar uma percentagem da memória utilizada. Para tal, mais uma vez, utilizaremos um comando muito semelhante aos dois anteriores. A única coisa que vamos mudar é que vamos combinar os dois comandos anteriores para termos duas variáveis, uma representando a memória utilizada e a outra o total. Uma vez feito isto, faremos uma operação para obter a percentagem use/total*100
e o resultado desta operação será impresso tal como aparece no assunto, entre parênteses e com o símbolo % no final. O comando final é: df -m | grep "/dev/" | grep -v "/boot" | awk '{use += $3} {total += $2} END {printf("(%d%%%%)}, use/total*100}'
.
Para ver a percentagem de utilização de CPU faremos uso do comando vmstat
que mostra as estatísticas do sistema, permitindo-nos obter um detalhe geral dos processos, utilização de memória, actividade de CPU, estado do sistema, etc. Poderemos colocar se não houver opção mas no meu caso colocarei um intervalo de segundos de 1 a 4. Também faremos uso do comando tail -1
que nos permitirá produzir apenas a última linha, depois dos 4 gerados apenas a última será impressa. Finalmente, imprimiremos apenas a palavra 15 que é a utilização de memória disponível. O comando completo é o seguinte: vmstat 1 4 | tail -1 | awk '{print $15}'
. O resultado deste comando é apenas uma parte do resultado final, uma vez que ainda é necessário fazer algumas operações no guião para o obter correctamente. O que teríamos de fazer é subtrair de 100 o montante devolvido pelo nosso comando, o resultado desta operação será impresso com uma casa decimal e uma % no final e a operação será feita.
Para ver a data e hora do nosso último reboot utilizaremos o comando quem
com a bandeira -b
porque com esta flag veremos a hora do último boot do sistema. Como já aconteceu antes, mostra-nos mais informação do que queremos, por isso filtraremos e mostraremos apenas aquilo em que estamos interessados, para o fazer utilizaremos o comando awk e compararemos se a primeira palavra de uma linha for "sistema" a terceira palavra dessa linha, um espaço e a quarta palavra será impressa no ecrã. Todo o comando seria o seguinte: who -b | awk '$1 == "system" {print $3 " " $4}'
.
Para verificar se o LVM está ou não activo, utilizaremos o comando lsblk, que nos mostra informação de todos os dispositivos de bloco (discos rígidos, SSD, memórias, etc.) entre toda a informação que nos fornece, podemos ver o lvm no tipo de gestor. Basicamente a condição que procuramos é contar o número de linhas onde "lvm" aparece e se houver mais de 0 imprimimos Sim, se houver 0 imprimimos Não. O comando completo seria: if [ $(lsblk | grep "lvm" | wc -l) -gt 0 ]; then echo yes; else echo no; fi
.
Para olhar para o número de ligações TCP estabelecidas. Utilizaremos o comando ss
para substituir o comando obsoleto netstat. Filtrar com a flag -ta
para que apenas as ligações TCP sejam mostradas. Finalmente, vamos ver quais são as que estão estabelecidas, uma vez que também existem as que só ouvem, e fechar com wc -l para contar o número de linhas. O comando é o seguinte: ss -ta | grep ESTAB | wc -l
.
Utilizaremos o comando users
que nos mostrará o nome dos utilizadores, sabendo isto, configuraremos wc -w para contar o número de palavras na saída do comando. Todo o comando tem o seguinte aspecto users | wc -w
.
Para obter o endereço do anfitrião utilizaremos o comando Hostname -I
e para obter o endereço MAC utilizaremos o comando ip link
que é utilizado para mostrar ou modificar as interfaces de rede. Como mais do que uma interface, aparecem os IP's, etc. Utilizaremos o comando grep para procurar o que queremos imprimir no ecrã apenas o que nos é pedido. Para tal, utilizaremos ip link | grep "link/ether" | awk '{print $2}'
e, desta forma, imprimiremos apenas o MAC.
Para obter o número de comandos que são executados com o sudo, utilizaremos o comando jornalctl, que é uma ferramenta responsável pela recolha e gestão dos registos do sistema. Depois colocamos _COMM=sudo
para filtrar as entradas, especificando o seu caminho. No nosso caso, colocamos _COMM
, uma vez que se refere a um script executável. Depois de filtrarmos a pesquisa e só aparecerem os logs do sudo, ainda temos de filtrar um pouco mais porque quando se faz o log in ou log out como root também aparece no log, então para terminar a filtragem colocaremos um grep COMMAND
e assim só aparecem as linhas de comando. Finalmente, colocaremos wc -l
para que as linhas sejam listadas. O comando completo é o seguinte: journalctl _COMM=sudo | grep COMMAND | wc -l)
. Para verificar se funciona correctamente, podemos executar o comando no terminal, colocar um comando que inclui o sudo e executar novamente o comando e este deve
aumentar o número de execuções de sudo.
#!/bin/bash
# ARCH
arch=$(uname -a)
# CPU PHYSICAL
cpuf=$(grep "physical id" /proc/cpuinfo | wc -l)
# CPU VIRTUAL
cpuv=$(grep "processor" /proc/cpuinfo | wc -l)
# RAM
ram_total=$(free --mega | awk '$1 == "Mem:" {print $2}')
ram_use=$(free --mega | awk '$1 == "Mem:" {print $3}')
ram_percent=$(free --mega | awk '$1 == "Mem:" {printf("%.2f"), $3/$2*100}')
# DISK
disk_total=$(df -m | grep "/dev/" | grep -v "/boot" | awk '{disk_t += $2} END {printf ("%.1fGb\n"), disk_t/1024}')
disk_use=$(df -m | grep "/dev/" | grep -v "/boot" | awk '{disk_u += $3} END {print disk_u}')
disk_percent=$(df -m | grep "/dev/" | grep -v "/boot" | awk '{disk_u += $3} {disk_t+= $2} END {printf("%d"), disk_u/disk_t*100}')
# CPU LOAD
cpul=$(vmstat 1 2 | tail -1 | awk '{printf $15}')
cpu_op=$(expr 100 - $cpul)
cpu_fin=$(printf "%.1f" $cpu_op)
# LAST BOOT
lb=$(who -b | awk '$1 == "system" {print $3 " " $4}')
# LVM USE
lvmu=$(if [ $(lsblk | grep "lvm" | wc -l) -gt 0 ]; then echo yes; else echo no; fi)
# TCP CONNEXIONS
tcpc=$(ss -ta | grep ESTAB | wc -l)
# USER LOG
ulog=$(users | wc -w)
# NETWORK
ip=$(hostname -I)
mac=$(ip link | grep "link/ether" | awk '{print $2}')
# SUDO
cmnd=$(journalctl _COMM=sudo | grep COMMAND | wc -l)
wall " Architecture: $arch
CPU physical: $cpuf
vCPU: $cpuv
Memory Usage: $ram_use/${ram_total}MB ($ram_percent%)
Disk Usage: $disk_use/${disk_total} ($disk_percent%)
CPU load: $cpu_fin%
Last boot: $lb
LVM use: $lvmu
Connections TCP: $tcpc ESTABLISHED
User log: $ulog
Network: IP $ip ($mac)
Sudo: $cmnd cmd"
Script visto de nano
Resultado após a execução do script
🧠 O que é crontab❓É um gestor de processos de fundo. Os processos especificados serão executados no momento que especificar no ficheiro crontab.
Para termos a crontab correctamente configurada, devemos editar o ficheiro crontab com o seguinte comando sudo crontab -u root -e
.
No ficheiro devemos adicionar o seguinte comando para que o script seja executado de 10 em 10 minutos */10 * * * * sh /ruta del script
.
Funcionamento de cada parâmetro da crontab:
m ➤ Corresponde ao minuto em que o script será executado, o valor varia de 0 a 59.
h ➤ A hora exacta, o formato de 24 horas é utilizado, os valores variam entre 0 e 23, sendo 0 às 12:00 da meia-noite.
dom ➤ Refere-se ao dia do mês, por exemplo, pode especificar 15 se quiser correr todos os 15 dias.
dow ➤ Significa o dia da semana, pode ser numérico (0 a 7, onde 0 e 7 são domingo) ou as 3 primeiras letras do dia em inglês: mon, tue, tue, wed, thu, fri, sat, sun.
user ➤ Definir o utilizador que vai executar o comando, pode ser o root, ou outro utilizador desde que tenha permissões para executar o script.
command ➤ Refere-se ao comando ou caminho absoluto do script a ser executado.
Para obter a assinatura, a primeira coisa a fazer é desligar a máquina virtual, porque assim que a ligar ou modificar algo, a assinatura mudará.
O próximo passo será localizar o caminho onde temos o .vdi da nossa máquina virtual.
Finalmente, faremos shasum nomemáquina.vdi
e isto dar-nos-á a assinatura. O resultado desta assinatura é o que teremos de adicionar ao nosso ficheiro signature.txt para mais tarde carregar o ficheiro para o repositório intra. É muito importante não reabrir a máquina, pois isto irá modificar a assinatura. Para as correcções lembrem-se de clonar a máquina para que a possam ligar sem medo de alterar a assinatura.
🧠 O que é shasum❓ Um comando para identificar a integridade de um ficheiro através da soma de verificação do hash SHA-1 de um ficheiro.
1 ◦ Ao escolher o particionamento do disco, seleccionar o particionamento manual. Desta forma, podemos editar as partições uma a uma.
2 ◦ Esta secção mostra uma visão geral das nossas divisórias e pontos de montagem. Actualmente não temos divisórias feitas. Para criar uma nova tabela de partições, devemos escolher o dispositivo onde as queremos criar. No nosso caso, escolheremos o único disponível.
3 ◦ Aceitamos a mensagem de confirmação. Basicamente, avisa-nos que se já existirem partições no dispositivo, elas serão apagadas e que se tivermos a certeza de criar uma nova tabela de partições vazia.
4 ◦ Uma vez concluída a etapa anterior, podemos ver como aparece a nossa tabela de partição vazia. Agora temos de a configurar, para o fazermos temos de a seleccionar.
5 ◦ Iremos criar uma nova partição.
Começaremos por criar esta:
6 ◦ Como o assunto indica, o tamanho da divisória deve ser de 500 megabytes.
7 ◦ Escolher o tipo de divisória. Escolhemos a primária, pois será a partição onde o Sistema Operativo será instalado.
Breve descrição de todos os tipos de divisórias:
◦ Primária: A única divisória em que um sistema operativo pode ser instalado. Só pode haver 4 partições primárias por disco rígido ou 3 primárias e 1 estendida.
◦ Secundário/Extendido: Foi concebido para quebrar a limitação de 4 partições primárias num único disco físico. Apenas uma dessas partições pode existir por disco, e só pode conter partições lógicas.
◦ Lógica: Ocupa uma parte da partição alargada/primária ou a sua totalidade, que foi formatada com um tipo específico de sistema de ficheiros (no nosso caso utilizaremos ext4) e foi-lhe atribuída uma unidade, pelo que o sistema operativo reconhece as partições lógicas ou o seu sistema de ficheiros. Pode haver um máximo de 23 partições lógicas numa partição alargada, no entanto o SO linux com o qual estamos actualmente a trabalhar reduz para 15, mais do que suficiente para este projecto.
8 ◦ Seleccionaremos o início, pois queremos que a nova partição seja criada no início do espaço disponível.
9 ◦ A captura de ecrã seguinte mostra os detalhes da divisória. Modificaremos o ponto de montagem a que o assunto especifica.
10 ◦ Escolhemos boot como ponto de montagem para a nossa partição.
11 ◦ Concluímos a configuração da partição actual.
12 ◦ Uma vez concluída a etapa anterior, a partição deve aparecer. Agora devemos criar uma partição lógica com todo o espaço disponível em disco, que não tenha um ponto de montagem e esteja encriptada. Para o fazer, seleccione o espaço livre onde pretende criá-la.
13 ◦ Criar uma nova partição.
14 ◦ Seleccionar o tamanho máximo.
15 ◦ Seleccionar o tipo de divisória, neste caso, lógica.
16 ◦ Modificaremos o ponto de montagem.
17 ◦ Escolheremos a opção de não a montar.
18 ◦ Concluímos a configuração da partição actual.
19 ◦ Iremos criar volumes encriptados. A fim de encriptar a nossa partição.
20 ◦ Aceitamos a mensagem de confirmação.
21 ◦ Criamos os volumes encriptados.
22 ◦ Seleccione a partição que pretende encriptar.
23 ◦ Concluímos a configuração da partição actual.
24 ◦ Fazemo-lo porque não queremos criar mais volumes encriptados.
25 ◦ Aceitamos a mensagem de confirmação. Ela diz-nos que tudo dentro da partição será encriptado e que não deverá demorar muito tempo a terminar.
26 ◦ Não importa se demora muito ou pouco tempo, clicamos em cancelar, pois não há nada a encriptar, uma vez que a partição está vazia.
27 ◦ Mais uma vez teremos de definir uma palavra-passe, desta vez será a frase de encriptação. Como mencionei anteriormente, terá de repetir o processo e deverá escrevê-la, pois será importante no futuro.
28 ◦ Repetimos a frase de encriptação.
29 ◦ Vamos configurar o gestor de volume lógico.
30 ◦ Aceitaremos a mensagem de confirmação, uma vez que concordamos em guardar as alterações no disco.
31 ◦ Iremos criar um novo grupo de volume. Os grupos de volume agrupam as partições.
32 ◦ Introduza o nome que pretende dar-lhe: LVMGroup
como indicado pelo assunto.
33 ◦ Seleccione a partição onde pretende criar o grupo.
34 ◦ Agora temos de criar todas as partições lógicas. Como temos de repetir as mesmas acções várias vezes, há capturas que não serão documentadas.
35 ◦ Começaremos por escolher o grupo onde queremos que eles sejam criados. Seleccionamos o único disponível (aquele que acabámos de criar).
36 ◦ A ordem de criação das unidades lógicas será a mesma que a do assunto, portanto comece pela raiz e termine com var-log. Depois seleccionaremos o nome do volume lógico.
37 ◦ O tamanho, como o assunto indica, será 10g.
38 ◦ Repetimos o processo de swap
. Apenas mudaremos o nome e o tamanho.
39 ◦ Repetimos o processo de home
. Apenas mudaremos o nome e o tamanho.
40 ◦ Repetimos o processo de var
. Apenas mudaremos o nome e o tamanho.
41 ◦ Repetimos o processo para srv
. Apenas mudaremos o nome.
42 ◦Repetimos o processo para tmp
. Apenas mudaremos o nome.
43 ◦ Finalmente, repetimos o processo para var-log
. Apenas mudaremos o nome e o tamanho.
44 ◦ Uma vez concluídos todos os passos acima referidos, terminaremos a configuração do gestor lógico do volume.
45 ◦ Agora podemos ver como na secção onde mostram todas as nossas divisórias e espaço livre, aparecem todas as divisórias lógicas que acabámos de criar. Bem, temos de configurar todas elas para seleccionar o sistema de ficheiros que queremos e o ponto de montagem indicado pelo assunto. Mais uma vez, iremos por ordem e seleccionar a primeira que aparece que é home
.
46 ◦ Mostra-nos a configuração da partição. Temos de escolher um sistema de ficheiros, uma vez que actualmente não o tem.
47 ◦ Escolhemos o sistema de ficheiros Ext4, o sistema de ficheiros mais amplamente utilizado nas distribuições Linux.
48 ◦ Agora temos de seleccionar o ponto de montagem.
49 ◦ Seleccione home
como indicado no subject.
50 ◦ Depois de a termos seleccionado, terminaremos a configuração da partição.
51 ◦ Mais uma vez, estes passos podem tornar-se muito repetitivos, por isso não vou comentar muito. Repetimos tudo na mesma (excepto o ponto de montagem) para root
.
52 ◦ Repetir o processo para srv
e mudar o ponto de montagem.
53 ◦ Para o swap
, abriremos uma excepção, pois o sistema de ficheiros será diferente. Seleccione swap
.
54 ◦ Ao seleccionar o sistema de arquivo, deixe-o na swap area
.
55 ◦ Uma vez concluída a etapa anterior, terminaremos a configuração da partição.
56 ◦ Agora faremos o mesmo que antes, mas agora fá-lo-emos com o tmp
e mudaremos o ponto de montagem.
57 ◦ Repetimos novamente o processo para var
, alterando o ponto de montagem.
58 ◦ Finalmente, repetimos o processo de var-log
neste, teremos de entrar manualmente no ponto de montagem.
59 ◦ Assim que tivermos completado todas as etapas acima, estamos quase a terminar, temos de clicar em Terminar partição para guardar todas as alterações no disco.
60 ◦ Aceitar a mensagem e as alterações serão guardadas. Certificar-se de que todas as partições são as mesmas que na imagem do ecrã.
61 ◦ Seleccionamos a opção No
porque não precisamos de quaisquer pacotes adicionais.
62 ◦ Nós escolhemos o nosso país.
63 ◦ Escolhemos deb.debian.org
, pois é a nossa região onde teremos uma melhor conexão.
64 ◦ Deixe esta opção vazia e clique directamente em Continue
.
65 ◦ Seleccionamos a opção No
porque não queremos que os programadores vejam as nossas estatísticas, mesmo que sejam anónimas.
66 ◦ Remova todas as opções de software (com a barra de espaço) e clique em Continue
.
67 ◦ Seleccione Yes
para instalar GRUB boot no disco rígido.
68 ◦ Escolha o dispositivo para a instalação do bootloader /dev/sda (ata_VBOX_HARDDISK)
.
69 ◦ Clique em Continue
para terminar a instalação.
70 ◦ Uma vez terminada a instalação do debian, temos de configurar a nossa máquina virtual.
Clique aqui para ir para a configuração da máquina virtual ⚙️
🧠 O que é Lighttpd❓ É um servidor web concebido para ser rápido, seguro, flexível, e compatível com as normas. É optimizado para ambientes onde a velocidade é muito importante. Isto é porque consome menos CPU e RAM do que outros servidores.
1 ◦ Instalação de pacotes lighttpd.
2 ◦ Permitimos ligações através da porta 80 com o comando sudo ufw allow 80
.
3 ◦ Verificamos que realmente permitimos. O porto 80 e permitir deve aparecer.
4 ◦ Adicione a regra que inclui a porta 80. Se não se lembrar como adicionar regras no reencaminhamento de portos. Configuração da máquina → Rede → Encaminhamento de Porta → Espelhar a captura.
🧠 O que é Wordpress❓ É um sistema de gestão de conteúdos centrado na criação de qualquer tipo de página web.
1 ◦ Para instalar a última versão do WordPress temos primeiro de instalar wget e zip. Para o fazer, usaremos o seguinte comando sudo apt install wget zip
.
🧠 O que é wget❓ É uma ferramenta de linha de comando utilizada para descarregar ficheiros a partir da web.
🧠 O que é zip❓ Este é um utilitário de linha de comando para comprimir e descomprimir ficheiros em formato ZIP.
2 ◦ Uma vez instalados os pacotes, devemos localizar-nos na pasta /var/www/ com o comando cd, aceder-lhe-emos. cd /var/www
.
3 ◦ Uma vez no caminho /var/wwww/ temos de descarregar a última versão do WordPress. Como a minha língua materna é o espanhol, vou seleccionar a versão mais recente em espanhol. Usaremos o seguinte comando: sudo wget https://es.wordpress.org/latest-es_ES.zip
.
4 ◦ Descompacte o ficheiro que acabou de descarregar com o comando sudo unzip latest-es_ES.zip
.
5 ◦ Vamos renomear a pasta html e chamar-lhe html_old. sudo mv html/ html_old/
.
6 ◦ Agora vamos renomear a pasta wordpress e chamar-lhe html. sudo mv wordpress/ html
.
7 ◦ Finalmente, colocaremos estas permissões na pasta html. Utilizaremos o comando sudo chmod -R 755 html
. O número 7 indica que o proprietário tem permissões de leitura, escrita e execução. O número 5 indica que o grupo e outros só têm permissões de leitura e execução.
🧠 O que é MariaDB❓ É uma base de dados. É utilizada para diversos fins, tais como armazenamento de dados, comércio electrónico, funções a nível empresarial e aplicações de registo.
1 ◦ Vamos instalar os pacotes com o comando sudo apt install mariadb-server
2 ◦ Como a configuração padrão deixa a sua instalação MariaDB insegura, utilizaremos um script fornecido pelo pacote mariadb-server para restringir o acesso ao servidor e remover contas não utilizadas. Iremos executar o script com o seguinte comando sudo mysql_secure_installation
. Assim que executarmos o guião, ele irá fazer-nos uma série de perguntas, perguntando se queremos mudar para a autenticação da tomada Unix. Como já temos uma conta raiz protegida, iremos escrever N
.
Switch to unix_socket autentication? → N
Change the root password? → N
Remove anonymous users? → Y
Disallow root login remotely? → Y
Remove test database and acces to it? → Y
Reaload privilege tables now? → Y
Switch to unix_socket autentication? Escolhemos N
porque não queremos que mude para autenticação de tomada Unix porque já temos uma conta raiz protegida.
Change the root password? Escolhemos N
. Não queremos alterar a palavra-passe do utilizador de raiz. Por defeito não temos palavra-passe, mas em mariadb não é realmente root, uma vez que temos de lhe dar permissões de administrador.
Remove anonymous users? Escolhemos Y
. Por defeito quando se instala mariadb tem um utilizador anónimo, o que permite a qualquer pessoa entrar no mariadb sem ter de criar a sua própria conta de utilizador. Isto é concebido para fins de teste e para tornar a instalação mais suave. Quando deixamos o ambiente de desenvolvimento e queremos mudar para um ambiente de produção, temos de remover os utilizadores anónimos.
Disallow root login remotely? Escolhemos Y
. A desactivação do login remoto de raiz impedirá qualquer pessoa de adivinhar a palavra-passe de raiz. Só nos será possível ligar à raiz a partir do anfitrião local.
Remove test database and acces to it? Escolhemos Y
. Isto irá remover a base de dados de testes e quaisquer utilizadores que tenham acesso à mesma.
Reaload privilege tables now? Escolhemos Y
. Isto irá recarregar as tabelas de permissão MySQL para que as alterações às definições de segurança entrem em vigor imediatamente.
1 ◦ Uma vez terminada a instalação da mariadb devemos criar a base de dados e o utilizador para o WordPress. Primeiro temos de aceder à mariadb.
2 ◦ Criamos uma base de dados para o WordPress. No meu caso, vou chamar-lhe wp_database. Vou fazer tudo isto com o comando CREATE DATABASE wp_database;
.
3 ◦ Para garantir que a base de dados para o WordPress foi criada, podemos visualizar todas as bases de dados existentes com o comando SHOW DATABASES;
.
4 ◦ A seguir, temos de criar um utilizador na base de dados. Utilizaremos o comando CREATE USER 'gemartin'@'localhost' IDENTIFIED BY '12345';
.
5 ◦ Ligamos o novo utilizador à nossa base de dados de modo a conceder-lhe as permissões necessárias para poder trabalhar. Utilizaremos o comando GRANT ALL PRIVILEGES ON wp_database.* TO 'gemartin'@'localhost';
.
6 ◦ Actualizamos as permissões para que as alterações entrem em vigor com o comando FLUSH PRIVILEGES;
.
7 ◦ Uma vez concluída a etapa anterior, podemos sair de mariadb.
🧠 O que é PHP❓ É uma linguagem de programação. É utilizada principalmente para desenvolver aplicações web dinâmicas e sites interactivos. O PHP corre no lado do servidor.
1 ◦ Instalamos os pacotes necessários para poder executar aplicações web escritas em linguagem PHP e que necessitam de se ligar a uma base de dados MySQL. Executamos o seguinte comando sudo apt install php-cgi php-mysql
.
1 ◦ Aceder ao directório /var/wwww/html com o comando: cd /var/www/html
2 ◦ Copie o ficheiro wp-config-sample.php e renomeie-o wp-config.php
3 ◦ Uma vez alterado o seu nome, editaremos o ficheiro wp-config.php nano wp-config.php
e modificaremos os seguintes valores.
É necessário substituí-los pelos valores que definimos anteriormente quando criámos a base de dados e o utilizador, para que o WordPress possa ligar-se e fazer uso dela.
4 ◦ Permitimos o módulo fastcgi-php no Lighttpd para melhorar o desempenho e a velocidade das aplicações web no servidor. sudo lighty-enable-mod fastcgi
5 ◦ Permitimos o módulo fastcgi-php no Lighttpd para melhorar o desempenho e a velocidade das aplicações web baseadas em PHP no servidor. sudo lighty-enable-mod fastcgi-php
6 ◦ Actualizamos e aplicamos alterações à configuração com o comando sudo service lighttpd force-reload
.
7 ◦ Uma vez completados os passos anteriores, podemos voltar ao nosso navegador e digitar localhost
. Deverá ver o seguinte:
8 ◦ Temos de preencher todos os campos. No meu caso, coloquei o seguinte:
9 ◦ Uma vez preenchidos todos os campos, devemos clicar em Install WordPress
e teremos terminado a instalação. Verá o próximo separador. Agora o WordPress pode criar as tabelas e descarregar todos os dados que necessita para trabalhar na base de dados que lhe atribuímos.
10 ◦ Se voltarmos a aceder ao nosso localhost a partir do browser, podemos ver a nossa página funcional.
11 ◦ Se quisermos aceder ao painel de administração para fazer alterações ao nosso site, teremos de colocar no browser localhost/wp-admin
e iniciar sessão com a nossa conta
12 ◦ Uma vez iniciada a sessão, pode modificar o que quiser. A personalização da página é opcional, uma vez que não está especificada no assunto deste guia, não a trataremos.
🧠 O que é LiteSpeed❓ É um software proprietário de servidor web. É o quarto servidor web mais popular, e estima-se que seja utilizado por 10% dos sítios web.
1 ◦ Antes de instalar qualquer software, é importante assegurar que o sistema está actualizado.
sudo apt update
sudo apt upgrade
2 ◦ Por defeito, o OpenLiteSpeed está disponível no repositório base do Debian 11. Assim, deve executar o seguinte comando para adicionar o repositório OpenLiteSpeed ao seu sistema Debian:
wget -O - https://repo.litespeed.sh | sudo bash
Como o comando é longo, liguei-me via ssh.
3 ◦ Mais uma vez, actualizamos os pacotes e instalamos o OpenLiteSpeed.
sudo apt update
sudo apt install openlitespeed
4 ◦ A password predefinida para OpenLiteSpeed é 123456. Alteraremos a palavra-passe para algo mais seguro com o seguinte comando.
sudo /usr/local/lsws/admin/misc/admpass.sh
5 ◦ Configuramos a firewall para permitir ligações através das portas 8088 e 7080. Depois adicionamos as regras no reencaminhamento de portas.
sudo ufw allow 8088/tcp
sudo ufw allow 7080/tcp
sudo ufw reload
Regras de encaminhamento de portos.
6 ◦ Uma vez concluída a etapa anterior, podemos ligar-nos. Colocaremos no motor de busca do nosso navegador localhost:7080
fornecemos as nossas credenciais de login e teremos acesso a tudo.
Este tutorial tem tido muito trabalho, se acharem que tem sido útil ficaria muito grato por ter starred 🌟 para que possa ser partilhado e ajudar mais estudantes. 👨🏻🎓❤️
Software que simula um sistema informático e pode executar programas como se fosse um computador real. Permite a criação de múltiplos ambientes simulados ou recursos dedicados a partir de um único sistema de hardware físico.
Isto é uma coisa pessoal para todos, a minha opinião: o próprio assunto explica que é mais fácil fazê-lo no Debian e se procurar documentação/tutoriais há muitos e todos eles foram feitos no debian.
Visa fornecer uma plataforma de hardware e um ambiente de execução independente do sistema operativo, que esconde os detalhes da plataforma subjacente e permite que um programa seja sempre executado da mesma forma em qualquer plataforma.
Aptitude é uma versão melhorada do apt. APT é um gestor de pacotes de nível inferior e aptitude é um gestor de pacotes de nível superior. Outra grande diferença é a funcionalidade oferecida por ambas as ferramentas. O Aptitude oferece uma melhor funcionalidade em comparação com o apt-get. Ambos são capazes de fornecer os meios necessários para efectuar a gestão de pacotes. Contudo, se estiver à procura de uma abordagem mais rica em funcionalidades, o Aptitude deve ser ele.
Um módulo de segurança no kernel do Linux que permite ao administrador do sistema restringir as capacidades de um programa.
É um gestor de volume lógico. Fornece um método de atribuição de espaço em dispositivos de armazenamento de massa, que é mais flexível do que os esquemas convencionais de partição para armazenamento de volumes.
1 ◦ Verificar se não há nenhuma interface gráfica em uso.
Utilize o comando ls /usr/bin/*session
e deverá obter o mesmo resultado que na imagem do ecrã. Se vir algo diferente, estará a utilizar uma interface gráfica.
2 ◦ Verificar se o serviço UFW está a ser utilizado.
sudo ufw status
sudo service ufw status
3 ◦ Verificar se o serviço SSH está a ser utilizado.
sudo service ssh status
4 ◦ Verifique se está a utilizar o sistema operativo Debian ou Centos.
uname -v
o uname --kernel-version
5 ◦ Verifique se o seu utilizador está nos grupos "sudo" e "user42".
getent group sudo
getent group user42
6 ◦ Criar um novo utilizador e mostrar que segue a política de palavra-passe que criámos.
sudo adduser name_user
e introduzir uma palavra-passe que siga a política.
7 ◦ Criamos um novo grupo chamado "evaluating".
sudo addgroup evaluating
8 ◦ Acrescentar o novo utilizador ao novo grupo.
sudo adduser name_user evaluating
Para verificar se foi introduzido correctamente.
9 ◦ Verificar se o nome da máquina está correcto para o login42.
10 ◦ Modifique o nome de anfitrião para substituir o seu login pelo login do avaliador. Neste caso, substituí-lo-ei por estudante42.
sudo nano /etc/hostname
e substituir o nosso login pelo novo.
sudo nano /etc/hosts
e substituir o nosso login pelo novo.
Reiniciar a máquina.
Uma vez que tenhamos entrado novamente no sistema, podemos ver que o nome do anfitrião foi alterado correctamente.
11 ◦ Verificar se todas as partições estão como indicado no subject.
lsblk
12 ◦ Verificar se o sudo está instalado.
which sudo
Utilizar o comando which não é realmente uma boa prática, uma vez que nem todos os pacotes são encontrados nos caminhos que são pesquisados, no entanto, para avaliação é melhor, uma vez que é um comando simples e fácil de aprender. Para uma melhor utilização, faremos uso do seguinte comando:
dpkg -s sudo
13 ◦ Introduzir o novo utilizador no grupo sudo.
sudo adduser name_user sudo
Verificamos se está no grupo.
14 ◦ Mostra a aplicação das regras impostas ao sudo pelo subject.
15 ◦ Mostra que o caminho /var/log/sudo/ existe e contém pelo menos um ficheiro, no qual se deve ver um histórico dos comandos utilizados com o sudo.
Executar um comando com sudo e verificar se o ficheiro está actualizado.
16 ◦ Verificar se o programa UFW está instalado na máquina virtual e verificar se está a funcionar correctamente.
dpkg -s ufw
sudo service ufw status
17 ◦ Listar as regras activas na UFW se a parte de bónus não for feita, apenas a regra para a porta 4242 deve aparecer.
sudo ufw status numbered
18 ◦ Criar uma nova regra para o porto 8080. Verifique se foi adicionada às regras activas e depois pode apagá-la.
sudo ufw allow 8080
para o criar
sudo ufw status numbered
Para eliminar a regra, devemos usar o comando sudo ufw delete num_rule
Verificamos se foi eliminada e vemos o número da regra seguinte a ser eliminada.
Eliminamos novamente a regra.
Verificamos que só nos restam as regras necessárias no assunto.
19 ◦ Verificar se o serviço ssh está instalado na máquina virtual, se funciona correctamente e se só funciona no porto 4242.
which ssh
sudo service ssh status
20 ◦ Utilize ssh para iniciar sessão com o utilizador recém-criado. Certifique-se de que não pode utilizar o ssh com o utilizador de raiz.
Tentamos ligar-nos via ssh com o utilizador raiz, mas não temos permissões.
Ligamo-nos via ssh ao novo utilizador com o comando ssh newuser@localhost -p 4242
21 ◦ Modificar o tempo de execução do guião de 10 minutos para 1 minuto.
Executar o seguinte comando para modificar o ficheiro crontab sudo crontab -u root -e
Modificamos o primeiro parâmetro, em vez de 10 alteramo-lo para 1.
22 ◦ Finalmente, fazer o guião parar de funcionar quando o servidor tiver começado, mas não modificar o guião.
sudo /etc/init.d/cron stop
Se quisermos que volte a funcionar:
sudo /etc/init.d/cron start
Verifique se não deixou nada de fora! Testador próprio para verificar se a instalação e a configuração foram bem sucedidas.
gemartin |
◦ Email: gemartin@student.42barcelona.com
◦ Linkedin: https://www.linkedin.com/in/gemartin99/