<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Projeto CyberShark</title>
	<atom:link href="http://www.cybershark.net/feed" rel="self" type="application/rss+xml" />
	<link>http://www.cybershark.net</link>
	<description>Sotware Livre, Linux e UNIX</description>
	<lastBuildDate>Tue, 09 Nov 2010 12:05:47 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Personalizar páginas de erro do Squid</title>
		<link>http://www.cybershark.net/tutoriais/squid</link>
		<comments>http://www.cybershark.net/tutoriais/squid#comments</comments>
		<pubDate>Mon, 29 Mar 2010 11:50:53 +0000</pubDate>
		<dc:creator>Daniel Duclos</dc:creator>
				<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[configuração]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[personalizar]]></category>
		<category><![CDATA[proxy]]></category>
		<category><![CDATA[squid]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://www.cybershark.net/?p=80</guid>
		<description><![CDATA[O squid é um poderoso e conhecido proxy. Veja como personalizar as páginas de erro mostradas ao usuário final neste tutorial passo-a-passo.]]></description>
			<content:encoded><![CDATA[<h2>Introdução</h2>
<p>O <a href="http://www.squid-cache.org/">squid</a> é um poderoso e conhecido <a href="http://cybershark.net:42080/artigos/tcp_proxy/">proxy</a>. É comum  encontrarmos empresas que o utilizam para controlar o acesso dos  funcionários à Internet, exigindo autenticação, além de implementar uma  série listas de controle de acesso (ACL &#8211; Access Control Lists) sobre  quais grupos de funcionários podem ver quais páginas.</p>
<p>Porém, um recurso que nem sempre é utilizado é a personalização das  páginas de erro do Squid. As páginas que vem por padrão em geral estão  em inglês, deixando os funcionários confusos acerca do que aconteceu, o  que acaba sobrecarregando o suporte. Além disso, mesmo que utilizadas as  páginas traduzidas que o Squid também fornece em alguns empacotamentos,  o design é muito simples. As vezes a empresa acha interessante não só  traduzir as mensagens, mas também formatar as páginas no padrão da sua  Intranet, inserindo o logotipo, links para páginas úteis, ou outras  informações relevantes.</p>
<p>É possível até mesmo criar páginas de erro únicas e personalizadas para  cada ACL, para ser exibida caso a permissão de acesso àquela ACL seja  negada.</p>
<h2>Mão na massa</h2>
<h3>Alterar as páginas existentes</h3>
<p>Quando o Squid é instalado via pacote, em geral ele já possui um  diretório padrão onde as páginas de erro são armazenadas. Por exemplo,  no <a href="http://www.br.debian.org/">Debian</a>,  elas ficam em <em>/usr/share/squid/errors/English</em>. Em outros  empacotamentos, elas podem estar em <em>/etc/squid/errors</em>. De  qualquer forma, é possível escolher qual o diretório que lhe agrada,  procurando no <em>squid.conf</em> pelo parâmetro error_directory,  alterando-o se desejar.</p>
<p>Estas páginas são arquivos html com nomes em maíusculas correspondente  ao erro que as carregará. Por exemplo, quando o acesso for negado ao  usuário, o conteúdo da página <em>ERR_ACCESS_DENIED</em> será exibido.</p>
<p>Após alterar as páginas, formatando-as a seu gosto, é preciso reiniciar o  Squid para que as mudanças passem a vigorar.</p>
<h3>Criar páginas únicas</h3>
<p>Para criar uma página de erro que deve ser exibida em caso de uma ACL  falhar é preciso procurar no <em>squid.conf</em> o parâmetro deny_info. O  formato de uso para este parâmetro, conforme podemos ver na ajuda do <em>squid.conf</em> é:</p>
<pre>  deny_info pagina_de_erro acl
</pre>
<p>ou</p>
<pre>  deny_info http://URL acl
</pre>
<p>Exemplo</p>
<pre>  deny_info erro_endereco_pornografia porn
</pre>
<p>Onde  <em>erro_endereco_pornografia</em> é uma página HTML de erro, criada  por você, explicando que aquele endereço que o usuário tentou acessar é  de uma possível página pornográfica e porn é a ACL que lista os sites  pornográficos. Se optar por ativar este parâmetro, não esqueça de criar a  página  <em>erro_endereco_pornografia</em>, colocá-la no diretório das  páginas de erro e então reiniciar o Squid. Além disso, é possível, em  vez de mostrar uma página de erro criada por você, redirecionar o  usuário para um endereço web qualquer, substituindo <em>erro_endereco_pornografia</em> pelo endereço desejado.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.cybershark.net/tutoriais/squid/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Permissão em sistemas UNIX</title>
		<link>http://www.cybershark.net/tutoriais/permissao-em-sistemas-unix</link>
		<comments>http://www.cybershark.net/tutoriais/permissao-em-sistemas-unix#comments</comments>
		<pubDate>Mon, 29 Mar 2010 11:26:43 +0000</pubDate>
		<dc:creator>Daniel Duclos</dc:creator>
				<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[adminsitração de sistemas]]></category>
		<category><![CDATA[chmod]]></category>
		<category><![CDATA[permissão]]></category>
		<category><![CDATA[posix]]></category>
		<category><![CDATA[segurança]]></category>
		<category><![CDATA[sysadmin]]></category>
		<category><![CDATA[UNIX]]></category>

		<guid isPermaLink="false">http://www.cybershark.net/?p=74</guid>
		<description><![CDATA[O UNIX usa um sistema de permissões que define os direitos dos usuários e dos programas sobre todos os arquivos e diretórios. Dominar as permissões do UNIX é esencial para o administrador de sistemas. Esse tutorial ensina como funciona e como configurar as permissões. Os conceitos explicados se aplicam a qualquer sistema UNIX/POSIX.]]></description>
			<content:encoded><![CDATA[<p>O UNIX possui um sistema de permissões que define os direitos dos  usuários e dos programas sobre todos os arquivos e diretórios. Essas  permissões são controladas pelo comando chmod. Para este tutorial  utilizaremos a sintaxe da versão GNU desse programa.</p>
<h2>Sistema Básico de permissões</h2>
<p>O sistema básico de permissões é dado em três níveis principais: dono do  arquivo (user, em inglês), grupo de usuários ao qual pertence o arquivo  (group) e o restante (others). Dos termos em inglês utilizaremos u para  representar o dono do arquivo, g para grupo e o para os outros.</p>
<p>Cada nível pode ter, por sua vez, três tipos de permissões: leitura  (read, representado pela letra r), escrita (write, w) e execução  (execute, representado pela letra x). A nomenclatura ugo e rwx,  derivadas dos nomes em inglês para os níveis e permissões é comumente  usada na Internet e será adotada neste tutorial.</p>
<p>O sistema garante o acesso de leitura, gravação ou execução dependendo  do valor de um bit associado ao arquivo. Cada bit pode ter o valor de 0  ou 1. Existem então 9 bits para representar as permissões, pois são três  níveis (ugo) vezes três permissões possíveis (rwx).</p>
<p>Vamos observar o as permissões de um arquivo de exemplo:</p>
<pre>  $ ls -l index.html
  -rw-r--r--  1 daniduc webmasters 4632 2004-12-17 13:39 index.html
  $
</pre>
<p>Repare no -rw-r&#8211;r&#8211;. Essas são as permissões do arquivo. As três  primeiras são para o dono do arquivo (daniduc), as três seguintes  representam os direitos do grupo (webmasters) e as três últimas os dos  demais usuários. Vamos destrinchá-las.</p>
<p>Os três primeiros bits são -rw. O traço representa o bit inativo (valor  zero) e a letra o bit ativo (valor 1). Então vemos que o dono tem  permissão de ler e escrever no arquivo, mas não executá-lo. Veja um  teste:</p>
<pre>  $ ./index.html
  bash: ./index.html: Permissão negada
  $
</pre>
<p>O sistema avisou que não há permissão para executar o arquivo, como  esperado.</p>
<p>Assim, concluímos que o arquivo pode ser lido e escrito pelo seu dono e  pelos membros do grupo que o possui, e os demais apenas podem lê-lo.</p>
<p>Agora veremos como alterar essas permissões. Para isso, é preciso  entender como se referir numericamente à essas permissões. A teoria é  muito simples. Vamos montar uma tabela de valores possíveis para os bits  de leitura, gravação e execução, que podem estar desligados (  representados por 0) ou ligados (1)</p>
<pre>  rwx
  000
  001
  010
  011
  100
  101
  110
  111
</pre>
<p>Ora, podemos converter os valores binários em decimais, e então a tabela  ficaria assim:</p>
<pre>  rwx - Valor octal
  000 - 0
  001 - 1
  010 - 2
  011 - 3
  100 - 4
  101 - 5
  110 - 6
  111 - 7
</pre>
<p>Assim fica fácil visualizar o valor numérico que representa nossa  escolha de permissões. Se queremos que um arquivo tenha permissão de  leitura, gravação mas não de escrita teremos o primeiro e o segundo bits  ligados e o terceiro desligado, ou seja, 110, que em octal é 6. Agora  basta aplicar o mesmo sistema para cada um dos níveis. Para representar  as permissões do nosso arquivo de exemplo (rw-, rw-, r&#8211;) ficaria 110,  110, 100, ou seja 664.</p>
<p>Agora, suponha que eu queira dar a permissão de escrita para todo mundo  no arquivo index.html. Bastaria dar o comando:</p>
<pre>  $ chmod 666 index.html
</pre>
<p>Veja como fica:</p>
<pre>  $ ls -l index.html
  -rw-rw-rw-  1 daniduc webmasters 4632 2004-12-17 13:39 index.html
</pre>
<p>Para retirar a permissão de escrita de todos e do grupo fica:</p>
<pre>  $ chmod 644 index.html
  $ ls -l index.html
  -rw-r--r--  1 daniduc webmasters 4632 2004-12-17 13:39 index.html
</pre>
<h2>Diretórios</h2>
<p>Um diretório deve ter permissão de execução para que se possa entrar  nele. Além disso, as permissões de um diretório tem precedência sobre as  dos arquivos que ele contém. Veja um exemplo:</p>
<p>Primeiro temos um diretório pertencente ao usuário daniduc</p>
<pre>  $ ls -ld /dir/
  drwxr-xr-x  2 daniduc daniduc 72 2005-04-19 03:14 /dir/
  $
</pre>
<p>Agora o usuário daniduc cria um arquivo dentro de /dir e em seguida dá à  ele permissões totais para todos os usuários:</p>
<pre>  daniduc $ cd /dir
  daniduc $ touch teste
  daniduc $ ls -l teste
  -rw-r--r--  1 daniduc daniduc 0 2005-04-19 03:14 teste
  daniduc $ chmod 777 teste
  daniduc $ ls -l teste
  -rwxrwxrwx  1 daniduc daniduc 0 2005-04-19 03:14 teste
</pre>
<p>Teoricamente, outro usuário poderia remover esse arquivo. Mas vamos ver  que o usuário carla não consegue isso:</p>
<pre>  carla $ ls -l teste
  -rwxrwxrwx  1 daniduc daniduc 0 2005-04-19 03:14 teste
  carla $ rm -f teste
  rm: impossível remover `teste': Permissão negada
  carla $
</pre>
<p>Isso se dá por causa das permissões do diretório no qual o arquivo teste  está contido:</p>
<pre>  drwxr-xr-x  2 daniduc daniduc 72 2005-04-19 03:14 /dir/
</pre>
<p>Vamos alterar as permissões do diretório para que todos tenham controle  sobre ele, mas manter o arquivo teste exatamente igual:</p>
<pre>  daniduc $ chmod 777 /dir
  daniduc $ -&gt; ls -ld /dir
  drwxrwxrwx  2 daniduc daniduc 72 2005-04-19 03:14 /dir/
  daniduc $
</pre>
<p>Vamos ver agora se a carla consegue seu intento:</p>
<pre>  carla $ ls -l teste
  -rwxrwxrwx  1 daniduc daniduc 0 2005-04-19 03:14 teste
  carla $ rm -f teste
  carla $ ls -l teste
  ls: teste: Arquivo ou diretório não encontrado
  carla $
</pre>
<h2>Bits extras</h2>
<h3>Sticky Bit</h3>
<p>Além dos bits básicos já vistos até agora, há ainda mais dois extras. O  primeiro deles é o &#8220;sticky bit&#8221;, associado à diretórios e representado  pela letra t. Caso este bit esteja ativado (com valor 1), o diretório  não pode ser removido, mesmo que com permissão 777. Além disso, os  arquivos criados dentro desse diretório só podem ser apagados pelo seu  dono. Isso é muito útil em diretórios temporários, como o tmp, onde  todos podem escrever:</p>
<pre>  $ ls -ld /tmp/
  drwxrwxrwt    9 root     root        45056 2005-04-19 04:04 /tmp/
  $
</pre>
<p>Para ativar o sticky bit utiliza-se o valor 1 À frente das permissões já  vistas:</p>
<pre>  daniduc $ chmod 1777 /dir/
  daniduc $ ls -ld /biboca/
  drwxrwxrwt  2 daniduc daniduc 48 2005-04-19 03:30 /dir/
  daniduc $
</pre>
<h3>SUID</h3>
<p>Normalmente quando um arquivo é executado ele roda com os privilégios do  usuário que o está executando. Mas há momentos em que isso precisa ser  contornado. Por exemplo, para um usuário alterar sua senha ele chama o  comando passwd. Esse comando precisa remover a senha antiga e inserir a  senha nova no arquivo /etc/shadow. Porém, esse arquivo normalmente só  pode ser alterado pelo root. Como fazer isso, se o passwd foi chamado  pelo usuário comum?</p>
<p>A resposta é ativar o bit SUID. Com esse bit ativado o programa passa a  rodar com as permissões do usuário dono do arquivo, e não mais de quem o  invocou. O bit SUID é representado pela letra s logo após a área de  permissões do usuário. Veja:</p>
<pre>  daniduc $ ls -l /usr/bin/passwd
  -rwsr-xr-x  1 root root 26616 2004-11-02 19:51 /usr/bin/passwd
  daniduc $
</pre>
<p>Para se ativar o bit SUID com o comando chmod utiliza-se o valor 4 á  frente das permissões básicas (ugo):</p>
<pre>  daniduc $ touch teste
  daniduc $ ls -l teste
  -rw-r--r--  1 daniduc daniduc 0 2005-04-19 03:50 teste
  daniduc $ chmod 4755 teste
  daniduc $ ls -l teste
  -rwsr-xr-x  1 daniduc daniduc 0 2005-04-19 03:50 teste
  daniduc $
</pre>
<h3>SGID</h3>
<p>Similarmente ao BIT SUID, o SGID faz com que o arquivo seja executado  com os privilégios do grupo ao qual pertence e não do usuário que o  executa. O bit SGID é representado pela letra s logo após o conjunto de  permissões do grupo. Para ativar o SGID, utilize o 2 no comando chmod:</p>
<pre>  daniduc $ touch teste
  daniduc $ ls -l teste
  -rw-r--r--  1 daniduc daniduc 0 2005-04-19 04:06 teste
  daniduc $ chmod 2755 teste
  daniduc $ ls -l teste
  -rwxr-sr-x  1 daniduc daniduc 0 2005-04-19 04:06 teste
  daniduc $
</pre>
<p><strong>ATENÇÃO:</strong> Não é aconselhável, por questões de segurança, ativar os  bits SUID e GID em novos arquivos, especialmente se eles pertencerem ao  root.</p>
<h2>MÁSCARA</h2>
<p>Quando criamos um arquivo ele é criado com permissões totais, ou seja,  666. Note que eles jamais são criados com permissão de execução. Isso em  geral não é seguro, claro. Esse modo de criação pode ser alterado com o  comando umask. Similarmente ao chmod, no qual se especifica quais bits  devem ser desligados, o comando umask determina quais bits devem ser <em>desligados</em>.</p>
<p>Se você quer que os arquivos sejam criados sem permissão de escrita para  o grupo e para os outros, então o comando ficaria assim:</p>
<pre>  umask 022
</pre>
<p>Nenhum bit foi desligado para o dono, e o bit de escrita (010, ou 2 em  octal) desligado para grupo e outros.</p>
<p>Esse comando está em geral incluído no arquivo /etc/profile ou arquivo  equivalente que determina o ambiente para todos os usuários.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.cybershark.net/tutoriais/permissao-em-sistemas-unix/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nmon – Análise de performance em servidores Unix AIX</title>
		<link>http://www.cybershark.net/tutoriais/nmon-%e2%80%93-analise-de-performance-em-servidores-unix-aix</link>
		<comments>http://www.cybershark.net/tutoriais/nmon-%e2%80%93-analise-de-performance-em-servidores-unix-aix#comments</comments>
		<pubDate>Mon, 29 Mar 2010 10:41:50 +0000</pubDate>
		<dc:creator>Carla Duclos</dc:creator>
				<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[administração de sistemas]]></category>
		<category><![CDATA[AIX]]></category>
		<category><![CDATA[IBM]]></category>
		<category><![CDATA[monitoração]]></category>
		<category><![CDATA[nmon]]></category>
		<category><![CDATA[performance]]></category>
		<category><![CDATA[sys admin]]></category>
		<category><![CDATA[sysadmin]]></category>
		<category><![CDATA[UNIX]]></category>

		<guid isPermaLink="false">http://www.cybershark.net/?p=64</guid>
		<description><![CDATA[Monitorar a performance de servidores é uma tarefa básica da administração de sistemas, Veja como implementar monitoração em UNIX AIX usando o software nmon.]]></description>
			<content:encoded><![CDATA[<h2>Introdução</h2>
<p>O nmon é um software free, disponibilizado pela IBM para análise de  performance de servidores AIX. Ele coleta dados de performance que podem  ser visualizados run time no prórpio servidor em modo texto, e, também  pode realizar a coleta de dados para um arquivo que pode ser analizado  posteriormente.</p>
<p>Além do agente de coleta, o nmon possui  um analyser, que é uma  planilha no formato excel, com macros já programadas que geram um  arquivo excel, a partir do arquivo gerado na coleta, com tabelas e  gráficos dos dados coletados.</p>
<h2>Instalando o Nmon:</h2>
<p>O software se encontra disponível em:</p>
<p><a href="http://www-106.ibm.com/developerworks/eserver/downloads/nmon9a.tar.Z">http://www-106.ibm.com/developerworks/eserver/downloads/nmon9a.tar.Z</a></p>
<p>O software se encontra disponível em um arquivo no formato .tar.Z.</p>
<p>Salve o arquivo .tar.Z em algum diretório no servidor em que se  deseja instalar:</p>
<p>Descompacte o arquivo com o comando uncompress::</p>
<pre>  # uncompress  nmon9a.tar
</pre>
<p>Extraia o conteúdo do arquivo::</p>
<pre>  # tar -xvf nmon9a.tar
  x README.txt, 52572 bytes, 103 media blocks.
  x nmon32, 133748 bytes, 262 media blocks.
  x nmon64, 130462 bytes, 255 media blocks.
  x nmon_aix415, 116709 bytes, 228 media blocks.
  x nmon_aix420, 116907 bytes, 229 media blocks.
  x nmon_aix432, 119751 bytes, 234 media blocks.
  x nmon_aix433, 139715 bytes, 273 media blocks.
  x nmon_linux_pentium, 128402 bytes, 251 media blocks.
  x nmon_linux_power, 141404 bytes, 277 media blocks.
  x nmonnfs, 42959 bytes, 84 media blocks.
  x nmon2rrd, 41043 bytes, 81 media blocks.
  x nmon2rrd.c, 36741 bytes, 72 media blocks.
  #
</pre>
<p>O arquivo tar já contém os binários do nmon para kernel 32 e 64 bits  do AIX 5 e os binários para as versões anteriores do AIX.</p>
<p>OBS: Podemos ver acima, que o arquivo tar, contém dois arquivos para  linux. Não testei a ferramenta em linux mas pode ser que funcione  também neste sistema operacional.</p>
<p>Copie os binários para um diretório de sua preferência (Ex:  /usr/local/bin ou /usr/local/nmon/)</p>
<p>Crie um link simbólico chamado nmon apontando para o nmon que for  utilizar.</p>
<p>Ex: utilizando o nmon32 em /usr/local/bin:</p>
<pre>  # ln –s /usr/local/bin/nmon32 /usr/local/bin/nmon
</pre>
<p>Se o diretório que vc utilizou não estiver configurado no PATH,  inclua-o::</p>
<pre>  # PATH=$PATH:&lt;diretorio do nmon&gt;:.
</pre>
<h2>Acompanhando desempenho do servidor runtime</h2>
<p>Para acompanhar o desempenho de performance run time no servidor::</p>
<pre>  # nmon

  nmon v7a [H for help]  Hostname=servidorX  Refresh=2.0secs  12:30.14

   ------------------------------       For help type H or ...
   #    #  #    #   ####   #    #        nmon -?  - hint
   ##   #  ##  ##  #    #  ##   #        nmon -h  - full
   # #  #  # ## #  #    #  # #  #
   #  # #  #    #  #    #  #  # #       To start the same way every time
   #   ##  #    #  #    #  #   ##        set the NMON ksh variable
   #    #  #    #   ####   #    #
   ------------------------------

   Use these keys to toggle statistics on/off:
      c = CPU             l = Long-term CPU         - = Faster screen updates
      m = Memory          k = Kernel Stats          + = Slower screen updates
      d = Disks           a = Adapters (disk only)  v = Verbose hints
      r = RS6000/pSeries  n = Network               U = command arguments
      j = JFS             t = Top-processes (1, 2 or 3 - different data)
      e = ESS Disks       . = show only busy disks/processes

      h =more options
</pre>
<p>Selecione a opção desejada e veja os dados de CPU, memória, etc.</p>
<h2>Coletando dados para um arquivo</h2>
<p>Para coletar os dados gerados pelo nmon num arquivo para análise  posterior, exeute o seguinte comando::</p>
<pre>  nmon -F &lt;nomedoarquivo.nmon&gt; -r &lt;titulodentrodoarquivo&gt; \
  -s &lt;intervalo da coleta em seg&gt; -c &lt;qtde de coletas&gt;
</pre>
<p>Exemplo:</p>
<p>Coletar por 2 horas, com intervalo de 1 minuto::</p>
<pre>  nmon –F coleta.nmon –r ServidorX –s 60 –c 120
</pre>
<p>Ele ficará sendo executado em background até que as coletas  finalizem.:</p>
<pre>  # ps -ef |grep nmon
  root 46538 1 0 11:00:01 -  0:01 nmon -F /arquivo.nmon -r ServidorX -s 60 -c 420
    root  87418 159052   1 13:01:15 pts/13  0:00 grep nmon

  #
</pre>
<h2>Para analisar os dados gerados pelo nmon com o Analyser:</h2>
<ol>
<li>– O nmon-analyser se encontra disponível em:<a href="http://www-106.ibm.com/developerworks/eserver/downloads/nmon_analyser.zip">http://www-106.ibm.com/developerworks/eserver/downloads/nmon_analyser.zip</a></li>
<li>– Fazer o download do arquivo para sua estação de trabalho e extrair  o arquivo .zip em um diretório de sua preferência.</li>
</ol>
<p>No servidor:</p>
<ol>
<li>- Converter o arquivo gerado pelo nmon para .csv utilizando o script  nmon2csv, obtido junto ao arquivo .zip do analyser::
<pre>  #./nmon2csv nomedoarquivo.nmon
  Saving ./nomedoarquivo.nmon.csv
  #
</pre>
</li>
<li>- Transferir o arquivo .csv para a estação de trabalho</li>
<li>- Abrir a planilha nmon_analyser_v301.xls no excel, habilitar as  macros, clicar em &#8220;Analyse nmon data&#8221; e selecionar a planilha .csv de  coletas. Após feito isso será gerada um planilha excel com os dados em  tabelas e os gráficos gerados, podendo-se salvar a planilha de análise.</li>
</ol>
<h2>Links:</h2>
<dl>
<dt> Nmon:</dt>
<dd><a href="http://www-106.ibm.com/developerworks/eserver/articles/analyze_aix/">http://www-106.ibm.com/developerworks/eserver/articles/analyze_aix/</a></dd>
<dt> Os termos de licença podem ser visualizados em:</dt>
<dd><a href="http://www-106.ibm.com/developerworks/eserver/articles/analyze_aix/agree_down.html">http://www-106.ibm.com/developerworks/eserver/articles/analyze_aix/agree_down.html</a></dd>
<dt> Nmon-Analyser:</dt>
<dd><a href="http://www-106.ibm.com/developerworks/eserver/articles/nmon_analyser/#5">http://www-106.ibm.com/developerworks/eserver/articles/nmon_analyser/#5</a></dd>
</dl>
<dl>
<dt>Os termos de licença podem ser visualizados em:</dt>
<dd><a href="http://www-106.ibm.com/developerworks/eserver/articles/nmon_analyser/agree_down.html">http://www-106.ibm.com/developerworks/eserver/articles/nmon_analyser/agree_down.html</a></dd>
</dl>
]]></content:encoded>
			<wfw:commentRss>http://www.cybershark.net/tutoriais/nmon-%e2%80%93-analise-de-performance-em-servidores-unix-aix/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>O que são portas TCP e proxy?</title>
		<link>http://www.cybershark.net/artigos/tcp_proxy</link>
		<comments>http://www.cybershark.net/artigos/tcp_proxy#comments</comments>
		<pubDate>Mon, 29 Mar 2010 10:16:28 +0000</pubDate>
		<dc:creator>Daniel Duclos</dc:creator>
				<category><![CDATA[Artigos]]></category>
		<category><![CDATA[portas tcp/ip]]></category>
		<category><![CDATA[proxy]]></category>
		<category><![CDATA[tecnologia]]></category>

		<guid isPermaLink="false">http://www.cybershark.net/?p=55</guid>
		<description><![CDATA[O que são portas tcp? E proxy? Esse artigo explica de maneira clara e simples conceitos básicos importantes da Internet.]]></description>
			<content:encoded><![CDATA[<p>Portas TCP são uma parte do protocolo de rede TCP, usado pela Internet. Nelas se realizam as conexões  entre os nós da rede. É como se uma interface de rede com um IP fosse o  endereço de rua de um prédio comercial, por exemplo: <em>Av. Paulista, 452</em>. Eu quero conectar minha casa com a firma Law &amp; Order, localziada à <em>Av. Paulista, 452</em>. O pacote de dados sai da minha casa,  <em>Paulo Vieira, 374</em> e chega na <em>Paulista 452</em>.</p>
<p>Mas&#8230; IPs não são como casas, são mais como prédios: A Law &amp; Order  está no 1° andar do prédio da Paulista 452 e minha casa esta no 10°  andar. Você pode ir ao Consulado Japonês, que também está no 452 da  Paulista, mas no 7° andar.</p>
<p>Então o endereço IP é como se fosse o endereço do prédio (<em>Av. Paulista,  452)</em> e o andar, ou conjunto é como se fossem as portas TCP.</p>
<p>Então uma conexão TCP/IP entre seu micro e a UOL, para pegar a página  web deles, resumidamente, seria assim:</p>
<pre>  | seu micro  |                                  | home.uol.com.br|
  | ip 1.2.3.4 |                                  | ip 200.221.2.51|
  | porta 1025 |------- pedido de conexão web ---&gt;| porta 80 (web) |
</pre>
<p>Ai a uol responde:</p>
<pre>  | seu micro  |                                  | home.uol.com.br|
  | ip 1.2.3.4 |                                  | ip 200.221.2.51|
  | porta 1025 |&lt;------- ta, recebi seu pedido ---| porta 80 (web) |
</pre>
<p>continua:</p>
<pre>  | seu micro  |                                  | home.uol.com.br|
  | ip 1.2.3.4 |                                  | ip 200.221.2.51|
  | porta 1025 |------- entao manda os dados ----&gt;| porta 80 (web) |
</pre>
<p>Então vai a página:</p>
<pre>  | seu micro  |                                  | home.uol.com.br|
  | ip 1.2.3.4 |                                  | ip 200.221.2.51|
  | porta 1025 |&lt;--------- pagina da uol ---------| porta 80 (web) |
</pre>
<p>Existem 65535 portas tcp. Se convencionou que serviços em geral  estariam escutando (esperando conexões) nas portas ditas baixas, abaixo  de 1024, e as portas de retorno, as que receberiam respostas a pedidos  de conexão, seriam acima de 1024. Mas isso é só uma convenção, existe um  monte de serviços que ouve em porta alta. Se convencionou também colocar  certos serviços escutando em certas portas. Se você quer paginas web,  você vai se conectar direto na porta 80 do servidor. Nada te impede de  colocar um servidor web escutando na porta 1234, porém o cara que  iniciar a conexão terá que especificar essa porta pra poder conectar.  Caso contrário o browser irá se conectar direto na porta 80, que é a  padrão. Isto explica as URLs no formato http://www.lala.com:1234/. O  &#8220;:1234&#8243; da URL é o que especifica a porta em que o servidor web está  esperando conexões, porque o browser não tem como adivinhar que você, no  mundo, encanou de colocar seu web server na porta 1234.</p>
<p>Vamos pro proxy. Proxy, em inglês, quer dizer muitas coisas, inclusive  procurador.</p>
<p>Então, o proxy fica num servidor e intermedia as conexões web para seus  clientes, ou seja:</p>
<p>Em vez de você pedir a página pra uol.com.br como normalmente acontece:</p>
<pre>  | seu micro |-------------------&gt;| home.uol.com.br |
  |           |&lt;-------------------|                 |
</pre>
<p>Você pede pro proxy, que pede pra uol, que devolve pro proxy, que  devolve pra você, assim:</p>
<pre>| seu micro |-------&gt;| proxy |--------&gt;| home.uol.com.br |
|           |&lt;-------|       |&lt;--------|                 |
</pre>
<p>E pra que isso? Uma serie de motivos vem a mente.</p>
<ul>
<li><strong>Economia de banda</strong>: você só precisa do link do proxy. E uma  vez que ele armazena uma cópia da página que voce pediu antes de te  entregar, caso 3 segundos depois o seu colega, o qual também está usando  proxy, pedir a mesma página, não precisa baixar da uol, o proxy entrega  a cópia local, sendo muito mais rápido e consumindo menos banda.</li>
<li><strong>Controle</strong>: Se você só deixa o seu proxy navegar (via  firewall), as pessoas são obrigadas a pedir todas as páginas pro proxy. E  ai você pode controlar quem está acessando o que, e quem pode acessar o  que. Em empresas isso é muito requisitado.</li>
</ul>
<p>Enfim, você configura seu browser pra usar o proxy e esse esquema  funciona. Além disso existe o famoso proxy transparente! Ou seja, voce  não configura nada no seu browser e acha que está pedindo a página pra  uol, mas não está! Sua conexão com a uol foi interceptada, sem você  saber, pelo proxy, que intermedia a transação. É o que fez a Telefônica  no Speedy, por exemplo.</p>
<p>Existem na internet os proxys abertos, ou &#8220;open proxys&#8221;. São micros que  agem como proxy, porém para qualquer um que quiser usar. Assim qualquer  um pode configurar o seu browser para navegar usando um &#8220;open proxy&#8221;  que estja, por exemplo, na Tailândia. O site web que receber a conexão  vai achar que você está vindo da Tailândia, porque quem está  intermediando a sua navegação é o open proxy. E assim é possível  mascarar o seu endereço IP de origem para o site que você está  visitando. Por isso open proxys são considerados grandes riscos de  segurança por alguns ou como instrumento útil de privacidade por outros,  dependendo de como encaram a coisa.</p>
<p>Este é o básico de conexões TCP e proxys.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.cybershark.net/artigos/tcp_proxy/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Software Livre: o que é, como surgiu e como contribuir</title>
		<link>http://www.cybershark.net/artigos/free_software</link>
		<comments>http://www.cybershark.net/artigos/free_software#comments</comments>
		<pubDate>Mon, 29 Mar 2010 10:07:40 +0000</pubDate>
		<dc:creator>Daniel Duclos</dc:creator>
				<category><![CDATA[Artigos]]></category>
		<category><![CDATA[driver]]></category>
		<category><![CDATA[free software]]></category>
		<category><![CDATA[Free Software Foundation]]></category>
		<category><![CDATA[idealismo]]></category>
		<category><![CDATA[Richard Stallman]]></category>
		<category><![CDATA[software livre]]></category>

		<guid isPermaLink="false">http://www.cybershark.net/?p=49</guid>
		<description><![CDATA[O Software livre é um movimento de idalismo prático, aplicado ao mundo da tecnologia. Saiba suas origens, suas propostas e como participar. Artigo introdutório sobre o movimento iniciado por Richard Stallman.]]></description>
			<content:encoded><![CDATA[<p>Linux é atualmente o Sistema Operacional da moda, invadindo o mercado  de servidores e começando a disputar também o dos desktops.</p>
<p>Nesse tópico será discutido um pouco sobre o sistema Linux, porém  será abordado com mais profundidade a filosofia da qual é fruto direto e uma das grandes  responsáveis pelo seu sucesso: O Free Software, ou Software Livre. Neste texto me refiro à  FSF, ou seja, a <a href="http://www.fsf.org/">Free  Software Foundation</a>. Apesar da FSF ser, até onde eu saiba, criadora e líder do movimento  Software Livre, não é a única a propô-lo e software livre não é sinônimo  de FSF. Alguns dos links que passo ao longo do texto estão em inglês.</p>
<h2>A Origem</h2>
<p>Em 1984, Richard M. Stallman descobriu que software proprietário  fazia vítimas diretas, quando ele mesmo se tornou uma delas. A partir daí, resolveu fundar a  Free Software Foundation, do qual o Linux é filho direto. Vamos ver como foi:</p>
<p>A história começou no laboratório em que Richard trabalhava  (Artificial Intelligence Lab, no MIT) com uma impressora Laser, doada pela Xerox. A impressora era um presente caro e legal, mas tinha um problema: não  era estável. Freqüentemente o papel travado e as impressões paravam. Ai, quando o  usuário vinha buscar a impressão que ele estava esperando há meia hora, descobria que a  impressora tinha travado há 27 minutos! Assim, ele arrumava a impressora e voltava pro  seu micro e esperava mais outra hora e descobria que a impressora tinha funcionado por mais 2  minutos e parado de novo! Isso era profundamente irritante para os usuários.</p>
<p>Agora, a impressora que eles tinham antes desta também era  instável. O que eles faziam antes para lidar com o problema? Bem, como eles não conseguiam melhorar o  hardware da impressora, então adicionaram funções ao seu driver. Uma delas fazia com  que aparecesse um aviso na tela de todos os usuários que aguardavam uma impressão dizendo  quando esta estava pronta ou que o papel tinha enguiçado novamente. Quando havia problemas,  alguém sempre aparecia para resolver, e ensinava aos outros que tinham ido como  fazê-lo. E sempre se sabia quando a impressão estava pronta, de modo que ninguém esperava a  mais. Mas então porque eles não fizeram o mesmo com o driver da impressora nova? Porque o  driver era proprietário da Xerox, e só estava disponível de forma binária. Para que  seja possível modificar um programa é necessário seu código fonte, que é o programa em  uma linguagem que um humano entende (a forma binária é a forma que uma máquina entende e  executa, mas um humano não consegue decifrar). Sem o código fonte eles estavam  impotentes para mudar algo que os atrapalhava no serviço!!</p>
<p>Quando soube que um colega de outra universidade tinha o fonte  para esse driver, ele foi até lá e pediu. E o colega negou. Seu colega tinha assinado um acordo de  não divulgação, que o impedia legalmente de compartilhar essa informação com quem quer  que fosse! Nesse ponto, os softwares com que o laboratório trabalhava tinham sido  extintos, pois estavam obsoletos. Stallman precisaria trabalhar com softwares novos. E  para fazer isso ele teria que assinar um acordo igual ao ao de seu colega. Como tinha  sido uma vítima desse acordo, ele não poderia assinar um desses! Chegou a um impasse,  pois todos os novos softwares requeriam assinar um acordo deste tipo. Ele tinha algumas  opções: assinar, pegar o dinheiro e se divertir escrevendo softwares, sem pensar em mais nada,  ou desistir de ser programador e fazer outra coisa. Mas isso seria muito pouco  divertido pra ele, além de desperdiçar suas habilidades de programador. Sua decisão foi sair da MIT e fazer Free Software Foundation, com a  proposta de lutar para que as pessoas pudessem ter acesso a softwares livres, com direito a  olhar seu código fonte, modificar e distribuir os programas livremente, promovendo o  livre fluxo de idéias na área de softwares. O objetivo da FSF era deixar o poder na mão das  pessoas e não apenas das corporações.</p>
<p>Isso deve ser feito de uma maneira que a liberdade sempre exista e  não possa ser negada em momento algum. Foi criado um conceito novo de copyright, o copyleft,  como veremos mais adiante. Mas primeiro, vamos definir o que é um software livre.</p>
<h2>Free Software &#8211; Software livre &#8211; O que é?</h2>
<p>A FSF acredita que todo o software deve ser livre. Livre não quer  dizer necessariamente grátis, atenção! Sim, você programador deve ser pago pelo seu programa. Eles dizem também que há 4 níveis de liberdade de software. Vejamos:</p>
<h3>A liberdade de rodar o programa para qualquer fim (liberdade 0).</h3>
<p>Liberdade para estudar como o programa funciona e adaptá-lo às  suas necessidades. (liberdade 1). Acesso ao código fonte é um pré-requisito para isto.</p>
<h3>A liberdade de distribuir cópias, de modo que possa ajudar seu  próximo (liberdade 2).</h3>
<p>Liberdade de melhorar o programa e liberar essas melhorias ao  público, de maneira que toda a comunidade possa se beneficiar disso. (Liberdade 3). Acesso ao código  fonte é um pré-requisito para isto.</p>
<p>(traduzido de: <a href="http://www.fsf.org/philosophy/free-sw.html">http://www.fsf.org/philosophy/free-sw.html</a> )</p>
<p>O software livre permite a liberdade de ajudar a si mesmo a ao seu  próximo sem ser chamado de pirata, ladrão, ou ser considerado fora da lei e ameaçado de prisão e  multa. Ajudar a si mesmo e à sua comunidade sem prejudicar ninguém é um impulso normal  que deve ser encorajado, e as empresas de Software Proprietário vão contra esse  impulso. Elas o fazem ao não permitir a existência dessas liberdades em seus softwares. Elas  insistem em aplicar a mesma lógica de objetos materiais e livros ao uso de software, quando  são coisas diferentes. A existência dessas liberdades não prejudica a empresa  produtora de software! Isso é discutido um pouco melhor no tópico Software livre: idealismo  prático, mas aconselho fortemente a ler <a href="http://www.fsf.org/philosophy/why-free.html">esse artigo</a> .</p>
<h2>Mantendo a liberdade no software</h2>
<p>Mas o que impede de você escrever o seu código e vir um  espertinho, usar ele e não divulgar novamente as mudanças que ele, espertinho, fez? Para isso a FSF  criou um novo conceito de copyright: o copyleft. Copyleft é um trocadilho (right pode  ser direito ou direita, left quer dizer esquerda =).</p>
<p>O copyleft diz que se você usa qualquer parte de um código que era  copyleft antes o seu novo código deve ser, necessáriamente, copylefted também. Ou seja, se eu  uso código livre no meu novo programa, meu novo programa também tem que ser livre tanto  quanto o original era! Eu não posso pegar a idéia de um software livre, fazer meia dúzia  de alterações e fechar o código! Liberdade requer regras, não é mesmo? =) A mais famosa das licenças de software livre é a GNU GPL, a GNU General  Public License, ou Licença Geral Pública da GNU. Você pode achá-la em: <a href="http://www.fsf.org/copyleft/gpl.html">http://www.fsf.org/copyleft/gpl.html</a></p>
<p>Existem outras!</p>
<h2>Software livre: idealismo prático</h2>
<p>Agora a liberdade de ajudar a você mesmo e ao seu próximo dessa  maneira não é, de modo algum, incompatível com o fato das pessoas ganharem dinheiro. Nem as  empresas.</p>
<p>a) Bom, digamos que a sua concorrente vai lá e pega seu programa e  usa para fazer um programa que concorre com o seu.</p>
<p>Isso não é problema! Afinal,  ele vai ter que liberar o código dele também (veja o tópico &#8220;Mantendo a liberdade no software&#8221;, acima) e o inverso é verdadeiro:  você pode pegar o código dele e melhorar o seu! daremos um exemplo prático, antes de  teorias: A Red Hat pegou o que o Linus Torvalds tinha feito e fez sua distribuição de  Linux. Ela acrescentou o rpm, uma tecnologia de gerenciamento de pacotes.  A Conectiva foi lá e pegou o que a Red Hat tinha feito e se tornou sua  concorrente direta. Assim como a SuSE e a Mandrake. E nem por isso a Red Hat faliu ou perdeu  milhões. Ao contrário, seus donos ficaram bilionários. Porque o software dela  continuou evoluindo e melhorando, e competindo com seus filhotes, no melhor estilo  capitalista! Gerando receita sem cercear a liberdade de ninguém. Agora, veja: a Conectiva pegou o apt  da Debian e adaptou ao rpm, tornado a tecnologia criada pela Red Hat muito melhor. E  agora a Red Hat pode pegar isso e usar e tornar sua distribuição ainda melhor!</p>
<p>b) Ah, mas se é de graça ninguém vai querer comprar o meu  software. Ai não vou ganhar dinheiro!</p>
<p>Bem, isso simplesmente não é verdade. Em primeiro  lugar, software livre não é de graça necessariamente. A própria GNU vende softwares e aliás bem caro para os  meus padrões. A Conectiva e a Red Hat vendem CD&#8217;s em caixinhas bonitas. E com preços  nada simbólicos. Mas você pode pegar a distribuição da Conectiva e/ou da Red Hat até de uma empresa que ganha  dinheiro vendendo os CD&#8217;s mais baratos (US$2,00) ou até de graça no ftp delas. Por que  essas empresas estão tão ricas? Porque muita gente quer comprar a caixinha da Red Hat ou da Conectiva.  Elas gostam do manual, por exemplo. Elas querem garantia na mídia. Elas acham muito  caro ou chato esperar horas de download de um ftp. Faça o teste (eu já fiz): Vá numa empresa  que te contratou para instalar Linux e leve seu cd gravado de casa. Você verá que o  gerente vai preferir gastar 220 reais na caixinha, porque ele quer os manuais. Diga para ele  que os CD&#8217;s são iguais e que não é crime usar o seu gravado de casa. Ele vai preferir a  caixinha. Eu já fiz esse teste em pelo menos 10 empresas. E tem a questão do suporte. Muitas pessoas não querem aprender, tem  dúvidas, enfim precisam de ajuda com seu software livre. Elas querem pagar por essa  ajuda. Quem elas irão chamar para dar suporte? Quem melhor do que fez esse software?? E se  você não quiser dar suporte. Digamos que uma empresa quer um novo feature no seu programa  livre, específico pra ela&#8230; Quem ela irá chamar? Quem fez o original, na maioria dos casos. De  qualquer forma, os caminhos para se ganhar dinheiro são muitos, e eu não estou empilhando  teorias, estou empilhando exemplos reais de companhias que vivem disso e tem muito  dinheiro. A Red Hat é um exemplo.</p>
<p>O movimento Free Software está tão forte que até as grandes do  mercado estão aderindo. Ou você acha que Intel, IBM, SUN são pequenas? Só para citar alguns poucos  exemplos.</p>
<p>(IBM: <a href="http://www2.uol.com.br/info/aberto/infonews/032001/13032001-13.shl">http://www2.uol.com.br/info/aberto/infonews/032001/13032001-13.shl</a>)     (SUN: liberou o StarOffice como software livre, sob a GNU GPL: <a href="http://www.openoffice.org/">http://www.openoffice.org</a>)     (Intel: <a href="http://www.stti-usa.com/VentureC.htm">http://www.stti-usa.com/VentureC.htm</a> , olhe na parte em que a Intel investe!)</p>
<p>c) Ah, eu não consigo usar Free Software, não tem nada lá para  mim!</p>
<p>Bem, este pode ser um estado em que o Free Software não atende  ainda suas necessidades diretas. É uma pena, e isso é culpa direta de empresas que renegam a  ética nos negócios e prendem você nos grilhões do software proprietário! Mas não deixe esse  estado de coisas te desanimar! Apoie o software livre em todas as suas formas, para que este  estado de coisas evolua ate você ter escolhas múltiplas, ou seja, liberdade! Então Free  Software tem algo para você: liberdade!</p>
<h2>E o Linux? Como entra? Por que GNU/Linux?</h2>
<p>Bom, quando Richard Stallman resoveu sair do MIT e fundar a Free  Software resolveu começar fazendo um sistema operacional livre. Sem um Sistema Operacional um  computador não consegue operar! Então era básico ter um SO livre. Para isso ele decidiu algumas coisas. Uma delas é que o Sistema  Operacional deveria ser compatível com um Sistema da época, de modo que os usuários tivessem  menos trabalho para mudar. E ele optou, por uma série de razões, pelo UNIX para ser  compatível. Como o UNIX era modular, era só ir escrevendo os componentes e ir substituindo os do  UNIX pelos do novo sistema operacional. Esse sistema ficou conhecido como GNU. GNU é uma sigla recursiva,  seguindo um costume entre os programadores que é de criar nomes engraçadinhos. GNU quer  dizer GNU&#8217;s Not UNIX, ou seja GNU Não é UNIX. =)</p>
<p>Aos poucos as peças do GNU foram sendo feitas e desenvolvidas até  que em 1991 eles tinha quase todas as peças, menos uma peça <em>muito</em> importante! O  kernel! O kernel é o cerne, o coração do sistema operacional. Pode-se dizer que o kernel é o Sistema  Operacional em si, sendo que as outras peças são ferramentas para o sistema ou para o  usuário. Neste ponto entra o Linux. Em 1991/92 Linus Torvalds desenvolveu um kernel bastante  bom, chamado Linux. E registrou ele sob a licença do GNU, a GNU-GPL. Mas um kernel  sozinho não faz nada sem as outras ferramentas para torná-lo usável! E quando foram buscar,  acharam as ferramentas da GNU.</p>
<p>Assim colocaram o kernel Linux no sistema GNU, crinado o  GNU/Linux, embora muita gente chame só de Linux. Richard Stallman faz questão de chamá-lo GNU/Linux,  explicitamente, mas eu não sou tão radical, embora acredite que você pode se beneficiar ao  saber da história do Software Livre e como o Linux se encaixa nessa história. Por isso fiz  essa página =P Caso você tenha curiosidade, a FSF está desenvolvendo um kernel próprio  que está começando a ficar usável, o HURD. Já existe uma distribuição de GNU/HURD, feita  pela Debian.</p>
<p>Mais sobre em: <a href="http://www.fsf.org/gnu/why-gnu-linux.html">http://www.fsf.org/gnu/why-gnu-linux.html</a></p>
<h2>Como Contribuir</h2>
<p>Bom, a maneira mais lógica e óbvia de contribuir é, se você é um  programador, criar software livre, e registra-lo com um copyleft, como a GNU GPL, por  exemplo. Se você não programa, você pode escrever documentação sobre software livre. Você pode usar software livre. Isso já é uma grande contribuição. Se não  existe software livre que atenda as suas necessidades, mas existe software proprietário,  você pode pedir para sua companhia fazer versões livres do software que você usa e  gosta. Isso não é utopia, ( &#8220;Ah, eles nunca vão liberar&#8221; ), isso se chama pressão de  mercado. Você não está sozinho!! 1 usuário não faz verão, mas 100.000 fazem, é só começar. Faça  pressão e propaganda para que outros façam pressão também. Não acredita? A SUN  começou a liberar o fonte do Solaris por causa da pressão de mercado. (<a href="http://www.sun.com/solaris/source/">http://www.sun.com/solaris/source/</a> )</p>
<p>Ainda não é software livre, inclusive tem uma taxa para acessar o  código, mas é um passo nessa direção. Antes isso era impensável! Você acha que o movimento  Software Livre não teve nada a ver com isso? =) Ela liberou o Star Office, suíte de <a href="http://www.openoffice.org/">aplicativos Office</a> como  software livre!</p>
<p>Divulgue a idéia, isso já é uma GRANDE contribuição. O principal é  acreditar que as coisas podem mudar.! Discuta a idéia com seus amigos. Mas *não* seja chato,  xiita, nem fanático. Fanatismo mata novas idéias. Dê uma força ou uma dica a um amigo. Mas  não seja doutrinário, apenas divulgue algo que você acredita ser relevante, sem  ser chato. Isso vale para política, ecologia ou outros assuntos =)</p>
<h2>Fontes consultadas e links</h2>
<p>Eu usei várias fontes nessa página.</p>
<p>Tirei referências especialmente de Richard Stallman e seu site da  Free Software Foundation, e com Rubens Queiróz em seu artigo &#8220;Porque usar Software  Livre&#8221;. Eduardo Maçan também me esclareceu vários conceitos em seus artigos!</p>
<p><a href="http://www.fsf.org/philosophy/">Filosofia do software livre,  segundo a FSF</a></p>
<p><a href="http://www.fsf.org/gnu/gnu-history.html">História do projeto GNU</a></p>
<p>Artigo do qual tirei muitas idéias e argumentos, <a href="http://www.revista.unicamp.br/infotec/linux/linux12-1.html">Por  que usar software livre?</a> , de Rubens Queiroz</p>
<p><a href="http://www.dicas-l.unicamp.br/dicas-l/20000131.shtml">Texto muito  bom, bem humorado e curto, de Eduardo Maçan sobre Software Livre</a></p>
<p><a href="http://www.cipsga.org.br/">Software  Livre no Brasil</a></p>
<p>A maioria desses links tem mais links, muito legais também. Se  você puder ler só um texto ou dois, leia os Do Queiroz e do Maçan! Valem o seu tempo!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.cybershark.net/artigos/free_software/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A Arte Cavalheiresca do Suporte Zen</title>
		<link>http://www.cybershark.net/artigos/suporte</link>
		<comments>http://www.cybershark.net/artigos/suporte#comments</comments>
		<pubDate>Sun, 28 Mar 2010 22:25:37 +0000</pubDate>
		<dc:creator>Daniel Duclos</dc:creator>
				<category><![CDATA[Artigos]]></category>
		<category><![CDATA[profissão]]></category>
		<category><![CDATA[suporte]]></category>
		<category><![CDATA[tecnologia]]></category>
		<category><![CDATA[tecnologia da informação]]></category>
		<category><![CDATA[usuário final]]></category>

		<guid isPermaLink="false">http://www.cybershark.net/?p=31</guid>
		<description><![CDATA[Prestar suporte, especialmente de primeiro nível, é uma arte essencial e nem sempre bem compreendida - às vezes nem mesmo por aqueles que a praticam.]]></description>
			<content:encoded><![CDATA[<p>Dar suporte técnico é uma arte, especialmente suporte de primeiro  nível. Suporte de primeiro nível é aquele que é prestado diretamente ao  usuário final de um sistema, enquanto que o de segundo nível é o suporte  do suporte. E tem que ser uma arte zen, senão os prestadores  enlouquecem rapidinho.</p>
<p>O suporte de segundo nível lida com pessoas que também são da área de  suporte, então é toda uma outra história, embora também seja  estressante.</p>
<p>Em primeiro lugar, o seu usuário final quase nunca está calmo. Isso é  obvio: ele tem um problema, as coisas não estão funcionando como ele  supõe que deveriam estar: é por isso que ele está chamando suporte. (Às  vezes há o caso de usuário carentes, que só querem alguém para  conversar, mas é preciso saber se livrar destes).</p>
<p>Então você tem que estar calmo e preparado para ouvir alguém que está  nervoso.</p>
<p>Nunca assuma uma atitude de que o usuário na verdade não tem um  problema. Sim, ele tem, <strong>mesmo que o problema seja na verdade um  procedimento errado ou má interpretação do sistema por parte dele</strong>.  O usuário não saber usar o sistema e usar pensando que sabe é um  problema real, e é o trabalho do suporte resolvê-lo. Isso é muito  importante, porque eu já vi muito a atitude de &#8220;ah, um usuário fez  besteira e me ligou enchendo o saco, e era tudo culpa dele&#8221;. Os usuários  fazem besteiras, e é precisamente por isso que eles precisam de  suporte. Ele não ligou te enchendo o saco, é seu trabalho ajudá-lo! Se  os usuário fossem capazes de ler a documentação técnica e entender  sozinhos o que eles estavam fazendo de errado, eles não precisariam de  suporte! Problemas causados por bugs no sistema são minoria. Não é para  lidar com estes problemas <em>apenas</em> que um time de suporte existe!</p>
<p>Outra parte importante é que os usuário freqüentemente não saberão  descrever o problema adequadamente, simplesmente porque como usuário  eles não sabem como o sistema funciona. É o seu trabalho saber, não o  deles. Você tem que extrair do usuário o que ele está fazendo, aonde,  qual o resultado que ele está obtendo e qual o resultado que ele  esperava obter. Quase nunca um usuário irá ligar com estas informações  claras e organizadas. As vezes ele irá dizer que &#8220;não fez nada e  simplesmente parou de funcionar&#8221;. As vezes ele irá fazer uma suposição  incorreta sobre o funcionamento do sistema e irá ligar reportando o  problema onde ele supõe que está, não aonde está realmente. Ajude-o a  lhe dar a informações que importam: o que ele está fazendo, aonde, qual o  resultado que ele está obtendo e qual o resultado que ele esperava  obter.</p>
<p>Jamais suponha que, por que o problema é intermitente, ou o usuário  não consegue reproduzi-lo, que o problema não existe, é pura imaginação  do usuário. Lembre-se: jamais assuma que o usuário não tem um problema.  Ele sempre tem um problema, senão porque ele estaria te chamando?</p>
<p>Uma mente analítica é essencial para um analista de suporte. Formular  hipóteses, isolá-las e testá-las são ferramentas fundamentais.</p>
<p>O trabalho de um analista de suporte de primeiro nível não e resolver  os problemas do sistema. O trabalho dele é resolver os problemas do  usuário com o sistema. é muito diferente, e essa diferença é muito  importante.</p>
<p>Um bom analista de suporte também é um bom psicólogo, porque não  basta saber como sistemas funcionam, mas principalmente como pessoas  funcionam.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.cybershark.net/artigos/suporte/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Realizando backups em HD com Amanda</title>
		<link>http://www.cybershark.net/tutoriais/amanda_hd</link>
		<comments>http://www.cybershark.net/tutoriais/amanda_hd#comments</comments>
		<pubDate>Sun, 28 Mar 2010 22:07:29 +0000</pubDate>
		<dc:creator>Daniel Duclos</dc:creator>
				<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[administração de sistemas]]></category>
		<category><![CDATA[amanda]]></category>
		<category><![CDATA[backup]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[HD]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[sysadmin]]></category>

		<guid isPermaLink="false">http://www.cybershark.net/?p=27</guid>
		<description><![CDATA[Realizar backups em HD é uma alternativa barata e confável à usar fitas. Com o Software Livre Amanda e um Linux debian, é possível implementar uma solução de backup eficiente.]]></description>
			<content:encoded><![CDATA[<p>Todo administrador de sistemas sabe que o backup é uma parte vital  da segurança e garantir sua realização e integridade é crítico no seu  cotidiano.</p>
<p>Existem muitas alternativas de backups destinadas a todos os  tamanhos de rede e bolso, e o <a href="http://www.amanda.org/">Amanda</a> é sempre citado como uma  alternativa livre e gratuita.</p>
<p>Porém o Amanda é comumente utilizado para realizar backups em fita, o  que nem é sempre econômico, já que hoje em dia HDs são muito baratos e  certamente mais práticos para uma pequena empresa utilizar.</p>
<p>É perfeitamente possível ter um amanda realizando backups no disco  rígido, e como realizar isso é a que nos propomos neste artigo.</p>
<h2>Do que você irá precisar</h2>
<p>Escolha uma máquina para ser o servidor de arquivos. Este tutorial  considera que se utilizará como sistema operacional desse servidor o  Debian GNU/Linux atualizado, porém pode perfeitamente servir de base  para que a mesma tarefa seja realizada em outras distribuições.</p>
<p>É muito interessante que esta máquina tenha bastante espaço em disco  e se possível um HD dedicado somente ao backup.</p>
<p>Essa máquina deve estar conectada à rede das outras máquinas que  terão seus dados salvos.</p>
<h2>Estratégia de backups e definições</h2>
<p>Iremos criar no HD 14 fitas &#8220;virtuais&#8221;, que serão diretórios no HD. O  Amanda considera que será rodado uma vez por dia.</p>
<p>O amanda pode realizar backups completos (full) e incrementais. Você  pode decidir a freqüência e a retenção (por quanto tempo ficarão  armazenados) desses backups.</p>
<p>Nesse artigo escolhemos realizar um backup completo uma vez por  semana e incrementais seis vezes por semana, criando um ciclo semanal.</p>
<p>A retenção é feita por duas semanas, com uma fita virtual por  backup.</p>
<p>Esse parâmetros podem ser alterados no  /etc/amanda/DailySet1/amanda.conf, na seção:</p>
<pre>  dumpcycle 7 days
  tapecycle 14
</pre>
<p>Se quiser realizar dois backups completos em uma semana, por  exemplo, altere para:</p>
<pre>  dumpcycle 3 days
  tapecycle 14
</pre>
<p>As fitas virtuais ficarão em /backups e o usuário com que o amanda  irá rodar é o padrão do Debian, &#8220;backup&#8221;. Este usuário já existe na  Debian, porém pode variar em outras distribuições.</p>
<p>Resta agora decidir o tamanho que cada fita virtual terá. Nesse  exemplo escolhemos 10 GB por fita, o que dá um espaço alocado de 140 GB  para backups.</p>
<h2>Instalação e Configuração: Servidor</h2>
<p>No servidor instale o amanda. É muito importante que seu Debian  esteja com a versão atualizada do sistema, pois a versão do amanda que  está na Stable não suporta backup para disco rígido. A versão 2.4.4p3-2  foi utilizada neste tutorial:</p>
<pre>  apt-get install amanda-server
</pre>
<p>Após feita a instalação, vamos configurá-lo:</p>
<pre>  cd /etc/amanda/DailySet1/
</pre>
<p>Salve uma cópia do arquivo original, se quiser:</p>
<pre>  cp /etc/amanda/DailySet1/amanda.conf{,-ori}
</pre>
<p>Agora edite o arquivo <code>/etc/amanda/DailySet1/amanda.conf</code>,  apague seu conteúdo e coloque o seguinte, lembrando que o que vem  depois do sinal # é considerado comentário e será ignorado pelo Amanda:</p>
<pre>  org "DailySet1"                # Nome descritivo para as mensagens
  mailto "sysadmin@dominio.com"  # Email de quem irá receber os logs
  dumpuser "backup"              # Usuário dono dos backups
  inparallel 1                   # Procesos em paralelo
  netusage  10                   # Uso máximo de banda em Kbps

  dumpcycle 7 days               # Número de dias de um ciclo completo
  tapecycle 14              # Número de "fitas"

  runtapes     1                 # Quantas fitas usar por ciclo
  tpchanger "chg-multi"          # Script controlador de fitas
  changerfile "/etc/amanda/DailySet1/changer.conf" # Configuração das fitas

  tapetype HARD-DISK              # Tipo de armazenamento
  labelstr "^HISS[0-9][0-9]*$"    # Expressão regular das etiquetas das fitas

  infofile "/var/lib/amanda/DailySet1/curinfo"    # Diretório de datos
  logfile  "/var/log/amanda/DailySet1/log"        # Diretório de log

  indexdir "/var/lib/amanda/DailySet1/index"   # Diretório de índice

  amrecover_changer "chg-multi"  # Seleciona as fitas automaitcamente no restore

  # definição de arquivamento com dump
  define dumptype hard-disk-dump {
    comment "Backup no HD - usando dump"
    holdingdisk no
    index yes
    options compress-fast, index, exclude-list "/etc/amanda/exclude.gtar"
    priority high
  }

  # Definição do armazenamento com tar
  define tapetype HARD-DISK {
    comment "HD"
    length 10000 mbytes  # 10 GB de espaço
  }

  # Definição de armazenamento com 'tar'
  define dumptype hard-disk-tar {
    program "GNUTAR"
    hard-disk-dump
    comment "Backup para disco - usando tar"
  }
</pre>
<p>Edite o arquivo <code>/etc/amanda/DailySet1/changer.conf</code> para  definir as características das &#8220;fitas&#8221; e coloque o seguinte:</p>
<pre>  multieject 0
  gravity 0
  needeject 0
  ejectdelay 0

  statefile /var/lib/amanda/DailySet1/changer-status

  firstslot 1
  lastslot 14

  slot 1 file:/backups/tape01
  slot 2 file:/backups/tape02
  slot 3 file:/backups/tape03
  slot 4 file:/backups/tape04
  slot 5 file:/backups/tape05
  slot 6 file:/backups/tape06
  slot 7 file:/backups/tape07
  slot 8 file:/backups/tape08
  slot 9 file:/backups/tape09
  slot 10 file:/backups/tape10
  slot 11 file:/backups/tape11
  slot 12 file:/backups/tape12
  slot 13 file:/backups/tape13
  slot 14 file:/backups/tape14
</pre>
<p>Agora a vez é do <code>/etc/amanda/DailySet1/disklist</code>, que  irá definir quais máquinas terão quais diretórios armazenados:</p>
<pre>  # O nome da máquina deve ser o que está no DNS (ou no /etc/hosts)
  cliente.dominio.com /home hard-disk-tar
  cliente.dominio.com /var hard-disk-tar
  cliente.dominio.com /etc hard-disk-tar

  cliente2.dominio.com /home         hard-disk-tar
  cliente2.dominio.com /usr/local hard-disk-tar
</pre>
<p>Os nomes das máquinas clientes devem estar definidas no seu  /etc/hosts ou no seu DNS.</p>
<p>A seguir iremos criar os diretórios das fitas virtuais:</p>
<pre>  mkdir /backups
</pre>
<p>Então, os sub-diretórios:</p>
<pre>  mkdir -p /backups/tape01/data
  mkdir -p /backups/tape02/data
  [...]
  mkdir -p /backups/tape14/data
</pre>
<p>Acerte a permissão de modo que o usuário de backup possa escrever  nesses diretórios:</p>
<pre>  chown -R backup:backup /backups
</pre>
<p>Vamos editar o agendador de tarefas (cron) para realizar os backups  às 5:00 da manhã. Edite o <code>/etc/crontab</code> e acrescente a  seguinte linha:</p>
<pre>  00 5    * * *   backup      /usr/sbin/amdump DailySet1
</pre>
<p>Edite o <code>/etc/amandahosts</code> para permitir o acesso do  usuário que irá realizar a restauração de arquivos, no caso o root.  Acrescente essas linhas:</p>
<pre>  #servidor usuário
  servidor  root
</pre>
<p>É necessário iniciar os serviços de rede do Amanda, para que o  backup e os restores possam ser feitos. Isso é definido através do  super-servidor inet ou seu substituto, o xinet. Iremos mostrar como  configurar os dois. Primeiro o inetd. Descomente ou insira as seguintes  linhas no seu <code>/etc/inetd.conf</code> :</p>
<pre>  amanda dgram udp wait backup /usr/sbin/tcpd /usr/lib/amanda/amandad
  amandaidx stream tcp nowait backup /usr/sbin/tcpd /usr/lib/amanda/amindexd
  amidxtape stream tcp nowait backup /usr/sbin/tcpd /usr/lib/amanda/amidxtaped
</pre>
<p>Reincie o inetd:</p>
<pre>  /etc/init.d/inetd restart
</pre>
<p>Caso possua xinetd, inclua no arquivo &#8216;/etc/xinetd.conf&#8217;:</p>
<pre>  service amanda
   {
        socket_type     = dgram
        protocol        = udp
        wait            = yes
        user            = backup
        server          = /usr/lib/amanda/amandad
   }

  service amandaidx
   {
        socket_type     = stream
        protocol        = tcp
        wait            = no
        user            = backup
        server          = /usr/lib/amanda/amindexd
   }

  service amidxtape
   {
        socket_type     = stream
        protocol        = tcp
        wait            = no
        user            = backup
        server          = /usr/lib/amanda/amidxtaped
   }
</pre>
<p>Os próximos comandos serão dados como o usuário backup:</p>
<pre>  su - backup
</pre>
<p>Crie o arquivo de lista de tapes, que será posteriormente preenchido  pelo Amanda:</p>
<pre>  touch /etc/amanda/DailySet1/tapelist
</pre>
<p>Agora vamos etiquetar as fitas virtuais, para uso do Amanda:</p>
<pre>  /usr/sbin/amlabel DailySet1 HISS01 slot 1
  /usr/sbin/amlabel DailySet1 HISS02 slot 2
  /usr/sbin/amlabel DailySet1 HISS03 slot 3
  [...]
  /usr/sbin/amlabel DailySet1 HISS14 slot 14
</pre>
<h2>Instalação e Configuração: Clientes</h2>
<p>A configuração no servidor está completa. Agora iremos para um  cliente Linux, que pode ser o desktop de alguém ou seu Servidor Web, por  exemplo. Caso esse cliente também esteja rodando Debian:</p>
<pre>  apt-get install amanda-client
</pre>
<p>Ou instale o cliente do amanda da sua distribuição.</p>
<p>Agora, edite o &#8216;/etc/amandahosts&#8217;:</p>
<pre>  # nome da maquina usuario
  servidor.dominio.com        backup
</pre>
<p>Note que o nome do servidor deve estar definido no /etc/hosts do  cliente ou no seu DNS interno. O mais fácil é definir no <code>/etc/hosts</code>,  nesse formato:</p>
<pre>  192.168.1.110     servidor.dominio.com      servidor
</pre>
<p>Estamos quase lá. É preciso que o seu cliente esteja escutando na  rede para que, quando o servidor se conectar, ele consiga transferir os  dados. Como explicado anteriormente, isso pode ser feito via inet ou  xinet. Vamos ver os dois casos.</p>
<p>No Debian, quando se instala o amanda-server ele insere a seguinte  linha no seu <code>/etc/inetd.conf</code> :</p>
<pre>  amanda dgram udp wait backup /usr/sbin/tcpd /usr/lib/amanda/amandad
</pre>
<p>Se não estiver lá, insira manualmente a linha. Em qualquer dos casos  reinicie o inetd.conf:</p>
<pre>  /etc/init.d/inetd.conf restart
</pre>
<p>Caso você utilize o xinetd porém, basta editar o <code>/etc/xinetd.conf</code> e colocar assim:</p>
<pre>  service amanda
   {
        socket_type     = dgram
        protocol        = udp
        wait            = yes
        user            = backup
        server          = /usr/lib/amanda/amandad
   }
</pre>
<p>Reinicie o xinetd:</p>
<pre>  /etc/init.d/xinetd restart
</pre>
<p>E a configuração está pronta!</p>
<h2>Restaure os backups!</h2>
<p>O seu backup foi realizado com sucesso às 5:00 da manhã e tudo está  certo. É hora de aprender a restaurar os backups enquanto tudo está  tranquilo e ninguém esta desesperado gritando com você pelos seus dados  preciosos.</p>
<p>Existe algumas maneiras de fazer isso. Uma é utilizando o <code>amrecover</code>,  como root. Essa opção é a que iremos utilizar, por ser a mais poderosa.</p>
<p>Na máquina servidora, como root, crie um diretório de restore:</p>
<pre>  mkdir /restore
  cd /restore
</pre>
<p>Agora, chame o programa de recuperação:</p>
<pre>  amrecover
</pre>
<p>Dê o comando que determina a data que você quer restaurar, no  formato AAAA-MM-DD, onde AAAA é o ano com quatro dígitos, MM é o mês com  dois dígitos e DD é o dia com dois dígitos:</p>
<pre>  amrecover&gt; setdate 2004-11-06
  200 Working date set to 2004-11-06.
</pre>
<p>Aqui você determina de qual cliente você quer restaurar o backup:</p>
<pre>  amrecover&gt; sethost cliente
  200 Dump host set to cliente.
</pre>
<p>A seguir você determina de qual &#8220;disco&#8221; você irá restaurar o backup.  Se você especificou para ser feito o backup do diretório <code>/home</code> do cliente ponha <code>/home</code>. Mesmo que você vá restaurar  somente um diretório ou somente um arquivo. Veja abaixo como extrair  somente um arquivo do diretório <code>/home/daniduc</code> :</p>
<pre>  amrecover&gt; setdisk /home
  200 Disk set to /home.
</pre>
<p>Aqui você navega até o diretório:</p>
<pre>  amrecover&gt; cd daniduc
  /home/daniduc
</pre>
<p>O próximo passo é adicionar o arquivo a ser restaurado. Lembre-se  que você pode usar coringas, como o * para adicionar todos os arquivos,  ou pode adicionar um diretório:</p>
<pre>  amrecover&gt; add .bash_history
  Added /daniduc/.bash_history
</pre>
<p>Continue adicionando diretórios e arquivos, conforme o necessário.</p>
<p>Aqui você pede para o Amanda selecionar a fita virtual  automaticamente:</p>
<pre>  amrecover&gt; settape chg-multi
  Using tape "chg-multi" from server localhost.
</pre>
<p>E finalmente, só resta extrair os arquivos:</p>
<pre>  amrecover&gt; extract
  Extracting files using tape drive chg-multi on host localhost.
  The following tapes are needed: HISS06

  Restoring files into directory /restore
  Continue [?/Y/n]? y

  Extracting files using tape drive chg-multi on host localhost.
  Load tape HISS06 now
  Continue [?/Y/n/s/t]? y
  ./daniduc/.bash_history
  amrecover&gt; exit
</pre>
<p>Pronto, foi feita a restauração do arquivo dentro do diretório  /restore! Sua empresa já pode dormir tranqüila, sabendo que possui  backups eficientes a um custo extremamente acessível.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.cybershark.net/tutoriais/amanda_hd/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Implementação de servidor ftp com Proftp em AIX</title>
		<link>http://www.cybershark.net/tutoriais/proftpd_aix</link>
		<comments>http://www.cybershark.net/tutoriais/proftpd_aix#comments</comments>
		<pubDate>Sun, 28 Mar 2010 21:11:24 +0000</pubDate>
		<dc:creator>Carla Duclos</dc:creator>
				<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[adminsitração de sistemas]]></category>
		<category><![CDATA[AIX]]></category>
		<category><![CDATA[ftp]]></category>
		<category><![CDATA[IBM]]></category>
		<category><![CDATA[Proftpd]]></category>
		<category><![CDATA[sys admin]]></category>
		<category><![CDATA[sysadmin]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[UNIX]]></category>

		<guid isPermaLink="false">http://www.cybershark.net/?p=21</guid>
		<description><![CDATA[Como implmentar o servidor de FTP ProFTPD em um sistema AIX, completo com exemplo de configuração.]]></description>
			<content:encoded><![CDATA[<h2>Introdução</h2>
<p>Esta documentação foi escrita a partir de uma implementação  de um servidor ftp com o Proftp. O Proftp foi escolhido pela  flexibilidade e diversidade de configuração que ele permite. O Proftp  foi instalado numa máquina RISC IBM com o sistema operacional AIX.</p>
<p>Os problemas que ocorreram durante a implementação desta  solução estão documentados na sessão &#8220;Resolução de Problemas&#8221;, que  pode ser útil caso eles voltem a ocorrer.</p>
<p>Também estão documentados um exemplo do arquivo de  configuração (proftpd.conf) e a man page do proftp.</p>
<p>Há no decorrer da documentação links para páginas contendo  informações mais completas.</p>
<p>Informações sobre o Proftp podem ser encontradas em:  http://www.proftpd.org</p>
<h2>Instalando o servidor proftp</h2>
<p><strong>Instalando o proftp</strong></p>
<p>Instalar o binário do proftp para AIX:</p>
<ul>
<li>Fazer o download em: <a href="http://freeware.bull.net/download/aix43/proftpd-1.2.1.0.exe">http://freeware.bull.net/download/aix43/proftpd-1.2.1.0.exe</a></li>
<li>Criar um diretório e copiar o arquivo proftpd-1.2.1.0.exe para este  diretório.</li>
<li>Executar o arquivo::
<pre>                # ./proftpd-1.2.1.0.exe
</pre>
</li>
</ul>
<p>Ele vai gerar os seguintes arquivos::</p>
<pre>                [root@máquina_i] proftp_binario&gt; ls -la
                total 3416
                drwxr-xr-x 2 root system 512 Jan 11 13:51 .
                drwxr-xr-x 7 root system 512 Jan 11 13:28 ..
                -rw-r--r-- 1 root system 502 Dec 27 16:47 .toc
                -rw-r--r-- 1 root system 1280000 Aug 02 04:51 proftpd-1.2.1.0.bff
                -rw-r--r-- 1 root system 2481 Aug 02 04:52 proftpd-1.2.1.0.bff.asc
                -rwxr-x--x 1 root system 442862 Dec 27 16:47 proftpd-1.2.1.0.exe
                -rw-r--r-- 1 root system 3720 Dec 27 16:51 status_instalacao.txt
                [root@máquina_i] proftp_binario&gt;
</pre>
<ul>
<li>Instalar através do smitty:
<pre>                # smitty install_latest
</pre>
</li>
</ul>
<p><strong>Configurando o proftp</strong></p>
<p>A configuração do proftpd é feita através de parâmetros no  arquivo proftpd.conf. Ver no final desta dica um modelo do arquivo de  configuração.</p>
<p>Localização: /etc/proftpd/proftpd.conf</p>
<p>Alguns parâmetros importantes</p>
<p>O proftp permite uma série de configurações. Diversos  parâmetros podem ser configurados no arquivo proftpd.conf.</p>
<p>Todas as flags de configuração estão documentadas em:</p>
<p><a href="http://www.proftpd.org/docs/directives/linked/by-name.html">http://www.proftpd.org/docs/directives/linked/by-name.html</a></p>
<p>Exemplos:</p>
<p>Segue abaixo exemplos de alguns parâmetros do arquivo  proftpd.conf:</p>
<h3>Para que o HOME do usuário seja o diretório raíz:</h3>
<p>Pode se desejar que o usuário ao se logar por ftp, não tenha  acesso a nenhum diretório da máquina que não seja o seu diretório HOME..  Para isso acrescentamos a seguinte linha no arquivo de configuração::</p>
<pre>                DefaultRoot
</pre>
<p>Doc: <a href="http://www.proftpd.org/docs/directives/linked/config_ref_DefaultRoot.html">http://www.proftpd.org/docs/directives/linked/config_ref_DefaultRoot.html</a></p>
<h4>Para o proftp autenticar no NIS:</h4>
<p>Se no seu ambiente a autenticação de usuário for feita  através do NIS, é preciso colocar a seguinte linha de configuração, para  que o Proftp autentique os usuários::</p>
<pre>                PersistentPasswd off
</pre>
<p>Doc: <a href="http://www.proftpd.org/docs/directives/linked/config_ref_PersistentPasswd.html">http://www.proftpd.org/docs/directives/linked/config_ref_PersistentPasswd.html</a></p>
<p>Para o proftp aceitar conexões apenas dos usuários  pertencentes a um determinado grupo::</p>
<pre>                &lt;Limit LOGIN&gt;
                DenyAll
                AllowGroup          Nome do Grupo
                &lt;/Limit&gt;
</pre>
<p>Doc: <a href="http://www.proftpd.org/docs/directives/linked/config_ref_DenyAll.html">http://www.proftpd.org/docs/directives/linked/config_ref_DenyAll.html</a></p>
<p><a href="http://www.proftpd.org/docs/directives/linked/config_ref_All">http://www.proftpd.org/docs/directives/linked/config_ref_All</a></p>
<p>Para restringir e liberar acessos a diretórios</p>
<p>Negando acesso a todos os diretórios a partir da raiz (/):</p>
<pre>                &lt;Directory/*&gt;
                        &lt;Limit READ WRITE DIRS&gt;
                        DenyAll
                        &lt;/Limit&gt;
                &lt;/Directory&gt;
</pre>
<p>Liberando acesso ao diretório /tmp somente aos grupos grupo1,  grupo2, grupo3:</p>
<pre>                &lt;Directory /tmp&gt;
                        &lt;Limit READ WRITE DIRS&gt;
                                AllowGroup       grupo1
                                AllowGroup       grupo2
                                AllowGroup       grupo3
                                &lt;/Limit&gt;
                &lt;/Directory&gt;
</pre>
<p>Doc: <a href="http://www.proftpd.org/docs/configuration.html#Directory">http://www.proftpd.org/docs/configuration.html#Directory</a></p>
<p>Gerando Logs</p>
<p>Para segurança e maior controle da ação dos usuários que se  utilizam do serviço de ftp, é desejável gerar logs. O proftp pode gerar  diversos tipos de log. É possível determinarmos quais ações queremos  logar e os tipos de log que o proftp irá gerar também é definido no  arquivo /etc/proftpd/proftpd.conf.</p>
<p>Alguns tipos de logs possíveis de configurar:  (/etc/proftpd/proftpd.conf):</p>
<pre>                SystemLog /usr/local/var/proftpd/proftpsys.log
                TransferLog /usr/local/var/proftpd/proftptransf.log
                ExtendedLog /usr/local/var/proftpd/proftp.log
</pre>
<p>Doc:<a href="http://www.proftpd.org/docs/directives/linked/config_ref_SystemLog.html">http://www.proftpd.org/docs/directives/linked/config_ref_SystemLog.html</a> <a href="http://www.proftpd.org/docs/directives/linked/config_ref_TransferLog.html">http://www.proftpd.org/docs/directives/linked/config_ref_TransferLog.html</a> <a href="http://www.proftpd.org/docs/directives/linked/config_ref_ExtendedLog.html">http://www.proftpd.org/docs/directives/linked/config_ref_ExtendedLog.html</a></p>
<p>A seguir estão listados exemplos dos logs gerados, de um  login feito pelo usuário teste, que se logou as 12:49 e fechou a sessão  de ftp as 12:50.</p>
<p>SystemLog</p>
<p>O SystemLog gera logs de login e logout do usuário.</p>
<p>/usr/local/var/proftpd/proftpsys.log:</p>
<pre> Jan 14 12:49:46 máquina_i proftpd[164830] máquina_i (10.1.1.56[10.1.1.56]): USER teste: Login successful.Jan 14 12:50:48 máquina_i proftpd[164830] máquina_i (10.1.1.56[10.1.1.56]): FTP session closed.
</pre>
<p>TransferLog</p>
<p>O TransferLog gera os logs apenas das transferências de  arquivos realizadas pelo usuário.</p>
<p>/usr/local/var/proftpd/proftptransf.log:</p>
<pre>       Mon Jan 14 12:50:42 2002 0 10.1.1.56 1270 /home/unix/teste/proftpd.conf b _ o r teste ftp 0 * c
</pre>
<p>ExtendedLog</p>
<p>O ExtendedLog, sem especificação, loga todas as ações do  usuário. É possível filtrar e logar apenas as ações desejadas,  especificando a classe de comando (ver detalhes na documentação). A  interpretação desse Log também está na documentação citada acima.</p>
<p>/usr/local/var/proftpd/proftp.log:</p>
<pre>                10.1.1.56 UNKNOWN root [14/Jan/2002:12:49:43 -0300] "USER teste" 331 -
                10.1.1.56 UNKNOWN teste [14/Jan/2002:12:49:46 -0300] "PASS (hidden)" 230
                10.1.1.56 UNKNOWN teste [14/Jan/2002:12:49:46 -0300] "SYST " 215 -
                10.1.1.56 UNKNOWN teste [14/Jan/2002:12:49:52 -0300] "PORT 10,1,1,56,6,32" 200 -
                10.1.1.56 UNKNOWN teste [14/Jan/2002:12:49:52 -0300] "LIST " 226 928
                10.1.1.56 UNKNOWN teste [14/Jan/2002:12:49:54 -0300] "PWD " 257 -
                10.1.1.56 UNKNOWN teste [14/Jan/2002:12:50:11 -0300] "CWD diversos" 250
                10.1.1.56 UNKNOWN teste [14/Jan/2002:12:50:13 -0300] "PORT 10,1,1,56,6,33" 200 -
                10.1.1.56 UNKNOWN teste [14/Jan/2002:12:50:13 -0300] "LIST " 226 815
                10.1.1.56 UNKNOWN teste [14/Jan/2002:12:50:16 -0300] "CWD .." 250
                10.1.1.56 UNKNOWN teste [14/Jan/2002:12:50:17 -0300] "PORT 10,1,1,56,6,34" 200 -
                10.1.1.56 UNKNOWN teste [14/Jan/2002:12:50:17 -0300] "LIST " 226 928
                10.1.1.56 UNKNOWN teste [14/Jan/2002:12:50:23 -0300] "CWD santos" 250
                10.1.1.56 UNKNOWN teste [14/Jan/2002:12:50:24 -0300] "PORT 10,1,1,56,6,35" 200 -
                10.1.1.56 UNKNOWN teste [14/Jan/2002:12:50:24 -0300] "LIST " 226 133
                10.1.1.56 UNKNOWN teste [14/Jan/2002:12:50:42 -0300] "TYPE I" 200 -
                10.1.1.56 UNKNOWN teste [14/Jan/2002:12:50:42 -0300] "PORT 10,1,1,56,6,36" 200 -
                10.1.1.56 UNKNOWN teste [14/Jan/2002:12:50:42 -0300] "RETR proftpd.conf" 226 1270
                10.1.1.56 UNKNOWN teste [14/Jan/2002:12:50:45 -0300] "TYPE A" 200 -
                10.1.1.56 UNKNOWN teste [14/Jan/2002:12:50:45 -0300] "PORT 10,1,1,56,6,37" 200 -
                10.1.1.56 UNKNOWN teste [14/Jan/2002:12:50:45 -0300] "LIST " 226 133
                LIST (comando ls)
                CWD (comando cd)
                RETR (comando get)
</pre>
<h2>Executando o proftp</h2>
<p><strong>Linha de comando</strong></p>
<p>Para executar o proftpd através de linha de comando é preciso  que o parâmentro ServerType esteja configurado como standalone no  proftpd.conf::</p>
<pre>                ServerType       standalone
</pre>
<p>Estando como standalone basta na linha de comando::</p>
<pre>                # usr/local/bin/proftpd -p enable
</pre>
<p>OBS:</p>
<p>Para a autenticação no NIS, é preciso iniciar o proftpd com a  opção -p enable para que a configuração PersistentPasswd off seja  interpretada. Para mais detalhes veja Man page em anexo.</p>
<p><strong>inetd.conf</strong></p>
<p>Antes de colocar o proftpd para ser executado pelo inetd é  preciso alterar o parâmetro ServerType no proftpd.conf de standalone  para inetd.</p>
<p>No /etc/proftpd/proftpd.conf:</p>
<p>Antes:::                 ServerType         standalone         Depois:::                 ServerType        inetd</p>
<p>No /etc/inetd.conf:</p>
<p>Substituir a linha::</p>
<pre>     ftp stream tcp6 nowait root /usr/sbin/ftpd ftpd
</pre>
<p>Pela linha de inicialização do proftp::</p>
<pre>     ftp stream tcp nowait root /usr/local/bin/proftpd proftpd -p enable
</pre>
<h2>Localização Principais arquivos</h2>
<ul>
<li>binário:
<pre>                /usr/local/bin/proftpd
</pre>
</li>
<li>arquivo de configuração:
<pre>                /etc/proftpd/proftd.conf
</pre>
</li>
<li>arquivos de log:
<pre>                /usr/local/var/proftpd/
                          proftp.log
                          proftpsys.log
                          proftptransf.log
</pre>
</li>
</ul>
<h2>Resolução de problemas</h2>
<p>**Problemas na autenticação do usuário**</p>
<p>Apresenta o seguinte erro no log::</p>
<pre>                Jan 11 15:32:00 máquina_i proftpd[27532]: Fatal: User: Unknown user 'teste'.
                Jan 11 15:32:06 máquina_i proftpd[187240] máquina_i (10.1.5.53[10.1.5.53]): FTP session opened.
                Jan 11 15:32:12 máquina_i proftpd[187240] máquina_i (10.1.5.53[10.1.5.53]): USER teste (Login failed): Invalid shell.
                Jan 11 15:37:06 máquina_i proftpd[187240] máquina_i (10.1.5.53[10.1.5.53]): FTP login timed out, disconnected.
</pre>
<p>Notar que o log aponta para Invalid shell do usuário teste.</p>
<p>Solução:</p>
<h3>verificar no arquivo /etc/shells se a shell do usuário está  cadastrada.</h3>
<p>No AIX o /bin é um link simbólico para /usr/bin, ainda assim,  é preciso cadastrar no shells, /usr/bin/ksh.</p>
<p>**Erro de serviço indisponível**</p>
<h4>Verificar se o parâmetro ServerType está configurado  corretamente:</h4>
<p><code>standalone</code> -&gt; iniciar via linha de comando         <code>inetd</code> -&gt; iniciar via inetd.conf</p>
<p>**Erro na execução de comandos**:</p>
<pre>                [carla@kenobi procedimentos_a_documentar]$ ftp máquina
                Connected to máquina.lalala.br.
                220 ProFTPD 1.2.1 Server (ProFTPD TEST Installation) [máquina_i]
                Name (máquina:teste): teste 331 Password required for teste.
                Password:
                230 User teste logged in.
                Remote system type is UNIX.
                Using binary mode to transfer files.
                ftp&gt; ls
                500 Illegal PORT command.
                ftp: bind: Address already in use
                ftp&gt; pwd
                257 "/" is current directory.
                ftp&gt; ls
                500 Illegal PORT command.
                ftp&gt; ls -l
                500 Illegal PORT command.
                ftp&gt; get smit.log
                local: smit.log remote: smit.log
                500 Illegal PORT command.
                ftp&gt; bye
                221 Goodbye.
</pre>
<p>Esse erro estava sendo ocasionado por ter colocado tcp6 ao  invés de tcp no inetd.conf.</p>
<p>O problema foi resolvido substituindo tcp6 por tcp.</p>
<p>Pesquisando o erro na internet foi encontrada a seguinte URL,  um email da lista de discussão do proftpd.org, que abordava esse erro:</p>
<p><a href="http://www.proftpd.org/proftpd-devel-archive/00-10/msg00174.html">http://www.proftpd.org/proftpd-devel-archive/00-10/msg00174.html</a></p>
<p>Arquivo proftpd.conf</p>
<p>Este é um exemplo de um arquivo de configuração do proftp.:</p>
<pre>                #This ProFTPD configuration is intended for unprivileged TESTING ONLY.
                #See Step 4 in INSTALL.

                ServerName "ProFTPD"
                ServerType inetd
                DefaultServer on

                #Caso se desejasse fazer com que cada usuario ficasse restrito
                #ao seu $HOME no uso do ftp
                #DefaultRoot ~

                SystemLog /usr/local/var/proftpd/proftpsys.log
                TransferLog /usr/local/var/proftpd/proftptransf.log
                ExtendedLog /usr/local/var/proftpd/proftp.log

                # Use a non-privileged port, rather than the standard ftp port (21).
                # The ftpd-data port will be one less.
                Port 21

                User                   root
                Group                 system

                #Disable some checks.
                #Para que o proftp autentique no NIS

                PersistentPasswd                 off

                # Umask 022 is a good standard umask to prevent new dirs and files
                # from being group and world writable.
                Umask                               022

                # To prevent DoS attacks, set the maximum number of child processes to 5.
                MaxInstances                     20

                # Normally, we want files to be overwriteable.

                &lt;Directory /*&gt;
                      AllowOverwrite        on
                &lt;/Directory&gt;

                # Restricoes de acesso a diretorios

                # Negado acesso a todos os diretorios a partir da raiz (/)

                &lt;Directory /*&gt;
                &lt;Limit READ WRITE DIRS&gt;
                            DenyAll
                      &lt;/Limit&gt;
                &lt;/Directory&gt;

                # Liberado acesso de alguns diretorios para alguns grupos, de acordo com
                # a necessidade de cada um

                &lt;Directory ~&gt;
                      &lt;Limit READ WRITE DIRS&gt;
            AllowGroup dba
            AllowGroup unix
            AllowGroup user_ftp
      &lt;/Limit&gt;
                &lt;/Directory&gt;

                &lt;Directory /tmp&gt;
                      &lt;Limit READ WRITE DIRS&gt;
                            AllowGroup dba
                            AllowGroup unix
                            AllowGroup operacao
                      &lt;/Limit&gt;
                &lt;/Directory&gt;

                &lt;Directory /extdba&gt;
                      &lt;Limit READ WRITE DIRS&gt;
                            AllowGroup dba
                            AllowGroup unix
                       &lt;/Limit&gt;
                &lt;/Directory&gt;

                &lt;Directory /dbms&gt;
                      &lt;Limit READ WRITE DIRS&gt;
                            AllowGroup dba
                            AllowGroup unix
                      &lt;/Limit&gt;
                &lt;/Directory&gt;

                &lt;Directory /trabalho&gt;
                      &lt;Limit READ WRITE DIRS&gt;
                            AllowGroup unix
                             AllowGroup dba
                            AllowGroup operacao
                       &lt;/Limit&gt;
                &lt;/Directory&gt;

                # Limitacao de login ftp. Liberado apenas para alguns grupos do ambiente.

                &lt;Limit LOGIN&gt;
                            DenyAll
                AllowGroup              user_ftp
                            AllowGroup              operacao
                            AllowGroup              unix
                            AllowGroup              dba
                &lt;/Limit&gt;
</pre>
<h2>Man Page &#8211; proftp</h2>
<p>(/usr/local/man/man8/proftpd.8):</p>
<pre>                proftpd 8 "July 2000"

                Process with
                groff -man -Tascii proftpd.1

                NAME
                proftpd \- Professional configurable, secure file transfer protocol server
                SYNOPSIS

                proftpd

                -hlntv

                -d " debuglevel"

                -c " config\-file"

                -p " 0|1"

                DESCRIPTION

                proftpd
                is the Professional File Transfer Protocol (FTP) server daemon. The server
                may be invoked by the Internet "super-server" inetd(8) each time a
                connection to the FTP service is made, or alternatively it can be run as a
                stand-alone daemon.

                When proftpd is run in standalone mode and it receives a SIGHUP then it will reread its config file. When run in standalone mode without the -n option, the main proftpd daemon writes its process ID to /var/run/proftpd.pid to make it easy to know which process to SIGHUP.

                OPTIONS

                -h,--help
                Display a short usage description, including all available options.

                -n,--nodaemon
                Runs the proftpd process in standalone mode (must be configured as such in the configuration file), but does not background the process or disassociate it from the controlling tty. Additionally, all output (log or debug messages) are sent to stdout, rather than the syslog mechanism. Most often used with the \fB-d option\fP for debugging.

                -v,--version
                Displays the version number of ProFTPD to stdout.

                -d,--debug " debuglevel"
                Sets proftpd's internal debug level (normally 0). The debugleve should be an integer value from 0 to 5, with higher numbers producing more debug output. Normally, debug messages are sent to syslog using the DEBUG facility, however if the -n option is used, all such output is sent to stdout.

                -c,--config " config\-file"
                Specifies an alternate \fIconfig\-file\fP to be parsed at startup, rather than the default (typically found in \fB/etc/proftpd.conf\fP).

                -t,--configtest
                Read the configuration file, report any syntax errors, and exit. -p,--persistent " 0|1" Disables (0) or enables (1) the default persistent password support, which is determined at configure time for each platform. This option only affects the default support, it can still be overridden at run-time with the PersistentPasswd directive.

                -l,--list
                Lists all modules compiled into proftpd.

                /usr/sbin/proftpd

                /usr/bin/ftpwho

                /usr/bin/ftpcount

                /usr/sbin/ftpshut

                /var/log/xferlog

                /var/run/proftpd-[pid]

                /var/run/proftpd.pid

                /var/run/proftpd-inetd

                AUTHORS

                ProFTPD was originally written by Floody. It is currently written and maintained by MacGyver (aka Habeeb J. Dihu) &lt;macgyver@tos.net&gt; http://www.macgyver.org.

                SEE ALSO
                inetd(8), ftp(1), ftpwho(1), ftpcount(1), ftpshut(8)

                Full documentation on ProFTPD, including configuration and FAQs is available at

http://www.proftpd.net.

                Report bugs at http://bugs.proftpd.net
                For help/support, try the ProFTPD mailing list at proftpd@proftpd.net (see http://www.proftpd.net/lists.html for more information).
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.cybershark.net/tutoriais/proftpd_aix/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Processo de auditoria em AIX</title>
		<link>http://www.cybershark.net/tutoriais/processo-de-auditoria-em-aix</link>
		<comments>http://www.cybershark.net/tutoriais/processo-de-auditoria-em-aix#comments</comments>
		<pubDate>Sun, 28 Mar 2010 20:13:46 +0000</pubDate>
		<dc:creator>Carla Duclos</dc:creator>
				<category><![CDATA[Tutoriais]]></category>

		<guid isPermaLink="false">http://www.cybershark.net/?p=7</guid>
		<description><![CDATA[O sistema operacional Unix AIX dispõe de um sistema de auditoria que pode ser configurado e habilitado pelo administrador de sistemas, que permite registrar todas as ações efetuadas no servidor. Veja como habilitar.]]></description>
			<content:encoded><![CDATA[<p>O sistema operacional Unix AIX dispõe de um sistema de auditoria que  pode ser configurado e habilitado pelo administrador de sistemas, que  permite registrar todas as ações efetuadas no servidor.</p>
<h2>1 &#8211; Processo de auditoria</h2>
<p>O processo de auditoria consiste num sistema que registra em logs  binários as ações realizadas por todos os usuários do sistema  operacional, conforme configuração definida.</p>
<p>Antes de iniciar a configuração da auditoria deve-se definir o local  onde os logs serão armazenados e criar um filesystem específico para  isso. É importante tomar o cuidado de configurar as permissões de acesso  a este diretório de modo que apenas os administradores do sistema  possam acessá-lo.</p>
<p>Após criado o filesystem, o próximo passo é configurar os arquivos que  se encontram no diretório /etc/security/audit. Para configurar a  auditoria precisa-se definir o que será auditado, quais usuários serão  auditados e de que forma os logs serão armazenados.</p>
<h2>2 &#8211; O que pode ser monitorado?</h2>
<p>A seguir temos a descrição de alguns itens que podem ser utilizados para  monitoria:</p>
<pre>USER_SU	Utilização do comando su

PASSWORD_Change - Utilização do comando passwd

FILE_Rename     - Alteração de nome de arquivos

FS_Rmdir        - Remoção de diretório

AUD_Bin_Def     - Audit bin configuration

AUD_Lost_Recs   - Notificação caso haja registros perdidos

FILE_Write      - Registra a escrita em arquivos (pode-se especificar quais arquivos sofrerão
                  esta monitoria configurando o arquivo objects, conforme descrito no item 4
                  deste documento).
.
FILE_Owner      - Alteração de permissão de arquivos: OWNER

FILE_Mode       - Mudança de permissão (chmod)

FILE_Acl        - Alteração de permissão de arquivos: utilizando ACL

FILE_Privilege  - Mudança de características de owner (chown)

AT_JobRemove    - Remoção de um Job da Crontab ou At

CRON_JobRemove  - Lista qual usuário removeu um job da cron e quando ele removeu

CRON_JobAdd     - Lista qual usuário adicionou um job da cron e quando ele removeu

LVM_DeletePV    - Remoção de PV (Physical Volume)

LVM_DeleteVGSA  - Remoção da Volume Group Status Area

LVM_DeleteVG    - Remoção de VG (Volume Group)

LVM_DeleteLV    - Remoção de LV (Logical Volume)

LVM_VaryoffVG   - Colocação de VG em status offline
</pre>
<h2>3 &#8211; Configurando e habilitando a AUDITORIA:</h2>
<p>A auditoria é configurada através da edição de arquivos de configuração  que se encontram no diretório /etc/security/audit/.</p>
<h3>3.1 &#8211; Arquivos de configuração no diretório /etc/security/audit/</h3>
<p>No diretório /etc/security/audit encontramos os seguintes arquivos:</p>
<pre># ls -l
total 136
-rw-r-----   1 root     audit         37 Sep 16 2002  bincmds
-rw-rw----   1 root     audit       1092 Nov 16 12:24 config
-rw-rw----   1 root     audit      14208 Oct 09 15:37 events
-rw-r-----   1 root     audit        340 Sep 16 2002  objects
-rw-rw----   1 root     audit       1107 Nov 16 12:23 oconfig
-rw-r-----   1 root     audit         54 Sep 16 2002  streamcmds
#
</pre>
<p>A função destes arquivos é:</p>
<pre>bincmds    - Arquivo onde estão os comandos para monitoração no modo binmode
config     - Arquivo de configuração da auditoria onde são especificadas as
             características do processo de audit o que será monitorado
events     - Arquivo onde estão definidos os eventos que podem ser monitorados
objects    - Arquivo onde estão definidos os objetos a serem monitorados
streamcmds - Arquivo onde estão os comandos para monitoração no modo
             streammode
</pre>
<p>Para habilitar a auditoria no AIX, normalmente configuramos os seguintes  arquivos:</p>
<pre>- config
- objects
- events
</pre>
<h4>3.1.1	- Configuração do /etc/security/audit/config</h4>
<p>Segue no quadro a seguir, um exemplo de configuração do arquivo config, o  principal arquivo de configuração, onde definimos “como”, “o que” e  “quem” serão auditados.</p>
<p>Neste arquivo definimos:</p>
<ul>O método de geração de logs (bin ou stream)</ul>
<ul>O diretório onde os logs serão gerados: /{filesystemcriado}</ul>
<ul>Os processos que serão monitorados (descritos no próximo ítem:  USER_SU, etc)</ul>
<ul>Quais usuários serão monitorados</ul>
<p>Segue um modelo do arquivo config:</p>
<pre>start:
        binmode = on
        streammode = off

bin:
        trail = /{filesystemcriado}/trail
        bin1 = /{filesystemcriado}/bin1
        bin2 = /{filesystemcriado}/bin2
        binsize = 10240
        cmds = /etc/security/audit/bincmds
        freespace = 65536

stream:
        cmds = /etc/security/audit/streamcmds

classes:
        personalizada = USER_SU,PASSWORD_Change,FILE_Rename,FS_Rmdir,AUD_Bin_Def,AUD_Lost_Recs,FILE_Write,\
                        FILE_Rename,FILE_Owner,FILE_Mode,FILE_Acl,FILE_Privilege,AT_JobAdd,AT_JobRemove,\
                        CRON_JobAdd,CRON_JobRemove,LVM_DeletePV,LVM_DeleteVGSA,LVM_DeleteVG,\
                        LVM_DeleteLV,LVM_VaryoffVG

users:
        usuarioA = personalizada
        usuarioB = personalizada
        usuarioC = personalizada
</pre>
<h4>3.1.2	- Configuração do /etc/security/audit/objects</h4>
<p>O arquivo objects permite que personalizemos a relação dos objetos que  são monitorados. Podemos incluir os arquivos do <em>/etc</em>, do <em>/home</em>,  etc, conforme desejarmos.</p>
<p>Abaixo podemos ver como incluir todos os arquivos abaixo do /etc para  serem monitorados.</p>
<p>Basta executar na linha de comando:</p>
<pre># find /etc -type f | awk '{printf("%s:\n\tw = FILE_Write\n\n",$1)}' &gt;&gt; objects
</pre>
<h4>3.1.3 &#8211; Configuração do /etc/security/audit/events</h4>
<p>O arquivo events contém o que cada ação auditada faz. Podemos  personalizar, por exemplo, que a ação FILE_Write registre o nome do  arquivo editado adicionado <em>file: %s</em> , conforme mostrado a seguir.</p>
<p>Exemplo:</p>
<p>Original:</p>
<pre>FILE_Write = printf "file descriptor = %d"
</pre>
<p>Modificado:</p>
<pre>FILE_Write = printf "file descriptor = %d file: %s"
</pre>
<h2>4 &#8211; Automatizando a inclusão de novos usuários no sistema de  auditoria.</h2>
<p>Uma vez implementado o processo de auditoria, para que os usuários  criados já sejam adicionados no sistema de auditoria, deve-se configurar  o arquivo: <em>/usr/lib/security/mkuser.default</em>:</p>
<pre>#more mkuser.default

user:
        auditclasses = personalizada
        pgrp = staff
        groups = staff
        shell = /usr/bin/ksh
        home = /home/$USER

admin:
        pgrp = system
        groups = system
        shell = /usr/bin/ksh
        home = /home/$USER
</pre>
<h2>5	- Administração do sistema de auditoria</h2>
<h3>5.1	- Ativação/Desativação do sistema de auditoria</h3>
<p>Iniciar o processo de auditoria</p>
<pre># audit start
</pre>
<p>Parar o processo de auditoria:</p>
<pre># audit shutdown
</pre>
<p>Daemon do processo de auditoria ativo:</p>
<pre># ps -ef |grep audit
    root  315630       1   0 11:48:16      -  0:00 auditbin
    root 3489980 4378874   1 13:02:52  pts/1  0:00 grep audit
#
</pre>
<p>Para que a auditoria seja iniciada em caso de boot do servidor, deve-se  incluir uma linha  no arquivo <em>/etc/inittab</em>:</p>
<p>Exemplo:</p>
<pre>audit:2:once:/usr/sbin/audit start &gt; /dev/console 2&gt;&amp;1
</pre>
<h3>5.2	- Leitura dos registros de auditoria</h3>
<p>Para ler os registros de auditoria, utilizar o comando auditpr:</p>
<pre>auditpr &lt; bin1

auditpr –v &lt; bin1
</pre>
<p>No diretório definido para os logs de auditoria:</p>
<pre># ls -l
total 448
-rw-------   1 root     system            0 Nov 16 11:48 auditb
-rw-rw----   1 root     system         6785 Nov 16 13:09 bin1
-rw-rw----   1 root     system            0 Nov 16 12:23 bin2
drwxr-xr-x   2 root     system          256 Oct 27 11:52 lost+found
-rw-r-----   1 root     system       221005 Nov 16 12:23 trail
</pre>
<h2>6	- Resolução de problemas com AUDIT:</h2>
<p>Problema 1:</p>
<p>Caso o audit apresente o seguinte erro ao tentar iniciar o audit:</p>
<pre># /usr/sbin/audit start

AUDITBIN: ** failed backend command /usr/sbin/auditcat -p -o /{filesystemcriado}/trail -r /{filesystemcriado}/bin1
#
</pre>
<p>Para resolver, pode-se renomear os arquivos /{filesystemcriado}/trail e  /{filesystemcriado}/bin1 e reiniciar o audit.</p>
<pre># /usr/sbin/audit start

# ps -ef |grep audit
    root 2515120       1   0 16:06:28      -  0:00 auditbin
    root 3981322 2478182   0 16:06:35  pts/2  0:00 grep audit

# ls -lrt
total 10328
drwxr-xr-x   2 root     system          256 Apr 15 16:27 lost+found
-rw-r-----   1 root     system      5255750 Apr 29 00:25 trail.old
-rw-rw----   1 root     system        10202 Jun 01 16:02 bin1.old
-rw-------   1 root     system            0 Jun 01 16:06 auditb
-rw-r-----   1 root     system         2819 Jun 01 16:06 trail
-rw-rw----   1 root     system            0 Jun 01 16:06 bin2
-rw-rw----   1 root     system         2320 Jun 01 16:06 bin1
</pre>
<p>A solução foi encontrada neste link:</p>
<p><a href="http://www.aplawrence.com/Security/mdgiac.html">http://www.aplawrence.com/Security/mdgiac.html</a></p>
<p>Segue o trecho que descreve o erro e a solução:</p>
<pre>Error message:
auditbin: ** failed backend command
/etc/auditcat -p -o /{filesystemcriado}/trail -r /{filesystemcriado}/bin1
This error can be corrected by removing or renaming the BIN files. It is sometimes helpful to run audit shutdown again
and then to retry audit start.
</pre>
<h2>7	- Referência</h2>
<p>Audit Command</p>
<p><a href="http://publib.boulder.ibm.com/infocenter/pseries/v5r3/index.jsp?topic=/com.ibm.aix.security/doc/security/auditing.htm"> http://publib.boulder.ibm.com/infocenter/pseries/v5r3/index.jsp?topic=/com.ibm.aix.security/doc/security/auditing.htm </a></p>
<p>Configurando Auditoria <a href="http://publib.boulder.ibm.com/infocenter/pseries/v5r3/index.jsp?topic=/com.ibm.aix.security/doc/security/setting_up_auditing.htm"> http://publib.boulder.ibm.com/infocenter/pseries/v5r3/index.jsp?topic=/com.ibm.aix.security/doc/security/setting_up_auditing.htm </a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.cybershark.net/tutoriais/processo-de-auditoria-em-aix/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

