540 likes | 626 Views
Gestão de Redes Corporativas: Tecnologias e Segurança. Administração de Sistemas Operacionais Vera Schuhmacher – shummy@unisul.br. Gestão de Redes Corporativas: Tecnologias e Segurança. Gestão de Redes Corporativas: Tecnologias e Segurança.
E N D
Gestão de Redes Corporativas: Tecnologias e Segurança Administração de Sistemas Operacionais Vera Schuhmacher – shummy@unisul.br
Gestão de Redes Corporativas: Tecnologias e Segurança Administração de Sistemas Operacionais - 30h/a
Gestão de Redes Corporativas: Tecnologias e Segurança Administração de Sistemas Operacionais - 30h/a
AS RAÍZES DO UNIX • As raízes do UNIX datam dos meados dos anos 60; • a AT&T, Honeywell, GE e o MIT embarcaram em um massivo projeto para desenvolvimento de um utilitário de informação, chamado: Multics -Multiplexed Information and Computing Service
MULTICS • era um sistema modular montado em uma bancada de processadores, memórias e equipamentos de comunicação de alta velocidade; • pelo desenho, partes do computador poderiam ser desligadas para manutenção sem que outras partes ou usuários fossem afetados; • o objetivo era prover serviço 24 horas por dia 365 dias por ano - um computador que poderia ser tornado mais rápido adicionando mais partes.
UNIX • oprojeto do Multics foi abandonado e Ken Thompson resolveu reescrevê-lo em linguagem de montagem, usando um PDP-7 • Em conseqüência, outro pesquisador do Bell Labs, Brian Kernighan, chamou o sistema de UNICS (UNIplexed Information and Computing Service) • Às vezes o UNICS era chamado de EUNUCHS (eunuco) • Mais tarde o nome foi alterado para UNIX, Ken Thompson ganhou a adesão de Dennis Ritchie • Em 1973 o UNIX foi reescrito em C, com uma quantia relativamente pequena do Kernel escrita em Assembly.
UNIX • em 1975 foi lançada a V6, que foi a primeira versão de UNIX amplamente disponível fora dos domínios do Bell Laboratories, especialmente em universidades. • nesta época a Universidade de Berkley comprou os fontes do UNIX e alunos começaram a fazer modificações ao sistema. • no final dos anos 80 duas versões incompatíveis do UNIX:4.3BSD e System V Release 3 • ao contrário do MS-DOS, os pacotes de software não • rodavam em todos os UNIX • é necessário padronização do sistema. O IEEE começouo trabalho de conciliar as partes
UNIX • é um sistema multiprogramável, multiusuário, que suporta múltiplos processadores e implementa memória virtual. • Escrito em linguagem de alto nível • Oferece um conjunto de system calls que permite desenvolvimentos complexos a partir de uma interface simples • Flexível • Implementa threads, comunicação, sincronização, semáforos, memória compartilhada e pipes; • Suporta diversos protocolos de rede , TCP/IP, interfaces de programação, podendo ser utilizado como servidor de comunicação, roteador, firewall e proxy; • Implementação de um sistema de arquivos com uma estrutura simples (sequencia de bytes), além de disponibilizar opções para sistema de aquivo distribuídos como NFS (network file system), AFS (andrew file system) e DFS (distributed file system).
LINUX • no dia 5 de outubro de 1991 Linus Torvalds anunciou a primeira versão oficial do Linux: "Você suspira por melhores dias do Minix-1.1, quando homens serão homens e escreverão seus próprios 'device drives'? Você está sem um bom projeto e esta morrendo por colocar as mãos em um S.O. o qual você possa modificar de acordo com suas necessidades? Você está achando frustante quando tudo trabalha no Minix? Chega a atravessar noites para obter programas que trabalhem correto? Então esta mensagem pode ser exatamente para você. A partir de então muitos programadores começaram a participar desse projeto fazendo o que é hoje o GNU/Linux.
VERSÕES • cada versão é caracterizada por 3 números separados por um ponto (2.4.3 / 2.3.10); • Os primeiros 2 números são impregados para identificar a versão propriamente dita; • O terceiro número identifica o release. • O primeiro número indica uma troca radical no núcleo e da sua filosofia • O segundo número identifica se a versão do desenvolvimento é estável: ímpar – código em desenvolvimento, par- versão estável
Loading..... • Ao darmos partida a um sistema com Linux instalado, normalmente um programa chamado LILO (LInux Loader) entra em ação; • Ele permite selecionar qual partição será usada para a carga do sistema, possibilitando assim a escolha de múltiplos sistemas operacionais, ou mesmo versões diferentes do kernel ou configurações dos discos; • A BIOS(endereço 0xFFFF0) executa o código encontrado no primeiro setor do disco, seja ele um disco rígido ou um disquete (endereço 0x7C00) • O LILO está contido neste setor, e é ele que decide aonde se encontra o kernel do sistema e o carrega em seguida
Loading..... A primeiríssima parte do kernel Linux está escrito em linguagem assembly 8086 (boot/bootsect.S). Quando é executado, ele se move para o endereço absoluto 0x90000, carrega os próximos 2 kBytes de código do device de boot até o endereço 0x90200, e o resto do kernel para o endereço 0x10000. A mensagem "Loading..." é apresentada durante o carregamento do sistema. O controle é, então passado para o código contido em boot/Setup.S, outro código assembly de modo real. A parte de "setup" identifica algumas características do sistema (hardware) e o tipo da placa VGA. Se requerido, pede ao usuário para escolher o modo do vídeo da console. E, então, move todo o sistema do endereço 0x10000 para o endereço 0x1000, passa para o modo protegido e passa o controle para o resto do sistema (endereço 0x1000). O próximo passo é a descompressão do kernel. O código em 0x1000 vem de zBoot/head.S que inicializa os registradores e invoca decompress_kernel(), o qual é composto por zBoot/inflate.c, zBoot/unzip.c e zBoot/misc.c. O dado "descompresso" vai para o endereço 0x100000 (1 Mega), e esta é a principal razão do por que o Linux não pode rodar com menos de 2 Megas de RAM.
Loading..... • Uma vez carregado o kernel, este cria o primeiro processo do sistema o init. • Todos os outros processos são criados como filhos (child) deste e são monitorados por init. • O processo init então procura pelo arquivo /etc/inittab, que define a configuração dos terminais e processos que serão executados logo após a carga inicial do sistema. • A chamada getty, programa a linha serial (quando é o caso) aonde se encontram ligados os terminais, enviando mensagem aguardando a entrada do login do usuário. Isso se reflete na mensagem : • {Mensagem: arquivo /etc/issue}
Shutdown • parada imediata • shutdown -h now • reboot (recarga) daqui a 5 minutos • shutdown -r +5 • somente um alerta para os usuários • shutdown -k now • com uma mensagem personalizada para os usuários • shutdown -h +15 "O sistema sairá do ar daqui a 15 minutos.\Obrigado pela compreensão." • cancela um shutdown em andamento • shutdown -c
Loading..... • Após introduzido o nome do usuário e em seguida a senha (password), o programa login testa se os dados introduzidos são corretos e o shell destinado a este usuário é carregado • Toda a sessão deste usuário consiste neste processo shell e os sub-processos criados a partir deste. • Para trocar sua senha (password) ele executaria o comando passwd. • O superusuário (usuário de nome root) pode fazer o mesmo com todos os usuários, e opcionalmente pode editar o arquivo /etc/passwd {shell: {shell: arquivo /etc/passwd}
Root • A administração do sistema é função da conta root. Root é o nome do usuário mais privilegiado do sistema, também conhecido como superusuário; • é de extrema importância que a senha da área root seja protegida com muito cuidado. Ela não deve ser facilmente deduzida • Recomenda-se também que tarefas de rotina não sejam executadas sob a área root.
Discos • Uma unidade de disco rígido é fisicamente composto por uma série de • pratos ligados a um eixo. • A informação contida nestes pratos é processada pelas cabeçotes de leitura e gravação. • No momento da leitura ou gravação de dados, os cabeçotes são movidos conjuntamente pelo braço atuador. • O movimento radial é chamado “seeking”, que é uma das razões pelas quais as especificações dedisco freqüentemente mencionam o “seek time”.
Discos • O prato do disco é dividido em trilhas, cilindros e setores. A trilha é a • porção do disco que passa debaixo de uma cabeça simples estacionada • durante a rotação do disco, formando um anel de 1 bit de largura. • O cilindro é composto de um conjunto de trilhas descrita por todas as cabeças em uma simples posição de procura. • A partição é o dispositivo de disco lógico.
Discos • O label fica no primeiro setor da primeira partição. • Os próximos setores contêm a área de boot. • . Cada grupo de cilindros contêm um bloco • resumo do grupo de cilindros, uma tabela de inodes, e a respectiva área de blocos de dados. • O superbloco primário é mantido na memória e cada grupo de cilindros guarda uma cópia. O tamanho default para os blocos de dados é 8192,dividido em 8 fragmentos de 1024 cada. • O bloco de resumo do grupo de cilindros guarda: o número de inodes blocos de dados; ponteiros para o último bloco, fragmento e inodes usado;número de fragmentos livres; o mapa de inodes usados, o mapa de inodes livres. • Os diretórios contêm apenas duas informações sobre cada arquivo: nome e o número do inode.
Inodes • Os INODES contêm informações a respeito de arquivos e diretórios no sistema de arquivos. • A única coisa que inode não contém é o • nome do arquivo. • O INODE contém informações sobre as permissões do arquivo, contagem de links, blocos duplicados, blocos ruins, associações de tamanho, e ponteiros para os blocos de dados. • O INODE possui também apontadores para os blocos de dados dos arquivos. • EX:Solaris , cada INODE possui 16 destes apontadores. Os apontadores de 0 a 11 apontam para os 12 primeiros blocos de dados do arquivo (blocos • diretos). Os apontadores 12 e 13 apontam para blocos indiretos
Arquivos e Diretórios • A árvore de diretórios do Linux segue um padrão estabelecido pelo unix • mas controlada por um conjunto de regras estabelecidas pelo Linux Filesystem Standard, ou FSSTND • Seu particionamento é escolhido em ramificações menores de forma a permitir o uso de vários dispositivos físicos em cada ramo principal • ou mesmo tipos de dispositivos diferentes como CDRoms e redes (via NFS-Networking File System) entre várias máquinas
raiz (root, /) é específico para cada máquina, armazenado localmente, em rede ou ramdisk Deve conter os arquivos para a carga do sistema, de forma a permitir a montagem dos outros sistemas de arquivos e ferramentas necessárias para recuperar backups, quando "logamos" no sistema na forma single user /usr contém comandos, bibliotecas, manpages, e outros arquivos estáveis, isto é, que não precisem ser modificados durante a operação normal do sistema. /var contém em geral os arquivos que sofrem modificações durante a sessão, tais como logfiles, arquivos de spooling, manpages formatadas e arquivos temporários. /home contém os diretórios dos usuários normais.
/bin contém programas (executáveis) que são necessário durante a carga do sistema (boot time). /dev dispositivos (devices), não arquivos de dados no sentido explícito, mas que podem ser acessados, confome o caso por programas que usualmente editam, filtram ou processam de maneira geral arquivos convencionais. /mnt é um diretório com pontos para montagem de dispositivos de bloco, como discos rígidos adicionais, disquetes, cdroms, etc. /proc diretório virtual, mantido pelo kernel. Nele encontramos "arquivos" com a configuração atual do sistema, dados estatísticos, dispositivos já montados, interrupções, endereços e estados das portas físicas, dados sobre as redes, etc. Além disso, um subdiretório com o nome que corresponde ao PID (process id) de cada processo correntemente existente na máquina
/tmp local destinado aos arquivos temporários. Observe a duplicidade aparente deste diretório com o /var. Na realidade o /tmp não necessariamente precisa ser salvo entre uma sessão e outra (após um boot), enquanto que o /var normalmente fica com os dados salvos. /sbin executáveis e ferramentas para a administração do sistema. Este é um dos diretórios que é disponível no PATH durante a execução do processo init. /etc este diretório contém uma miscelânea de dados de configuração, notadamente no subdiretório /etc/rc.d, aonde estão os scripts de inicialização do sistema, os arquivos fstab (tabela de filesystems), inittab (configuração da inicialização do sistema para cada nível), profile (configuração default para todos os logins), printcap (configuração do spooler de impressão), e um número considerável de arquivos para configuração de rede e outros aspectos do sistema, incluindo o X11.
/lost+found diretório onde são colocados os arquivos "recuperados" pelo utilitário fsck, isto é clusters (blocos) orfãos no disco ou que pertenciam a arquivos danificados. /lib bibliotecas do sistema, compartilhadas, também os módulos do kernel que são carregados via modprobe ou insmod. /usr/local apesar de ser um subdiretório de /usr, este diretório é importante porque é aonde residem os programas instalados após o "pacote básico" do sistema operacional. /var/spool armazena os e-mails de todos os usuários, arquivos submetidos à impressão, faxes recebidos, bem como tarefas programadas para execução em um determinado instante (futuro).
COMANDO MAN Manual on-line man : Exibe uma página do manual interno do Unix, para um dado comando ou ou recurso (isto é, qualquer utilitário do sistema que não seja comando, por exemplo, uma função de biblioteca). man <comando> $ man mkdir
COMANDO LS Listando arquivos - O comando ls fornece uma listagem com os nomes dos arquivos e subdiretórios contidos num diretório ou seja, quais os arquivos e subdiretórios estão contidos no diretório atual de trabalho. ls <opções> <pathname> $ ls poesia.txt relatorio algoritmo.c jogos $ $ ls -ax . .. .profile poesia.txt relatorio .exrc $ ls -l total 94 drwxr-xr-x 2 pedro grad 512 Jul 10 12:30 . -rw-r--r-- 1 pedro grad 768 Jul 9 11:21 .pro -rw-r--r-- 1 pedro grad 674 Aug 2 17:17 .pcc
COMANDO LS $ ls -l total 94 drwxr-xr-x 2 pedro grad 512 Jul 10 12:30 . -rw-r--r-- 1 pedro grad 768 Jul 9 11:21 .pro -rw-r--r-- 1 pedro grad 674 Aug 2 17:17 .pcc [a] [b] [c] [d] [e] [f] [g] [h] [i] a) O primeiro caractere indica o tipo do arquivo, os dígitos restantes indicam o modo de acesso do arquivo: “r” (read), “w” (write) e “x” (eXecute). Cada três grupos de dígitos representam um tipo de usuário: os três primeiros representam o modo de acesso para o dono do arquivo, o segundo para o grupo do Qual o usuário faz parte e o terceiro para os usuários restantes. b) numero de links do arquivo c) dono do arquivo d) grupo proprietário do arquivo e) Indica o tamanho (em bytes) f) data de ultima modificação do arquivo h) hora de ultima modificação do arquivo i) nome do arquivo ou diretório
COMANDO MKDIR Criando novos Diretórios - Para criar um diretório, o usuário utiliza o comando mkdir, que necessita do nome do diretório a ser criado como argumento. A menos que seja dado um caminho absoluto, o novo diretório será criado abaixo do diretório corrente. mkdir <identificador> $ mkdir jogos
COMANDO CD Mudando de diretório - A partir do momento que se conhece o caminho absoluto ou relativo de um arquivo, o usuário pode, tranqüilamente, mover-se pela arvore de diretórios do Unix. cd <pathname> $ cd $ pwd /home/pedro $ cd /home/pedro $ pwd /home/pedro $ cd jogos $ pwd /home/pedro/jogos $ pwd /home/pedro $ cd .. $ pwd /home
COMANDO RM Removendo arquivos e diretórios rm [-fir] <pathname> $ ls chap10 chap2 chap5 chap9 chap1a.old chap3.old chap6 chap10 $ rm * $ rm *.old $ rm ch* $ rm –r pedro -i solicitará uma confirmação do usuário -r remove o conteúdo do diretório e o próprio diretório.
COMANDO CP Copiando arquivos- A cópia de arquivos se faz necessária quando se quer alterar algum arquivo, mas não se quer perder seu conteúdo anterior ou se quer enviar um arquivo para um outro diretório diferente daquele onde o original está localizado. cp <arquivo_original> <arquivo_copia> $ cp aula1 aula1.copia $ cp /home/pedro/aula1 /usr/pedro/aula2 aulas $ cp /home/pedro/aula[12] aulas $ cp ../pedro/aula[12] . -i pede confirmação antes de sobrescrever um arquivo. -p preserva a hora da ultima modificação e suas permissões em sua cópia -r copia recursivamente um diretório , com seus arquivos e subdiretórios
COMANDO MV Movendo e renomeando arquivos - O comando mv muda a localização de um determinado arquivo, ou seja, troca um arquivo de diretório. mv < nome_arquivo> nova_localização_nome_arquivo> $ mv /home/pedro/arq1 /home/aluno/ana/arq1_bk $ mv aula1 aula1.txt
COMANDO LN Links - Quando se utiliza o comando cp, duas cópias de arquivos independentes passam a existir no sistema. Qualquer alteração efetuada em um dos arquivos não afeta o outro. O Unix permite que se acesse o mesmo arquivo através de diferentes nomes em diferentes diretórios, ao invés de se criar duplicatas. ln [-fs] nome_arquivo [nome_link] $ pwd /home/pedro $ ln -s /etc/passwd senhas $ ls -l senhas lrwxrwxrwx 1 pedroj 4 Jun 30 17:50 senhas ->/etc/passwdmv -f hard link estabelece uma união rígida para o arquivo no mesmo sistema de arquivos. -s link simbólico pode ultrapassar os limites do sistema de arquivos.
COMANDO MORE More - Exibe o conteúdo de arquivos nomeados, fazendo pausas a cada tela cheia. more <nome_arquivo> $ more arqnome • <enter> irá exibir uma linha a mais; • barra de espaço - ele exibe outra tela cheia ; • "b" faz com que "more" exiba a tela anterior; • "q" provoca a parada de execução do comando more.
COMANDO CHMOD Modifica as permissões de um arquivo ou diretório.Você deve ser o proprietário de um arquivo ou diretório, ou ter acesso ao root, para modificar as suas permissões. chmod permissões <nome_do_arquivo > • 1- Use uma ou mais letras indicando os usuários envolvidos: • . u (para o usuário) • . g (para o grupo) • . o (para "outros") • . a (para todas as categorias acima) • 2- Indique se as permissões serão adicionadas (+) ou removidas (-). • 3- Use uma ou mais letras indicando as permissões envolvidas : • . r (para "read") (ler) • . w (para "write") (escrever) • . x (para "execute") (executar)
COMANDO CHMOD Para incluir permissão de gravação para o grupo do diretório trabalhos: $ ls -l drwxr-xr-x 3 vanda direito 1024 Feb 10 11:15 trabalhos $ chmod g+w trabalhos $ ls -l drwxrwxr-x 3 vanda direito 1024 Feb 10 11:17 trabalhos $ ls -l drwxr-xr-x 3 vanda direito 1024 Feb 10 11:15 trabalhos $ chmod 775 trabalhos $ ls -l drwxrwxr-x 3 vanda direito 1024 Feb 10 11:17 trabalhos
COMANDO CHOWN Modifica o proprietário de um arquivo ou diretório. chown [-hR] (proprietário) <nome_do_arquivo > drwxr-xr-x 3 vanda direito 1024 Feb 10 11:15 trabalhos $ chown ana trabalhos $ ls -l drwxrwxr-x 3 ana direito 1024 Feb 10 11:17 trabalhos • O argumento "proprietário" especifica o novo proprietário do arquivo. • o userid do usuário ou um "login name" deve ser válido no arquivo "/etc/passwd". • somente o proprietário do arquivo ( ou o super-usuário ) pode modificar o proprietário deste arquivo. • Opções: • h esta opção modifica o proprietário do link simbólico • R esta opção é recursiva."chown" percorre o diretório e os subdiretórios, modificando as propriedades à medida em que prossegue.
COMANDO CHGRP Modifica o grupo de um arquivo ou diretório. chgrp [-hR] (gid) <nome_do_arquivo > drwxr-xr-x 3 vanda direito 1024 Feb 10 11:15 trabalhos $ chgrp letras trabalhos $ ls -l drwxrwxr-x 3 ana letras 1024 Feb 10 11:17 trabalhos • o gid-group id, ou um nome de grupo encontrado no arquivo "/etc/group“; • deve ser o proprietário do arquivo, ou o super-usuário, para que possa utilizar este comando. • Opções: • h esta opção modifica o grupo do link simbólico • R esta opção é recursiva."chgrp" percorre o diretório e os subdiretórios, modificando as propriedades à medida em que prossegue.
INTEGRIDADE DO SISTEMA DE ARQUIVOS Fsck - Inconsistências lógicas são quase sempre descobertas pelo programa fsck ao checar a integridade dos sistemas de arquivos, e são normalmente ocasionadas por quedas do sistema operacional. O programa fsck checa os sistemas de arquivos identificados no arquivo /etc/fstab. • Ex. Checar o sistema de arquivos /dev/dsk/c0t0d0s0 • $ sfsck dev/dsk/c0t0d0s0