FTIN Formação Técnica em Informática Módulo Sistema Operacional Aberto (Linux) AULA 05 Prof. André Lucio Competências da Aula 5 • Comandos GNU/Linux - Parte Final • Introdução a Redes • Configuração de Rede • Arquivos de Logs e Daemons • Serviço SSH Aula 05 COMANDOS GNU/LINUX – PARTE FINAL Comandos GNU/Linux – Parte Final • df: o Descrição: Mostra o espaço livre/ocupado de cada partição. o Sintaxe: df [opções] o opções -a Inclui sistemas de arquivos com 0 blocos. -h, –human-readable Mostra o espaço livre/ocupado em MB, KB, GB ao invés de blocos. -H Idêntico a -h mas usa 1000 ao invés de 1024 como unidade de cálculo. -k Lista em Kbytes. -l Somente lista sistema de arquivos locais. -m Lista em Mbytes (equivalente a –block-size=1048576). -T Lista o tipo de sistema de arquivos de cada partição o Exemplo: df -h Comandos GNU/Linux – Parte Final • find: o Descrição: Procura por arquivos/diretórios no disco. find pode procurar arquivos através de sua data de modificação, tamanho, etc através do uso de opções. find, ao contrário de outros programas, usa opções longas através de um “-”. o Sintaxe: find [diretório] [opções/expressão] o opções -name [expressão ] Procura pelo nome [expressão] nos nomes de arquivos e diretórios processados. -depth Processa os sub-diretórios primeiro antes de processar os arquivos do diretório principal. -maxdepth [num ] Faz a procura até [num] sub-diretórios dentro do diretório que está sendo pesquisado. -mtime [num ] Procura por arquivos que tiveram seu conteúdo modificado há [num] dias. Caso for antecedido por “-”, procura por arquivos que tiveram seu conteúdo modificado entre [num] dias atrás até agora. -ctime [num ] Procura por arquivos que teve seu status modificado há [num] dias. Caso for o Exemplo: find / -name grep Comandos GNU/Linux – Parte Final • grep: o Descrição: Procura por um texto dentro de um arquivo(s) ou no dispositivo de entrada padrão. o Sintaxe: grep [expressão] [arquivo] [opções] o opções -f [arquivo ] Especifica que o texto que será localizado, esta no arquivo [arquivo]. -h, –no-filename Não mostra os nomes dos arquivos durante a procura. -i, –ignore-case Ignora diferença entre maiúsculas e minúsculas no texto procurado e arquivo. -n, –line-number Mostra o nome de cada linha encontrada pelo grep. o Exemplo: grep “capitulo” texto.txt Comandos GNU/Linux – Parte Final • head: o Descrição: Mostra as linhas iniciais de um arquivo texto. o Sintaxe: head [opções] o opções -c [numero ] Mostra o [numero] de bytes do inicio do arquivo. -n [numero ] Mostra o [numero] de linhas do inicio do arquivo. Caso não for especificado, o head mostra as 10 primeiras linhas. Exemplo: head -n 20 teste.txt Comandos GNU/Linux – Parte Final • more: o Descrição: Permite fazer a paginação de arquivos ou da entrada padrão. O comando more pode ser usado como comando para leitura de arquivos que ocupem mais de uma tela. Quando toda a tela é ocupada, o more efetua uma pausa e permite que você pressione Enter ou espaço para continuar avançando no arquivo sendo visualizado.. o Sintaxe: more [arquivo] o Exemplo: cat /etc/passwd|more. Comandos GNU/Linux – Parte Final • less: o Descrição: Permite fazer a paginação de arquivos ou da entrada padrão. O comando less pode ser usado como comando para leitura de arquivos que ocupem mais de uma tela. Quando toda a tela é ocupada, o less efetua uma pausa (semelhante ao more) e permite que você pressione Seta para Cima e Seta para Baixo ou PgUP/PgDown para fazer o rolamento da página. o Sintaxe: less [arquivo] o Exemplo: cat /etc/passwd|less Comandos GNU/Linux – Parte Final • tail: o Descrição: Mostra as linhas finais de um arquivo texto. o Sintaxe: tail [opções] o opções -c [numero ] Mostra o [numero] de bytes do final do arquivo. -n [numero ] Mostra o [numero] de linhas do final do arquivo. -f Mostra continuamente linhas adicionadas no final do arquivo. o Exemplo: tail teste.txt Comandos GNU/Linux – Parte Final • touch: o Descrição: Muda a data e hora que um arquivo foi criado. Também pode ser usado para criar arquivos vazios. Caso o touch seja usado com arquivos que não existam, por padrão ele criará estes arquivos. o Sintaxe: touch [opções] [arquivos] o Opções -t MMDDhhmm[ANO.segundos ] Usa Mês (MM), Dias (DD), Horas (hh), minutos (mm) e opcionalmente o ANO e segundos para modificação do(s) arquivos ao invés da data e hora atual. -a, –time=atime Faz o touch mudar somente a data e hora do acesso ao arquivo. -m, –time=mtime Faz o touch mudar somente a data e hora da modificação. o Exemplo: touch teste Comandos GNU/Linux – Parte Final • wc: o Descrição: Conta o número de palavras, bytes e linhas em um arquivo ou entrada padrão. Se as opções forem omitidas, o wc mostra a quantidade de linhas, palavras, e bytes. o Sintaxe: wc [opções] [arquivos] o Opções -t MMDDhhmm[ANO.segundos ] Usa Mês (MM), Dias (DD), Horas (hh), minutos (mm) e opcionalmente o ANO e segundos para modificação do(s) arquivos ao invés da data e hora atual. -a, –time=atime Faz o touch mudar somente a data e hora do acesso ao arquivo. -m, –time=mtime Faz o touch mudar somente a data e hora da modificação. o Exemplo: wc /etc/passwd Comandos GNU/Linux – Parte Final • cut: o Descrição: Mostra seções de cada linha do arquivo dependendo das opções passadas ao programa. o Sintaxe: cut [opções] [arquivos] o Opções -b, –bytes [bytes ] Mostra somente a lista de [bytes] do arquivo. -c, –characters [numero ] Mostra somente o [número] de caracteres no arquivo. É semelhante a opção “-b” mas tabs e espaços são tratados como qualquer caracter. -f, –field [campos ] Mostra somente a lista de [campos]. -d, –delimite [delimitador ] Para uso com a opção -f, os campos são separados pelo primeiro caracter em [delimitador] ao invés de tabulações. o Exemplo: cut -b 1,3 /etc/passwd Comandos GNU/Linux – Parte Final • cut: o Descrição: Mostra seções de cada linha do arquivo dependendo das opções passadas ao programa. o Sintaxe: cut [opções] [arquivos] o Opções -b, –bytes [bytes ] Mostra somente a lista de [bytes] do arquivo. -c, –characters [numero ] Mostra somente o [número] de caracteres no arquivo. É semelhante a opção “-b” mas tabs e espaços são tratados como qualquer caracter. -f, –field [campos ] Mostra somente a lista de [campos]. -d, –delimite [delimitador ] Para uso com a opção -f, os campos são separados pelo primeiro caracter em [delimitador] ao invés de tabulações. o Exemplo: cut -b 1,3 /etc/passwd Comandos GNU/Linux – Parte Final • shutdown –h now • shutdown –r now Aula 05 INTRODUÇÃO A REDES O que é uma rede? • Rede é a conexão de duas ou mais máquinas com o objetivo de compartilhar recursos entre uma máquina e outra. Os recursos podem ser: o Compartilhamento do conteúdo de seu disco rígido (ou parte dele) com outros usuários. Os outros usuários poderão acessar o disco como se estivesse instalado na própria máquina). Também chamado de servidor de arquivos. o Compartilhamento de uma impressora com outros usuários. Os outros usuários poderão enviar seus trabalhos para uma impressora da rede. Também chamado de servidor de impressão. O que é uma rede? • Compartilhamento de acesso a Internet. Outros usuários poderão navegar na Internet, pegar seus e-mails, ler noticias, bate-papo no IRC, ICQ através do servidor de acesso Internet. Também chamado de servidor Proxy. • Servidor de Internet/Intranet. Outros usuários poderão navegar nas páginas Internet localizadas em seu computador, pegar e-mails, usar um servidor de IRC para chat na rede, servidor de ICQ, etc O que é uma rede? • Com os ítens acima funcionando é possível criar permissões de acesso da rede, definindo quem terá ou não permissão para acessar cada compartilhamento ou serviço existente na máquina (www, ftp, irc, icq, etc), e registrando/avisando sobre eventuais tentativas de violar a segurança do sistema, firewalls, pontes, etc. O que é uma rede? Protocolo de Rede • O protocolo de rede é a linguagem usada para a comunicação entre um computador e outro. Existem vários tipos de protocolos usados para a comunicação de dados, alguns são projetados para pequenas redes (como é o caso do NetBios) outros para redes mundiais (TCP/IP que possui características de roteamento). • Dentre os protocolos, o que mais se destaca atualmente é o TCP/IP devido ao seu projeto, velocidade e capacidade de roteamento. Protocolo IP • O endereço IP são números que identificam seu computador em uma rede. Inicialmente você pode imaginar o IP como um número de telefone. O IP é compostos por quatro bytes e a convenção de escrita dos números é chamada de “notação decimal pontuada”. Por convenção, cada interface (placa usada p/ rede) do computador ou roteador tem um endereço IP. Também é permitido que o mesmo endereço IP seja usado em mais de uma interface de uma mesma máquina mas normalmente cada interface tem seu próprio endereço IP. Classes de Rede IP • Por razões administrativas após algum pouco tempo no desenvolvimento do protocolo IP alguns grupos arbitrários de endereços foram formados em redes e estas redes foram agrupadas no que foram chamadas de classes. Estas classes armazenam um tamanho padrão de redes que podem ser usadas. As faixas alocadas são: Classes de Rede IP Interface de Rede • As interfaces de rede no GNU/Linux estão localizadas no diretório /dev e a maioria é criada dinamicamente pelos softwares quando são requisitadas. Este é o caso das interfaces ppp e plip que são criadas dinamicamente pelos softwares. o eth? - Placa de rede Ethernet eWaveLan. o ppp? - Interface de rede PPP (protocolo ponto a ponto). o slip? - Interface de rede serial o eql - Balanceador de tráfego para múltiplas linhas o plip? - Interface de porta paralela Interface Loopback • A interface loopback é um tipo especial de interface que permite fazer conexões com você mesmo. Todos os computadores que usam o protocolo TCP/IP utilizam esta interface e existem várias razões porque precisa fazer isto, por exemplo, você pode testar vários programas de rede sem interferir com ninguém em sua rede. Por convenção, o endereço IP 127.0.0.1 foi escolhido especificamente para a loopback, assim se abrir uma conexão telnet para 127.0.0.1, abrirá uma conexão para o próprio computador local. Gateway • Gateway, ou ponte de ligação, é uma máquina intermediária geralmente destinada a interligar redes, separar domínios de colisão, ou mesmo traduzir protocolos. Exemplos de gateway podem ser os routers (ou roteadores) e firewalls, já que ambos servem de intermediários entre o utilizador e a rede. Um proxy também pode ser interpretado como um gateway (embora em outro nível, aquele da camada em que opera), já que serve de intermediário também. Serviços de Rede • Serviços de rede é o que está disponível para ser acessado pelo usuário. No TCP/IP, cada serviço é associado a um número chamado porta que é onde o servidor espera pelas conexões dos computadores clientes. Uma porta de rede pode se referenciada tanto pelo número como pelo nome do serviço. Serviços de Rede • Abaixo, alguns exemplos de portas padrões usadas em serviços TCP/IP: o 21 - FTP (transferência de arquivos) o 23 - Telnet (terminal virtual remoto) o 25 - Smtp (envio de e-mails) o 53 - DNS (resolvedor de nomes) o 79 - Finger (detalhes sobre usuários do sistema) o 80 - http (protocolo www - transferência de páginas Internet) o 110 - Pop-3 (recebimento de mensagens) o 119 - NNTP (usado por programas de noticias) Vídeo Guerreiros da WEB Aula 05 CONFIGURAÇÃO DE REDE Configuração IP • Além da interface “lo – loopback”, podemos configurar outras interfaces, basta que elas estejam presentes fisicamente e sejam suportadas pelo kernel. Na maior parte dos casos, a interface mais comum acaba sendo a interface “eth0” de “ethernet” número “0”, por ser a primeira. Para configurar e depois visualizar essas configurações em nossas interfaces de redes, utilizamos o comando “ifconfig”. Configuração Gateway • Para que nossos pacotes saibam para onde ir eles precisam conhecer o IP do “gateway” da rede. O papel do “gateway” da rede é simples: ele funciona como uma saída para todos os pacotes daquela rede, para outras redes. Configuração DNS Server • Para não ter que memorizar todos os endereços IP que precisamos acessar, foi criado um serviço de rede chamado “DNS”. Este faz a tradução de nomes para endereços IP e vice-versa. Para configurar os servidores de “DNS” na máquina local, precisamos editar o arquivo de configurações de “DNS”, chamado “resolv.conf” localizado em “/etc”. Configuração Estática de Rede • Tudo que vimos até agora, são configurações que podem ser atribuídas através de linha de comando (configurações dinâmicas). Porém nosso “host” deve estar devidamente configurado para que, por exemplo, após um “boot”, a máquina mantenha as configurações certas. Configuração Estática de Rede • Para que isso aconteça temos que configurar o arquivo “/etc/network/interfaces” no Debian, assim: Configuração Estática de Rede • Os arquivos de configuração das interfaces de rede no CentOS estão localizados em “/etc/sysconfig/network-scripts/ifcfg-device”. Onde device é o nome da placa de rede. Aula 05 ARQUIVOS DE LOGS E DAEMONS Arquivos e Logs e Daemons • A atividade dos programas são registradas em arquivos localizados em /var/log . Estes arquivos de registros são chamados de logs e contém a data, hora e a mensagem emitida pelo programa (violações do sistema, mensagens de erro, alerta e outros eventos) entre outros campos. • Enfim, muitos detalhes úteis ao administrador tanto para acompanhar o funcionamento do seu sistema, comportamento dos programas ou ajudar na solução e prevenção de problemas. Arquivos e Logs e Daemons • Alguns programas como o Apache, postfix, ircd e squid criam diversos arquivos de log e por este motivo estes são organizados em subdiretórios (a mesma técnica é usada nos arquivos de configuração em /etc, conforme a padrão FHS atual). Formatos de Logs • Um arquivo de log é normalmente composto pelos seguintes campos: o Data|Hora|Máquina|daemon|mensagem • O campo máquina é o nome do computador que registrou a mensagem (a máquina pode atuar como um servidor de logs registrando mensagens de diversos computadores em sua rede). O campo daemon indica qual programa gravou a mensagem. Daemons de Log do Sistema • Os daemons de log do sistema registram as mensagens de saída do kernel (klogd) e sistema (syslogd) nos arquivos em /var/log . • A classificação de qual arquivo em /var/log receberá qual tipo de mensagem é controlado pelo arquivo de configuração /etc/syslog.conf através de facilidades e níveis. Arquivo de configuração syslog.conf • Os daemons de log do sistema registram as mensagens de saída do kernel (klogd) e sistema (syslogd) nos arquivos em /var/log . • A classificação de qual arquivo em /var/log receberá qual tipo de mensagem é controlado pelo arquivo de configuração /etc/syslog.conf através de facilidades e níveis. Arquivo de configuração syslog.conf • O arquivo de configuração /etc/syslog.conf possui o seguinte formato: o facilidade.nível destino Arquivo de configuração syslog.conf • facilidade - É usada para especificar que tipo de programa está enviando a mensagem. • Os seguintes níveis são permitidos (em ordem alfabética): Arquivo de configuração syslog.conf o auth - Mensagens de segurança/autorização (é recomendável usar authpriv ao invés deste). o authpriv - Mensagens de segurança/autorização (privativas). o cron - Daemons de agendamento (cron e at). o daemon - Outros daemons do sistema que não possuem facilidades específicas. o ftp - Daemon de ftp do sistema. o kern - Mensagens do kernel. Arquivo de configuração syslog.conf o auth - Mensagens de segurança/autorização (é recomendável usar authpriv ao invés deste). o authpriv - Mensagens de segurança/autorização (privativas). o cron - Daemons de agendamento (cron e at). o daemon - Outros daemons do sistema que não possuem facilidades específicas. o ftp - Daemon de ftp do sistema. o kern - Mensagens do kernel. Arquivo de configuração syslog.conf o lpr - Subsistema de impressão. o local0 a local7 - Reservados para uso local. o mail - Subsistema de e-mail. o news - Subsistema de notícias da USENET. o security - Sinônimo para a facilidade auth (evite usa-la). o syslog - Mensagens internas geradas pelo syslogd. o user - Mensagens genéricas de nível do usuário. o uucp - Subsistema de UUCP. Arquivo de configuração syslog.conf • nível - Especifica a importância da mensagem. Os seguintes níveis são permitidos (em ordem de importância invertida; da mais para a menos importante): o emerg - O sistema está inutilizável. o alert - Uma ação deve ser tomada imediatamente para resolver o problema. o crit - Condições críticas. o err - Condições de erro. Arquivo de configuração syslog.conf o warning - Condições de alerta. o notice - Condição normal, mas significante. o info - Mensagens informativas. o debug - Mensagens de depuração. o * - Confere com todos os níveis. o none - Nenhuma prioridade. Arquivo de configuração syslog.conf • Além destes níveis os seguintes sinônimos estão disponíveis: o error - Sinônimo para o nível err. o panic - Sinônimo para o nível emerg. o warn - Sinônimo para o nível warning. Arquivo de configuração syslog.conf • destino - O destino das mensagens pode ser um arquivo, um pipe (se iniciado por um “|”), um computador remoto (se iniciado por uma “@”), determinados usuários do sistema (especificando os logins separados por vírgula) ou para todos os usuários logados via wall (usando “*”). Aula 05 SERVIÇO SSH História • O openSSH (explicado neste capítulo) é baseado na última versão livre do implementação de Tatu Ylonen com todos os algoritmos patenteados (para bibliotecas externas) removidos, todos as falhas de segurança corrigidas, novas características e muitas outras melhorias. O openSSH foi criado por Aaron Campbell, Bob Beck, Markus Friedl, Niels Provos, Theo de Raadt e Dug Song. Introdução SSH • O serviço de ssh permite fazer o acesso remoto ao console de sua máquina, em outras palavras, você poderá acessar sua máquina como se estivesse conectado localmente ao seu console (substituindo o rlogin e rsh). A principal diferença com relação ao serviço telnet padrão, rlogin e rsh é que toda a comunicação entre cliente/servidor é feita de forma encriptada usando chaves públicas/privadas RSA para criptografia garantindo uma transferência segura de dados. Características SSH • A velocidade do console remoto conectado via Internet é excelente (melhor que a obtida pelo telnet e serviços r*) dando a impressão de uma conexão em tempo real (mesmo em links discados de 9.600 KB/s), a compactação dos dados também pode ser ativada para elevar ainda mais a velocidade entre cliente-servidor ssh. Além do serviço de acesso remoto, o scp possibilita a transferência/recepção segura de arquivos (substituindo o rcp). Características SSH • Em conexões sem criptografia (rsh, rlogin) os dados trafegam de forma desprotegida e caso exista algum sniffer instalado em sua rota com a máquina destino, todo o que fizer poderá ser capturado (incluindo senhas). Características SSH • Abaixo as principais características do serviço ssh (Openssh): o Conexão de dados criptografada entre cliente/servidor. o Cópia de arquivos usando conexão criptografada. o Suporte a ftp criptografado (sftp). o Suporte a compactação de dados entre cliente/servidor. Características SSH • Abaixo as principais características do serviço ssh (Openssh): o Conexão de dados criptografada entre cliente/servidor. o Cópia de arquivos usando conexão criptografada. o Suporte a ftp criptografado (sftp). o Suporte a compactação de dados entre cliente/servidor. Características SSH o Controle de acesso das interfaces servidas pelo servidor ssh. o Suporte a controle de acesso tcp wrappers. o Autenticação usando um par de chaves pública/privada RSA ou DSA. o Algoritmo de criptografia livre de patentes. o Suporte a PAM. o Suporte a caracteres ANSI (cores e códigos de escape especiais no console). Dúvidas Acesse o Fórum!! Acessem o Chat!! (4ª às 20:30hs)