Skip to content

Linux Server

Gabriel Bispo edited this page May 29, 2026 · 100 revisions

Comandos


shutdown -h now: desligar

exit: logoff

pwd: exibir o diretorio atual

reboot: reinicia o pc

root: entrar no modo administrador

cd: Voltar para o diretório pessoal

cd /: Ir para a raiz do sistema

ls: lista os arquivos e diretório

ls -l: lista as permissões

cd ..: volta um nível

cp: cria uma copia

history: mostrar os ultimos 1000 comandos digitados

ip a: informaões de rede

link/ether: MAC

hostnamectl: informações do sistema

systemctl: gerenciador de serviços

systemctl status: verifica o status do serviço

systemctl stop: parar o serviço

system start: inicia o serviço

system restart: verifica o serviço

cliente ssh recomendado: putty

rm: excluir um arquivo

cat: Mostra o conteúdo de um arquivo diretamente no terminal.

Nomes e siglas


ssh: acesso remoto seguro ao servidor

etc: diretório de configuração

~: diretorio padrão do usuario

#: root

$: Usuário comum

home: diretório do usuário

/lost+found: Diretório utilizado pelo sistema para recuperação de arquivos em caso de erros no disco.

Instalação do Debian 13.3.0 Server

Passo 1)

Selecione:

Graphical Install

Isso inicia o instalador com interface gráfica.

Passo 2)

Selecionar:

  • idioma

  • região

  • teclado

  • rede

Na parte de nome de domínio, você pode deixar em branco e configurar depois.

Passo 3) Senha do administrador

A senha do usuário root

Passo 4) Particionamento de disco

Selecione:

Assistido - usar disco inteiro e configurar LVM

LVM (Logical Volume Manager) permite gerenciar discos de forma mais flexível.

Passo 5) Esquema de Partições

Selecione:

Partições /home, /var e /tmp separadas

Função de cada diretório

  • /home → arquivos dos usuários
  • /var → logs e dados variáveis do sistema
  • /tmp → arquivos temporários

Passo 6) Gerenciador de Pacotes

Ler mídia de instalação adicional, selecione: NÃO


  • Repositório Debian:

Selecione um espelho (mirror) do Debian para baixar atualizações.

Normalmente a primeira opção funciona bem.


  • Proxy HTTP Se aparecer a configuração de proxy HTTP, deixe em branco caso não utilize proxy na rede.

  • Seleção de Software

Selecione apenas:

Servidor SSH

Utilitários de sistema padrão

Desmarque as outras opções se a intenção for manter o servidor mais leve.

Instalação do seviço SSH

Instalar: apt install openssh-serverP

Iniciar o serviço: systemctl start ssh

Verificar se esta instalado:

systemctl status ssh

Instalação Debian Servidor WEB

Nome de domínio:

Quando aparecer a opção

Digite:

domain.com.br

Outras Opões:

Ler mídia adicional: NÃO
Proxy: deixe em branco
Perguntas (Sim/Não): pode seguir com Sim, como na instalação padrão

Seleção de software

Selecione:

  • Servidor Web

  • Servidor SSH

  • Utilitários de sistema padrão

Desmarque o restante.

Instalação e configuração do linuxlogo


apt install linuxlogo

cd /etc

cat issue.linuxlogo > issue

Cofigurando um IP fixo no debian

  • Editar um arquivo:

    IP/Máscara

    Gateway

  • Instalar um serviço DNS

Observações:

  • Identificar a rede e o Gateway

address 10.26.44.valor/24 (Mudar para o valor do seu ip)

netmask 255.255.255.0(Colocar a máscara)

Gateway 10.26.44.1( Colocar o gateway da rede)

Passo 1 (Ir para o diretório de configuração de rede):

cd /etc/network ( diretório onde configuramos a rede)

Passo 2 ( Editar o arquivo interfaces):

nano interfaces

Editar o arquivo iface enp0s3 inet dhcp para static

Colocar o ip: address 10.26.44.X

Colocar o gateway: 10.26.44.1

Passo 3 ( instalar um serviço DNS)

apt install systemd-resolved

configura o DNS:

cd /etc/systemd/

cp resolved.conf resolved.conf.bkp

nano resolved.conf

Abaixo da linha resolved colocar:

DNS=8.8.8.8 8.8.8.4

Salvar e sair:

Ctrl + O ( Salvar)

Enter (confirmar)

Ctrl + X ( Sair)

Reiniciar o serviço:

systemctl restart systemd-resolved

Passo 4) Reiniciar o serviço de rede( ou reiniciar o servidor)

systemctl restart networking ou reboot

Instalação do Wordpress

Passo 1) instalar o Linux (Debian -> Servidor WEB)

Passo 2) Fixar o IP

Passo 3) Verificar se o apache foi instalado, systemctl status apache2 se não systemctl start apache2

Passo 4) Instalar o banco de dados MariaDB

apt install mariadb-server

Vericar o o status: systemctl status mariadb

Executar um script de segurança do mariadb

mariadb-secure-installation

Criar o banco de dados do wordpress e associar um usuario a este banco

Entrar no maridb: maridb

Criar o wordpress: create database wordpress;

show database wordpress;

Cria o usuariocreate user 'admin'@'localhost' identified by '123@senac';

Garante privilégios ao wordpress: grant all privileges on wordpress.* to 'admin'@'localhost';

Aplicar a diretivas sem precisar reiniciar:flush privileges;

select User,Db,Host from mysql.db;( Para ver os usuários configurados)

Sai do maridb: quit

Passo) 5 Instalar o PHP:

apt install php phpmyadmin

Importante! apos a instalação do php, reiniciar o apache

systemctl restart apache2

php -v

Para administrar o banco de dados:

No navegador, digitar o ip do servidor/phpmyadmin

usuario: admin

senha: 123@senac


Ajustar Memória do PHP:

cd /etc/php/8.x/apache2(No lugar do x colocar a sua versão)

cp php.ini php.ini.bkp(Backup)

nano php.ini( Procurar por memory_limit = 128M)

Padrão → 128M

Uso comum → 256M

E-commerce → 512M


Passo 6) Instalar o wordpress

cd /var/www/html(diretório padrão de hospedagem)

Exluir o index.html:

rm index.html

cd ..(voltar um nivel de diretorio)

Baixar a ultima versão do wordpress:

wget http://wordpress.org/latest.tar.gz

Descompactar o arquivo baixado:

tar -xzvf latest.tar.gz

Copiar os arquivos do wordpress, sincronizando permissões para o diretório html:

rsync -avP wordpress/ /var/www/html

Permitir ao apache gerenciar o wordpress:

chown -R www-data:www-data /var/www/html

Projeto Tomcat - Servidor de aplicações Java

O Apache Tomcat é um servidor que executa aplicações Java na web.

Passo 1) Instalar o linux

  • 1 placa de rede

  • Instalar apenas sistema básico e SSH ( ATENÇÃO! Não instalar o servidor WEB)

  • Linux logo

  • Configurar um ip fixo no debian (rede senac), mudar no Virtual Box a rede para o modo bridge

  • Teste: ping google.com

PC real -> (ping) Debian

Instalar Debian

Escolha Graphic Install

Domínio → pode deixar em branco (configura depois)

Defina senha do root
  • Particionamento
Escolher: Assistido - usar disco inteiro com LVM

Depois: /home, /var e /tmp separados
  • Seleção de software
Servidor SSH

Utilitários padrão

Passo 2) Instalar o Java no Linux

Instalar o java:

apt install default-jdk

Verificar se está instalado:

java -version

javac -version

Passo 3) Instalar o Apache Tomcat

  • Instalar: apt install tomcat11 tomcat11-admin tomcat11-examples tomcat11-docs

  • Verificar Serviço: systemctl status tomcat11

Passo 4) Criar um admin para gerenciar remotamente o servidor tomcat

  • Acessar Diretório: cd /etc/tomcat11

  • Fazer Backup: cp tomcat-user.xml tomcat-users.xml.bkp

  • Editar arquivo: nano tomcat-users.xml

Apagar o comentario:

<!-- e colocar entre user username=

Depois editar o roles= para roles=manager-gui,admin-gui

Reiniciar o tomcat:

systemctl restart tomcat11

Passo 5) Instalar o banco de dados MySQL Oracle

apt install gnupg

Baixar do site oficial da oracle o repositório mysql mysql.com -> Downloads → MySQL Community Edition → MySQL APT Repository

Baixar pacote: wget https://dev.mysql.com/get/mysql-apt-config_0.8.36-1_all.deb

Instalar pacote: dpkg -i mysql-apt-config*.deb

Atualizar repositórios: apt update

Instalar MySQL: apt install mysql-server

Verificar instalação: mysql -V

Entrando no MySQL:

Acessar o banco: mysql -u root -p

Ver bancos existentes: SHOW DATABASES;

Criar banco de dados: CREATE DATABASE agenda;

Usar banco: USE agenda;

Ver tabelas: SHOW TABLES;

Criar tabela:

CREATE TABLE contatos (
  idcon INT PRIMARY KEY AUTO_INCREMENT,
  nome VARCHAR(30) NOT NULL,
  fone VARCHAR(15) NOT NULL,
  email VARCHAR(30)
);

Descrever tabela: DESCRIBE contatos;

Sair do MySQL: Ctrl + D

Implantar aplicação no Tomcat

Abra o navegador: http://IP_DO_SERVIDOR:8080

Clique em: Manager App

Faça login com usuário admin

Fazer upload do WAR:

Na seção: WAR file to deploy

Clique em Escolher arquivo

Selecione seu arquivo .war

Clique em: Deploy

Após o deploy, aparecerá algo como: /agenda

Acessar aplicação:

No navegador: http://IP_DO_SERVIDOR:8080/agenda


Após instalar o MySQL, é recomendado: mysql_secure_installation

Isso melhora a segurança do banco.

Tomcat - MySQL (Usuários, Workbench e Backup)

Criar usuário administrador no MySQL:

Acessar o MySQL:

mysql -u root -p

Criar usuário:

CREATE USER 'dba'@'%' IDENTIFIED BY '123@senac';

% significa que o usuário pode acessar de qualquer IP.

Dar permissões:

GRANT ALL PRIVILEGES ON *.* TO 'dba'@'%';

FLUSH PRIVILEGES;

MySQL Workbench

O MySQL Workbench é uma ferramenta gráfica para gerenciar bancos de dados.

Criar conexão:

Clique em + (Nova conexão)

Preencha:

Nome da conexão: qualquer (ex: ServidorDB)

Host: IP do servidor

Usuário: dba

Clique em OK

Conectar clique na conexão criada.

Comandos MySQL Workbench:

SHOW DATABASES;

USE agenda;

SELECT * FROM contatos;

DIFERENTE DO TERMINAL PARA USAR Ctrl + Enter PARA EXECUTAR COMANDOS.

Backup de Banco de Dados

Vá em: Administration → Data Export

Selecione o banco (ex: agenda)

Escolha: Dump Structure and Data

Clique em: Start Export

Apagar banco de dados:

DROP DATABASE agenda;

Restaurar Backup (Importar)

IMPORTANTE!!: Você precisa criar o banco antes de restaurar.

Criar banco:

CREATE DATABASE agenda;

Importar no Workbench (Restaurar Backup)

Vá em: Administration → Data Import/Restore

Clique nos 3 pontinhos e selecione o backup

Escolha o banco (agenda)

Clique em: Start Import

INFORMAÇÃO: Permitir acesso com '%' é prático, mas: Em produção, o ideal é limitar por IP:

'dba'@'192.168.0.%'

Isso aumenta a segurança.

Linux Server: NAT - Firewall - bloqueio de sites e redes sociais

Passo 1) Instalação do Debian:

VirtualBox - Habilitar 2 placas de rede

Adaptador 1 - NAT Adaptador 2 - Rede interna

Instalar apenas o sistema básico e SHH

Passo 2) Configuração da rede

cd /etc/network

Fazer uma cópia de segurança do arquivo interfaces: cp interfaces interfaces.bkp

Verificar as interfaces de rede lspci ip a

Editar o arquivo interfaces para configurar a rede:

nano interfaces (atenção! Precisa estar dentro de /etc/network)

Acrescentar no script a 2ª interface de rede com ip fixo:

#LAN
allow-hotplug enp0s8
iface enp0s8 inet static
address ip/máscara (ex: 192.168.17.1/24  obs: Usar no gateway final 1 ou 254)

Salvar:

Ctrl + o

Sair:

Ctrl + x

Reiniciar o servidor:

reboot ou systemctl restart networking

Passo 3) Instalar o DNS

instalar DNS:

apt install dnsmasq

Verificar status do servidor:

systemctl status dnsmasq

Backup da configuração:

cd /etc

mv dnsmasq.conf dnsmasq.conf.bkp

Criar nova configuração:

nano dnsmasq.conf

Configuração LAN:

#LAN
interface=enp0s8
bind-interfaces

Configuração DNS:

#DNS
listen-address=192.168.17.1
server=8.8.8.8
server=8.8.4.4
cache-size=1000

Reiniciar DNSMasq:

systemctl restart dnsmasq

Verificar status:

systemctl status dnsmasq

Ativar NAT

Habilitar encaminhamento IPv4

sysctl --system

Editar configuração:

cd /etc/sysctl.d

nano sysctl.conf

Adicionar:

#NAT
net.ipv4.ip_forward=1

Aplicar:

sysctl --system

NFTables (Firewall)

Verificar status:

systemctl status nftables

Ativar firewall:

systemctl start nftables

systemctl enable nftables

systemctl status nftables

Ver regras do firewall

nft list ruleset

Backup da configuração:

cd /etc

cp nftables.conf nftables.conf.bkp

Editar firewall:

nano nftables.conf

Configuração NAT no Firewall

Adicionar ao final:

table ip nat {
    chain postrouting {
        type nat hook postrouting priority 100;
        policy accept;
        oif "enp0s3" masquerade;
    }
}

Reiniciar firewall:

systemctl restart nftables

systemctl status nftables

nft list ruleset

Bloqueio de Sites (Blacklist DNS)

Criar blacklist:

cd /etc/dnsmasq.d

nano blacklist.conf

Adicionar:

#Lista negra
address=/netflix.com/0.0.0.0
address=/facebook.com/0.0.0.0

Vincular blacklist ao DNSMasq

nano /etc/dnsmasq.conf

Adicionar:

#Blacklist
domain-needed
conf-file=/etc/dnsmasq.d/blacklist.conf

Reiniciar serviço:

systemctl restart dnsmasq

systemctl status dnsmasq


Resumo dos Programas e Serviços


Apache HTTP Server

O que é: Servidor web open source, um dos mais usados no mundo. Responsável por servir páginas e arquivos pela internet (ou rede local).

Para que serve: Hospedar sites, aplicações web e servir o WordPress.

Comandos principais:

apt install apache2
systemctl start apache2
systemctl status apache2
systemctl restart apache2

Diretório padrão de hospedagem: /var/www/html


MariaDB

O que é: Sistema de gerenciamento de banco de dados relacional (SGBD), derivado do MySQL. Armazena e organiza dados em tabelas.

Para que serve: Banco de dados do WordPress (e outras aplicações).

Comandos principais:

apt install mariadb-server
systemctl status mariadb
mariadb-secure-installation   # script de segurança pós-instalação
 
mariadb                       # entrar no banco
CREATE DATABASE nome;
CREATE USER 'usuario'@'localhost' IDENTIFIED BY 'senha';
GRANT ALL PRIVILEGES ON banco.* TO 'usuario'@'localhost';
FLUSH PRIVILEGES;
QUIT;

PHP

O que é: Linguagem de programação server-side amplamente usada para desenvolvimento web.

Para que serve: O WordPress é escrito em PHP — sem ele, o WordPress não funciona.

Comandos principais:

apt install php phpmyadmin
php -v                        # verificar versão instalada
systemctl restart apache2     # sempre reiniciar o Apache após instalar o PHP

Ajuste de memória: editar memory_limit em /etc/php/8.x/apache2/php.ini

  • 128M → padrão
  • 256M → uso comum
  • 512M → e-commerce

phpMyAdmin

O que é: Interface web para administrar bancos de dados MySQL/MariaDB sem precisar usar o terminal.

Para que serve: Criar, visualizar e gerenciar bancos de dados pelo navegador.

Acesso: http://<IP_DO_SERVIDOR>/phpmyadmin

Instalação: incluído no comando apt install php phpmyadmin


WordPress

O que é: CMS (sistema de gerenciamento de conteúdo) open source, escrito em PHP. Um dos mais populares para criação de sites e blogs.

Para que serve: Criar e gerenciar sites sem necessidade de programar.

Depende de: Apache + PHP + MariaDB (stack LAMP)

Instalação resumida:

wget https://wordpress.org/latest.tar.gz
tar -xzvf latest.tar.gz
rsync -avP wordpress/ /var/www/html
chown -R www-data:www-data /var/www/html

OpenSSH Server

O que é: Implementação do protocolo SSH que permite acesso remoto seguro ao servidor via terminal.

Para que serve: Acessar e administrar o servidor remotamente sem precisar estar fisicamente na máquina.

Comandos principais:

apt install openssh-server
systemctl start ssh
systemctl status ssh

Cliente recomendado: PuTTY (Windows)


Apache Tomcat

O que é: Servidor de aplicações Java. Executa aplicações web desenvolvidas em Java (arquivos .war).

Para que serve: Hospedar sistemas Java na web, como sistemas internos, ERPs, aplicações corporativas.

Comandos principais:

apt install tomcat11 tomcat11-admin tomcat11-examples tomcat11-docs
systemctl status tomcat11
systemctl restart tomcat11

Acesso: http://<IP>:8080

Configuração de admin: /etc/tomcat11/tomcat-users.xml

<user username="admin" password="SUA_SENHA" roles="manager-gui,admin-gui"/>

MySQL (Oracle)

O que é: Sistema de gerenciamento de banco de dados relacional da Oracle. Similar ao MariaDB, mas com suporte comercial oficial.

Para que serve: Banco de dados do projeto Tomcat (aplicação Java).

Comandos principais:

wget https://dev.mysql.com/get/mysql-apt-config_0.8.36-1_all.deb
dpkg -i mysql-apt-config*.deb
apt update
apt install mysql-server
mysql_secure_installation
 
mysql -u root -p             # entrar no banco
SHOW DATABASES;
CREATE DATABASE nome;
USE nome;
SHOW TABLES;

Criar usuário com acesso remoto:

CREATE USER 'dba'@'%' IDENTIFIED BY '123@senac';
GRANT ALL PRIVILEGES ON *.* TO 'dba'@'%';
FLUSH PRIVILEGES;

Em produção, limite o acesso por IP: 'dba'@'192.168.0.%'


MySQL Workbench

O que é: Ferramenta gráfica oficial da Oracle para gerenciar bancos de dados MySQL.

Para que serve: Administrar bancos, executar queries, fazer backup e restaurar dados — tudo com interface visual, sem precisar do terminal.

Criar conexão:

Clique em + → preencher Host (IP do servidor) e usuário
OK → clicar na conexão para conectar

Comandos úteis:

SHOW DATABASES;
USE agenda;
SELECT * FROM contatos;

Usar Ctrl + Enter para executar comandos (diferente do terminal).

Backup:

Administration → Data Export → selecionar banco
Dump Structure and Data → Start Export

Restaurar:

Criar o banco antes: CREATE DATABASE agenda;
Administration → Data Import/Restore → selecionar arquivo → Start Import

systemd-resolved

O que é: Serviço de resolução de nomes (DNS) integrado ao systemd, padrão em distribuições Linux modernas.

Para que serve: Permite que o servidor resolva nomes de domínio (ex: transformar google.com em um IP), necessário após configurar IP fixo.

Comandos principais:

apt install systemd-resolved
systemctl restart systemd-resolved

Configuração: /etc/systemd/resolved.conf

DNS=8.8.8.8 8.8.4.4

linuxlogo

O que é: Utilitário que exibe um logo do Linux com informações do sistema na tela de login do terminal.

Para que serve: Personalizar a tela de boas-vindas do servidor.

Instalação:

apt install linuxlogo
cd /etc
cat issue.linuxlogo > issue

dnsmasq

O que é: Servidor DNS e DHCP leve, muito usado em redes locais e servidores Linux.

Para que serve: No projeto NAT, atua como DNS da rede interna — resolve nomes de domínio para os clientes da LAN e permite bloquear sites via blacklist.

Comandos principais:

apt install dnsmasq
systemctl restart dnsmasq
systemctl status dnsmasq

Arquivos de configuração:

  • Principal: /etc/dnsmasq.conf
  • Blacklist: /etc/dnsmasq.d/blacklist.conf Bloquear um site:
address=/facebook.com/0.0.0.0

NFTables (Firewall)

O que é: Ferramenta de firewall padrão no Linux moderno, substituta do iptables.

Para que serve: Controlar o tráfego de rede — no projeto NAT, é usado para ativar o mascaramento (masquerade), permitindo que os clientes da rede interna acessem a internet através do servidor.

Comandos principais:

systemctl start nftables
systemctl enable nftables
systemctl restart nftables
nft list ruleset          # ver regras ativas

Arquivo de configuração: /etc/nftables.conf

Regra NAT (masquerade):

table ip nat {
    chain postrouting {
        type nat hook postrouting priority 100;
        oif "enp0s3" masquerade;
    }
}

Tabela resumo

Programa Tipo Porta padrão Para que serve
Apache Servidor web 80 / 443 Servir sites e o WordPress
MariaDB Banco de dados 3306 Banco do WordPress
MySQL Banco de dados 3306 Banco do projeto Java
MySQL Workbench Interface gráfica Gerenciar MySQL visualmente, backup e restore
PHP Linguagem Executar o WordPress
phpMyAdmin Interface web 80 Gerenciar bancos pelo navegador
WordPress CMS 80 Gerenciar sites
OpenSSH Acesso remoto 22 Administrar o servidor remotamente
Tomcat Servidor Java 8080 Hospedar aplicações Java
systemd-resolved DNS 53 Resolução de nomes (IP fixo)
dnsmasq DNS/DHCP 53 DNS da LAN + bloqueio de sites
NFTables Firewall Firewall e NAT/masquerade
linuxlogo Utilitário Banner de login no terminal

Clone this wiki locally