<?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>Freedom Interface &#187; servidores</title>
	<atom:link href="http://www.freedominterface.org/tag/servidores/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.freedominterface.org</link>
	<description>Pensamentos livres</description>
	<lastBuildDate>Thu, 27 Oct 2011 11:04:50 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<item>
		<title>linkfailover 1.0 testado e aprovado</title>
		<link>http://www.freedominterface.org/2010/11/23/linkfailover-1-0-testado-e-aprovado/</link>
		<comments>http://www.freedominterface.org/2010/11/23/linkfailover-1-0-testado-e-aprovado/#comments</comments>
		<pubDate>Tue, 23 Nov 2010 18:38:24 +0000</pubDate>
		<dc:creator>Eduardo Ramos</dc:creator>
				<category><![CDATA[Dicas]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[redes]]></category>
		<category><![CDATA[servidores]]></category>
		<category><![CDATA[c programming]]></category>
		<category><![CDATA[desenvolvimento]]></category>
		<category><![CDATA[dicas]]></category>

		<guid isPermaLink="false">http://www.freedominterface.org/?p=429</guid>
		<description><![CDATA[Hoje finalmente consegui implantar uma solução para falha de links no meu Linux. O linkfailover assume um gateway como sendo primário e uma lista de outros alternativos. Caso o primário falhe, ele busca na lista de alternativos um que esteja disponível para assumir a saída de pacotes. Acredito que existam outras implementações para essa solução, [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.freedominterface.org/wp-content/uploads/2010/11/bifurcacao1.jpg"><img class="alignleft size-thumbnail wp-image-430" style="margin: 5px;" title="Bifurcação" src="http://www.freedominterface.org/wp-content/uploads/2010/11/bifurcacao1-150x150.jpg" alt="" width="150" height="150" /></a>Hoje finalmente consegui implantar uma solução para falha de links no meu Linux. O linkfailover assume um gateway como sendo primário e uma lista de outros alternativos. Caso o primário falhe, ele busca na lista de alternativos um que esteja disponível para assumir a saída de pacotes. Acredito que existam outras implementações para essa solução, mas esta foi a que casou perfeitamente com a minha necessidade. Faça o download <a href="http://www.freedominterface.org/projetos/linkfailover">aqui</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.freedominterface.org/2010/11/23/linkfailover-1-0-testado-e-aprovado/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Estender partição</title>
		<link>http://www.freedominterface.org/2010/10/20/estender-particao/</link>
		<comments>http://www.freedominterface.org/2010/10/20/estender-particao/#comments</comments>
		<pubDate>Wed, 20 Oct 2010 14:53:00 +0000</pubDate>
		<dc:creator>Eduardo Ramos</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[servidores]]></category>
		<category><![CDATA[utilidades]]></category>
		<category><![CDATA[virtualização]]></category>
		<category><![CDATA[lvm2]]></category>

		<guid isPermaLink="false">http://www.freedominterface.org/?p=384</guid>
		<description><![CDATA[Como toda invenção, meu aprendizado é orientado à necessidade. Recentemente passei por um sufoco de espaço em disco em uma máquina virtual minha, que opera sobre um servidor Linux com KVM. Para melhor gerência, meus discos virtuais estão alocados como volumes lógicos LVM2, o que facilitou muito meu trabalho neste momento. No meu caso, eu [...]]]></description>
			<content:encoded><![CDATA[<p><img class="size-medium wp-image-400 alignleft" title="Mesa" src="http://www.freedominterface.org/wp-content/uploads/2010/10/1110-1112-Extend-a-Bench-2-300x133.jpg" alt="" width="300" height="133" />Como toda invenção, meu aprendizado é orientado à necessidade. Recentemente passei por um sufoco de espaço em disco em uma máquina virtual minha, que opera sobre um servidor Linux com KVM. Para melhor gerência, meus discos virtuais estão alocados como volumes lógicos LVM2, o que facilitou muito meu trabalho neste momento.</p>
<p>No meu caso, eu tinha uma VM montada sobre um volume de 10GB, e eu desejava expandir este espaço para 30GB, sem ter que anexar outro volume. Segui rigorosamente estes passos: parar a VM, expandir o volume lógico, dar boot com um CD ou pendrive de boot da distribuição, recriar a tabela de partições com o fdisk com os novos valores, estender a partição ext4 com resize2fs. Acompanhe mais detalhadamente abaixo.</p>
<h3>Volume lógico</h3>
<p>Antes de mais nada, a máquina virtual deverá estar desligada. No servidor hypervisior, execute o seguinte comando:</p>
<pre class="brush: bash; title: ; notranslate">lvextend -L +20G /dev/logical/plutus</pre>
<p>Isto faz com que meu volume lógico &#8216;plutus&#8217; seja aumentado em 20GiB (veja <a href="http://blogdovicente.com/2009/12/17/qual-a-diferenca-entre-gib-e-gb/" target="_blank">diferença entre GiB e GB</a>)</p>
<h3>Partição física do disco virtual</h3>
<p>Depois de o volume esticado, basta dar o boot na máquina virtual usando um disco de boot externo. Isto é importante porque vamos mexer na estrutura básica das partições. No meu caso eu uso Slackware64 13.1 e fdisk, mas nada impede de usar outra distro e ferramenta. O importante é que não haja formatação na finalização do processo. Aqui, assume-se que você saiba usar a ferramenta escolhida.</p>
<p>Na minha VM, eu tenho duas partições: / (root ou barra) como sda1 de 9,5GiB e swap como sda2 0,5GiB. Neste passo, preciso entrar no fdisk no dispositivo sda e excluir as duas partições. Mas calma! Isto não fará com que você perca seus dados, pois estamos apenas mexendo no mapeamento das partições, onde começa e termina o que. Depois de excluir, criei a partição número 1, que corresponde ao / com o tamanho de 29,5GiB e o restante para swap. Aqui é importantíssimo que se observe o início da partição 1, que deverá estar no mesmo bloco da anterior. Caso contrário, os dados ficarão inacessíveis. Feito isto, basta salvar a nova tabela de partições.</p>
<h3>Estendendo a partição ext4</h3>
<p>Aproveitando que não estamos rodando em cima do disco em questão, vamos efetivar o tamanho da partição útil do sistema. Para isto usarei o comando resize2fs do pacote e2fsprogs. Este passo é muito simples, basta usar o comando:</p>
<pre class="brush: bash; title: ; notranslate">resize2fs /dev/sda1</pre>
<p>Isto fará com que ele aumente a partição ext4 para o máximo possível, no caso 29,5GiB. É provável que ele solicite uma checagem com o fsck antes de fazer isto. Basta usar o comando:</p>
<pre class="brush: bash; title: ; notranslate">fsck /dev/sda1</pre>
<h3>Finalização</h3>
<p>Agora, basta testar. Antes mesmo de um boot no disco principal, tente montara nova partição:</p>
<pre class="brush: bash; title: ; notranslate">mount /dev/sda1 /mnt</pre>
<p>Se tudo correu bem, você poderá navegar na nova partição pelo ponto de montagem /mnt. Agora basta dar um reboot usando o disco principal.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.freedominterface.org/2010/10/20/estender-particao/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>nested paging em libvirt-0.8.4</title>
		<link>http://www.freedominterface.org/2010/09/28/nested-paging-em-libvirt-0-8-4/</link>
		<comments>http://www.freedominterface.org/2010/09/28/nested-paging-em-libvirt-0-8-4/#comments</comments>
		<pubDate>Tue, 28 Sep 2010 21:04:20 +0000</pubDate>
		<dc:creator>Eduardo Ramos</dc:creator>
				<category><![CDATA[servidores]]></category>
		<category><![CDATA[virtualização]]></category>

		<guid isPermaLink="false">http://www.freedominterface.org/?p=386</guid>
		<description><![CDATA[Segue abaixo uma atualização do patch anterior:]]></description>
			<content:encoded><![CDATA[<p>Segue abaixo uma atualização do patch <a href="http://www.freedominterface.org/2010/09/01/libvirt-e-nested-paging/" target="_self">anterior</a>:</p>
<pre class="brush: diff; title: ; notranslate">
diff -Naur libvirt-0.8.4/docs/schemas/domain.rng libvirt-0.8.4.edu/docs/schemas/domain.rng
--- libvirt-0.8.4/docs/schemas/domain.rng       2010-08-31 10:44:13.000000000 -0300
+++ libvirt-0.8.4.edu/docs/schemas/domain.rng   2010-09-28 14:34:40.626234752 -0300
@@ -1619,6 +1619,11 @@
               &lt;empty/&gt;
             &lt;/element&gt;
           &lt;/optional&gt;
+          &lt;optional&gt;
+           &lt;element name=&quot;nesting&quot;&gt;
+             &lt;empty/&gt;
+           &lt;/element&gt;
+         &lt;/optional&gt;
         &lt;/interleave&gt;
       &lt;/element&gt;
     &lt;/optional&gt;
diff -Naur libvirt-0.8.4/src/conf/domain_conf.c libvirt-0.8.4.edu/src/conf/domain_conf.c
--- libvirt-0.8.4/src/conf/domain_conf.c        2010-08-31 10:44:13.000000000 -0300
+++ libvirt-0.8.4.edu/src/conf/domain_conf.c    2010-09-28 14:35:36.069149447 -0300
@@ -75,7 +75,8 @@
 VIR_ENUM_IMPL(virDomainFeature, VIR_DOMAIN_FEATURE_LAST,
               &quot;acpi&quot;,
               &quot;apic&quot;,
-              &quot;pae&quot;)
+              &quot;pae&quot;,
+             &quot;nesting&quot;)

 VIR_ENUM_IMPL(virDomainLifecycle, VIR_DOMAIN_LIFECYCLE_LAST,
               &quot;destroy&quot;,
diff -Naur libvirt-0.8.4/src/conf/domain_conf.h libvirt-0.8.4.edu/src/conf/domain_conf.h
--- libvirt-0.8.4/src/conf/domain_conf.h        2010-08-31 10:44:13.000000000 -0300
+++ libvirt-0.8.4.edu/src/conf/domain_conf.h    2010-09-28 14:36:11.931054102 -0300
@@ -650,6 +650,7 @@
     VIR_DOMAIN_FEATURE_ACPI,
     VIR_DOMAIN_FEATURE_APIC,
     VIR_DOMAIN_FEATURE_PAE,
+    VIR_DOMAIN_FEATURE_NESTING,

     VIR_DOMAIN_FEATURE_LAST
 };
diff -Naur libvirt-0.8.4/src/qemu/qemu_conf.c libvirt-0.8.4.edu/src/qemu/qemu_conf.c
--- libvirt-0.8.4/src/qemu/qemu_conf.c  2010-09-10 09:38:13.000000000 -0300
+++ libvirt-0.8.4.edu/src/qemu/qemu_conf.c      2010-09-28 14:38:36.218612249 -0300
@@ -1192,6 +1192,8 @@
         flags |= QEMUD_CMD_FLAG_MEM_PATH;
     if (strstr(help, &quot;-chardev&quot;))
         flags |= QEMUD_CMD_FLAG_CHARDEV;
+    if (strstr(help, &quot;-enable-nesting&quot;))
+        flags |= QEMUD_CMD_FLAG_NESTING;
     if (strstr(help, &quot;-balloon&quot;))
         flags |= QEMUD_CMD_FLAG_BALLOON;
     if (strstr(help, &quot;-device&quot;))
@@ -3944,6 +3946,9 @@
             goto error;
         }
     }
+    if ((qemuCmdFlags &amp; QEMUD_CMD_FLAG_NESTING) &amp;&amp;
+        (def-&gt;features &amp; (1 &lt;&lt; VIR_DOMAIN_FEATURE_NESTING)))
+        ADD_ARG_LIT(&quot;-enable-nesting&quot;);

     /*
      * NB, -nographic *MUST* come before any serial, or monitor
@@ -6303,6 +6308,8 @@
             fullscreen = 1;
         } else if (STREQ(arg, &quot;-localtime&quot;)) {
             def-&gt;clock.offset = VIR_DOMAIN_CLOCK_OFFSET_LOCALTIME;
+        } else if (STREQ(arg, &quot;-enable-nesting&quot;)) {
+            def-&gt;features |= (1 &lt;&lt; VIR_DOMAIN_FEATURE_NESTING);
         } else if (STREQ(arg, &quot;-kernel&quot;)) {
             WANT_VALUE();
             if (!(def-&gt;os.kernel = strdup(val)))
diff -Naur libvirt-0.8.4/src/qemu/qemu_conf.h libvirt-0.8.4.edu/src/qemu/qemu_conf.h
--- libvirt-0.8.4/src/qemu/qemu_conf.h  2010-08-31 10:44:13.000000000 -0300
+++ libvirt-0.8.4.edu/src/qemu/qemu_conf.h      2010-09-28 14:38:58.739788135 -0300
@@ -93,6 +93,8 @@
     QEMUD_CMD_FLAG_NODEFCONFIG   = (1LL &lt;&lt; 37), /* -nodefconfig */
     QEMUD_CMD_FLAG_BOOT_MENU     = (1LL &lt;&lt; 38), /* -boot menu=on support */
     QEMUD_CMD_FLAG_ENABLE_KQEMU  = (1LL &lt;&lt; 39), /* -enable-kqemu flag */
+    QEMUD_CMD_FLAG_NESTING       = (1LL &lt;&lt; 40), /* Is the -enable-nesting flag available */
+
 };

 /* Main driver state */
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.freedominterface.org/2010/09/28/nested-paging-em-libvirt-0-8-4/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>libvirt e nested paging</title>
		<link>http://www.freedominterface.org/2010/09/01/libvirt-e-nested-paging/</link>
		<comments>http://www.freedominterface.org/2010/09/01/libvirt-e-nested-paging/#comments</comments>
		<pubDate>Wed, 01 Sep 2010 21:00:59 +0000</pubDate>
		<dc:creator>Eduardo Ramos</dc:creator>
				<category><![CDATA[servidores]]></category>
		<category><![CDATA[virtualização]]></category>

		<guid isPermaLink="false">http://www.freedominterface.org/?p=343</guid>
		<description><![CDATA[Embora o qemu-kvm já tenha suporte à páginas aninhadas (nested pages), a última versão do libvirt-0.8.3 ainda não suporta. Apenas para esclarecer, Nested Paging é um recurso disponível apenas para processadores AMD da linha Phenom ou superior. Maiores detalhes, consulte este documento. Pesquisei por referências de como habilitar a opção &#8216;-enable-nesting&#8217; do qemu-kvm no libvirt, [...]]]></description>
			<content:encoded><![CDATA[<p>Embora o qemu-kvm já tenha suporte à páginas aninhadas (nested pages), a última versão do <strong>libvirt-0.8.3</strong> ainda não suporta.</p>
<p>Apenas para esclarecer, <strong>Nested Paging</strong> é um recurso disponível apenas para processadores <strong>AMD</strong> da linha Phenom ou superior. Maiores detalhes, consulte <a href="http://developer.amd.com/assets/NPT-WP-1%25201-final-TM.pdf" target="_blank">este</a> documento.</p>
<p>Pesquisei por referências de como habilitar a opção &#8216;-enable-nesting&#8217; do qemu-kvm no libvirt, mas não encontrei. Depois de pelo menos 2 dezenas de cliques, eis que encontro na lista de e-mails dos desenvolvedores do libvirt <a href="https://www.redhat.com/archives/libvir-list/2009-November/msg00304.html" target="_blank">referências</a> já antigas (novembro de 2009), de como usar o nesting. Pois bem, meu trabalho se resumiu em ler certinho as mensagens e montar um patch. Mesmo que a versão que estou usando (0.8.3) seja muito mais nova que esse post, testei as alterações, e que maravilha, funcionou!!!</p>
<p>Depois de compilado e instalado, só precisei acrescentar na definição do domínio dentro da tag <strong>&lt;features&gt;</strong> uma tag <strong>&lt;nesting/&gt;</strong>. Depois disso é só iniciar a VM e ver que na linha de comando da sua máquina virtual tem o -enable-nesting.</p>
<p>Agradeço demais a equipe de desenvolvimento de qemu-kvm e libvirt!</p>
<p>Abaixo segue o meu patch para libvirt-0.8.3:</p>
<pre class="brush: diff; title: ; notranslate">
diff -Naur ../libvirt-0.8.3//docs/schemas/domain.rng ./docs/schemas/domain.rng
--- ../libvirt-0.8.3//docs/schemas/domain.rng   2010-07-29 06:48:30.000000000 -0300
+++ ./docs/schemas/domain.rng   2010-09-01 16:51:57.710851479 -0300
@@ -1595,6 +1595,11 @@
               &lt;empty/&gt;
             &lt;/element&gt;
           &lt;/optional&gt;
+          &lt;optional&gt;
+           &lt;element name=&quot;nesting&quot;&gt;
+             &lt;empty/&gt;
+           &lt;/element&gt;
+         &lt;/optional&gt;
         &lt;/interleave&gt;
       &lt;/element&gt;
     &lt;/optional&gt;
diff -Naur ../libvirt-0.8.3//src/conf/domain_conf.c ./src/conf/domain_conf.c
--- ../libvirt-0.8.3//src/conf/domain_conf.c    2010-08-02 16:16:42.000000000 -0300
+++ ./src/conf/domain_conf.c    2010-09-01 16:51:57.710851479 -0300
@@ -75,7 +75,8 @@
 VIR_ENUM_IMPL(virDomainFeature, VIR_DOMAIN_FEATURE_LAST,
               &quot;acpi&quot;,
               &quot;apic&quot;,
-              &quot;pae&quot;)
+              &quot;pae&quot;,
+             &quot;nesting&quot;)

 VIR_ENUM_IMPL(virDomainLifecycle, VIR_DOMAIN_LIFECYCLE_LAST,
               &quot;destroy&quot;,
diff -Naur ../libvirt-0.8.3//src/conf/domain_conf.h ./src/conf/domain_conf.h
--- ../libvirt-0.8.3//src/conf/domain_conf.h    2010-07-29 06:48:30.000000000 -0300
+++ ./src/conf/domain_conf.h    2010-09-01 16:51:57.710851479 -0300
@@ -649,6 +649,7 @@
     VIR_DOMAIN_FEATURE_ACPI,
     VIR_DOMAIN_FEATURE_APIC,
     VIR_DOMAIN_FEATURE_PAE,
+    VIR_DOMAIN_FEATURE_NESTING,

     VIR_DOMAIN_FEATURE_LAST
 };
diff -Naur ../libvirt-0.8.3//src/qemu/qemu_conf.c ./src/qemu/qemu_conf.c
--- ../libvirt-0.8.3//src/qemu/qemu_conf.c      2010-08-04 09:21:27.000000000 -0300
+++ ./src/qemu/qemu_conf.c      2010-09-01 16:57:47.485469640 -0300
@@ -1190,6 +1190,8 @@
         flags |= QEMUD_CMD_FLAG_MEM_PATH;
     if (strstr(help, &quot;-chardev&quot;))
         flags |= QEMUD_CMD_FLAG_CHARDEV;
+    if (strstr(help, &quot;-enable-nesting&quot;))
+        flags |= QEMUD_CMD_FLAG_NESTING;
     if (strstr(help, &quot;-balloon&quot;))
         flags |= QEMUD_CMD_FLAG_BALLOON;
     if (strstr(help, &quot;-device&quot;))
@@ -3907,6 +3909,9 @@
             goto error;
         }
     }
+    if ((qemuCmdFlags &amp; QEMUD_CMD_FLAG_NESTING) &amp;&amp;
+        (def-&gt;features &amp; (1 &lt;&lt; VIR_DOMAIN_FEATURE_NESTING)))
+        ADD_ARG_LIT(&quot;-enable-nesting&quot;);

     /*
      * NB, -nographic *MUST* come before any serial, or monitor
@@ -6265,6 +6270,8 @@
             fullscreen = 1;
         } else if (STREQ(arg, &quot;-localtime&quot;)) {
             def-&gt;clock.offset = VIR_DOMAIN_CLOCK_OFFSET_LOCALTIME;
+        } else if (STREQ(arg, &quot;-enable-nesting&quot;)) {
+            def-&gt;features |= (1 &lt;&lt; VIR_DOMAIN_FEATURE_NESTING);
         } else if (STREQ(arg, &quot;-kernel&quot;)) {
             WANT_VALUE();
             if (!(def-&gt;os.kernel = strdup(val)))
diff -Naur ../libvirt-0.8.3//src/qemu/qemu_conf.h ./src/qemu/qemu_conf.h
--- ../libvirt-0.8.3//src/qemu/qemu_conf.h      2010-07-28 11:18:15.000000000 -0300
+++ ./src/qemu/qemu_conf.h      2010-09-01 16:58:29.900876561 -0300
@@ -92,6 +92,7 @@
     QEMUD_CMD_FLAG_PCI_CONFIGFD  = (1LL &lt;&lt; 36), /* pci-assign.configfd */
     QEMUD_CMD_FLAG_NODEFCONFIG   = (1LL &lt;&lt; 37), /* -nodefconfig */
     QEMUD_CMD_FLAG_BOOT_MENU     = (1LL &lt;&lt; 38), /* -boot menu=on support */
+    QEMUD_CMD_FLAG_NESTING       = (1LL &lt;&lt; 39), /* Is the -enable-nesting flag available */
 };

 /* Main driver state */
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.freedominterface.org/2010/09/01/libvirt-e-nested-paging/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>ssh com chave privada</title>
		<link>http://www.freedominterface.org/2010/07/14/ssh-com-chave-privada/</link>
		<comments>http://www.freedominterface.org/2010/07/14/ssh-com-chave-privada/#comments</comments>
		<pubDate>Wed, 14 Jul 2010 15:09:26 +0000</pubDate>
		<dc:creator>Eduardo Ramos</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[redes]]></category>
		<category><![CDATA[servidores]]></category>
		<category><![CDATA[utilidades]]></category>

		<guid isPermaLink="false">http://www.freedominterface.org/?p=230</guid>
		<description><![CDATA[No mundo Linux o protocolo ssh é muito utilizado para administração remota e transferência segura de arquivos entre hosts, sendo na maioria servidores. Acredito que sua ampla adoção se deve à simplicidade, velocidade e segurança. Por padrão, na maioria das distribuições Linux ele usa autenticação por senha e um par de chaves públicas. Outro método [...]]]></description>
			<content:encoded><![CDATA[<p>No mundo Linux o protocolo <a href="http://pt.wikipedia.org/wiki/SSH" target="_blank">ssh</a> é muito utilizado para administração remota e transferência segura de arquivos entre hosts, sendo na maioria servidores. Acredito que sua ampla adoção se deve à simplicidade, velocidade e segurança. Por padrão, na maioria das distribuições Linux ele usa autenticação por senha e um par de chaves públicas.</p>
<p>Outro método de autenticação seria por meio de um par de chaves pública e privada. Nesse método, cada cliente possui uma chave privada que o identifica e deve ser protegida. O servidor recebe a chave pública correspondente de cada cliente para autenticar. Desta forma, não há, à princípio, necessidade de senha. Porém, o próprio certificado pode exigir uma senha para ser acessado, mas assim, ele será único para todos os servidores e não haverá tráfego de senha entre servidor e cliente. Vejamos como fazer isto:</p>
<p>No cliente, é preciso gerar as chaves com o seguinte comando:</p>
<pre class="brush: bash; title: ; notranslate">ssh-keygen</pre>
<p>Ele perguntará por uma senha. Caso queira fornecer, digite-a. Caso queira que o acesso seja direto, deixe em branco. Por padrão, ele gerará dois arquivos: ~/.ssh/id_rsa e ~/.ssh/id_rsa.pub. Respectivamente eles são a chave privada e pública em algorítmo <a href="http://pt.wikipedia.org/wiki/RSA" target="_blank">RSA</a>. Copie a chave pública para o servidor (assumindo que o IP dele é 10.0.0.8):</p>
<pre class="brush: bash; title: ; notranslate">scp ~/.ssh/id_rsa.pub 10.0.0.8:~</pre>
<p>No servidor, insira a chave pública recém recebida na lista de chaves autorizadas:</p>
<pre class="brush: bash; title: ; notranslate">cat ~/id_rsa.pub &gt;&gt; ~/.ssh/authorized_keys</pre>
<p>Feito isto, basta alterar o modo de autenticação do servidor. Acesse o arquivo de configuração /etc/ssh/sshd_config e altere, acrescente ou descomente as seguintes opções para que confira com o modelo:</p>
<pre class="brush: plain; title: ; notranslate">
# Define autenticação por chave pública RSA.
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile     .ssh/authorized_keys

# Desabilita autenticação por senha
PasswordAuthentication no
PermitEmptyPasswords no
</pre>
<p>Reinicialize o serviço do ssh. No Slackware execute <strong>/etc/rc.d/rc.sshd restart</strong>. Agora está pronto, basta testar. No cliente, pode-ser conectar usando duas sintaxes:</p>
<pre class="brush: bash; title: ; notranslate">ssh 10.0.0.8</pre>
<p>Use o exemplo acima caso o nome do arquivo e caminho da chave seja o padrão, ~/.ssh/id_rsa. Se for diferente, a seguinte sintaxe será necessária:</p>
<pre class="brush: bash; title: ; notranslate">ssh -i &lt;caminho completo para chave privada&gt; 10.0.0.8</pre>
<p>Para mais informações, o bom e velho <strong>man</strong> sempre ajuda.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.freedominterface.org/2010/07/14/ssh-com-chave-privada/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>libvirt e LVM2</title>
		<link>http://www.freedominterface.org/2010/07/07/libvirt-e-lvm2/</link>
		<comments>http://www.freedominterface.org/2010/07/07/libvirt-e-lvm2/#comments</comments>
		<pubDate>Wed, 07 Jul 2010 03:08:06 +0000</pubDate>
		<dc:creator>Eduardo Ramos</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[servidores]]></category>
		<category><![CDATA[utilidades]]></category>
		<category><![CDATA[virtualização]]></category>

		<guid isPermaLink="false">http://www.freedominterface.org/?p=208</guid>
		<description><![CDATA[Uma ótima forma de criar uma estrutura para suportar máquinas virtuais é a parceria entre libvirt e LVM2. No meu caso em específico, uso o emulador qemu-kvm para rodar minhas máquinas virtuais. A seguir, apresentarei como se cria um pool de volumes lógicos no libvirt e como converter máquinas já criadas em arquivos de imagens. [...]]]></description>
			<content:encoded><![CDATA[<p>Uma ótima forma de criar uma estrutura para suportar máquinas virtuais é a parceria entre libvirt e LVM2. No meu caso em específico, uso o emulador qemu-kvm para rodar minhas máquinas virtuais. A seguir, apresentarei como se cria um pool de volumes lógicos no libvirt e como converter máquinas já criadas em arquivos de imagens.</p>
<p>Antes de tudo, é necessário que já tenha sido criado um grupo virtual. Como isso não está no escopo do post, recomendo navegar por <a href="http://www.tldp.org/HOWTO/LVM-HOWTO/commontask.html" target="_blank">esse howto</a>. Com o grupo criado e ativado, vamos criar a definição do pool para o libvirt. Abra um editor de texto, como o vim, e coloque nele o seguinte texto:</p>
<pre class="brush: xml; title: ; notranslate">
&lt;pool type='logical'&gt;
&lt;name&gt;logical&lt;/name&gt;
&lt;source&gt;
&lt;device path='/dev/sdb1'/&gt;
&lt;name&gt;logical&lt;/name&gt;
&lt;format type='lvm2'/&gt;
&lt;/source&gt;
&lt;target&gt;
&lt;path&gt;/dev/logical&lt;/path&gt;
&lt;/target&gt;&lt;/pool&gt;</pre>
<p>Nesse exemplo, vamos assumir que a partição que compõe o grupo logico é o /dev/sdb1. Após, salve com um nome sugestivo, como por exemplo logical.xml. Agora só resta registrar no libvirt.</p>
<pre class="brush: bash; title: ; notranslate">virsh pool-define logical.xml</pre>
<p>Mesmo registrado, o sistema ainda não ativou o pool. É recomendado que ele seja marcado como <strong>autostart</strong>, para que caso o libvirt pare, ele ative automaticamente o pool. Para isto, basta os seguintes comandos:</p>
<pre class="brush: bash; title: ; notranslate">
virsh pool-autostart logical
virsh pool-start logical
</pre>
<p><a name="vol-create-as"></a>Com o pool inicializado, agora só resta criar um volume lógico dentro dele:</p>
<pre class="brush: bash; title: ; notranslate">virsh vol-create-as logical disco_teste 10GB</pre>
<p>Este comando criará um volume lógico de nome disco_teste no grupo logical tendo como capacidade 10GiB</p>
<h3>Convertendo arquivos de imagens em volumes lógicos</h3>
<p>Caso já tenha uma máquina virtual configurada em um arquivo de imagem nos formatos suportados pelo qemu, basta convertê-lo usando o próprio qemu-img para o formato desejado. Na versão 0.12.4 os formatos suportados são: cow, qcow, vdi, vmdk, cloop, dmg, bochs, qcow2, host_device, raw entre outros.</p>
<p>Antes de começar, é preciso criar um volume lógico com o mesmo tamanho da imagem existente. Para ter o valor correto, use a ferramenta qemu-img para saber o tamanho total da imagem:</p>
<pre class="brush: bash; title: ; notranslate">qemu-img info disco.img</pre>
<p>Ele retornará algo como:</p>
<pre class="brush: plain; title: ; notranslate">
image: disco.img
file format: qcow2
virtual size: 10G (10737418240 bytes)
disk size: 4.0G
cluster_size: 65536
</pre>
<p>Veja que, embora o arquivo tenha tamanho de 4GB, ele pode crescer até o tamanho virtual, que é de 10GB para esta imagem. Agora, crie um volume lógico com este tamanho seguindo o modelo logo <a href="#vol-create-as">acima</a>.</p>
<p>Eu conheço duas formas de levar o arquivo de imagem para um volume lógico. A primeira é usando o qemu-img para já gravar a imagem no volume:</p>
<pre class="brush: bash; title: ; notranslate">qemu-img convert -f qcow2 -O host_device disco.img /dev/logical/disco_teste</pre>
<p>Ou então, com uma etapa a mais, e portanto mais demorada, transformando a imagem do formato nativo para raw e depois transferindo os dados de forma bruta para o volume com o <strong>dd</strong>:</p>
<pre class="brush: bash; title: ; notranslate">
qemu-img convert -f qcow2 -O raw disco.img disco.raw
dd if=disco.raw of=/dev/logical/disco_teste
</pre>
<p>O resultado de ambos é o mesmo. Desde que tenha um domínio registrado com esse disco, agora é só usar o volume lógico recém criado. A definição de um disco em volume lógico segue o modelo:</p>
<pre class="brush: xml; title: ; notranslate">
&lt;devices&gt;
...
&lt;disk type='block' device='disk'&gt;
&lt;source dev='/dev/logical/disco_teste'/&gt;
&lt;target dev='sdc' bus='scsi'/&gt;
&lt;/disk&gt;
...
&lt;/devices&gt;
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.freedominterface.org/2010/07/07/libvirt-e-lvm2/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>libvirt no Slackware 13.1</title>
		<link>http://www.freedominterface.org/2010/07/01/libvirt-no-slackware-13-1/</link>
		<comments>http://www.freedominterface.org/2010/07/01/libvirt-no-slackware-13-1/#comments</comments>
		<pubDate>Thu, 01 Jul 2010 14:30:55 +0000</pubDate>
		<dc:creator>Eduardo Ramos</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[servidores]]></category>
		<category><![CDATA[virtualização]]></category>

		<guid isPermaLink="false">http://www.freedominterface.org/?p=116</guid>
		<description><![CDATA[Libvirt é um ótimo utilitário para gerenciamento de máquinas virtuais de algumas plataformas de virtualização, como Xen, KVM, VMWare ESX, VirtualBox, OpenVZ, entre outros. Neste post farei um guia rápido para instação dele. Como estou usando a distribuição Slackware, é interessante compilar o libvirt e gerar um pacote txz, no padrão da distribuição. Como o [...]]]></description>
			<content:encoded><![CDATA[<p>Libvirt é um ótimo utilitário para gerenciamento de máquinas virtuais de algumas plataformas de virtualização, como <strong>Xen, KVM, VMWare ESX, VirtualBox, OpenVZ</strong>, entre outros. Neste post farei um guia rápido para instação dele.</p>
<p>Como estou usando a distribuição Slackware, é interessante compilar o libvirt e gerar um pacote txz, no padrão da distribuição. Como o pessoal da <a href="http://www.slackbuilds.org" target="_blank">slackbuilds.org</a> já disponibilizou o script SlackBuild para ele, vamos aproveitar. Acesse esse <a href="http://slackbuilds.org/result/?search=libvirt&amp;sv=13.1" target="_blank">link</a> que mostrará o resultado da busca por libvirt no repositório. Como resultado, aparecerá o link para a página de download da versão mais atual que estiver no repositório. Clique no link.</p>
<p>Quando escrevi este post, a versão que estava lá era a 0.7.6, mas eu abordarei aqui a versão <strong>0.8.1</strong> por causa de novos recursos. Portanto, o único pacote necessário será o libvirt.tar.gz. Baixe-o clicando no link da página. O código fonte da versão <strong>0.8.1</strong> você encontrará <a href="http://libvirt.org/sources/libvirt-0.8.1.tar.gz" target="_blank">neste endereço</a>.</p>
<p>Dentre vários recursos desta versão, uma em especial eu gostaria de colocar em evidência: o suporte ao módulo macvtap. A grosso modo, isto possibilita anexar uma interface virtual tap em uma interface real. Assim é possível que o sistema operacional hóspede se integre à LAN real da máquina hospedeira. Este recurso está disponível a partir da versão <strong>2.6.34</strong> do kernel do Linux. Desta maneira, será necessário atualizar o kernel para esta versão. Como compilar o kernel não está no escopo do artigo, deixo apenas a informação de habilitar o recurso de macvtap na seção Device Drivers-&gt;Network device support-&gt;MAC-VLAN support e MAC-VLAN based tap device.</p>
<p>Supondo que os pacotes do libvirt foram salvos no diretório ~/libvirt, execute os seguintes passos:</p>
<pre class="brush: bash; title: ; notranslate">
cd ~/libvirt
tar xvf libvirt.tar.gz
mv libvirt/* .
</pre>
<p>Edite o arquivo libvirt.SlackBuild para alterar a versão de 0.7.6 para 0.8.1. Salve e vamos compilar:</p>
<pre class="brush: bash; title: ; notranslate">
ARCH=`uname -m` ./libvirt.SlackBuild
</pre>
<p>Aguarde terminar e após instale o pacote:</p>
<pre class="brush: bash; title: ; notranslate">installpkg /tmp/libvirt-0.8.1-x86_64-1.tar.gz</pre>
<h3>Configuração básica</h3>
<p>Verifique neste <a href="http://www.freedominterface.org/?p=96" target="_blank">post</a> um exemplo de script de inicialização para o serviço do libvirt. Copie o script para um arquivo chamado rc.libvirtd na pasta /etc/rc.d/. Devo lembrar de acrescentar sua chamada dentro do script rc.local, caso queira que ele suba automaticamente com o sistema, quando iniciado.</p>
<p>Por default, o servidor do libvirt abrirá um socket tls para acesso tcp, e para isto, é necessário gerar um certificado. Com a finalidade apenas de teste, não creio ser necessário isto, já que o acesso normalmente será feito pelo socket unix mesmo. Altere a opção <strong>listen_tls=1</strong> para l<strong>isten_tls=0</strong> no arquivo <strong>/etc/libvirt/libvirtd.conf</strong>. Não adianta só comentar esta linha, já que o default é habilitado.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.freedominterface.org/2010/07/01/libvirt-no-slackware-13-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>rc.libvirt</title>
		<link>http://www.freedominterface.org/2010/05/26/rc-libvirt/</link>
		<comments>http://www.freedominterface.org/2010/05/26/rc-libvirt/#comments</comments>
		<pubDate>Wed, 26 May 2010 21:08:19 +0000</pubDate>
		<dc:creator>Eduardo Ramos</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[servidores]]></category>
		<category><![CDATA[virtualização]]></category>

		<guid isPermaLink="false">http://www.freedominterface.org/?p=96</guid>
		<description><![CDATA[Segue abaixo um script de start e stop para o serviço libvirtd que fiz para Slackware:]]></description>
			<content:encoded><![CDATA[<p>Segue abaixo um script de start e stop para o serviço libvirtd que fiz para Slackware:</p>
<pre class="brush: bash; title: ; notranslate">
#!/bin/bash

MODULES=&quot;tun vhost_net&quot;
PIDFILE=&quot;/var/run/libvirtd.pid&quot;
TIMEOUT=${TIMEOUT:-40}
OPTS=${OPTS:-&quot;&quot;}

check_running_machines() {

  i=0

  for j in `virsh list | grep running | awk '{print $2;}'` ; do
    virsh shutdown $j
  done

  echo -n &quot;Waiting machines&quot;

  while [ $(virsh list | grep running | wc -l) -gt &quot;0&quot; ]; do
    if [ &quot;$i&quot; -ge &quot;$TIMEOUT&quot; ];then
      break
    fi
    echo -n &quot;.&quot;
    i=`expr $i + 1`
    sleep 1
  done

  echo &quot;&quot;

  if [ $(virsh list | grep running | wc -l) -gt &quot;0&quot; ];then

    echo -n &quot;The following machines are still running, forcing shutdown: &quot;
    for j in `virsh list | grep running | awk '{print $2;}'` ; do
      virsh destroy $j
      echo -n &quot;$j &quot;
    done

    echo &quot;&quot;
    sleep 2
  fi

}

check_processor() {

  egrep 'vmx' /proc/cpuinfo &gt; /dev/null

  if [ &quot;$?&quot; -eq &quot;0&quot; ];then
    MODULES=&quot;$MODULES kvm_intel kvm&quot;
  fi

  check=$?

  egrep 'svm' /proc/cpuinfo &gt; /dev/null

  if [ &quot;$?&quot; -eq &quot;0&quot; ];then
    MODULES=&quot;$MODULES kvm_amd kvm&quot;
  fi

  check=`expr $check + $?`

  if [ $check -eq &quot;2&quot; ];then
    echo &quot;Your systems does not support KVM!&quot;
  fi

}

start() {
  if [ -f $PIDFILE ];then
    echo &quot;libvirt is already running...&quot;
    exit 1
  fi
  echo &quot;Starting libvirtd...&quot;
  check_processor
  modprobe -a $MODULES
  libvirtd -d -l $OPTS
}

stop() {
  if [ ! -f $PIDFILE ];then
    echo &quot;libvirt is not running...&quot;
    exit 2
  fi
  check_running_machines
  check_processor
  echo &quot;Stopping libvirtd...&quot;
  kill -TERM `cat $PIDFILE`
  modprobe -ra $MODULES
}

case $1 in
start)
  start
  ;;
stop)
  stop
  ;;
restart)
  stop
  sleep 1
  start
  ;;
*)
  echo &quot;Usage: $0 (start|stop|restart)&quot;
  ;;
esac
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.freedominterface.org/2010/05/26/rc-libvirt/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>qemu-kvm</title>
		<link>http://www.freedominterface.org/2010/05/24/qemu-kvm/</link>
		<comments>http://www.freedominterface.org/2010/05/24/qemu-kvm/#comments</comments>
		<pubDate>Mon, 24 May 2010 13:58:22 +0000</pubDate>
		<dc:creator>Eduardo Ramos</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[servidores]]></category>
		<category><![CDATA[virtualização]]></category>

		<guid isPermaLink="false">http://www.freedominterface.org/?p=66</guid>
		<description><![CDATA[Embora os nomes mais fortes no âmbito de virtualização seja VMWare e Xen, vale a pena verificar uma solução emergente que é livre e está incorporada nativamente no kernel Linux, o KVM, e seu player Qemu-kvm, uma versão do emulador Qemu modificado para tirar o máximo proveito do KVM.]]></description>
			<content:encoded><![CDATA[<p>Há tempos venho usando a virtualização como meio de testar sistemas e multiplicar o número de máquinas de teste, que sem ela, seria quase impossível. Nesta última semana passei a me preocupar mais com o assunto. Embora eu já venha usando seus milagrosos recursos, nunca havia parado para ver que soluções existem na praça e como esta mágica funciona. Resolvi finalmente ler um livro sobre o tema que um amigo me emprestou há mais de um ano. Não sei o que é pior, não devolver o livro do amigo ou não ler. O livro se chama <a href="http://www.linuxnewmedia.com.br/shopping/livro/technical_review_01_virtualizacaeo" target="_blank">Virtualização</a>, publicado pela Linux Magazine.</p>
<p>Para quem ainda não leu, o livro fala do conceito de virtualização de uma forma bastante didática e direta apresentando softwares desta área, porém sua ênfase está na solução OpenSource <a href="http://www.xen.org/" target="_blank">Xen</a>. Ao ler o livro, me lembrei de um recurso que já tinha visto, mas não estudado antes, as instruções Intel-VT e AMD-V, que podem ser referenciadas como vmx e svm respectivamente no Linux. Lembrei também, que há opções disponíveis na tela de configuração do Kernel para habilitar esses recursos, o KVM. Falando rapidamente, o KVM (Kernel-based Virtual Machine) é uma implementação no kernel-space que permite melhor uso do recurso de virtualização do processador usando máquinas virtuais compatíveis com ele.</p>
<p>Mas o KVM não poderia trabalhar sozinho numa solução de virtualização. Pesquisando um pouco mais, vi que o emulador Qemu tem uma versão modificada para trabalhar com o KVM. Como usuário de Slackware que sou, encontrei o script SlackBuild no repostório não-oficial <a href="http://www.slackbuilds.org" target="_blank">SlackBuilds.org</a> do qemu-kvm. Baixei o pacote do qemu-kvm que estava no mesmo repositório juntamente com seu script e já mandei bala. Alterei o script para dizer qual arquiteturas quero emular. Para isto, basta definir a variável BUILD_ARCH que contém as arquiteturas separadas por um espaço. A lista de arquiteturas suportadas é: i386; x86_64; alpha; arm; armeb; cris; m68k; microblaze; mips; mipsel; ppc; ppc64; ppc64abi32; sh4; sh4eb; sparc; sparc64 e sparc32plus. No meu caso, ficou assim:</p>
<pre class="brush: plain; title: ; notranslate">BUILD_ARCH=&quot;i386 x86_64&quot;</pre>
<pre class="brush: bash; title: ; notranslate">ARCH=`uname -m` ./qemu-kvm.SlackBuild</pre>
<p>Depois disto, aguardei o fim da compilação e instalei:</p>
<pre class="brush: bash; title: ; notranslate">installpkg /tmp/qemu-kvm-0.12.3-x86_64-1_SBo.tgz</pre>
<p>Para seu uso, é importante que seu processador suporte a instrução vmx ou svm. Para saber se seu processador suporta, use o seguinte comando:</p>
<pre class="brush: bash; title: ; notranslate">egrep '(vmx|svm)' /proc/cpuinfo</pre>
<p>Se retornar alguma linha, quer dizer que seu processador está preparado. O KVM deve estar compilado com o kernel. Pode ser tanto incorporado no kernel como em módulo. No kernel huge do Slackware, ele já vem compilado como módulo. Para usá-lo, basta carregar o módulo.</p>
<p>Para AMD:</p>
<pre class="brush: bash; title: ; notranslate">modprobe -a kvm kvm_amd</pre>
<p>ou para Intel:</p>
<pre class="brush: bash; title: ; notranslate">modprobe -a kvm kvm_intel</pre>
<p>Agora só é preciso criar a máquina virtual.</p>
<p>O qemu vem com algumas ferramentas, mas aqui falarei apenas de duas: qemu e qemu-img. Antes de tudo, precisamos criar o disco virtual. Para isso, usei o qemu-img:</p>
<pre class="brush: bash; title: ; notranslate">qemu-img create -f qcow2 ~/teste.img 10G</pre>
<p>Traduzindo, mandei ele criar o arquivo de imagem ~/teste.img no formato qcow2 de tamanho 10G. Caso verifique o tamanho do arquivo de imagem e ele esteja muito pequeno, não se assuste. Ele cresce conforme demanda até o limite de 10G. Ainda não descobri como criar o imagem com todo seu espaço já alocado.</p>
<p>Agora basta rodar a máquina na linha de comando:</p>
<pre class="brush: bash; title: ; notranslate">qemu -hda ~/teste.img -cdrom ~/slackdvd.iso -boot d -m 256 -k pt-br -name Teste -net nic,model=pcnet -net user</pre>
<p>Traduzindo, eu pedi para o qemu inicializar a máquina de nome Teste atribuindo o disco ide primério como sendo teste.img, uma unidade de cdrom montada com a imagem slackdvd.iso. Pedi para que busque o boot na unidade d, ou seja, no dvd. Ele terá também 256MB de memória, um teclado com layout pt-br. Para conectividade use uma placa de rede do modelo pcnet e crie uma nat da minha interface de rede real para ela. Assim terei acesso à Internet. Caso não queira ter o terminal preso, acrescente a opção -daemonize.</p>
<p>Essa configuração é básica, apenas para se ter um primeiro contato. Vale observar também, que o comando qemu cria um ambiente 32bit. Para uso de sistemas 64bit, use o comando qemu-system-x86_64 em seu lugar. Para configurações mais completas, confira o manual do comando qemu:</p>
<pre class="brush: bash; title: ; notranslate">man qemu</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.freedominterface.org/2010/05/24/qemu-kvm/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Instalação NIS &#8211; Cliente</title>
		<link>http://www.freedominterface.org/2010/04/27/instalacao-nis-cliente/</link>
		<comments>http://www.freedominterface.org/2010/04/27/instalacao-nis-cliente/#comments</comments>
		<pubDate>Tue, 27 Apr 2010 14:25:20 +0000</pubDate>
		<dc:creator>Eduardo Ramos</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[redes]]></category>
		<category><![CDATA[servidores]]></category>

		<guid isPermaLink="false">http://freedominterface.org/wpblog/?p=55</guid>
		<description><![CDATA[O cliente é levemente parecido com o cliente, apenas algumas opções a mais. Primeiramente no arquivo /etc/yp.conf definimos qual o domínio que pertenceremos e qual é o servidor NIS deste. Este arquivo ficará com o seguinte conteúdo, apenas: Agora é preciso indicar ao sistema que procure as informações de login no NIS. Para isto, alteraremos o arquivo /etc/nsswitch.conf. [...]]]></description>
			<content:encoded><![CDATA[<p>O cliente é levemente parecido com o cliente, apenas algumas opções a mais. Primeiramente no arquivo /etc/yp.conf definimos qual o domínio que pertenceremos e qual é o servidor NIS deste. Este arquivo ficará com o seguinte conteúdo, apenas:</p>
<pre class="brush: plain; title: ; notranslate">domain dominio_nis server endereço_do_servidor</pre>
<p>Agora é preciso indicar ao sistema que procure as informações de login no NIS. Para isto, alteraremos o arquivo /etc/nsswitch.conf. Localize as linhas que contenham as configurações para os arquivos passwd, group e shadow. Altere para o seguinte:</p>
<pre class="brush: plain; title: ; notranslate">passwd:		files nis
shadow:		files nis
group:		files nis</pre>
<p>Isto fará com que o sistema procure primeiramente nos arquivos locais, caso não encontre, procurará via NIS. Mais outro detalhe, é importante para que isto aconteça. No final do arquivo /etc/passwd, acrescente uma linha igual à esta:</p>
<pre class="brush: plain; title: ; notranslate">+::::::</pre>
<p>No arquivo /etc/group, por sua vez, acrescente:</p>
<pre class="brush: plain; title: ; notranslate">+:::</pre>
<p>Está quase pronto. Agora para usarmos a autenticação remota, precisamos definir nosso domínio NIS com o comando:</p>
<pre class="brush: bash; title: ; notranslate">nisdomainname [dominio]</pre>
<p>Observe que o domínio do servidor e cliente deverão ser o mesmo. Após, apenas inicializaremos o NIS cliente com o comando:</p>
<pre class="brush: bash; title: ; notranslate">/usr/sbin/ypbind</pre>
<p>Depois de tudo isto, os usuários terão que ser cadastrados apenas no servidor, podendo ser logados de qualquer máquina cliente do servidor NIS.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.freedominterface.org/2010/04/27/instalacao-nis-cliente/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

