Bloquear alteração do proxy no Firefox

Bloquear alteração do proxy no Firefox
Para impedir que usuários alterem a configuração do proxy vamos ao passo a passo:

Acesse a pasta “C:\Program Files\Mozilla Firefox”

Crie o arquivo “mozilla.txt”

Dentro do arquivo insira as seguintes linhas
lockPref(“network.proxy.backup.ftp”,”192.168.0.1″);
lockPref(“network.proxy.backup.ftp_port”,3128);
lockPref(“network.proxy.backup.socks”,”192.168.0.1″);
lockPref(“network.proxy.backup.socks_port”,3128);
lockPref(“network.proxy.backup.ssl”,”192.168.0.1″);
lockPref(“network.proxy.backup.ssl_port”,3128);
lockPref(“network.proxy.ftp”,”192.168.0.1″);
lockPref(“network.proxy.ftp_port”,3128);
lockPref(“network.proxy.http”,”192.168.0.1″);
lockPref(“network.proxy.http_port”,3128);
lockPref(“network.proxy.no_proxies_on”,”localhost, 127.0.0.1″);
lockPref(“network.proxy.share_proxy_settings”,true);
lockPref(“network.proxy.socks”,”192.168.0.1″);
lockPref(“network.proxy.socks_port”,3128);
lockPref(“network.proxy.ssl”,”192.168.0.1″);
lockPref(“network.proxy.ssl_port”,3128);
lockPref(“browser.startup.homepage”,”http://www.google.com.br/”);
lockPref(“network.proxy.type”,1);

Altere “192.168.0.1” para o endereço de seu proxy, mas mantenha as “”.
Altere “http://www.google.com.br/” para uma página padrão de sua preferencia mas mantenha as “”.

Agora que temos o .txt precisamos transforma-lo em .cfg, nas versões mais antigas do firefox era somente renomear as extensões e pronto, nos mais novos precisamos passa-lo por um conversor.

Para isso acesse http://www.alain.knaff.lu/howto/MozillaCustomization/cgi/byteshf.cgi, na segunda opção onde aparece “Upload mozilla.txt to get mozilla.cfg (byteshift 13)” clique em “Selecionar arquivo” e selecione o mozilla.txt que criamos e clique em “Convert mozilla.txt to mozilla.cfg”

Pronto agora temos o mozilla.cfg configurado.

Para finalizar temos que “obrigar” o navegador a usar essa configuração para todos os usúarios.

Abra a pasta “C:\Program Files\Mozilla Firefox\defaults\pref”, crie um arquivo chamado all.js edite ele e insira as seguintes informações:
pref(“general.config.filename”, “mozilla.cfg”);
pref(“general.config.obscure_value”, 13);

Em alguns casos precisei reiniciar a máquina para funcionar.

Pronto abra o navegador e você verá que o proxy esta configurado e não tem como alterar as configurações.

Automatic Proxy Configuration via DHCP

Para evitar a configuração manual demorado de um servidor proxy em todos os computadores, telefones e tablets, a configuração do proxy pode ser fornecido automaticamente via DHCP usando WPAD .

Para esta configuração, são necessários os seguintes componentes:

Um servidor DHCP que anuncia a opção de DHCP 252 com a URL do PAC arquivo (wpad.dat).
Um servidor web que serve o arquivo wpad.dat
Um arquivo PAC wpad.dat onde o IP Proxy é definida

Em um sistema MikroTik, a configuração do servidor DHCP se parece com isso:

/ Opção dhcp-server ip
adicionar código = 252 name = locais-pac-servidor value = ” ‘http: //192.168.0.2:80/wpad.dat’ ”
/ Network dhcp-server ip
adicionar o endereço = 192.168.0.0 / 24 dhcp-option =-pac-servidor local dns-server = 192.168.0.1 do gateway 192.168.0.1 = máscara de rede = 24

Por favor, note que o questionmark à direita na URL para o arquivo PAC. Esta é uma solução para mais uma ocorrência de RFC picuinhas onde algumas implementações podem interpretar mal a opção DHCP e adicione um caractere NULL-byte codificado para o final da URL ao solicitar o arquivo PAC do servidor web.
Com o questinmark no final da URL, qualquer personagem adicional NULL-byte será ignorado pelo servidor eo arquivo PAC será carregado apenas multa.

Seguindo o exemplo acima, no 192.168.0.2 máquina, servimos o seguinte arquivo wpad.dat:

FindProxyForURL função (url, host) {
retornar “PROXY 1.2.3.4:8080; DIRECT”;
}

Com esta configuração, todos os sistemas vai usar o proxy no 1.2.3.4 e se o proxy não está disponível tentar se conectar diretamente à Internet.
Enquanto isso é bom para uma rede doméstica, onde o proxy é usado principalmente para AdBlocking, você provavelmente vai querer remover a parte direta em uma configuração empresarial.

Servidor Linux: Configurando Zonas de DNS e VirtualHosts no Apache 2

Iremos configurar as zonas de domínios e sub-domínios, e fazer com que o Apache 2 responda por esses domínios no ambiente WEB. Em suma, o que vou demonstrar é como configurar o domínio nossoserver.com, o sub-domínio guarani.campeaobrasileiro.com.br e fazer com que através do navegador consigamos acessá-los pelos endereços http://www.nossoserver.com e http://guarani.campeaobrasileiro.com.br.

O processo aqui descrito é basicamente o mesmo apresentado na documentação oficial do Ubuntu Intrepid Ibex (Ubuntu 8.10), na seção de configuração do BIND. Porém gosto de entender cada linha e cada parâmetro configurado, então tentei deixar o mais detalhado possível, explicando em detalhes a configuração do arquivo de zona e os principais tipos de registro DNS. Finalizarei com as configurações para o Apache 2, que por sinal, são bem simples.

Adicionando uma zona Primary Master

Vamos editar o arquivo /etc/bind/named.conf.local para inserirmos as informações da zona de DNS.

# vi /etc/bind/named.conf.local

Basta inserir as linhas abaixo lembrando de substituir o domínio nossoserver.com pelo domínio de sua escolha.

zone "nossoserver.com" {
type master;
file "/etc/bind/zonas/db.nossoserver.com";
};

Entendendo cada linha:

  • zone – onde deverá ser inserido o nome do domínio, no nosso caso nossoserver.com;
  • type – o tipo de configuração da zona, em nosso caso é master, pois o responderá de forma autoritária por todas as consultas feitas ao domínio. Outros tipos são: forward, hint, slave (utilizado para configuração em servidores secundários de DNS), stub e delegation-only. No final deste post, na seção fontes, é possível acessar um link que detalha cada um dos tipos;
  • file – caminho do arquivo de configuração da zona de de DNS.

Após inserir as linhas, salve o arquivo (:wq!).

A melhor forma de configurarmos o arquivo de zona é utilizando o modelo fornecido pelo próprio BIND no arquivo /etc/bind/db.local. Então vamos criar o diretório onde ficarão as zonas (por questão de organização eu coloco em um diretório em separado, no caso o diretório se chama zonas) e copiar o modelo:

# mkdir /etc/bind/zonas
# cp /etc/bind/db.local /etc/bind/zonas/db.nossoserver.com

Agora vamos editar o arquivo db.nossoserver.com:

# vi /etc/bind/zonas/db.nossoserver.com

Você deverá alterá-lo deixando-o como abaixo:
;
;BIND data file for local loopback interface
;
$TTL 86400
@ IN SOA zenon.nossoserver.com. root.nossoserver.com. (
2009041701 ;Serial
43200 ;Refresh
900 ;Retry
2419200 ;Expire
3600) ; Negative Cache TTL
;
@ IN NS zenon.nossoserver.com.
@ IN A 192.168.0.2
zenon IN A 192.168.0.2
careca IN A 192.168.0.4
www IN CNAME careca.nossoserver.com
bozo IN A 192.168.0.1

 

Faça as alterações conforme suas configurações locais.

Antes de entendermos cada linha, vale avisar que o ponto-e-virgula deve preceder comentários.

Entendendo cada linha:

  • $TTL – (time-to-live) é o tempo, em segundos, que a informação da zona DNS deverá ser armazenada em cache, ou seja, os servidores que armazenaram as informações da zona, deverão considerar a informação válida apenas dentro do período TTL e caso seja necessária uma nova consulta e o TTL já tenha expirado, então o servidor DNS deve ser consultado novamente. O tempo recomendado pela RFC 1912 é de um dia. Se o TTL for zero, então a informação não será armazenada em cache;
  • SOA – é a linha de definição da autoridade do domínio. Define o nome da zona, servidor de DNS e e-mail do responsável. Possui cinco colunas:
Nome Classe RR Nome do Servidor E-mail do responsável
@ IN SOA zenon.nossoserver.com. root.nossoserver.com.
  • Nome – normalmente utiliza-se @, pois é a referência ao nome original da zona definido (em nosso caso) no arquivo /etc/bind/named.conf.local;
  • Classe – historicamente existem mais duas opções HS e CH, porém são padrões do MIT e não são mais utilizados, portanto deve se utilizar IN como referência a Internet;
  • Nome do servidor – parâmetro MNAME referente ao nome do servidor DNS e deve ser finalizado por ponto “.”;
  • E-mail do responsável – parâmetro RNAME que indica o e-mail do responsável pela zona.
  • Serial – deve ser incrementado a cada alteração no arquivo de zona, por isso que deixei como 1. Porém alguns administradores de rede preferem deixar a data da última alteração, por exemplo 2009041701, ou seja 17/14/2009 e 01 por ser a primeira configuração. Servidores secundários fazem a atualização da sua configuração caso o valor seja aumentado;
  • Refresh – informa ao servidor secundário de DNS quando deverá ser atualizada a informação da zona. Também é configurado em segundos e o recomendado é doze horas, ou seja 43200 segundos;
  • Retry – define o tempo entre cada tentativa (sem sucesso) de contato entre o servidor de DNS secundário e o primário. Também definido em segundos e o tempo recomendado é de três a quinze minutos;
  • Expire – usado apenas por servidores de DNS secundário. Tem como função indicar quando o servidor secundário parará de responder pela zona e contatará o servidor principal;
  • Negative Cache TTL – tempo que um erro de DNS fica em cache. (Sinceramente não consegui concluir o objetivo deste parâmetro).

Os tempos definidos na configuração de SOA não precisam ser escritos diretamente em segundos, o que reflete em menos uso de calculadora. Você pode utilizar letras como atalhos da configuração. Explicando melhor: No TTL quando definimos 86400 segundos, ou seja, 1 dia, então poderíamos ter configurado como 24H ou 1D, para o Refresh que definimos como 43200 segundos, ou seja, 12 horas, poderíamos ter colocado 12H.

Registros do DNS

Além da configuração básica da zona, também é necessário configurar os demais registros do DNS. É importante destacar que a estrutura aplicada aos demais RRs (resource records) é o mesmo da definição do SOA.

Em nosso caso, a linha registro zenon IN A 192.168.0.2 faz com que todos as máquinas que utilizem este servidor DNS possam acessar a máquina zenon.nossoserver.com apenas com um a palavra zenon, pois foi mapeada com o RR A para o IP 192.168.0.2. Já o registro www é necessário para que configuremos o domínio http://www.nossoserver.com para que responda no servidor careca.nossoserver.com. Então foi mapeado para o servidor 192.168.0.4.

Repare que as últimas duas linhas de registro são referência aos demais servidores, ou seja, o servidor WEB chamado de careca.nossoserver.com e o gateway que foi chamado de bozo.nossoserver.com. Cada um deles foi mapeado para seu IP.

Principais tipos de registros DNS

Existem outros tipos de registros, porém os mais comuns são A, MX, CNAME e NS:

  • A – faz o mapeamento de um nome à um IP em formato IPv4. Exemplo:
    www IN A 192.168.0.2
  • CNAME – faz o mapeamento de nome (apenas de nomes) para o nome do servidor. Exemplo:
    web IN CNAME www.nossoserver.com.
  • MX – especifica o nome e a preferencia do servidor de e-mail. Exemplo:
    IN MX 10 mail.nossoserver.com.
    mail IN A 192.168.0.100
  • NS – aponta qual é o servidor que responde pelo domínio. Exemplo:
    @ IN NS zenon.nossoserver.com.
  • PTR – utilizado na configuração do dns reverso (veremos mais abaixo) mapeia um IP a um nome, ou seja, faz o papel inverso do tipo A. Exemplo:
    2 IN PTR www.nossoserver.com
  • SRV – tentando ser bem sucinto, a função deste registro é mapear serviços e é utilizado por serviços de diretórios como o LDAP. Voltaremos ao assunto no próximo post quando trataremos da integração entre o Active Directory e o Bind. Por hora, acesse o link com maiores detalhes: http://www.zytrax.com/books/dns/ch8/srv.html.

Configurando a zona reversa

Primeiro vamos entender o que é e pra que serve a zona reversa de DNS. Zona reversa tem como objetivo revelar o nome de um host a partir de um IP. Ou seja, é baseado no tipo de registro PTR.

A criação da zona reversa segue o mesmo procedimento da criação do arquivo de zona, onde o registro SOA tem a mesma configuração de uma zona “normal”. A única diferença é relativo aos registros PTR, onde devemos mapear um IP para um nome (host name). Então vamos utilizar o próprio arquivo de zona como modelo.

Vamos copiá-lo e editá-lo:

# cp /etc/bind/zonas/db.nossoserver.com /etc/bind/zonas/db.192
# vi /etc/bind/zonas/db.192

O código deverá ficar como abaixo, porém é necessário que você faça as alterações conforme suas configurações:

;
;BIND data file for local loopback interface
;
$TTL 86400
@ IN SOA zenon.nossoserver.com. root.nossoserver.com. (
2009041701 ;Serial
43200 ;Refresh
900 ;Retry
2419200 ;Expire
3600) ; Negative Cache TTL
;
@ IN NS zenon.
2 IN PTR zenon.nossoserver.com.
4 IN PTR careca.nossoserver.com.
1 IN PTR bozo.nossoserver.com.

Agora basta salvar o arquivo e reinicializar o serviço BIND:

# /etc/init.d/bind9 restart

Verifique qualquer ocorrência no log com o comando:

# cat /var/log/syslog | grep named

Testando as configurações

Para testar se as configurações estão corretas, antes mesmo de reinicializar o serviço BIND, basta utilizar os comandos abaixo:

# named-checkzone nossoserver.com /etc/bind/zonas/db.nossoserver.com
# named-checkzone nossoserver.com /etc/bind/db.192

Os resultados devem aparecer como estes:

zone nossoserver.com/IN: loaded serial 2
OK

zone nossoserver.com/IN: loaded serial 1
OK

A ferramenta named-checkzone é muito útil para validarmos e verificarmos se nossos arquivos de zona estão configurados corretamente com o domínio definido.

Depois de reinicializado o serviço BIND, você poderá testar suas configurações de DNS com os comandos:

# ping nossoserver.com
# dig axfr nossoserver.com

Configurando um sub-domínio

Agora vamos adicionar o sub-domínio guarani.campeaobrasileiro.com.br. O processo é bem simples e caso você tenha lido com atenção as informações acima, você não precisará dedicar muito tempo a esta parte do tutorial.

Primeiramente vamos editar o arquivo /etc/bind/named.conf.local e adicionar as linhas abaixo:

# vi /etc/bind/named.conf.local
zone "guarani.campeaobrasileiro.com.br"{
type master;
file "/etc/bind/zonas/db.guarani.campeaobrasileiro.com.br";
};

Após salvar o arquivo, então vamos criá-lo no diretório zonas e deixá-lo como o exemplo abaixo:

# vi /etc/bind/zonas/db.guarani.campeaobrasileiro.com.br

;
;BIND data file for local loopback interface
;
$TTL 86400
@ IN SOA zenon.nossoserver.com. root.nossoserver.com. (
2009041701 ;Serial
43200 ;Refresh
900 ;Retry
2419200 ;Expire
3600) ; Negative Cache TTL
;
@ IN NS zenon.nossoserver.com.
@ IN A 192.168.0.4

Pronto, salve o arquivo, reinicialize o serviço BIND e o sub-domínio estará configurado. Porém, é necessário configurarmos o Apache 2 para que o sub-domínio seja acessível via navegador.

Configurando o Apache 2 para responder pelo domínio

Agora, depois de explicar e detalhar a configuração da zona dns e criarmos nosso domínio e sub-domínio, vamos fazer com que eles sejam acessíveis via navegador, sendo assim, será possível acessá-los digitando no navegador: http://www.nossoserver.com e http://guarani.campeaobrasileiro.com.br.

Supondo que você tenha o Apache 2 instalado e configurado. Vamos acessar o servidor careca.nossoserver.com e editar o arquivo /etc/apache2/sites-available/default inserindo as informações do domínio e do sub-domínio.

# vi /etc/apache2/sites-available/default

Insira as linhas abaixo:

<VirtualHost *:80>
ServerName www.nossoserver.com
DocumentRoot /var/www/www.nossoserver.com
</VirtualHost>
<VirtualHost *:80>
ServerName guarani.campeaobrasileiro.com.br
DocumentRoot /var/www/guarani.campeaobrasileiro.com.br
</VirtualHost>

Entendendo as linhas inseridas:

  • VirtualHost – deixei para que qualquer entrada na porta 80 seja entendido pela configuração;
  • ServerName – o nome do servidor, um pouco óbvio, porém é o endereço do domínio ou sub-domínio que será digitado no navegador;
  • DocumentRoot – caminho onde estão localizados os arquivos que deverão ser exibidos no site, por exemplo, arquivos html, php, png, etc.

Vale lembrar que é necessário existir os diretórios configurados na tag DocumentRoot. E para que você possa ter um resultado mais consistente, eu sugiro que seja criada uma página chamada index.html dentro de cada um dos diretórios.

Agora basta reinicializar o serviço Apache 2 e testar em seu navegador.

# /etc/init.d/apache2 force-reload

Recursivamente procurar e substituir uma palavra em vários arquivos

O sistema operacional Linux oferece várias ferramentas para gerenciamento e edição de arquivos, neste artigo mostram como usar alguns comandos para substituir uma ou mais palavras em um arquivo de texto. Um comando bastante útil quando você precisa substituir uma ou mais palavras em alguns arquivos é este:

sed -i 's/parola1/parola2/g' *.txt

desta forma será substituído por word1 word2em todos os arquivos de texto no diretório atual.

Mas se tivéssemos que fazer isso também substituir os arquivos em algumas pastas, então sob o comando torna-se:

find ./ -type f -exec sed -i 's/parola1/parola2/g' '{}' \;

neste caso, eu fiz sem o filtro do tipo de arquivo .txt e depois serão levados em conta todos os arquivos no diretório atual e seus subdiretórios.

Com o comando find que foi utilizado o “-exec” que permite executar um comando de cada vez que um arquivo é encontrado, que respeite as regras estabelecidas para a pesquisa. No caso anterior, a pesquisa inclui todos os elementos de “file” tipo e excluir os diretórios.
Tudo está coberto por “-exec” é o comando a ser executado e seus parâmetros, para o caractere “;” indicando o final da cadeia de comando.
Outro elemento-chave é o símbolo “{}“Indica que o nome real do arquivo e descobriu que, desta forma ser usado como um parâmetro do comando que deseja executar. No comando anterior chaves” {} “foram listadas e no final de comando é precedido de uma barra “\” para proteger esses símbolos de ‘expansão shell.
O comando é executado no diretório de partida, então se o comando digitado necessita de uma saída deve ser levado em conta.

Conselho a buscar em primeiro lugar a palavra, só para ver o que será encontrado e substituído:

find ./ -type f -exec grep -r "parola1" '{}' \;

Ou você pode usar o comando:

find ./ -type f -print0 | xargs -0 grep "parola1"

desta forma irá exibir todas as linhas que contêm a string.

Em particular, a directiva tem sido usado “-print0” que permite a saída do nome completo terminada por um caractere nulo. Desta forma, o string produzida pode ser interpretado corretamente pelo programa a seguir.
Na verdade, a saída do findestá conectada com um tubo para xargs comando cujo parâmetro “-0” indica que os nomes dos arquivos recebidos como um fim de entrada com um caractere nulo.

O comando “xargs” é responsável por receber os nomes dos arquivos e executar o comando ” grep “, que por sua vez usa os parâmetros passados ​​para xargs.

Se você só quer ver exibido o nome do arquivo que a contém, o comando é:

find ./ -type f -print0 | xargs -0 grep -l "parola1"

O parâmetro “-l” indica que temos como saída uma lista de nomes de arquivos, mas não as linhas, foram encontrados nos jogos.

Faço notar que em todos os comandos listados tem sido sugerido que a pesquisa para acontecer no diretório atual e todos os seus sub-diretórios, mas se quisermos olhar para qualquer diretório que você deve inserir o caminho (relativo ou absoluto):

find /home/user/ -type f | xargs grep -l "parola1"

Finalmente, se não fosse necessário o uso de parâmetros complexos para a busca de arquivos e deseja apenas pesquisa recursivamente uma palavra ou frase dentro dos arquivos em subdiretórios múltiplas, muito mais simples basta usar o comando grep com o “-r

grep “this text” *.php -rDesta forma ele vai olhar para a string “este texto” em todos os arquivos. “Php” no diretório atual e todos os seus subdiretórios.

Um pouco sobre IPTABLES – Firewall do Linux

====== Firewall e roteamento avançado no Linux ======

===== Introdução =====

==== Objetivo =====

Apresentar as diversas ferramentas e funcionalidades existentes no Linux para implementação de 
Firewall e roteadores. O uso específico de cada ferramenta não será coberto por este artigo e 
caberá ao leitor se aprofundar nestes assuntos.

==== Pré Requisitos ====

É assumido que o leitor tenha conhecimentos básicos sobre sistemas GNU / Linux e redes TCP/IP 
(incluindo firewalls e roteamento).

É recomendado que o leitor acompanhe o artigo com o manual de cada ferramenta aberto para 
consulta.

====== Firewall: IP Tables ======

A ferramenta atual para firewall no Linux é o http://www.netfilter.org/projects/iptables/|iptables]]. 
O iptables é constituído de uma série de aplicativos existentes no [[wp>Userland_(computing)|
userland]] que interagem com o [[http://www.netfilter.org/|netfilter]], que é a implementação de 
firewall em nível de [[wppt>Kernel|kernel]].

O iptables se baseia em pares de regras e ações. As regras definem em quais pacotes atuar 
(eg. pacotes originados de uma rede em específico) e a ação define qual atitude deve ser 
tomada quando um pacote bater com a regra em questão (eg. recusar pacotes de origens duvidosas). 
O netfilter irá processar todas as regras sequencialmente, e quando encontrar uma que especifique 
um dado pacote, ele atuará com a ação par daquela regra. As ações podem ser terminativas ou não. 
Por exemplo, uma ação que diz ao netfilter para ignorar um pacote é executada e nenhuma outra é 
executada. Esta é uma ação terminativa. Por outro lado, uma ação especificando para apenas 
notificar a existência de um pacote, faz seu papel e diz ao netfilter para continuar processando
 as demais regras (eg. fazer log quando certo pacote passa pela máquina).

A principal ferramenta é o comando ''iptables'', que pode ter seu manual acessado com

  # man iptables

As próximas sessões explicam como e quais são as partes que compõe este funcionamento.

===== Tabelas =====

O nome iptables vem do fato de internamente o iptables funcionar em cima de tabelas, cada uma 
especializada num tipo de tratamento de pacotes. As tabelas existentes são (kernel 2.6.8, pode 
variar para outras versões):

  * ''raw:'' onde são feitas algumas alterações em mais baixo nível nos pacotes
  * ''filter:'' nesta tabela cabem as regras responsáveis pela filtragem de pacotes
  * ''nat:'' mudanças nos cabeçalhos dos pacotes (incluindo NAT e //IP Masquerade//)
  * ''mangle:'' usada para alterações específicas nos pacotes

Portanto, dependendo do que se deseja fazer com um pacote em específico, existe uma tabela 
adequada para tal.

===== Cadeias =====

No iptables, existem diversas cadeias, a cada uma associado um certo tipo de tráfego. São elas:

  * ''PREROUTING'': tráfego ingressante na máquina (incluindo tráfego gerado localmente com destino local)
  * ''INPUT'': tráfego que tem como destino a própria máquina
  * ''FORWARD'': tráfego passante pela máquina
  * ''OUTPUT'': tráfego gerado localmente (tanto com destino local como remoto)
  * ''POSTROUTING'': todo tráfego que "sai" da máquina (incluindo tráfego gerado localmente com destino local)

Também é possível a criação de tabelas personalizadas, tópico que não será abordado.

A cadeia ''FORWARD'' tem um tratamento especial na kernel do Linux, e vem com uma trava fora do 
firewall, que por padrão bloqueia tráfego por ela. Para permitir seu funcionamento, é necessário 
configurar o seguinte parâmetro da kernel do Linux:

  net.ipv4.ip_forward=1

Sua ativação é feita pelo comando ''sysctl'', e pode ser automatizada na maioria das 
distribuições adicionando esta linha ao arquivo ''/etc/sysctl.conf''. Para ativar manualmente:

  # sysctl -w net.ipv4.ip_forward=1

**Nota:** Nas versões do Debian GNU/Linux anteriores (e incluindo) a Sarge, o arquivo 
''/etc/network/options'' pode ser usado para configurar este e outros parâmetros. É uma 
configuração tida como legado e errada e não aparece mais em novas versões. Tenha certeza de que 
nenhum método (''sysctl.conf'' ou ''options'') está sobrepassando a configuração do outro.

===== Fluxograma =====

O fluxo de dados que ocorre internamente na kernel do Linux pode ser descrito pelo fluxograma 
abaixo. Em cada caixa, está evidenciada a cadeia atuante do iptables, e as tabelas válidas na 
cadeia em questão. O tráfego passa por cada uma das tabelas em sequência em uma dada cadeia. 
Por exemplo, na cadeia ''PREROUTING'', existem as tabelas ''raw'', ''mangle'' e ''nat''. 
Tráfego que se enquadra nesta cadeia irá passar sequencialmente pelas três tabelas indicadas.

         Tráfego
        de Entrada
            |
            |
            V
       +----------+
       |PREROUTING|
       +----------+
       |   raw    |  <--------------+
       |  mangle  |                 |
       |   nat    |                 |
       +----------+                 |
            |                       |
            |                       |
         Decisão                    |
      +-   de     -+                |
      | Roteamento |                |
      |            |                |
      V            V                |
   Destino       Destino            |
    Local        Remoto             |
      |            |                |
      |            |                |
      V            V                |
  +--------+  +---------+           |
  | INPUT  |  | FORWARD |           |
  +--------+  +---------+           |
  | mangle |  | mangle  |           |
  | filter |  | filter  |           |
  +--------+  +---------+           |
      |            |                |
      |            |                |
      V            |                |
   Máquina         |                |
    Local          |                |
      |            |                |
      |            |                |
      V            |                |
   Decisão         |                |
     de            |                |
  Roteamento       |                |
      |            |                |
      |            |                |
      V            |                |
  +--------+       |                |
  | OUTPUT |       |                |
  +--------+       |                |
  |  raw   |       |                |
  | mangle |       |                |
  |  nat   |       |                |
  | filter |       |                |
  +--------+       |                |
      |            |                |
      |      +-------------+        |
      |      | POSTROUTING |     Tráfego
      +----> +-------------+ -->  Local
             |   mangle    |
             |     nat     |
             +-------------+
                   |
                   |
                   V
                Tráfego
                de Saída

Tomemos como exemplo um acesso da máquina para ela mesma. O tráfego irá passar sequencialmente 
por estas cadeias / tabelas:

  * Pacote gerado por um processo / kernel local
  * Decisão de roteamento
  * ''OUTPUT'': ''raw''
  * ''OUTPUT'': ''mangle''
  * ''OUTPUT'': ''nat''
  * ''OUTPUT'': ''filter''
  * ''POSTROUTING'': ''mangle''
  * ''POSTROUTING'': ''nat''
  * ''PREROUTING'': ''raw''
  * ''PREROUTING'': ''mangle''
  * ''PREROUTING'': ''nat''
  * Decisão de roteamento
  * ''INPUT'': ''mangle''
  * ''INPUT'': ''filter''
  * Pacote entregue a um processo / kernel local

Portanto, se desejamos permitir tal tráfego, devemos garantir que não exista nenhuma ação em 
nenhum dos casos acima que bloqueie os pacotes deste acesso.

===== Regras =====

Dada uma cadeia / tabela em específico, é necessário o uso de regras para selecionar em quais 
pacotes uma dita ação irá atuar. Nem todas as regras se aplicam a todas as cadeias (por exemplo,
 uma regra que especifica a interface de saída de pacote não se aplica a cadeia ''PREROUTING'', 
uma vez que a decisão de roteamento ainda não foi tomada).

Existem regras gerais (ou padrão) e existem extensões (referidas como //match extensions// no 
manual). A existência e variedade das regras extras dependem da versão da kernel em uso e da 
versão do iptables em uso (lembre-se que o iptables é simplesmente uma interface para conversar
 com a kernel). É possível o caso em que exista determinada regra extra no iptables, mas não a
 correspondente implementação na kernel. Neste caso, a tentativa de uso desta regra resultará 
em erro.

As regras gerais são:

  * ''-p PROTOCOLO'': especifica um protocolo (por exemplo tcp ou udp)
  * ''-s ENDEREÇO'': especifica um endereço de origem
  * ''-d ENDEREÇO'': especifica um endereço de destino
  * ''-i INTERFACE'': especifica a interface de rede na qual o pacote ingressou
  * ''-o INTERFACE'': especifica a interface de rede na qual o pacote irá sair da máquina

As regras extras serão tratadas mais adiante.

Lembre-se que nem todas as regras se aplicam a todas as cadeias.

===== Alvo =====

Especifica a ação a ser tomada quando um pacote casar com uma dada regra de seleção. 
Esta ação pode ser uma das ações padrão ou uma extenção (similares ao caso das regras acima). 
As ações padrão são:

  * ''ACCEPT'': aceita o pacote, e diz ao netfilter para continuar o processamento do pacote na próxima cadeia/tabela
  * ''DROP'': diz ao netfilter para ignorar completamente o pacote
  * ''QUEUE'': indica que o pacote deve ser passado ao userspace
  * ''RETURN'': instrui o netfilter para parar de processar a cadeia em questão e continuar na próxima regra na cadeia anterior

Na prática, a grandíssima maioria das vezes será usado apenas ''ACCEPT'' ou ''DROP''.

===== Escrevendo regras =====

Segundo o manual do utilitário iptables, existem diversas maneiras de se acrescentar / remover 
pares de regras / ação. Todas são operações discretas, o que sugere que criemos um 
//Shell Script// contendo todas as chamadas discretas das regras que irão compor o firewall 
completo.

Para adicionar discretamente uma regra (ao final das pré existentes), a forma geral é:

  # iptables -t TABLE -A CADEIA REGRAS -j ALVO

Onde:

  * ''TABLE'' identifica a tabela
  * ''CADEIA'' identifica a cadeia
  * ''REGRAS'' compõe as regras de seleção de pacotes no qual o ''ALVO'' deve atuar
  * ''ALVO'' ação a ser executada

Por exemplo, para permitirmos que a rede 192.168.0.0/24 ligada a interface de rede eth0 possa 
enviar tráfego a rede 192.168.1.0/24 conectada a interface de rede eth1, devemos escrever a 
seguinte regra:

  # iptables -t filter -A FORWARD -s 192.168.0.0/24 -d 192.168.1.0/24 -i eth0 -o eth1 -j ACCEPT

Note pelo fluxograma que esta regra não seria suficiente para permitir tal tráfego, uma vez que 
ele passa por muitas outras cadeias e tabelas.

No caso de não existir alguma regra específica para um determinado tráfego, é possível 
configurar uma política padrão para cada cadeia / tabela. Esta política aponta um alvo a ser 
executado, caso nenhuma regra terminativa nesta mesma cadeia / tabela atue no pacote. Para 
definir uma política padrão:

  # iptables -t TABELA -P CADEIA ALVO

Por exemplo:

  # iptables -t raw -P OUTPUT ACCEPT

irá permitir tráfego livre por padrão na dada cadeia / tabela.

Até aqui, os recursos são bem limitados. O próximo tópico irá abordar os extras do iptables.

==== Regras Extras ====

Como citado anteriormente, existem regras extras que podem ajudar na seleção de pacotes. 
O uso geral das extenções de regras é:

  ... -m NOME OPÇÕES

onde

  * ''NOME'' identifica a extenção a ser usada
  * ''OPÇÕES'' opções específicas de cada extenção

No manual do iptables no tópico ''MATCH EXTENSIONS'' há uma descrição detalhada das extenções 
existentes. Adiante, falaremos de algumas de maior relevância.

  * **tcp**
Permite a especificação de estado ou portas de uma conexão TCP. Exemplo:

  ... -m tcp --dport www

especifica a porta de destino como www (80, veja ''/etc/services'') de uma conexão TCP.

  * **udp**
Permite a especificação de portas de uma conexão UDP.

=== Conexões ===

As regras vistas até agora conseguem identificar apenas casos estáticos. Por exemplo, um servidor 
web recebe uma conexão em sua porta 80. Porém, a porta de origem do cliente é indeterminada. 
Existe porém uma funcionalidade de se rastrear conexões. Você identifica somente o destino 
(eh. servidor web porta 80) e todo o tráfego relacionado, poderá ser identificado facilmente.

Continuando o exemplo anterior, podemos escrever:

  # iptables -t filter -A FORWARD -d SERVIDOR_WEB -i INTERFACE_EXTERNA -o INTERFACE_INTERNA -j ACCEPT
  # iptables -t filter -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT

A primeira regra irá permitir que nosso roteador garanta acesso externo a um servidor web. 
A segunda regra diz que será permitida a volta deste tráfego (mais especificamente, qualquer 
tráfego relacionado a uma conexão existente qualquer). A regra extra ''state'' permite ter acesso 
ao estado da conexão. Neste caso, estamos explicitamente dizendo que qualquer tráfego relacionado 
a uma conexão pré estabelecida é permitido (não necessariamente apenas esta conexão ao servidor
 web).

O sistema de rastreamento do conexões possui diversos módulos, podendo rastrear até mesmo as 
conexões de transferência de dados de uma conexão FTP, sem a necessidade de um servidor proxy 
para tal. Para o caso em que não é definida uma conexão (como no caso de UDP ou ICMP) o sistema 
de rastreamento abre uma janela para o tráfego de retorno, mediante a existência do tráfego de 
ida, tratando ambos como parte da mesma conexão.

Um bom negócio é manter uma regra como a segunda regra genérica do exemplo acima apenas uma vez,
e ao escrever as regras específicas para rastrear conexões de cada tráfego. A existência de tal 
regra é também recomendada para garantir o tráfego de mensagens ICMP.

Consulte o manual do iptables para encontrar outras possibilidades de rastreamento de conexões e 
outras formas de utilização da ferramenta.

==== Alvos Extras ====

Os alvos extras permitem recursos mais interessantes, tais como NAT ou balanceamento de carga. 
Ao selecionar um alvo extra, uma nova gama de opções se abre para cada um deles. 
Por favor consulte sempre o manual para conhece-las.

  * **LOG**
Permite que se notifique os pacotes via mensagens da kernel (accessíveis via o comando ''dmesg''). 
Uma boa dica, é sempre incluir uma regra com alvo LOG exatamente antes de qualquer regra que vá recusar 
algum pacote. Desta maneira, é possível identificar facilmente se o seu firewall está bloqueando algum 
tráfego que não deveria.
O uso deste alvo, dá acesso a opção ''--log-prefix'', que permite incluir um prefixo na depuração.

  * **MASQUERADE, SNAT, DNAT**
São 3 possibilidades da implementação de NAT ([[http://www.faqs.org/rfcs/rfc1631.html|RFC1631]]). 
Desta maneira, é possível integrar uma rede privada ([[http://www.faqs.org/rfcs/rfc1918.html|RFC1918]]) 
a internet sem problemas. Por favor, consulte o manual para maiores detalhes de como utilizar 
estes alvos.

====== Roteamento Avançado ======

O Linux possui uma implementação diferenciada de outros UNIX para o sistema de roteamento. 
Os utilitários ''ifconfig'' e ''route'' tradicionais de sistema UNIX continuam válidos, porém 
existe uma outra camada de implementação mas avançada. O utilitário ''ip'' (parte do pacote ''
iproute2'') permite o acesso a novos sistemas de roteamento. Ele será a ferramenta que estaremos 
operando agora.

O sistema de roteamento no Linux é implementado em duas partes:

  - Regras
  - Tabelas de roteamento

As regras são responsáveis por indicar em qual tabela de roteamento a kernel deve procurar por 
uma rota. Portanto, é possível a existência de múltiplas tabelas de roteamento.

===== Regras =====

Para listar as regras existentes, fazemos:

  # ip rule list
  0:	from all lookup local 
  32766:	from all lookup main 
  32767:	from all lookup default

As regras são processadas em ordem crescente de prioridade (1a coluna). Neste caso, a prioridade 
0 instrui a kernel a, para qualquer tráfego,  procurar por uma solução de roteamento na tabela 
de nome local. O conteúdo desta tabela pode ser acessado com:

  # ip route list table local
  local 192.168.1.1 dev eth3  proto kernel  scope host  src 192.168.1.1 
  local 200.170.111.237 dev eth0  proto kernel  scope host  src 200.170.111.233 
  broadcast 192.168.1.0 dev eth3  proto kernel  scope link  src 192.168.1.1 
  broadcast 192.168.2.255 dev eth1  proto kernel  scope link  src 192.168.2.1 
  local 200.170.111.236 dev eth0  proto kernel  scope host  src 200.170.111.233 
  broadcast 127.255.255.255 dev lo  proto kernel  scope link  src 127.0.0.1 
  broadcast 200.170.111.239 dev eth0  proto kernel  scope link  src 200.170.111.233 
  local 200.170.111.239 dev eth0  proto kernel  scope host  src 200.170.111.233 
  local 200.170.111.238 dev eth0  proto kernel  scope host  src 200.170.111.233 
  local 200.170.111.233 dev eth0  proto kernel  scope host  src 200.170.111.233 
  broadcast 200.170.111.232 dev eth0  proto kernel  scope link  src 200.170.111.233 
  local 200.170.111.235 dev eth0  proto kernel  scope host  src 200.170.111.233 
  local 201.20.202.11 dev eth0  proto kernel  scope host  src 201.20.202.11 
  broadcast 201.6.149.0 dev eth2  proto kernel  scope link  src 201.6.149.41 
  local 200.170.111.234 dev eth0  proto kernel  scope host  src 200.170.111.233 
  local 192.168.2.1 dev eth1  proto kernel  scope host  src 192.168.2.1 
  broadcast 192.168.1.255 dev eth3  proto kernel  scope link  src 192.168.1.1 
  broadcast 192.168.2.0 dev eth1  proto kernel  scope link  src 192.168.2.1 
  broadcast 201.20.207.255 dev eth0  proto kernel  scope link  src 201.20.202.11 
  broadcast 201.20.200.0 dev eth0  proto kernel  scope link  src 201.20.202.11 
  broadcast 127.0.0.0 dev lo  proto kernel  scope link  src 127.0.0.1 
  broadcast 201.6.149.255 dev eth2  proto kernel  scope link  src 201.6.149.41 
  local 201.6.149.41 dev eth2  proto kernel  scope host  src 201.6.149.41 
  local 127.0.0.1 dev lo  proto kernel  scope host  src 127.0.0.1 
  local 127.0.0.0/8 dev lo  proto kernel  scope host  src 127.0.0.1

A tabela é extensa e é gerenciada pela própria kernel, portanto não se preocupe com ela. 
A tabela local contém informações de que o tráfego associado aos endereços das interfaces 
de rede local, devem ser tratados localmente.

Quando ocorre de a tabela local não satisfazer um determinado destino (eg. tráfego destinado 
a outra máquina) a kernel procura a regra seguinte de menor prioridade (maior número) para 
achar uma solução de roteamento. No caso, a regra de prioridade 32766 diz para procurar na 
tabela de nome main.

  # ip route list table main
  200.170.111.232/29 dev eth0  proto kernel  scope link  src 200.170.111.233 
  192.168.2.0/24 dev eth1  proto kernel  scope link  src 192.168.2.1 
  192.168.1.0/24 dev eth3  proto kernel  scope link  src 192.168.1.1 
  201.6.149.0/24 dev eth2  proto kernel  scope link  src 201.6.149.41 
  201.20.200.0/21 dev eth0  proto kernel  scope link  src 201.20.202.11 
  default via 201.6.149.1 dev eth2 

Esta tabela contém as regras de roteamento encontradas pelo comando ''route'':

  # route -n
  Tabela de Roteamento IP do Kernel
  Destino         Roteador        MáscaraGen.    Opções Métrica Ref   Uso Iface
  200.170.111.232 0.0.0.0         255.255.255.248 U     0      0        0 eth0
  192.168.2.0     0.0.0.0         255.255.255.0   U     0      0        0 eth1
  192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 eth3
  201.6.149.0     0.0.0.0         255.255.255.0   U     0      0        0 eth2
  201.20.200.0    0.0.0.0         255.255.248.0   U     0      0        0 eth0
  0.0.0.0         201.6.149.1     0.0.0.0         UG    0      0        0 eth2

Esta tabela portanto, contém o sistema de roteamento tradicional.

A última tabela (default) vem vazia.

As tabelas mostradas até aqui compõe o sistema de roteamento tradicional. 
Porém é possível incluir novas regras de acordo com a necessidade, apontando para 
tabelas de roteamento diferentes.

==== Regras personalizadas ====

Podemos por exemplo, inlcuir uma regra especificando que tráfego de determinada origem
 deve ser resolvido com uma tabela de roteamento especial:

  # ip rule add type unicast from 192.168.4.0/24 priority 55 table 55

Isso dirá a kernel para quando receber tráfego com origem na rede 192.168.4.0/24, 
procurar roteamento na tabela de número 55. Esta tabela deverá ser criada pelo administrador,
 e conter as regras de roteamento aplicáveis somente a rede em questão.

Neste caso:

  # ip rule list
  0:	from all lookup local 
  55:    from 192.168.4.0/24 lookup 55
  32766:	from all lookup main 
  32767:	from all lookup default

Note que tanto a prioridade 55 e o número 55 para a tabela, foram absolutamente arbitrários, 
e não há necessidade alguma de ambos serem iguais.

Por favor, consulte o manual do utilitário '''ip''' para obter maiores informações de como 
adicionar e remover regras.

===== Tabelas =====

As tabelas de roteamento são identificadas por números de 0 a 255. As tabelas local e main 
tem os números 255 e 254 associados a elas respectivamente. Existe um arquivo de configuração 
em que se pode associar nome a tabelas (como no caso da loca e main, que já vem de fábrica assim)
 que não será coberto neste artigo.

A existência de uma tabela, contendo suas próprias regras não implica em que ela esteja em uso. 
Uma tabela apenas estará em uso se existir uma regra apontando para ela.

Consulte o manual para aprender como adicionar e remover regras de roteamento nas tabelas. 
Não deve haver dificuldade quanto a isso, uma vez que a operação é similar ao sistema de 
roteamento clássico (comando ''route'').

===== Nota =====

A kernel do Linux possui uma proteção "anti-spoff" separadamente do firewall.
 Esta proteção serve para proteger uma rede interna contra ataques externos. 
Dependendo da situação de roteamento desejada (especialmente com diversos links de internet) 
esta opção tem que ser desabilitada.

Esta opção é accessível pelo sysctl

  net.ipv4.conf.all.rp_filter 

que muda a configuração para todas as interfaces de rede. Também existe a possibilidade de 
habilitar ou desabilitar por itnerface (basta substituir ''.all.'' por ''.eth0.'' para mudar 
apenas a eth0).

Colocando a linha

  net.ipv4.conf.all.rp_filter=0

no arquivo ''/etc/sysctl.conf'', deverá desligar esta proteção automaticamente durante 
a inicialização.

====== Integrando Firewall e Roteamento ======

Uma das possibilidades de escrita de regra de roteamento é a opçãp ''fwmark''. 
Esta opção faz com que pacotes que tenham uma marca feita pelo firewall caiam na 
tabela de roteamento desejada.

  # ip rule list
  0:	from all lookup local 
  33:	from all fwmark 0x1 lookup 33 
  32766:	from all lookup main 
  32767:	from all lookup default 

Neste caso, pacotes que contenham uma marca de firewall 1 (0x1 é o mesmo número, 
porém em hexa-decimal) devem cair na tabela de roteamento 33. A escolha deste número é 
absolutamente arbitrária.

É importante saber que esta marca é local, e não altera de forma alguma qualquer conteúdo 
do pacote.

===== Marcando pacotes =====

Para marcar pacotes com o iptables usa-se o alvo ''MARK'':

  # iptables -t mangle -A PREROUTING -i eth0 -j MARK --set-mark 1

Nesta regra de exemplo, todo tráfego entrante pela interface eth0 será marcado como 1 
(a escolha do número 1 é absolutamente arbitrária). Feito isso, é possível incluir uma 
regra de roteamento como no tópico anterior que irá se aplicar somente aos pacotes que 
entrarem pela interface eth0.

Note pelo fluxograma do iptables exposto anteriormente que a marca está sendo feita antes 
da decisão de roteamento. Neste caso, como o tráfego é passante pela máquina, ele deve 
acontecer no ''PREROUTING''. Caso se desejasse marcar tráfego gerado localmente, 
deve-se utilizar a cadeia ''OUTPUT''.

==== Conexões ====

É possível também marcar todos os pacotes relativos a uma conexão. O alvo ''CONNMARK'' 
permite a marcação de uma conexão (referida como //connection mark//, interna ao firewall), 
que não é a mesma marcação utilizada pelo roteamento (referida como //netfilter mark//, 
acessível pelo sistema de roteamento), não confunda as duas. Portanto, pode-se fazer o 
seguinte para marcar todos os pacotes de uma conexão:

  # iptables -t mangle -A OUTPUT -d SERVIDOR -j CONNMARK --set-mark 1
  # iptables -t mangle -A OUTPUT -m connmark --mark 1 -j MARK --set-mark 1

A primeira regra marca todas as conexões desejadas. A segunda regra usufrui da extensão ''-m 
connmark'' para identificar tais conexões e marcar seus pacotes com o alvo ''MARK'' (marca que 
pode ser utilizada pelo sistema de roteamento).

**Nota**: A kernel 2.6.8 distribuida com o Debian GNU/Linux Sarge não possui tal 
funcionalidade (''CONNMARK''). Esta funcionalidade apareceu apenas em kernels posteriores e 
é necessária uma atualização de kernel para usar este recurso.2

Referencia: http://ornellas.apanela.com

Utilitários em modo texto

Olá,

Um dia desses usando meu veio e bom linux hehe, pensei comigo mesmo será que é possível usar o mesmo para executa programa sem ser em modo Gráfico / X. Foi quando comecei a pesquisar e achei alguns programas bacanas, com varias funcionalidade desde ouvir mp3 ate navegar a net hehe.

Fique ai minha sugestão para tão, e uma forma a mais de falar o quanto o linux é um “mavagilha”.

Navegar na Internet

Lynx : http://lynx.browser.org/

Links : http://links.sourceforge.net/

w3m : http://w3m.sourceforge.net/

elinks: http://elinks.or.cz/

Email

Pine? http://www.washington.edu/pine/

Mutt: http://www.mutt.org/

Chat

Jabber/GTalk – freetalk http://www.gnu.org/software/freetalk/

AIM – Naim http://naim.n.ml.org

IRC – IRSSI http://www.irssi.org/

Vídeo

MPlayer – http://www.mplayerhq.hu/

Imagens

ZGV http://www.svgalib.org/rus/zgv/

Edição de Texto

vim : http://www.vim.org/

emacs: http://www.gnu.org/software/emacs/

Gravar CDs

Bashburn – http://bashburn.sourceforge.net

É isso ai é só uma ponta o iceber, existem muito outros, mais não to aqui para listar todos.. mais sim, para passar uma idéias do quanto o linux é show..

Abraço a todos


Rodrigo Lima
kbca

Configurando o Samba de forma simples e funcional.

Esse artigo mostra de maneira bem simples como configurar um samba para compartilhar arquivos em qualquer sistema linux, o meu no exemplo é Slackware mas sem dúvidas em qualquer outra distro é a mesma coisa.

Em poucas linhas resumi como compartilhar pastas com direito a adcionar usuarios.

O aquivo de configuração fica em /etc/samba/smb.conf , o mesmo é separado em duas seções uma é a Global que define as configurações da máquina como rede grupo de trabalho e essas coisas, e a outra parte define a configuração do compartilhamento ou seja da pasta.

[Global]

workgroup: grupo de trabalho ou domínio de que esta máquina fará parte:
workgroup = GILIX

Server string: breve comentário sobre o servidor:
server string = Servidor Samba

NetBios Name: O nome da sua máquina de compartilhamento
netbios name= Srv01

NetBios Aliases: O apelido por qual ela pode atender na rede no caso de digitar no executar o do windows \\servidor-fedora
netbios aliases = servidor-fedora

Log File: O proprio nome ja diz é o arquivo de log do samba
log file=/var/log/samba/%m.log

Aqui deixei a configuração padrão
os level = 64

Com esses parametros acima ja é possivel compartilhar qualquer arquivo porém falta apenas uma linha necessária, é ela a linha que define se a segurança do compartilhamento vai ser USER ou SHARE, ou seja se vai exigir usuário e senha pra qualquer outra estação acessar o compartilhamento ou se o nivel de segurança vai ser definido por chmod e qualquer um por acessar.

security=user #podendo ser share ou user

Deixei a opção acima como user pois se ficar como share acabou ai os parametros e ja pode compartilhar uma pasta, mas como user vc vai precisar das linhas abaixo apenas + 3 linhas.

encrypt password: O protocolo SMB originalmente não usava criptografia na transmissão de senhas entre as máquinas da rede. O NT 4.0, service pack 3 e o Windows 2000 passaram a usar senhas criptografadas. Outras versões do Windows acessando servidores NT ou Windows 2000 podem estar configuradas para utilizar criptografia na transmissão de senhas. Para que um servidor Linux possa ser acessado pela rede, ele deve adotar o mesmo padrão utilizado na rede. É possível retirar a criptografia das máquinas Windows editando o registro ou configurar a criptografia no servidor Samba.
encrypt passwords = yes

Smb Passwd File= É o arquivo onde iram ficar os passwords dos usuários cadastrados no samba.
smb passwd file = /etc/samba/smbpasswd

Username Map: É o arquivo onde vão está os usuários cadastrados no samba
username map = /etc/samba/smbusers

Vamos agora compartilhar uma pasta veja como é simples

[arquivos] #Titulo da pasta
comment = Arquivos #Comentário da pasta
path = /home/rede #Caminho da pasta
available = yes #Disponivel sim | não
browseable = yes #Visualização sim | não
writeable = Yes #Direito a escrita sim | nao
ready only = no #Somente leitura sim | nao
force create mode = 0777 #forcar ao criar diretorios com essa permissão
force directory mode = 0777 #configuração padrão
guest only = yes #Leitura pra qualquer um sim | nao

Simples assim e a sua pasta /home/rede já vai está compartilhada, e se vc compartilhou ela no modo usuário como eu fiz tem mais essa opção pra dizer os usuários que vão ter acesso a ela.

valid users = rafael,mario,tonho

Agora é so criar os usuários no samba lembrando de criar o root primeiro e os comandos são:
smbpasswd -a usuario //Para criar um usuário
smbpasswd -x usuario //Para deletar um usuário

agora crie o root smbpasswd -a root e tudo certo basta usar o copiar e colar na seção share do arquivo e compartilhar quantas pastas quiser ao modo que quiser, espero ter sido o mais claro possivel.

Windows Vista (rwindows veesta).

windows vista
Bom posso está atrasado ou coisa e tal mas há 5 dias atrás um cliente me pediu algumas orientações para comprar o Notebook mais atual e rápido assim como ele ressaltou e que tivesse um preço acessível. Bom vamos lá eu e Sr. X nos dirigimos a loja e olhamos todos os modelos e configurações, vimos alguns com preços ótimos, mas configurações razoáveis o que não seria interessante uma vez que o Sr. X queria trabalhar com AUTO CAD na máquina, de repente então BINGO! Achamos a máquina que ele queria:
Sony Vaio
Processador Core 2 Duo T7100(1,8Ghz)
Memória: 2gb
Hd: 120 GB
Tela: 14,1″
3 portas USB uma firewire e outras tranqueiras, design arrojado e colorido, em fim um notebook ótimo e lógico que ao ver está acessível realmente mas só ao bolso dele é claro, R$ 5.400,00 CONTO.
Com uma máquina dessas da pra imaginar arte mas não foi o que aconteceu, bem a começar ela veio com o Windows Vista Home Basic, mas o Sr. X me pediu que eu instalasse o Windows XP pois ele ainda não havia familiarizado com o vista tanto ao ponto de usa-lo tranqüilamente, e assim foi, tudo ocorreu bem quando no terceiro dia ele me procura e me trás um produto novo o WINDOWS VISTA ULTIMATE, segundo ele, leu em revistas que é o melhor e isso e aquilo e todas aquelas baboseiras o que chegou a convence-lo de comprar e então me trouxe o tal vista. Não dá para dizer de cara que todo upgrade melhora, e o difícil é encontrar um exemplo mais polêmico em 2007 que o windows vista.
Em exatamente 46minutos o vista estava instalado e pronto para usar depois mais 35 para instalar os aplicativos office e o autocad, e assim o Sr. X saiu feliz da vida, o que não demorou muito pois no outro dia me chegou com a máquina na maior lentidão do mundo la vai eu remover alguns aplicativos passar um anti virus aqui e um corretor de boot ali e tal e dei um jeitinho, no outro dia novamente veio ele reclamando que a máquina tava lenta então pedi para que ele usasse na minha frente o computador como ele usa em casa e acha lento então ele abriu o auto cad somente e quando tenta abrir o word leva 1minuto e 24 segundos, e isso não teve jeito mexi aqui corri ali e mexi aculá mas não adiantou o pc sempre ficava lento e olha que era uma ótima máquina.
Conclusão: Voltei ao velho XP e tudo foi resolvido e ele ficou novamente feliz da vida.
Sobre: O tio Bill ja distribuiu pelo mundo 88 MILHÕES de licenças do VISTA. A microsoft diz que está trabalhando em melhorias de perfomance, mas isso só deus sabe quando vai ser.
Dica: Não recomendo que instale o vista ainda se vc trabalha com aplicativos do tipo COREL DRAW, AUTO CAD, PINAACLE dentr outros programas pesados se vc ainda não tem uma super máquina, e que seja super máquina mesmo pq essa que eu tive a experiencia era uma ÓTIMA e o resultado não foi ótimo.

Morra de inveja, IE!

Saiu o primeiro beta do Firefox 3, e a fundação Mozilla caprichou (baixe
e confira em www.info.abril.com.b/download/4704.shtml). O navegador passou por
reformas internas para aprimorar a renderização de imagens e o consumo
de memória, entre outras melhorias do código. Além disso,
o Firefox 3 adicionou funções que o rival Internet Explorer 7, da
Microsoft, não tem. Veja algumas:

  • Serviços online compativels podem ser usados sem conexao
  • Integração com antivirus e filtrador de conteúdo nocivo
  • Nova organização dos favoritos com direito a backup dos links
  • botão para salvar as abas abertas antes de fechar o browser
  • gerenciados de downloads com campo de buscas e botão para reiniciar transferências.