-
Notifications
You must be signed in to change notification settings - Fork 0
Linux Server
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.
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.
Selecione:
Graphical Install
Isso inicia o instalador com interface gráfica.
Selecionar:
-
idioma
-
região
-
teclado
-
rede
Na parte de nome de domínio, você pode deixar em branco e configurar depois.
A senha do usuário root
Selecione:
Assistido - usar disco inteiro e configurar LVM
LVM (Logical Volume Manager) permite gerenciar discos de forma mais flexível.
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
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.
Instalar:
apt install openssh-serverP
Iniciar o serviço:
systemctl start ssh
Verificar se esta instalado:
systemctl status ssh
Quando aparecer a opção
Digite:
domain.com.br
Ler mídia adicional: NÃO
Proxy: deixe em branco
Perguntas (Sim/Não): pode seguir com Sim, como na instalação padrão
Selecione:
-
Servidor Web
-
Servidor SSH
-
Utilitários de sistema padrão
Desmarque o restante.
apt install linuxlogo
cd /etc
cat issue.linuxlogo > issue
-
Editar um arquivo:
IP/MáscaraGateway -
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)
cd /etc/network ( diretório onde configuramos a rede)
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
apt install systemd-resolved
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
systemctl restart networking ou reboot
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
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
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
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
O Apache Tomcat é um servidor que executa aplicações Java na web.
-
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
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
Instalar o java:
apt install default-jdk
Verificar se está instalado:
java -version
javac -version
-
Instalar:
apt install tomcat11 tomcat11-admin tomcat11-examples tomcat11-docs -
Verificar Serviço:
systemctl status tomcat11
-
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
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
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
Abra o navegador: http://IP_DO_SERVIDOR:8080
Clique em: Manager App
Faça login com usuário admin
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
No navegador: http://IP_DO_SERVIDOR:8080/agenda
Após instalar o MySQL, é recomendado: mysql_secure_installation
Isso melhora a segurança do banco.
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;
O MySQL Workbench é uma ferramenta gráfica para gerenciar bancos de dados.
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.
SHOW DATABASES;
USE agenda;
SELECT * FROM contatos;
DIFERENTE DO TERMINAL PARA USAR Ctrl + Enter PARA EXECUTAR COMANDOS.
Vá em: Administration → Data Export
Selecione o banco (ex: agenda)
Escolha: Dump Structure and Data
Clique em: Start Export
DROP DATABASE agenda;
IMPORTANTE!!: Você precisa criar o banco antes de restaurar.
Criar banco:
CREATE DATABASE agenda;
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.
VirtualBox - Habilitar 2 placas de rede
Adaptador 1 - NAT Adaptador 2 - Rede interna
Instalar apenas o sistema básico e SHH
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
apt install dnsmasq
Verificar status do servidor:
systemctl status dnsmasq
cd /etc
mv dnsmasq.conf dnsmasq.conf.bkp
Criar nova configuração:
nano dnsmasq.conf
#LAN
interface=enp0s8
bind-interfaces
#DNS
listen-address=192.168.17.1
server=8.8.8.8
server=8.8.4.4
cache-size=1000
systemctl restart dnsmasq
Verificar status:
systemctl status dnsmasq
sysctl --system
Editar configuração:
cd /etc/sysctl.d
nano sysctl.conf
Adicionar:
#NAT
net.ipv4.ip_forward=1
Aplicar:
sysctl --system
Verificar status:
systemctl status nftables
systemctl start nftables
systemctl enable nftables
systemctl status nftables
nft list ruleset
Backup da configuração:
cd /etc
cp nftables.conf nftables.conf.bkp
nano nftables.conf
Adicionar ao final:
table ip nat {
chain postrouting {
type nat hook postrouting priority 100;
policy accept;
oif "enp0s3" masquerade;
}
}
systemctl restart nftables
systemctl status nftables
nft list ruleset
cd /etc/dnsmasq.d
nano blacklist.conf
Adicionar:
#Lista negra
address=/netflix.com/0.0.0.0
address=/facebook.com/0.0.0.0
nano /etc/dnsmasq.conf
Adicionar:
#Blacklist
domain-needed
conf-file=/etc/dnsmasq.d/blacklist.conf
systemctl restart dnsmasq
systemctl status dnsmasq
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 apache2Diretório padrão de hospedagem: /var/www/html
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;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 PHPAjuste de memória: editar memory_limit em /etc/php/8.x/apache2/php.ini
- 128M → padrão
- 256M → uso comum
- 512M → e-commerce
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
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/htmlO 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 sshCliente recomendado: PuTTY (Windows)
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 tomcat11Acesso: http://<IP>:8080
Configuração de admin: /etc/tomcat11/tomcat-users.xml
<user username="admin" password="SUA_SENHA" roles="manager-gui,admin-gui"/>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.%'
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 + Enterpara 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
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-resolvedConfiguração: /etc/systemd/resolved.conf
DNS=8.8.8.8 8.8.4.4
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 > issueO 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 dnsmasqArquivos de configuração:
- Principal:
/etc/dnsmasq.conf - Blacklist:
/etc/dnsmasq.d/blacklist.confBloquear um site:
address=/facebook.com/0.0.0.0
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 ativasArquivo de configuração: /etc/nftables.conf
Regra NAT (masquerade):
table ip nat {
chain postrouting {
type nat hook postrouting priority 100;
oif "enp0s3" masquerade;
}
}
| 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 |