Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Prévia do material em texto

W
BA
11
34
_V
1.
0
ADMINISTRAÇÃO DE REDES 
LINUX
2
Allan Crasso Naia de Souza
São Paulo
Platos Soluções Educacionais S.A 
2022
 ADMINISTRAÇÃO DE REDES LINUX
1ª edição
3
2022
Platos Soluções Educacionais S.A
Alameda Santos, n° 960 – Cerqueira César
CEP: 01418-002— São Paulo — SP
Homepage: https://www.platosedu.com.br/
Head de Platos Soluções Educacionais S.A
Silvia Rodrigues Cima Bizatto
Conselho Acadêmico
Alessandra Cristina Fahl
Ana Carolina Gulelmo Staut
Camila Turchetti Bacan Gabiatti
Camila Braga de Oliveira Higa
Giani Vendramel de Oliveira
Gislaine Denisale Ferreira
Henrique Salustiano Silva
Mariana Gerardi Mello
Nirse Ruscheinsky Breternitz
Priscila Pereira Silva
Coordenador
Henrique Salustiano Silva
Revisor
Paulo César Monteiro Nunes
Editorial
Beatriz Meloni Montefusco
Carolina Yaly
Márcia Regina Silva
Paola Andressa Machado Leal
Dados Internacionais de Catalogação na Publicação (CIP)_____________________________________________________________________________ 
Souza, Allan Crasso Naia de
Administração de redes linux / Allan Crasso Naia de 
Souza. – São Paulo: Platos Soluções Educacionais S.A., 2022.
34 p.
ISBN 978-65-5356-331-5
1.Administração de redes. 2. Linux. 3. Sistema 
operacional. I. Título.
CDD 003.72
_____________________________________________________________________________ 
Evelyn Moraes – CRB 010289/O
S729a
© 2022 por Platos Soluções Educacionais S.A.
Todos os direitos reservados. Nenhuma parte desta publicação poderá ser reproduzida ou 
transmitida de qualquer modo ou por qualquer outro meio, eletrônico ou mecânico, incluindo 
fotocópia, gravação ou qualquer outro tipo de sistema de armazenamento e transmissão de 
informação, sem prévia autorização, por escrito, da Platos Soluções Educacionais S.A.
4
SUMÁRIO
Apresentação da disciplina __________________________________ 05
Conhecendo o Linux _________________________________________ 07
Comandos e estrutura de diretórios _________________________ 17
Linhas de comando, interface do usuário e administração de 
tarefas _______________________________________________________ 28
Configuração e monitoramento de serviços _________________ 39
ADMINISTRAÇÃO DE REDES LINUX
5
Apresentação da disciplina
Seja bem-vindo à disciplina Administração de Redes Linux! Nosso objetivo 
é apresentar os princípios da Administração em Redes Linux de acordo 
com as documentações dos principais sistemas operacionais baseados 
no Kernel do Linux.
Durante nossas aulas, abordaremos o funcionamento da arquitetura 
Linux e falaremos sobre sua instalação, partindo de uma determinada 
distribuição. Além disso, estudaremos as diferenças entre 
gerenciamento do sistema operacional via interface gráfica e linha de 
comando, conhecido por CLI.
Depois de aprendermos sobre a instalação e abordarmos os princípios 
básicos do Linux, partiremos para a apresentação dos comandos 
introdutórios para gerir o sistema operacional e seus recursos, bem 
como o interpretador de comandos Shell. Conhecido pela famosa “tela 
preta”, existem vários ambientes Shell no GNU Linux. Por padrão, muitas 
das distribuições do Linux utilizam o Bash, mas também citaremos 
outros Shells existentes e listados dentro do arquivo /etc/shells. Cabe 
ressaltar que cada Shell possui uma particularidade, e a maioria dos 
usuários se sente mais à vontade com o Bash.
Falando do gerenciamento de redes Linux, inicialmente é necessário 
recapitular alguns conceitos introdutórios sobre redes de computadores, 
visto que termos como IP, roteamento e endereçamento são necessários 
para o bom andamento da disciplina e você precisa estar com eles 
claros. A partir daí, iniciaremos com comandos como ping, route e 
ifconfig, todos eles com um exemplo para nortear sua utilização.
6
É importante informar que a gerência do Kernel envolve operações que 
podem ser complexas e delicadas, principalmente quando um usuário 
depende de uma infra de redes, por exemplo, funcionando. Porém, 
frisamos que os conhecimentos abordados durante esta disciplina serão 
suficientes para solucionar alguns problemas enfrentados no cotidiano 
de um administrador de redes Linux.
Diante dessa explanação resumida da disciplina, nós o convidamos a 
ler os materiais teóricos, assistir às videoaulas, fazer os exercícios e 
acompanhar os podcasts disponibilizados. Bons estudos!
7
Conhecendo o Linux
Autoria: Allan Crasso Naia de Souza
Leitura crítica: Paulo César Monteiro Nunes
Objetivos
• Conhecer o funcionamento da arquitetura Linux.
• Realizar a instalação do Sistema Operacional Linux.
• Realizar a administração de pacotes.
8
1. S. O. Linux
Seja bem-vindo ao universo dos softwares livres. Aprender sobre Linux é 
uma excelente maneira de ramificar seus conhecimentos em tecnologia 
da informação. Antes de iniciarmos a conversa sobre gerenciamento de 
redes utilizando o Linux, vamos falar sobre os recursos que tornam esse 
sistema operacional importante.
Você sabia que utiliza o Linux, ou já o utilizou, em seu celular? Ele é a 
base do Android. Isso quer dizer que ele não se limita à execução apenas 
em desktops ou servidores e outros dispositivos. Inclusive essa é uma 
das principais razões para aprendermos Linux, pois ele é utilizado em 
muitos dispositivos.
O Linux não é tão popular quanto o Windows, porque utiliza uma 
interface diferente. O Windows utiliza uma interface gráfica, chamada 
de Interface Gráfica do Usuário (GUI), enquanto o Linux ainda é bastante 
utilizado via interface baseada em linha de comando (CLI) e, por esse 
motivo, segmenta seus usuários a um nicho bem específico. O que 
poucas pessoas sabem é que o Windows utiliza comandos quando os 
usuários “clicam” em ícones, comandos estes que no Linux você precisa 
optar, devido à utilização por interfaces GUI ter aumentado bastante, 
por digitar no terminal.
A Figura 1 apresenta a imagem da interface gráfica da distribuição 
Ubuntu e a Figura 2, a interface do terminal do Linux.
9
Figura 1 – Interface gráfica da distribuição UBUNTU/LINUX
Fonte: acervo do autor.
Figura 2 – CLI Linux–Terminal
Fonte: https://commons.wikimedia.org/wiki/File:1-Apt-get_command.png. Acesso em: 10 
jun. 2022.
10
1.1 Interface Gráfica GUI Linux (Graphical User Interface)
As interfaces gráficas do Linux têm o intuito de proporcionar aos 
usuários uma interação com o sistema operacional sem a necessidade 
de utilização de linhas de comando. Assim como os outros sistemas 
já conhecidos pelas suas respectivas interfaces, como o Windows e o 
Android, o Linux também permite acessar funcionalidades e opções de 
gerenciamento por meio de suas GUIs.
A interface Linux é essencial para que qualquer usuário consiga 
manusear e ser atendido pelo sistema operacional. O intuito é 
aproximar mais usuários com suas distribuições baseadas no Kernel do 
Linux.
Seguem as distribuições Linux conhecidas por suas interfaces:
• Ubuntu.
• Kurumin KDE.
• Gnome CentOS.
É importante frisar que a utilização por linhas de comando do Linux, 
ainda nos dias de hoje, visa otimizar recursos e melhorar a performance 
do gerenciamento de recursos.
1.2 Linha de comando Linux
A linha de comando do Linux é uma interface baseada em texto que 
aceita comandos digitados nela. Esses comandos controlam as ações 
que os usuários desejam realizar no sistema computacional controlado 
pelo Linux. Sua utilização, dessa forma, é um dos motivos de o Linux 
ser considerado mais rápido do que o Windows. Cabe ressaltar que 
11
suas distribuições possuem interface gráfica, mas, por opção, mais 
comumente é usado por linha de comando.
O que inicialmente era uma barreira, hoje passa a ser uma vantagem, 
já que seu uso tem crescido no meio corporativo, com empresas 
como NASA e McDonald’s utilizam o Linux em seus servidores. Um dos 
motivos para isso é o fato de ser um Sistema Operacional Open Source, 
ou seja, livre e de código aberto, e, com isso, essas empresas e outras 
corporações, como o próprio governo brasileiro, não precisam gastar 
muitodinheiro com licenças proprietárias.
1.3 Demanda de utilização do Linux
Hoje todos nós, enquanto usuários, estamos gerando e consumindo 
um grande volume de dados, o que causa um problema que precisa 
de solução, que é a segurança de acessos e armazenamento de dados. 
Logo, habilidades técnicas para analisar, processar, proteger e transmitir 
dados estão em alta. Dessa forma, o aprendizado em Linux pode trazer 
uma vantagem para o profissional no mercado. Trazemos a seguir 
alguns exemplos de profissões que necessitam de conhecimentos em 
Linux:
• Engenharia de rede: os engenheiros de rede são responsáveis 
pelo gerenciamento dos computadores da rede, e a maioria dos 
sistemas operacionais de rede é baseada em Linux, como IOS da 
Cisco.
• Cibersegurança: profissionais de cibersegurança monitoram e 
investigam ameaças de segurança aos dados em vários sistemas. 
O Linux é usado nesses casos para realizar testes de penetração 
do sistema e avaliar a vulnerabilidade nas redes.
• Desenvolvimento/Programação: desenvolvedores projetam 
aplicativos para rodarem em diversas plataformas. Logo, pelo 
12
fato de ser open source e ter seu código aberto, permite que 
desenvolvedores criem scripts e funções para executar ações 
complexas em um computador. O Linux também é usado nesse 
campo porque somente ele permite que os usuários acessem seu 
código-fonte, dando a eles a capacidade de experimentá-lo.
• Análise de Dados: analistas de dados e cientistas classificam 
e analisam conjuntos de dados para encontrar padrões para 
relacionar e prever tendências e comportamentos. Dessa forma, 
eles usam o Linux devido à grande variedade de ferramentas e 
comandos disponíveis para a análise de dados, como MySQL e 
muito mais.
Como já dito anteriormente, o Linux também é usado por ser gratuito, 
em distribuições que atendam às necessidades dos usuários, e 
distribuído em várias versões, uma para cada finalidade. Assim, por 
exemplo, distribuições como o Ubuntu são recomendadas para usuários 
iniciantes, pois sua interface gráfica é bem consolidada, enquanto para 
ambientes servidores são indicadas distribuições como o RedHat.
1.4 Instalação e configuração do Linux
A instalação do Linux é similar a uma instalação do Windows. Os 
primeiros passos já são conhecidos nossos:
• Faça download de uma distribuição Linux.
• Crie uma mídia “inicializável”, ou, como o jargão utilizado na TI, 
“bootável”.
• Insira a mídia no sistema computacional desejado e comece o 
passo a passo.
13
O foco do material não é mostrar a instalação a fundo, principalmente 
pelo fato de consumir muito espaço e as instalações poderem sofrer 
alguma mudança de acordo com a distribuição adotada.
1.5 Memória principal
Não podemos deixar de abordar a memória quando estamos falando 
sobre um sistema operacional que tem como um dos pontos fortes a 
velocidade de processamento. Em âmbito geral, a memória é somente 
uma grande área de armazenamento para um conjunto binário. Assim 
como a memória, o Kernel, que é o núcleo do Sistema Operacional, 
também fica nessa área de códigos binários, e os processos concorrem 
para executarem suas operações em ambos.
Dito isso, as entradas e saídas dos dispositivos periféricos passam pela 
memória principal, reforçando o que foi dito anteriormente de ser tudo 
em binário. Logo, a memória é um grande aliado da CPU, pois é nela que 
a CPU lê as instruções a serem processadas e, após o processamento, 
escreve novamente nela.
Levando em consideração que a maioria das operações é executada a 
partir da CLI, essas rotinas acabam sendo mais leves, pois temos menos 
operações para realizar a mesma operação. Por exemplo, a instalação 
de um software no Windows pode ser mais demorada do que no Linux, 
pois os cliques realizados vão fazer as mesmas solicitações em linha de 
comando, enquanto, ao utilizarmos a CLI das distribuições dos Linux, já 
fazemos isso diretamente.
1.6 Gerenciamento de pacotes
O gerenciamento de pacotes é um recurso pelo qual o Linux realiza a 
instalação de outros softwares no sistema computacional, podendo 
instalar, atualizar, consultar ou remover outros aplicativos. Existem 
14
vários gerenciadores de pacotes, porém eles são baseados em duas 
distribuições apenas, o Debian e RedHat. Isso impactará em alguns 
comandos utilizados por cada distribuição, visto que o Debian utiliza 
o “apt-get”, enquanto o RedHat utiliza o “yum” para fazer o mesmo 
procedimento.
Alguns comandos são substituídos por outros para facilitar sua utilização 
pelos usuários. Chamamos a atenção para o fato de que o intuito não é 
dificultar a rotina dos usuários, e sim auxiliá-los. Por isso, um comando 
utilizado a nível mais baixo, como o “dpkg”, tem o seu equivalente mais 
simples, porém desenvolve a mesma tarefa, nesse caso o “apt-get”, que 
acaba sendo uma interface que facilita a rotina do usuário.
É importante observar que muitos dos comandos utilizados para 
o gerenciamento de pacotes requerem um privilégio, um acesso 
administrativo. No Linux, é utilizado o comando SUDO para acessar esse 
perfil com privilégios elevados, mas nem todo usuário possui perfil para 
fazer alterações de instalação ou atualizações nos softwares. Fazendo 
uma comparação com o Windows, se você está em um ambiente com 
mais controle, como um ambiente corporativo, não tem permissão, 
muitas das vezes, nem para consultar a sua interface de redes. Da 
mesma forma, no Linux, enquanto usuário, você deverá possuir perfis de 
administração. Assim, ao elevar o nível de usuário, você usa o comando 
“Sudo Su” e logo em seguida é solicitada a senha de acesso.
1.7 Instalando pacotes
Os pacotes, ou softwares, são instalados a partir de fontes confiáveis 
disponíveis em servidores na internet. O usuário poderá enviar o pacote 
a ser instalado via FTP ou baixar diretamente utilizando o “apt-get”.
Uma boa prática antes de optar pela instalação de um determinado 
pacote é realizar o update deste. Como exemplo, podemos citar a 
instalação de um pacote PHP para que a instalação do Moodle possa 
15
ser realizada. Para a instalação do pacote Moodle, é necessário que os 
softwares PHP e MySQL estejam disponíveis. Porém, antes de instalar 
ambos os softwares, realize um update, pois ele já pode estar disponível. 
Se já estiverem instalados na sua versão mais recente, no CLI aparecerá 
uma mensagem informando essa condição, conforme mostrado na 
Figura 3.
Figura 3 – Exemplo de pacote já instalado
Fonte: acervo do autor.
Seguem os comandos mencionados:
• Sudo apt-get update: atualiza todos os pacotes e sua execução 
pode demorar um pouco.
• Apt-cache search [palavra-chave]: pesquisa palavras-chaves 
dentro dos pacotes.
• Apt-get install [pacote]: instala um pacote desejado.
Uma observação importante sobre o comando apt-get install é que ele 
também pode ser utilizado para a atualização de pacotes. Vale lembrar 
que toda atualização precisa ser feita em duas etapas, isto é, primeiro 
é necessário atualizar o cache com o comando apt-get update e, em 
seguida, atualizar as dependências por meio do comando apt-get 
upgrade.
16
Referências
CISCO. Networking Academy. NETACAD, 2022. Disponível em: www.netacad.com. 
Acesso em: 10 jun. 2022.
MARTINS, J. F. et al. Sistemas operacionais de redes abertas. Porto Alegre: SAGAH, 
2021.
OLONCA, R. L. Administração de Redes Linux: Conceitos e práticas na 
administração de Redes em Ambientes Linux. São Paulo: Novatec, 2015.
RAMOS, J. Guia Prático do Servidor Linux: Administração Linux para Iniciantes. São 
Paulo: Casa do Código, 2018.
http://www.netacad.com
http://www.netacad.com
17
Comandos e estrutura de 
diretórios
Autoria: Allan Crasso Naia de Souza
Leitura crítica: Paulo César Monteiro Nunes
Objetivos
• Conhecer e executar os comandos Linux e Unix.
• Conhecer a estrutura de diretórios do Kernel Linux.
• Dar exemplos para o dia a dia do profissional.
18
1. Comandos GNU Linux
Neste Tema, vamos estudar sobre os comandos do GNU Linux e sobre 
Unix, sistemas de arquivos e padrão FHS.A definição sobre os sistemas Linux dependerá do contexto abordado, 
pois Linux quer dizer o kernel do sistema operacional que irá controlar 
todo o sistema computacional. Então, sempre que nos referimos ao 
Linux, na verdade estamos nos referindo a uma combinação de software 
chamada GNU/Linux.
GNU é um software livre que fornece diretórios de código aberto 
de muitos comandos comuns do Unix. A partir desses diretórios, a 
parte Linux dessa combinação é o kernel Linux, que é o núcleo do 
sistema operacional, identificando os pacotes GNU. O kernel é carregado 
no momento da inicialização e permanece em execução para gerenciar 
todos os aspectos do sistema em funcionamento.
Segundo as bibliografias disponíveis sobre a história desse sistema 
operacional, o Linux é baseado em Unix, um sistema operacional 
desenvolvido na AT&T Bell Labs na década de 1970. O Unix é escrito 
na linguagem C, o que o torna portátil entre os sistemas operacionais 
concorrentes, que costumavam ser desenvolvidos especificamente 
ao hardware para o qual eram escritos, como acontece hoje com os 
sistemas operacionais da Apple. Ele rapidamente ganhou popularidade 
em ambientes acadêmicos, bem como entre os programadores atraídos 
por sua modularidade. Com o tempo, foi modificado e bifurcado (ou 
seja, as pessoas o modificaram e essas modificações serviram de 
base para outros sistemas), de modo que atualmente existem muitas 
variantes diferentes. No entanto, Unix é agora uma marca registrada 
e uma especificação, de propriedade de um consórcio da indústria 
chamado Open Group. Dessa forma, somente softwares certificados 
pelo Open Group podem se chamar Unix.
19
Como na maioria dos sistemas operacionais, o Linux pode ser utilizado 
em dois modos: com interface gráfica (GUI) e por linha de comando (CLI). 
Utilizando o modo CLI, que é uma interface baseada em texto, o usuário 
interage por meio de comandos interpretados pela CPU, os quais são 
executados em um software conhecido como Terminal, como mostra a 
Figura 1.
Figura 1 – Terminal Linux
Fonte: https://www.informatique-mania.com/pt/applications/liberez-la-puissance-de-linux-
avec-les-meilleurs-programmes-terminal/. Acesso em: 20 set. 2022.
O terminal recebe o que o usuário digita e passa para um Shell, que, 
por sua vez, é responsável por interpretar as instruções e permite que a 
CPU execute o que foi digitado e retorne as respostas. Se os comandos 
digitados estiverem corretos, no próprio terminal é mostrada a execução 
solicitada, podendo ser a instalação de um pacote, software ou mesmo 
uma consulta de diretórios.
A CLI começa com um log-in em texto. Se o log-in for bem-sucedido, 
após solicitados usuário e senha, você é levado a um Shell CLI 
personalizado para o seu usuário especificamente. A seguir trazemos 
20
uma ilustração copiada do terminal da distribuição Linux e colado aqui 
com o intuito de mostrar como a CLI é apresentada ao usuário.
O ambiente Linux permite o uso de Shells, que é a famosa tela preta. 
Existem vários ambientes Shell no ambiente GNU/Linux. Por padrão, a 
maioria das distribuições utiliza o Bash. No entanto, existem outros tipos 
de Shell e todos estão listados no arquivo “etc/shells”. Cada um dos Shell 
possuem suas particularidades. Por já vir nas distribuições, a grande 
maioria dos usuários se dá bem com o Bash.
O Bash possui alguns recursos mais populares, como os apresentados a 
seguir:
ubuntu 18.04 ubuntu tty2 
ubuntu login: platos
Senha:
Os programas incluídos no sistema Ubuntu são
softwares livres;
os termos exatos de distribuição para cada programa
estão descritos nos arquivos individuais em /usr
share/doc/*/copyright. 
sue@ubuntu:~$ w 
17:27:22 até 14 min, 2 usuários, carga média: 1,73, 1,83, 1,69
USER TTY DE LOGIN@ IDLE JCPU PCPU O QUE
sue tty2 20:08 14,35 0,05s 0,00sw
21
• Scripting: a capacidade de colocar comandos em um arquivo e 
depois interpretá-los, utilizando efetivamente o Bash para executar 
o bloco de conteúdo do arquivo, o que resulta na execução 
de todos os comandos. Este recurso também possui algumas 
ferramentas de programação, como instruções condicionais e a 
capacidade de criar funções (sub-rotinas AKA).
• Alias: permite abreviar ou criar apelidos para comandos longos.
• Variáveis: usadas para armazenar informações para o Shell Bash 
e para o usuário. Podem ser usadas para modificar o modo de 
funcionamento de comandos e recursos, além de fornecerem 
informações cruciais para o sistema.
1.1 Prompt
Além destes, o Bash possui uma lista de recursos maior. Foram listados 
apenas os mais populares. Esses comandos são executados no Shell, por 
meio da abertura de um terminal, que por sua vez utiliza o prompt como 
interface para a utilização dos comandos.
A estrutura do prompt pode variar entre as distribuições, mas 
normalmente contém informações sobre o usuário e o sistema. A seguir 
trazemos a estrutura de prompt comum:
 
sysadmin@localhost: ~ $
O prompt mostrado contém as seguintes informações:
Nome de usuário:
 
sysadmin @localhost : ~ $
22
Nome do sistema:
 
sysadmin@ localhost : ~ $
Diretório atual:
 
sysadmin@localhost: ~ $
O símbolo “~“ é usado como abreviação para o diretório inicial do 
usuário. O mais comum é que o diretório inicial esteja no “/home” e 
tenha o nome da conta de usuário. Como um exemplo da estrutura 
mencionada temos: /home/sysadmin.
1.2 Comandos
Iniciamos este tópico trazendo a informação de que o que parece um 
simples comando pode ser mais do que isso. Um comando pode ser 
uma chamada de um software, que, quando chamado por meio da CLI, 
executa uma ação específica escrita para um fim específico.
O primeiro passo é digitar o nome do comando. Para isso, é necessário 
abrir o terminal e iniciar pelo “LS”, com mostrado no exemplo a seguir:
 
ysadmin@localhost: ~ $ ls 
Desktop Documentos Downloads Músicas Imagens Modelos Públicos Vídeos
O “LS” lista os arquivos e diretórios contidos na estrutura em que se está 
trabalhando. A utilização de qualquer comando segue um padrão base 
que está dividido em dois: [opções] + [argumento].
23
A seguir, trazemos o formato padrão:
 
comando [opções] [argumentos]
As opções são usadas para modificar o comportamento principal de 
um comando, enquanto os argumentos são usados para fornecer 
informações adicionais, como nome de um arquivo ou de usuário. 
É importante frisar que cada opção e argumento normalmente são 
separados por espaço e, dependendo do que se deseja realizar, são 
combinados para que o sistema realize o que for desejado.
1.3 Argumentos
Um argumento pode ser usado para especificar algo para o comando 
agir. Por exemplo, se o comando “LS” receber o nome do diretório como 
argumento, ele listará o conteúdo desse diretório. No exemplo a seguir, 
o “/etc/pppdiretório” é usado como argumento, e a saída resultante é 
uma lista de arquivos contidos nesse diretório:
 
sysadmin@localhost : ~ $ ls /etc/ppp 
ip-down.d ip-up.d 
1.4 Opções
As opções podem ser usadas para alterar o comportamento de um 
comando. Por exemplo, o comando “LS” é utilizado para listar o 
conteúdo de um diretório. Associado ao LS, podemos usar o “-L”, que, 
por sua vez, resulta em uma listagem longa de informações sobre os 
arquivos disponíveis em um determinado diretório, como mostrado a 
seguir:
24
 
sysadmin@localhost: ~ $ ls -l 
total 0 
drwxr-xr-x 1 sysadmin sysadmin 0 Jan 29 20:13 Desktop 
drwxr-xr-x 1 sysadmin sysadmin 0 Jan 29 20:13 Documentos 
drwxr-xr-x 1 sysadmin sysadmin 0 Jan 29 20:13 Downloads 
drwxr-xr-x 1 sysadmin sysadmin 0 Jan 29 20:13 Música 
drwxr-xr-x 1 sysadmin sysadmin 0 Jan 29 20:13 Imagens 
drwxr-xr-x 1 sysadmin sysadmin 0 Jan 29 20:13 Público 
drwxr-xr-x 1 sysadmin sysadmin 0 Jan 29 20:13 Modelos 
drwxr-xr-x 1 sysadmin sysadmin 0 Jan 29 20:13 Vídeos1.5 Tipos de comandos
É importante salientar que em uma estrutura com os comandos 
digitados existem informações que dizem muito sobre o que vai ser 
executado, sendo possível, inclusive, sabermos de onde o comando vem. 
Existem várias fontes diferentes de comandos dentro do Shell de sua 
CLI, e a seguir trazemos os tipos existentes:
• Comandos internos: são incorporados ao próprio Shell. Como 
exemplo temos o “cd”. Quando um usuário digita o “cd”, o Shell 
Bash já está em execução e sabe como interpretá-lo, não exigindo 
que programas adicionais sejam iniciados.
 
sysadmin@localhost: ~ $ type cd 
cd is a shell builtin
• Comandos externos: são executáveis binários armazenados em 
diretórios pesquisados pelo Shell.
25
• Alias: permite que o usuário utilize abreviações ou apelidos 
para comandos mais longos. Quando o Shell vê um alias sendo 
executado, ele substitui a sequência mais longa antes de continuar 
a interpretar os comandos.
Para saber quais alias estão disponíveis no Shell utilizado, digite “alias” 
no terminal, como mostrado no exemplo a seguir:
 
sysadmin@localhost: ~ $ alias 
alias egrep=’egrep --color=auto’ 
alias fgrep=’fgrep --color=auto’ 
alias grep=’grep --color=auto’ 
alias l=’ls -CF’ 
alias la =’ls -A’ 
alias ll=’ls -alF’ 
aliás ls=’ls --color=auto’ 
1.6 FHS (Filesystem Hierarchy Standard)
O FHS (padrão para sistemas de arquivos hierárquicos) mantém o 
sistema de arquivos nas distribuições Linux organizado. Essa prática 
não é fácil, tendo em vista que a maior experiência dos usuários é com 
o Windows, em que definimos o sistema de arquivos de acordo com a 
conveniência do próprio usuário. Por exemplo, se você quiser usar uma 
pasta em “Meus Documentos” para guardar a instalação de um software, 
será possível. Porém, essa prática livre traz uma desorganização no 
sistema de arquivo. Por esse motivo, sempre que você acessa uma 
distribuição Linux, é possível encontrar as mesmas pastas, com o 
mesmo nome e, aparentemente, com a mesma função no sistema de 
arquivos.
26
Antes de prosseguirmos, cabe ressaltar que FSH não é um programa, 
e sim um conjunto de boas práticas não obrigatórias, mas muito 
respeitadas. Uma das principais implementações do FSH foi dividir os 
arquivos por tipos, entre os quais:
• Arquivos Compartilháveis (Shareable): são arquivos que, 
mesmo localizados em uma determinada máquina, podem ser 
disponibilizados pelo usuário para que outras pessoas acessem via 
rede.
• Arquivos Não Compartilháveis (Nonshareable): ao contrário dos 
compartilháveis, estes não podem ser compartilhados.
Também existem os arquivos segmentados por modificação:
• Variáveis (Variable): são arquivos que frequentemente sofrem 
alterações, como os arquivos de log.
• Estáticos (Static): não são alterados com frequência, ou 
quase nunca, como os arquivos que guardam informações dos 
programas, que somente são acessados quando esses programas 
são atualizados.
Além das categorias, a seguir listamos os principais diretórios:
• /bin (Binarious – Binários essenciais dos usuários): guarda 
os principais programas do sistema computacional. No modo 
monousuário, por exemplo, os arquivos de inicialização ficam 
nesse diretório.
Como exemplo, os navegadores são localizados no diretório “/usr/
bin”.
• /dev (Device – Arquivos de dispositivos): concentra pontos de 
acesso para os dispositivos. Isso porque no Linux os dispositivos 
são representados com arquivos. Logo, nesse diretório são 
27
armazenados os arquivos que auxiliam no reconhecimento dos 
hardwares quando utilizados no sistema computacional.
Como exemplo, pense em um disco rígido; nos sistemas Linux, ele é 
representado como “/dev/sda”.
Existem outros diretórios que fazem parte da estrutura de arquivo do 
Linux, porém, por serem muitos, trouxemos apenas uma visão geral 
sobre FHS. Essa estrutura pode mudar um pouco de distribuição para 
distribuição, mas tende a seguir as boas práticas preconizadas pelo FHS.
Referências
ARLEI. Usando o terminal. Prof. Suzano, 2007. Disponível em: https://sites.google.
com/site/profsuzano/sistemas-operacionais/linux/ubuntu/usando-o-terminal. 
Acesso em: 20 set. 2022.
NEGUS, Christopher. Linux – A bíblia: o mais abrangente e definitivo guia sobre 
Linux. 8. ed. Rio de Janeiro: Alta Books, 2014.
OLONCA, Ricardo Lino. Administração de Redes Linux: Conceitos e Práticas na 
Administração de Redes em Ambiente Linux. São Paulo: Novatec, 2015.
28
Linhas de comando, interface 
do usuário e administração de 
tarefas
Autoria: Allan Crasso Naia de Souza
Leitura crítica: Paulo César Monteiro Nunes
Objetivos
• Criar linhas de comando utilizando Shell Script.
• Conhecer as interfaces de usuários baseadas em 
Linux.
• Automatizar tarefas administrativas.
29
1. Shell
Neste Tema, vamos estudar sobre Shell, Shell Script, interfaces e tarefas 
administrativas.
Para iniciar, vamos falar sobre Shell. Como você já deve ter lido ou 
ouvido, o Shell é um interpretador de comandos utilizados em várias 
tarefas administrativas em sistemas operacionais. No caso desta 
disciplina, vamos abordá-lo como interpretador para o Linux.
Segundo Jargas (2008), o Shell executa a aplicação de um software que 
conecta e interpreta os comandos digitados por um usuário. É a conexão 
que esse usuário utiliza para mandar comandos para que a CPU possa 
executar.
Por meio do Shell, podemos desenvolver comandos que automatizem 
tarefas para sistemas operacionais, no nosso caso o Linux, para serem 
executados de tempos em tempos. Como exemplo, podemos citar a 
inicialização de sistema, que pode ser automatizada utilizando um script 
desenvolvido utilizando o Shell.
Como já vimos, existem alguns tipos de Shell. No caso de sistemas 
baseados no Kernel do Linux, um dos mais comuns é o Bash.
O Shell pode ser de dois tipos, baseado em CLI ou em GUI. Como 
exemplo, podemos utilizar o Windows Shell, que provê aos usuários do 
Windows ferramentas com o desktop environment, a barra de tarefas 
e outras ferramentas utilizadas para gerenciar funções do sistema 
operacional.
No mundo Linux, podemos citar o GNOME Shell, que, assim como no 
Windows, possui a funcionalidade de realizar a interface entre usuário e 
sistema operacional. Uma grande diferença entre o Linux e o Windows 
30
é que naquele as aplicações costumam funcionar com Shells diferentes, 
sejam eles gráficos ou via terminal.
Cada tipos diferentes de Shell pode conter seus próprios conjuntos 
de ferramentas e reconhecer blocos de comandos específicos. Nas 
distribuições Linux, comumente temos o Bash, que já vem instalado na 
maioria delas, bem como o ZSH e o Fish, o que nos leva ao Shell Script, 
que vamos abordar no próximo tópico.
1.1 Shell Script
Segundo Neves (2008), é uma ferramenta para automatizar uma 
determinada tarefa, definição que remete ao conceito de algoritmos. 
O Shell Script é utilizado para programar e escrever uma estrutura, 
logicamente coerente, de instruções para realizar uma determinada tarefa.
Como as tarefas referidas aqui são para automatizar rotinas do sistema 
operacional, é necessário ter um cuidado referente às permissões 
de execução desses scripts, já que eles são arquivos que podem ser 
executados. O sugerido é que sejam permissões de usuário comum, 
e não como root, levando em consideração que as execuções podem 
trazer danos ao próprio sistema operacional.
Para escrever um script, é necessário escolher a forma, se via terminal 
ou modo gráfico. Lembre-se de dar a permissão de escrita para o 
arquivo, e, para isso, é necessário utilizar o comando “!chmod777%” 
– o comando “chmod” é utilizado para configurar as permissões 
em arquivos, e o valor“777” concede os direitos necessários para a 
utilização de um determinado arquivo, como leitura, escrita e execução 
(read, write e execute). 
 
Como mencionado anteriormente, um Shell inicia, mas não 
obrigatoriamente, sinalizando qual o interpretador está utilizando. A 
seguir temos um exemplo de sintaxe inicial padrão:
31
#!/bin/SHELL_ATUAL
Segue um exemplo utilizando o BASH:
#!/bin/bash
Como exemplo, vamos escrever um script para trazer algumas informações 
do usuário, da máquina utilizada e do armazenamento do script:
 
#!/bin/bash 
echo “Seu nome de usuário é:” 
whoami 
echo “Info de hora atual e tempo que o computador está ligado:” 
uptime 
echo “O script está executando do diretório:” 
pwd
Depois de escrevermos os scripts, será necessário executá-los, e, para 
isso, há duas maneiras. A primeira é para se você estiver no mesmo 
diretório; nesse caso, basta utilizar o caminho a seguir:
 
./exemplo1.sh
Para executar o script de outro diretório, será necessário informar o 
caminho completo até onde ele está armazenado, como no exemplo a 
seguir, considerando que o arquivo está salvo em “/tmp/scripts”.
 
 /tmp/scripts/exemplo1.sh
32
No próximo tópico, vamos abordar sobre o comando utilizados no script, 
a fim de elucidar o caminho e sua funcionalidade. Antes, temos que 
dizer que infelizmente não vamos conseguir trazer todos os comandos 
utilizados para desenvolver tarefas automatizadas via Shell Script e, por 
esse motivo, sugerimos que você busque em outras bibliografias para se 
aprofundar nesses conhecimentos.
1.2 Comandos
A seguir vamos comentar sobre os comandos utilizados para 
desenvolver o script mostrado no tópico anterior.
• Comando “echo”: exibe na tela a string entre aspas duplas.
• Comando “whoami”: é utilizado para mostrar o usuário logado no 
sistema.
• Comando “uptime”: é utilizado para exibir a hora atual, o tempo 
desde que o computador foi ligado, o número de usuários 
logados e uma média do número de processos carregados nos 
últimos um, cinco e 15 minutos. É muito útil quando se trata de 
gerenciamento de servidores ou gerenciamento de redes, porque 
muitos dispositivos, como roteadores Cisco, têm seus sistemas 
operacionais baseados no Kernel Linux, o que permite mensurar 
pontos como período de manutenção preventiva, ou se acontecem 
interrupções constantes.
• Comando “pwd”: é responsável por exibir em qual diretório o 
arquivo está sendo executado.
Como em toda linguagem de programação, como boa prática, faz-
se necessário comentar seu código. Em Shell Script, não é diferente, 
e, para isso, você deve utilizar o caractere “#”, como no exemplo a 
seguir:
33
 
#!/bin/bash
#A partir daqui você pode inserir um comentário
#Este é um outro comentário para lembrá-lo de que eles são úteis para 
nortear os desenvolvedores.
1.3 Interfaces de usuário e desktop
Vamos iniciar com as distribuições. No mundo Linux, esse termo 
é destinado sempre para nos referirmos a sistemas operacionais 
baseados no Kernel do Linux. Como exemplo de “distro”, podemos citar 
Ubuntu, Fedora e Debian.
Cada distribuição possui um terminal, que é uma aplicação utilizada 
para darmos comandos ao sistema. Como já mencionamos por aqui, 
precisamos fazer uma introdução para falarmos de interfaces.
Para isso, devemos diferenciar interfaces gráficas e desktop environment. 
Segundo Brito (2017), a interface gráfica é uma aplicação, em se tratando 
de sistemas operacionais. Logo, tudo que você faz nela é interpretado 
por um Shell. Então, as interfaces surgem com o intuito de facilitar o uso 
dos sistemas computacionais por usuários com menos conhecimentos 
técnicos específicos. Já o desktop environment é um conceito mais 
complexo, composto por várias aplicações, como calculadora, calendário 
e navegadores, incluindo a interface gráfica. Como exemplo podemos 
citar o projeto KDE e o Linux Mint, que utiliza como interface o 
Cinnamon, com aplicações GNOME como monitor do sistema.
Então, perceba que o trunfo para a popularização dos sistemas 
operacionais, e consequentemente da utilização de computadores por 
34
qualquer usuário, foi trazer as interfaces como tradutores de linguagem 
de alto nível para linguagem de baixo nível. Dessa forma, com um clique 
e sem se preocupar com comandos que aquele “clique” vai utilizar para 
se comunicar com a CPU, qualquer usuário pode utilizar os sistemas 
computacionais. Dessa forma, o Android transformou o Linux em um 
dos sistemas operacionais mais utilizados no mundo, quando o assunto 
é mobile.
A Figura 1 ilustra um exemplo de interface com o aplicativo do 
calendário, mostrando uma parte do conjunto do desktop environment.
Figura 1 – Interface gráfica da distribuição UBUNTU
Fonte: acervo do autor.
1.4 Administrando tarefas
Para a realização de tarefas em sistemas operacionais, é necessário 
possuir privilégios que permitam ao usuário executar certas tarefas. 
Para isso, são definidos níveis de usuários, a fim de fornecer segurança 
em um sistema operacional, no nosso caso o Linux. Cada usuário no 
sistema deve fazer log-in usando uma conta que permite que ele acesse 
arquivos e diretórios específicos, com determinadas permissões de 
35
arquivo e diretório concedidas pelo sistema a usuários, grupos e todos 
os outros que efetuem log-in. Essas permissões podem ser editadas pelo 
usuário root.
Existem muitas maneiras diferentes de executar um comando que 
requer privilégios administrativos, ou de root. Realizar log-in no sistema 
como um usuário root permite que você execute comandos como 
administrador. Porém, este é um acesso delicado, visto que você passa 
a ter privilégios para executar tarefas que podem, inclusive, danificar o 
sistema operacional.
Nos sistemas operacionais Linux, como o Ubuntu, os comandos 
administrativos podem ser executados usando o comando “sudo”, o 
qual também permite que os usuários executem comandos como outro 
usuário, de forma semelhante ao comando “SU”. Dessa forma, você 
assume como root. Como exemplo, podemos citar a linha de comando a 
seguir:
 
~ $ sudo head /etc/shadow
Depois de digitar o comando, será solicitada a senha de root.
Uma das vantagens de utilizar o “sudo” é a diminuição do risco de 
utilização de comandos acidentalmente como root.
Essa introdução sobre contas de usuários se faz necessária para 
entendermos que podemos configurar tarefas para serem executadas 
automaticamente em um período definido. Cada usuário possui um 
arquivo que serve para agendamento de tarefas. A seguir vamos 
abordar sobre esse executável, chamado de Cron.
Segundo Lewis e Drake (2020), o Cron é um software DAEMON de 
agendamento de tarefas, encontrado em sistemas operacionais do tipo 
36
Unix, incluindo as distribuições do Linux. Ele executa em background as 
tarefas configuradas.
Por meio do Cron, podemos estipular ações a serem realizadas 
periodicamente pelo sistema, utilizando como parâmetros os 
seguintes dados: mês, dia do mês, dia da semana, hora e minuto. Esses 
parâmetros serão informados em uma linha, em um determinado 
arquivo que mencionaremos mais adiante.
Vamos à prática? De acordo com Lewis e Drake (2020), a seguir é 
mostrada a sequência de comandos necessários para a instalação do 
Cron em uma máquina com o Ubuntu:
• sudo apt update – Atualiza o índice de pacotes locais.
• sudo apt install cron – Instala o Cron.
• sudo systemctl enable cron – Habilita o Cron.
Segundo Lewis e Drake (2020), as tarefas do Cron são registradas e 
gerenciadas em um arquivo especialmente conhecido como “crontab”. 
Cada conta de usuário no sistema pode ter seu próprio arquivo 
“crontab”, no qual poderá agendar as tarefas.
A configuração do Cron se dá pelo comando “crontab” com as seguintes 
chaves:
• Crontrab -l: mostra o “crontab” do usuário atual.
• Crontrab -r: remove todo o “crontab” do usuário atual.
• Crontrab -e: edita o “crontab” do usuário atual.
Assim como em todas as linguagens de programação, o Cron possui 
caracteres reservados e destinados a fins específicos dentro deseu 
escopo. São eles:
37
• * (asterisco) – Em expressões Cron, um asterisco é uma variável 
crua que representa “todos”. Assim, uma tarefa agendada com * * 
* * *... será executada a cada minuto, de cada hora, de cada dia, de 
cada mês.
• , (vírgula) – Vírgulas fragmentam os valores do agendamento para 
formarem uma lista. Se quiser executar uma tarefa no início e na 
metade de cada hora, em vez de escrever duas tarefas separadas 
(por exemplo, 0 * * * * ... e 30 * * * * ...), pode conseguir a mesma 
funcionalidade com um (0,30 * * * * ...).
• - (hífen) – Um hífen representa um intervalo de valores no campo 
da agenda. Em vez de ter 30 tarefas agendadas realizadas em um 
comando que você quer executar nos primeiros 30 minutos de 
cada hora (como em 0 * * * * ..., 1 * * * * ..., 2 * * * * ... e assim por 
diante), bastaria que você as agendasse como 0-29 * * * *.
• / (barra) – Podemos utilizar uma barra com um asterisco para 
expressar um valor de etapa. Por exemplo, em vez de escrever 
oito tarefas Cron separadas para executar um comando a cada 
três horas (como em: 0 0 * * * ..., 0 3 * * * ..., 0 6 * * * ... e assim 
por diante), você poderia agendá-las para executar da seguinte 
maneira: 0 */3 * * *.
Cabe destacar uma opção importante referente à execução do Cron: 
não é necessário que ele seja parado ou reinicializado para que as 
informações sejam lidas pelo “crontab”. Após sua edição, as novas 
tarefas já estarão valendo.
Ainda segundo Lewis e Drake (2020), esses são os comandos básicos 
utilizados para a visualização e a edição de uma tarefa no Linux. Existem 
muitos outros comandos que servem para o agendamento de tarefas, 
mas infelizmente não cabem todos aqui, e por isso sugerimos que 
você aprofunde seus conhecimentos fazendo uso das bibliografias 
disponíveis.
38
Referências
BRITO, Samuel Henrique Bucke. Serviços de Redes em Servidores Linux. São 
Paulo: Novatec, 2017.
FILHO, João Ediberto. Descobrindo o Linux: Entenda o Sistema Operacional GNU/
Linux. 3. ed. São Paulo: Novatec, 2012.
JARGAS, Aurélio Marinho. Shell Script Profissional. São Paulo: Novatec, 2008.
LEWIS, Shaun; DRAKE, Mark. Como usar o Cron para automatizar tarefas no 
Ubuntu 18.04. Digital Ocean, 2020. Disponível em: https://www.digitalocean.com/
community/tutorials/how-to-use-cron-to-automate-tasks-ubuntu-1804-pt. Acesso 
em: 20 set. 2022.
NEVES, Júlio Cezar. Programação Shell Linux. 7. ed. São Paulo: Brasport, 2008.
https://www.digitalocean.com/community/tutorials/how-to-use-cron-to-automate-tasks-ubuntu-1804-pt
https://www.digitalocean.com/community/tutorials/how-to-use-cron-to-automate-tasks-ubuntu-1804-pt
39
Configuração e monitoramento 
de serviços
Autoria: Allan Crasso Naia de Souza
Leitura crítica: Paulo César Monteiro Nunes
Objetivos
• Configurar ativos de redes, conforme especificações.
• Configurar a segurança da rede local e de seus ativos 
de acordo com a política de segurança da empresa.
• Monitorar serviços de redes de acordo com as 
especificações e as necessidades locais.
40
1. Serviços essenciais do sistema
No ambiente de computação atual, é raro ter 
uma máquina autônoma. Em quase todos os casos, um computador 
será conectado a uma rede para fornecer o acesso de que os usuários 
precisam.
 O acesso à rede é crítico por vários motivos. Normalmente, as 
atualizações do sistema operacional são feitas pela rede usando 
repositórios de software. Se o sistema for um servidor que fornece 
serviços, como compartilhamento de arquivos ou páginas da web, uma 
conexão de rede é essencial.
Fornecer acesso à rede é responsabilidade do usuário root no 
sistema. Infelizmente, isso às vezes pode ser uma tarefa difícil, pois 
as placas de rede não são todas padronizadas, e, portanto, uma 
configuração adicional pode ser necessária. Além disso, há vários 
componentes que precisam ser configurados para que o sistema se 
conecte à rede, incluindo configurações de endereço IP, configurações 
de gateway e configurações de DNS (Domain Name System).
1.1 Fundamentos de rede
Cada computador e cada dispositivo em uma rede possuem um 
identificador exclusivo. Assim, da mesma forma que você endereçaria 
uma carta para enviar pelo correio, os computadores usam o 
identificador exclusivo para enviar dados para computadores e 
dispositivos específicos em uma rede. A maioria das redes atuais, 
incluindo todos os computadores na internet, usa o protocolo TCP/
IP desenvolvido pela Internet Engineering Task Force (IETF) como padrão 
de comunicação na rede. Nesse modelo, o identificador exclusivo de 
um computador é seu endereço IP, o qual pode ser estático, atribuído 
41
manualmente, ou dinâmico, atribuído pelo protocolo DHCP (Dynamic 
Host Configuration Protocol), executado como um serviço na rede.
Uma tabela de roteamento é um pequeno banco de dados na memória 
gerenciado por todos os dispositivos da rede (ou seja, computador, 
roteador etc.). Ele é usado para calcular a jornada ideal através de 
outros roteadores na mesma ou em outras redes para mensagens que é 
responsável por encaminhar para um endereço de destino.
TCP/IP é uma combinação dos dois protocolos mais 
populares. O protocolo TCP (Transmission Control Protocol) é utilizado 
para entrega confiável de dados entre computadores conectados através 
de uma LAN (Local Area Network) ou da internet, enquanto o protocolo IP 
(Internet Protocol) é o principal responsável pelo roteamento dos pacotes 
de dados até o destino Morada.
Existem duas versões do protocolo IP usadas na internet: o IP versão 
4 (IPv4) e, o mais atual, IP versão 6 (IPv6). O IPv4 é a versão usada na 
maioria dos sistemas atuais.
1.2 IPv4 público e privado
Existem dois tipos de endereços IP usados em uma 
rede: público e privado. O InterNIC (Network Information Center) é o órgão 
global responsável pela atribuição de endereços públicos. Ele atribui IPs 
de rede com base em classe, sendo sempre exclusivos. Os endereços 
públicos estão disponíveis com roteadores de internet para que os 
dados possam ser entregues corretamente.
A maioria das organizações usa a internet para enviar e-mail e navegar 
na web. Para fazer isso, apenas sistemas como servidores de e-mail, 
servidores web e proxies (que tratam de solicitações intermediárias 
de clientes que buscam recursos de outros servidores) precisam de 
conectividade direta com a internet para que usuários fora da LAN 
42
possam se conectar a esses servidores. Em algumas ocasiões, serviços 
adicionais, como servidores de compartilhamento de arquivos, 
precisarão ter um endereço IP público para conexão direta com a 
internet.
Por outro lado, os usuários que trabalham em suas próprias máquinas 
e desejam se conectar à internet não precisam de um endereço IP 
globalmente exclusivo. Em vez disso, podem receber endereços IP 
privados, que são convertidos em endereços IP públicos pelo gateway/
roteador.
Na RFC 1918, uma parte do espaço de endereço IP foi designada como 
“endereços privados”. Esse intervalo de endereços não se sobrepõe aos 
endereços públicos. Os endereços privados podem ser reutilizados, o 
que significa que o risco de ficar sem endereços na internet foi mitigado. 
O espaço de endereço privado não é acessível diretamente pela internet. 
Dessa forma, para acessar dispositivos utilizando o espaço de endereço 
privado, um roteador usando NAT (Network Address Translation) precisará 
ser configurado. 
Existem três blocos de endereços privados:
• 10.0.0.0/8 – Este endereço Classe A permite o intervalo de 
endereços de 10.0.0.1 até 10.255.255.254. Os 24 bits do ID do host 
estão disponíveis para a sub-rede.
• 172.16.0.0/12 – Esta rede Classe B permite o intervalo de 
endereços de 172.16.0.1 até 172.31.255.254. Os 20 bits do ID do 
host estão disponíveis para sub-rede.
• 192.168.0.0/16 – Esta rede Classe C permite o intervalo de 
endereços de 192.168.0.1 até 192.168.255.254. Os 16 bits do ID do 
host estão disponíveis para sub-rede.
43
1.3 Roteamento
A função do roteamento é enviar um pacote IP, composto porum 
cabeçalho (endereço de origem e destino) e dados encapsulados, de um 
ponto a outro. Todos os dispositivos possuem tabelas de roteamento, 
as quais contêm rotas utilizadas para calcular o melhor caminho das 
mensagens que ele é responsável por encaminhar através de outros 
roteadores na mesma ou em outras redes. 
Assim, quando um computador envia pacotes para outro computador, 
ele consulta sua tabela de roteamento. Se um pacote estiver sendo 
enviado para um destino na mesma sub-rede, nenhum roteamento será 
necessário e o pacote será enviado diretamente ao computador. Por 
outro lado, se um pacote estiver sendo enviado para a internet ou 
outra rede, então o primeiro “salto” ou lugar que um pacote irá é para o 
que estiver no campo gateway padrão (uma configuração de rede com 
o endereço IP do roteador de rede), permitindo que o roteador (um 
dispositivo de rede que encaminha pacotes IP) decida o caminho ideal a 
seguir.
O roteador da rede terá sua própria tabela de roteamento, incluindo 
sua própria rota padrão (para qual roteador enviar pacotes quando o 
destino estiver em outra rede ou sub-rede). A tabela de roteamento 
é uma lista de outros roteadores que estão conectados ao roteador 
atual. Se o roteador recebe um pacote para um destino de rede que 
possui em sua tabela de roteamento (normalmente esta será outra rede 
local), ele simplesmente o encaminha. Caso contrário, enviará o pacote 
para sua rota padrão (normalmente esta será a maneira de acessar a 
internet).
Para visualizar a tabela de roteamento existente, execute o comando 
“route”:
44
 
root@localhost:~# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default 192.168.1.1 0.0.0.0 UG 0 0 0 eth1
192.168.1.0 * 255.255.255.0 UG 0 0 0 eth1
192.168.2.0 * 255.255.255.0 UG 0 0 0 eth0
Na saída da tabela de roteamento do Kernel, a primeira coluna 
contém o Destination, endereço de rede. A palavra default significa 
a rota padrão. A segunda coluna contém o definido Gateway para o 
destino especificado. Caso apareça um asterisco (*), significa que não 
é necessário um gateway para acessar a rede de destino. A coluna 
Genmask mostra a máscara de rede para a rede de destino. Na 
coluna Flags, “U” significa que a rota está ativa e disponível, enquanto “G” 
significa que o gateway especificado deve ser usado para essa rota. A 
coluna Metric define a distância até o destino, o que geralmente é 
listado no número de saltos (o número de roteadores entre a origem e 
o destino). A coluna Ref não é usada pelo Kernel Linux, e a coluna Use 
é usada para definir o número de pesquisas para a rota. Finalmente, 
a coluna Iface é usada para definir a interface de saída para essa rota.
A rota padrão nesse exemplo foi configurada para usar a interface eth1, 
a segunda placa de rede do sistema. O dispositivo de rede com um 
endereço IP de 192.168.1.1 é designado como o gateway padrão, que 
é um roteador que passará pacotes dessa rede para outra rede. O 
endereço especificado para o gateway padrão deve estar em uma rede à 
qual seu sistema esteja conectado.
45
Para entender melhor a saída anterior, considere o seguinte:
1. Se os endereços de designação do pacote de rede estiverem na 
rede 192.168.2.0/24, o pacote será transmitido na rede à qual 
a placa de rede eth0 está conectada. O endereço IP de origem do 
pacote será 192.168.2.1 (o endereço IP atribuído à placa de 
rede eth0).
2. Se os endereços de designação do pacote de rede estiverem na 
rede 192.168.1.0/24, o pacote será transmitido na rede à qual 
a placa de rede eth1está conectada. O endereço IP de origem do 
pacote será 192.168.1.106 (o endereço IP atribuído à placa de 
rede eth0).
3. Todos os outros pacotes de rede são enviados ao roteador com o 
endereço IP 192.168.1.1,através da placa de rede eth1.
 
root@localhost:~ # route add default gw 192.168.1.1 eth1
Agora, se alguma das rotas na tabela de roteamento não 
corresponder ao endereço especificado, o pacote será encaminhado 
para 192.168.1.1 (a rota padrão).
1.4 Segurança de redes Linux
O comando “nmap” (network mapper) é uma ferramenta de código 
aberto usada por administradores de sistema para auditoria de redes, 
verificação de segurança e localização de portas abertas em máquinas 
host. Ele é capaz de escanear um host ou toda a sub-rede para encontrar 
portas TCP e UDP abertas. Essa ferramenta também é usada por 
invasores para encontrar portas vulneráveis.
46
Se o “nmap” for executado sem nenhuma opção, verificará as portas TCP 
abertas e relatará as portas abertas junto com o serviço em execução 
nelas. Por exemplo, execute o seguinte comando:
 
root@localhost:~# nmap example.com 
Starting Nmap 6.40 ( http://nmap.org ) at 2015-03-13 22:02 UTC 
Nmap scan report for example.com (192.168.1.3) 
Host is up (0.000013s latency). 
Not shown: 998 closed ports 
PORT STATE SERVICE 
22/tcp open ssh 
53/tcp open domain 
 
Nmap done: 1 IP address (1 host up) scanned in 2.49 seconds
Para verificar as portas TCP e UDP que podem estar abertas, o “nmap” 
pode ser executado com as opções -sT e -sU:
 
root@localhost:~# nmap -sT -sU example.com 
Starting Nmap 6.40 ( http://nmap.org ) at 2015-03-13 22:07 UTC 
WARNING: No targets were specified, so 0 hosts scanned. 
Nmap done: 0 IP addresses (0 hosts up) scanned in 0.03 seconds
Para verificar quais hosts estão disponíveis em uma rede, o 
comando “nmap” fornece uma opção que executará ping efetivamente 
em todos os hosts na rede especificada. Por exemplo:
47
 
root@localhost:~# nmap -sP 192.168.1.3/24 
Starting Nmap 6.40 ( http://nmap.org ) at 2015-03-13 22:10 UTC 
Nmap scan report for example.com (192.168.1.3) 
Host is up. 
Nmap done: 256 IP addresses (1 host up) scanned in 10.46 seconds
O comando network status “netstat” fornece muitas informações sobre 
conexões de rede, estatísticas de interface, tabelas de roteamento e 
muitos outros detalhes da configuração de rede que foram discutidos 
anteriormente. Ele foi projetado para ser executado no sistema local, ou 
seja, não verifica portas em sistemas remotos.
Na avaliação da segurança da rede, as opções mais úteis do “netstat” são 
aquelas que mostram as portas de rede que estão abertas no momento 
e o estado das conexões. Para visualizar todas as portas abertas e os 
processos que as abriram, execute o seguinte comando:
 
root@localhost:~:~# netstat -lunpt 
Active Internet connections (only servers) 
Proto Recv-Q Send-Q Local Address Foreign Address State 
PID/Program name 
tcp 0 0 127.0.0.11:33314 0.0.0.0:* LISTEN 
- 
tcp 0 0 192.168.1.2:53 0.0.0.0:* LISTEN 
- 
tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN 
- 
48
 
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 
16/sshdtcp 0 0 127.0.0.1:953 0.0.0.0:* LISTEN 
- 
tcp6 0 0 :::53 :::* LISTEN 
- 
tcp6 0 0 :::22 :::* LISTEN 
16/sshd 
tcp6 0 0 ::1:953 :::* LISTEN 
- 
udp 0 0 192.168.1.2:53 0.0.0.0:* 
- 
udp 0 0 127.0.0.1:53 0.0.0.0:* 
- 
udp 0 0 127.0.0.11:38117 0.0.0.0:* 
- 
udp6 0 0 :::53 :::* 
-
O protocolo, o número da porta, o nome do processo e o PID são os 
campos-chave na saída anterior.
Cabe ressaltar que a gerência do Kernel envolve operações complexas. 
Por esse motivo, é importante ter ciência de que é necessário muito 
estudo para contemplar uma gerência que atenda à necessidade do 
usuário. No entanto, as noções trazidas durante nossa aula serão 
suficientes para sanar as necessidades introdutórias.
Os comandos de redes existentes no Linux trazem muitos recursos que 
possibilitam uma análise detalhada do tráfego da rede. Dessa forma, é 
possível testar e auditar a maioria das situações de redes.
49
Referências
BRITO, Samuel Henrique Bucke. Serviços de Redes em Servidores Linux. São 
Paulo: Novatec, 2017.
FILHO, João Ediberto. Descobrindo o Linux: Entenda o Sistema Operacional GNU/
Linux. 3. ed. São Paulo: Novatec, 2012.
JARGAS, Aurélio Marinho. Shell Script Profissional. São Paulo: Novatec, 2008.
NEVES, Júlio Cezar. Programação Shell Linux. 7. ed. São Paulo: Brasport, 2008.
50
	Sumário
	Apresentação da disciplina 
	Conhecendo o Linux 
	Objetivos 
	1. S. O. Linux 
	Referências 
	Comandos e estrutura de diretórios
	Objetivos 
	1. Comandos GNU Linux 
	Referências 
	Linhas de comando, interface do usuário e administração de tarefas
	Objetivos 
	1. Shell 
	Referências 
	Configuração e monitoramento de serviços
	Objetivos 
	1. Serviços essenciais do sistema 
	Referências

Mais conteúdos dessa disciplina