Linux4all#2

861 views

Published 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 simples e dinâmica, ministrada por mim.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
861
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
20
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Linux4all#2

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

×