Uploaded on

Linux4All#2 é o segundo minicurso sobre Gnu/Linux, realizado na Uncisal (Universidade Estadual de Ciências Médicas de Alagoas). Abordando conceitos teóricos/praticos a nível intermediário de uma forma …

Linux4All#2 é o segundo minicurso sobre Gnu/Linux, realizado na Uncisal (Universidade Estadual de Ciências Médicas de Alagoas). Abordando conceitos teóricos/praticos a nível intermediário de uma forma simples e dinâmica, ministrada por mim.

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
643
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
17
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Linux4All#2 d4n1
  • 2. Agenda
    • Administração do Sistema
    • 3. Automatização de tarefas
    • 4. X Window
    • 5. Shell Script
    • 6. Kernel
  • 12. Login
      /etc/passwd
    • root:x:0:0::/root:/bin/bash
    • 13. Login
    • 14. x (senha criptografada em shadow)
    • 15. UID (User ID)
    • 16. GID (Group ID)
    • 17. Informações adicionais
    • 18. Diretório do usuário e o Shell
    Administração do Sistema
  • 19. Senha
      /etc/shadow
    • Não é possível usar engenharia reversa porém um ataque do tipo força bruta pode surtir efeito
    • 20. Somente root tem acesso
    • 21. root:$1$MAK7F/MV$YbiduqPWZUbVA9PFvlKYM/:14768:0:::::
    Administração do Sistema
  • 22. Grupo
      /etc/group
    • root:x:0:root
    • 23. Nome do grupo
    • 24. Senha criptografada (gshadow)
    • 25. GID (Group ID)
    • 26. Lista de membros que pertecem a esse grupo
    Administração do Sistema
  • 27. Ultilitário
      Podemos editar os arquivos diretamente com qualquer editor de texto (vi) ou podemos usar alguns comandos como:
    • #useradd, #userdel, #usermod
    • 28. #passwd, #gwpasswd
    • 29. #groupadd, #groupdel
    • 30. #pwconv, #grpconv, #pwunconv, #grpunconv, #chage
    Administração do Sistema
  • 31. Arquivos
      /etc/skel
    • Define a estrutura do diretório home
    • 32. /etc/profile
    • 33. Define algumas variáveis de ambiente, sendo executado a cada login
    • 34. /etc/bashrc
    • 35. Define alguns parâmetros para o bash, sendo executado toda vez que o bash é envocado
    Administração do Sistema
  • 36. Agenda
  • 46. Automatização
    • Há dois agendadores de tarefas o cron e o at. O cron é apropriado para executar procedimentos com certa periodicidade e o at para agendar tarefas simples no futuro
    • 47. cron
    • 48. É um daemon que prover agendamento de tarefas, geralmente usamos o comando crontab
    • 49. Não é necessário reiniciar o serviço
    Agendamento de tarefas
  • 50. Estrutura
      Estrutura do cron
    • 30 4 * * 0 root /sbin/hacker.sh
    • 51. | | | | | |_ usuário |_ comando
    • 52. | | | | |___ dias da semana (0-6)
    • 53. | | | |_____ mês (1-12)
    • 54. | | |_______ dias do mês (1-31)
    • 55. | |_________ horas (0-23)
    • 56. |____________ minutos (0-59)
    Agendamento de tarefas
  • 57. Opções
      at
    • O comando at agenda tarefa para ser executada somente uma vez
    • 58. Executa tarefas mesmo que tenha passado a hora de execução
    • 59. Notações de data e hora do at
    • 60. HH:MM, midnight, noon, teatime, MMDDYY, MM/DD/YY, DD.MM.YY, + opção (minutes, days, hours, weeks)
    Agendamento de tarefas
  • 61. Agenda
  • 71. Interface gráfica
    • Sistema gráfico baseado na arquitetura cliente-servidor entre o hardware e o ambiente de trabalho
    • 72. Composto por janelas e API's (Application Programming Interface)
    • 73. Aplicação do usuário e não parte integrante do sistema operacional
    • 74. Criado pelo MIT (Massachussets Institute of Technology) mantido pela Xfree86 Project
    X Window
  • 75. Gerenciador de Janela
    • O X Window System ou X, é responsável pelas funções básicas de desenho, formas e cores na tela, interface de rede e controle básico
    • 76. O design das janelas, ícones, dentre outras, são responsabilidade do Window Manager como XFCE, GNOME, KDE e etc
    • 77. /etc/X11/xorg.conf
    • 78. Diplay Managers: xdm, gdm e kdm
    X Window
  • 79. Agenda
  • 89. Conceitos... Shell script
  • 90. Conceitos...
      Variáveis
    • Variáveis de ambientais ou globais (PATH, USER, HOME...)
    • 91. Variáveis de shell ou locais (pode ser exportadas com o comando export )
    • 92. Alias
    • 93. Apelidos para os comandos ( alias lslinux='ls -la' )
    Shell script
  • 94. Conceitos
      Funções
    • Uma função pode armazenar vários comandos ( [function] nome(){comando;} )
    • 95. Arquivos bash
    • 96. /etc/profile, /etc/bashrc, ~/.bash_profile, ~/.bash_login, ~/.profile, ~/.bashrc, ~/.bash_logout, ~/.inputrc
    Shell script
  • 97. Primeiros passos...
      Script Shell
    • Definir o shell (bash, sh, …) no inicio do script #!/bin/bash
    • 98. Adicionar permissão de execução ( #chmod +x script )
    • 99. Shell filho não pode passar variáveis para o shell pai (herança, sempre de pai para filho)
    Shell script
  • 100. Primeiros passos...
      Variáveis especiais
    • $? - retorna o valor do último comando (==0, !=0)
    • 101. $0 – retorna o nome do script
    • 102. $1-$9 – parâmetros passados no shell
    • 103. $# - retorna o número de parâmetros passados
    • 104. $$ - retorna o PID do processo
    Shell script
  • 105. Primeiros passos...
      Loop e laços condicionais If [ $? = 0 ]; then echo 'Executado com sucesso' else echo 'O comando falhou' fi
    Shell script
  • 106. Primeiros passos...
      Loop e laços condicionais
    • If testa comando e não condição, então o if deve ser usado em conjunto com o comando test, usado o símbolo [ 'opção' ]
    • 107. Opção: -eq (igual), != (diferente), -gt (maior), -lt (menor), -o (ou), -d (diretório), -e (arquivo), -z (vazio), -f (com texto), -r (leitura), w (escrita), -x (execução)
    Shell script
  • 108. Primeiros passos...
      Loop e laços condicionais Case variaval in expressao1) comando1; comando2;; expressao2) comando3; comando4;; *) comando_padrao;; esac
    Shell script
  • 109. Primeiros passos...
      Loop e laços condicionais for i in `cat lista`; do ls $i; done
    Shell script
  • 110. Primeiros passos
      Loop e laços condicionais variavel=”valor” while [ $variavel=”valor” ]; do comando1; comando1; done
    Shell script
  • 111. Agenda
  • 121. Conceito Kernel
  • 122. Coração do sistema
    • Núcleo do S.O.
    • 123. Pode ser compilado e customizado permitindo maior performance
    • 124. Kernel monolítico, mais rápido e menos flexível. Precisa ser recompilado se necessário
    • 125. Kernel modular, mais lento e mais flexível. Pode ser carregado ou descarregado se necessário
    • 126. Podemos ter um Kernel misto
    Kernel
  • 127. Tipos
    • Módulo do kernel (.o ) é um código na linguagem C, não ligados ao executável do kernel
    • 128. Os módulos são disponibilizados em /lib/modules/versão_kernel
    • 129. Podemos saber a versão do kernel usado o comando #uname -r ou cat /proc/version
    • 130. 2.x.y – x se par versão estável se ímpar versão instável, y é a compilação
    Kernel
  • 131. Ultilitários...
    • #lsmod – visuliza os módulos dispóniveis e os usados. Usa como base o /proc/modules
    • 132. #modinfo – mostra informações sobre módulos
    • 133. #insmod – carrega módulo. Procura em /etc/modules.conf
    • 134. #rmmod – remove/descarrega módulo. Somente se o módulo não estiver em uso
    Kernel
  • 135. Ultilitários
    • #modprobe – carrega/descarrega módulos de uma forma inteligente resolvendo dependências
    • 136. #depmod – cria uma lista de dependências entre os módulos para /lib/modules/kernel/modules.dep
    Kernel
  • 137. Compilação...
      Compilação/Recompilação de Kernel
    • Kernel reduzido
    • 138. Kernel customizado
    • 139. Eficiência na gerência de recursos do computador
    • 140. Melhor performance
    • 141. Reconhecimento de novos periféricos
    Kernel
  • 142. Compilação...
    • Baixar o novo kernel em http://www.kernel.org ou no site da sua distribuição
    • 143. gcc
    • 144. make
    • 145. Extrair o kernel compactado para o diretório /usr/src/
    • 146. Ler o arquivo /usr/src/linux/README
    Kernel
  • 147. Compilação...
    • #cd /usr/src/
    • 148. #ln -sf linux-2.6.34 linux
    • 149. #cd linux
    • 150. #make mrproper
    • 151. Opções para compilação: “Y” ou “*” = yes, “m” = módulo, “[ ]” não compilar essa opção
    Kernel
  • 152. Compilação...
    • Tudo é gravado no arquivo .config
    • 153. Não editar o .config, melhor usar os utilitários config, menuconfig, xmenuconfig e oldconfig
    • 154. Todos essas feramentas fazem a mesma coisa só que com interfaces diferentes
    Kernel
  • 155. Compilação...
      Opções de compilação
    • #make config
    • 156. #make menuconfig
    • 157. #make xconfig
    • 158. #make oldconfig
    Kernel
  • 159. Compilação...
      Compilando e instalando
    • #make bzImage
    • 160. #make modules
    • 161. #make modules_install
    • 162. Não usar o #make install
    Kernel
  • 163. Compilação
      Compilando e instalando
    • #cp /usr/src/linux/arch/i386/boot/bzimage /boot/vmlinuz-hacker
    • 164. Editar o arquivo do gerenciador de boot (lilo ou grub) e adicionar a entrada para o novo kernel
    • 165. Reconfigure seu gerenciador de boot
    Kernel
  • 166. Agenda
  • 176. Conceitos...
    • Arquivo de log ou histórico
    • 177. Facilidades
    • 178. auth, authpriv, cron, daemon, kern, lpr, mail, news, syslog, user, local0 à local7
    • 179. Níveis
    • 180. Emerg(0), alert(1), crit(2), err(3), warning(4), notice(5), info(6), debug(7)
    Log
  • 181. Conceitos
      Syslog (/etc/syslog.conf)
    • facilidade.nivel ação
    • 182. Ação
    • 183. Log, pipe ou sistema remoto
    • 184. Arquivo, pipe, terminal e console, computador remoto, usuario
    • 185. Caracteres especiais
    • 186. *, =, ! e -
    Log
  • 187. Ultilitários
      Logrotate
    • Copia e compacta Os arquivos de log, criando novos arquivos
    • 188. /etc/logrotate.conf
    • 189. Para evitar a recompactação de arquivos (gz.gz.gz...) use a sintaxe do tipo log-xxx-*.log ao invéz de log-xxx-*
    • 190. Metalog, ...
    Log
  • 191. Agenda
  • 201. Conceitos
    • Protocolo TCP/IP
    • 202. Classes de rede
    • 203. Classe A - 8/24 bits p/ rede/máquina
    • 204. Classe B - 16/16 bits p/ rede/máquina
    • 205. Classe C – 24/8 bits p/ rede/máquina
    • 206. Classe D e E
    • 207. (2^n)-2
    Rede
  • 208. Tipos
      Classe bit rede PC Máscara
    • A 0 126 16.777.210 /8
    • 209. B 10 16.385 65.534 /16
    • 210. C 110 2.097.150 254 /24
    • 211. D 1110 Multicast - -
    • 212. E 1111 Reservado - -
    • 213. Endereços reservados (127.0.0.1)...
    Rede
  • 214. Camadas
      TCP/IP Serviços TCP/IP
    • Aplicação | telnet/http/dns/smtp...
    • 215. Transporte | tcp/udp
    • 216. Internet | arp/ip/icmp...
    • 217. Rede | ethernet/frame relay...
    • 218. O protocolo tcp/ip é um simplificaçao do modelo OSI
    Rede
  • 219. Ultilitários... Rede
  • 225. Ultilitários
      Feramentas TCP/IP
    • #dig (domain information group)
    • 226. #ping (icmp)
    • 227. #traceroute (ttl – time to live)
    • 228. #whois (informações de domínio)
    • 229. #telnet (conexão remota)
    • 230. #ftp (file tranfer protocol)
    • 231. #host (retorna ip/nome)
    Rede
  • 232. Arquivos Rede
  • 237. Serviços
      Serviços de rede
    • /etc/inetd.conf
    • 238. /etc/hosts.allow
    • 239. /etc/hosts.deny
    • 240. Desabilite todo serviço desnecessário em /etc/inetd. Defina quem pode ter acesso aos serviços oferecidos
    Rede
  • 241. Agenda
  • 251. Dicas...
      Desabilitando serviços
    • /etc/inetd.conf
    • 252. Use o ssh, ao invés do telenet, rlogin, rsh...
    • 253. Se não há necessidade de executar um daemon como root, prefira usuário com pouco privilégio como nobody
    • 254. Configure, se precido, os arquivos /etc/hosts.allow e /etc/hosts.deny
    Segurança
  • 255. Dicas
      Gerenciamento de senhas
    • Mudar as senhas periódicamente, podemos usar o comando chage
    • 256. Manter as senhas dos usuários sempre em /etc/shadow
    • 257. /etc/shadows mantém as senhas criptografadas
    • 258. Caso sua distribuição seja antiga use o comando pwconv
    Segurança
  • 259. Privilégio
      Executáveis com SUID
    • Executáveis com bit suid devem ter permissão de escrita somente para root, caso contrário um usuário poderá ter acesso privilegiado
    • 260. #!/bin/bash
    • 261. find / -path '/proc' -prune -or -perm -u+s -exec ls -l {} ; > /var/log/suid; mail root < /var/log/suid
    Segurança
  • 262. Alerta
      Alerta de seguraça
    • Bugstraq (www.securityfocus.com) – criado em 1993, reporta bugs em softwares populares forçando a correção dos erros pelos responsáveis rapidamente
    • 263. Cert (www.cert.org) – criado em 1988, reporta vunerabilidades e documentos técnicos, além de treinamentos
    Segurança
  • 264. Firewall...
      Filtros de pacotes
    • O firewall padrão linux (netfilter) disponibiliza uma poderosa feramenta chamada iptables, que funciona como um analisador de pacotes em endereços e portas de origem e destino
    • 265. Suporta nat, redirecionamentos de pacotes, modifica prioridade, contagem de bytes, gerenciamento de tráfego, proteção anti-spoofing, dos, syn flood, ...
    Segurança
  • 266. Firewall
      Filtros de pacotes filter
    • INPUT, OUTPUT e FORWARD
    • 267. nat
    • 268. PREROUTING, OUTPUT e POSTROUTING
    • 269. mangle
    • 270. PREROUTING e OUTPUT
    Segurança
  • 271. Agenda
  • 281. Conceitos
      Criptografia de chave pública
    • Chave pública
    • 282. Chave privada
    • 283. GnuPG
    • 284. Implementa o OpenPGP
    • 285. Permite criptografar e assinar dados e mensagens usando chaves públicas e privadas
    Criptografia
  • 286. Uso...
      Gerando/listando
    • #gpg --gen-key
    • 287. #gpg --list-keys
    • 288. Exportando/importando
    • 289. #gpg --output dani.gpg --export d4n1h4ck3r@gmail.com
    • 290. #gpg --import hacker.gpg
    Criptografia
  • 291. Uso...
      Validação
    • #gpg --edit-key hacker@gmail.com
    • 292. fpr/sign
    • 293. Criptografar/Descriptograr arquivos
    • 294. #gpg --output hack.gpg –encrypt -recipient hacker@gmail.com hacker.txz
    • 295. #gpg --output hacker.txz --decrypt hack.gpg
    Criptografia
  • 296. Uso
      Assinar/Validar documentos/menssagens
    • #gpg --output hack.doc --sign hacker.txz
    • 297. #gpg --output hack.doc --decrypt hack.doc
    • 298. #gpg --crearsign hack
    Criptografia
  • 299. Agenda
  • 309. Documentação
    • SlackwareBook – Slackware Linux Essentials – Slackware Linux Inc., 2005
    • 310. Certificação Linux – LPI 101 e 102 – Ribeiro, Uirá. 2005
    • 311. Man pages
  • 312. Agenda
  • 322. d4n1 h4ck3r [email_address] d4n1h4ck3r.blogspot.com