Instalando um servidor de Internet Básico
22 , Dezembro , 2008
Instalando e configurando um servidor de Internet Simples
Bom dia, após vários meses sem postar artigos e dicas, devido a alguns problemas de conexão e até mesmo de mudanças de cidade, agora estou de volta, postando alguns novos artigos para facilitar a vida dos usuários de linux.
Neste artigo iremos instalar um servidor de Internet Simples, utilizando Debian GNU/Linux ou qualquer outra distro baseada em Debian como o Ubuntu, iremos utilizar os seguinte softwares para este servidor:
-> Iptables (Firewall)
-> Squid (Proxy)
Vamos começar a instalação….
Abra o shell e logue como root
Instalando os programas necessários
apt-get -y install squid sarg apache2
após o termino da instalação iremos fazer as configurações necessárias no servidor.
iremos editar o arquivo de configuração do Squid:
vi /etc/squid/squid.conf
na linha http_port 3128 adicione na frente a palavra transparent
http_port 3128 transparent
abaixo da linha no_cache deny QUERY adicione o seguinte comando:
error_directory /usr/share/squid/errors/Portuguese
esse comando faz com que os erros que o squid vai apresentar seja em portugues
na linha acl all src 0.0.0.0/0.0.0.0 você tera que por a faixa de IP que o proxy irá trabalhar, caso você deixe todos como default qualquer faixa de IP que usar o servidor como proxy irá funcionar
exemplos: 192.168.1.0/255.255.255.0
após essas linhas deixe irá mostrar todas as portas que o SQUID estará aceitando para navegação, não iremos mexer nelas, pois por padrão já esta todas as portas necessárias para navegação, após a linha
acl CONNECT method CONNECT apague tudo que iremos fazer algunas configurações diferentes……..
Adicionas seguintes linhas:
#Arquivo com extensões bloqueadas
acl extentions url_regex “/etc/squid/extentions”
#Arquivo com URLS bloqueadas (exemplo computa)
acl urls url_regex “/etc/squid/urls”
http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access deny all extentions
http_access deny all urls
Após estas linhas adicione a linha com o nome do seu servidor que será visivel para os usuários, visible_hostname servidor no meu caso eu coloquei o nome dele como servidor, mas pode ser trocado por qualquer outro nome.
Feito isso o nosso squid já esta praticamente pronto, para sair e salver pressione a tecla ESC depois :wq! e pressione ENTER, feito isso vamos criar 2 arquivos que irão conter as extensões e URL’s que serão bloqueados:
extentions (Neste arquivo iremos bloquear download de arquivos por estensões, basta coloca-las aqui que automaticamente o proxy irá bloquear)
urls (adicone as urls dos sites que não poderão ser abertos, adicione sem o www. pois assim o proxy irá bloquear qualquer site que tem o texto no link. Ex.: orkut.com)
feito isso teremos que configurar algumas regras de iptables para que o firewall redirecione as conexões para os cliente, para isso teremos que ter 2 placas de rede, eth0 e eth1, neste caso a minha conexão com a internet
sera feita pela eth0 e a conexão local sera feita pela eth1, teremos que criar 1 arquivo chemado firewall.sh
vi /opt/firewall.sh
adicione as seguintes linhas dentro desses arquivos:
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -j MASQUERADE
iptables -t nat -A PREROUTING -i eth1 -p tcp –dport 80 -j REDIRECT –to-port 3128
echo “1″ >/proc/sys/net/ipv4/ip_forward
feche e salve o arquivo e feche, agora teremos que adicionar esta script do firewall automaticamente todas as vezes que o servidor for iniciado, para isso devemos editar o arquivo /etc/rc.local
vi /etc/rc.local
agora adicine a seguinte linha:
cd /opt
./firewall.sh
salve e feche o arquivo, agora temos que dar permissão de execução para o arquivo com o seguinte comando:
chmod +x /opt/firewall.sh
feito isso reinicie o servidor com algum dos seguintes comandos:
init 6 ou shutdown -r now
qualquer um dos 2 comandos irá funcinar, use o que você axar conveniente, após o servidor ser reiniciado, basta configurar os IPS nos clientes, colocando o IP da eth1 do servidor como GATEWAY nos clientes,
não esquecendo que será necessário colocar o DNS primario nos cliente para que os terminais naveguem normalmente, caso não coloque o DNS os clientes não irão navegar.
O DNS varia de acordo com o seu provedor, portanto você tera que entrar em contato como seu provedor para pegar o DNS dele.
Para testar, entre em algum site bloqueado e tente fazer download de algum arquivo com a estenção bloqueada.
Comandos do Shell
24 , Fevereiro , 2008
Embora hoje em dia haja os gerenciadores de janelas para Linux, ele ainda é muito forte e muito utilizado em modo texto, ou Shell. Normalmente esse uso é feito por pessoas que ja ultilizavam esse tipo de recurso ou para montagens de servidores, por exigir muito pouco do computador.
O que você faria com um Pentium de 100 MHz, 8MB de RAM, 1GB de HD, um teclado e um monitor???Se você pensou “NADA” você pensou completamente errado, com um computador deste porte, seria possivel montar um Servidor Linux de pequeno porte, rodando praticamente qualquer distribuição Linux em modo texto. Isso que é interessante, pois mesmo com todos os avanços visuais que o linux possui como Compiz-fusion, XGL……., ele ainda mantém suas raizes.
Este artigo tem o intuito de apresentar alguns comandos nativos do Shell Bash e mostrar que trabalhar em modo texto não é tão assustador como se parece.
Vamos lá…….
cd => serve para acessar diretórios (cd /var => acessa o diretório var)
cd/ => volta ao diretório raiz
cd .. => volta do diretório anterior (se vc esta no diretório /home/william/teste e der o comando cd .. vc irá voltar um diretório atrás, ou seja, irá para o doretório /home/william)
startx => abre a interface gráfica
ls => serve para listar o conteúdo de um diretório
man => abreviação de Manual, ele comando mostra uma explicação de um determinado comando, exibindo suas sintaxe, opções entre outros recursos. Sintaxe: man <comando>
info => abraviação de Informação, esse comando mostra informações mais detalhadas sobre um determinado comando, mas a grande diferença entre o man e o info é que o segundo traz essas informações em uma linguagem mais clara, simples e aborda as opções mais comuns. Sintaxe: info <comando>
| => o Pipe direciona a saída de um comando para o outro, Sintaxe: <comando> | <comando>
more => esse comando pausa a saída de algum outro comando, ou seja, se vc usar por exemplo ls, ele irá listas o conteúdo de um diretório completo, de uma só vez, impedindo você de ler, se vc user o more ele irá exibir esse conteúdo pausadamente. Sintaxe: <comando> | more
cp => esse comando copia um arquivo ou diretório para algum loca no HD, disco removível….. Sintaxe: cp <arquivo/diretório> <destino>
mv => este comando possui duas funções, a primeira delas é mover um arquivo/diretório de seu local de origem para o seu local de destino como para renomear um arquivo/dirtório. Sintaxe: mv /home/william/Documento.odt /home/william/textos/ (aqui ele irá mover o arquivo Documento.odt para a pasta textos), mv foto1.png Amigos.png (aqui ele renomeia o arquivo foto1.png para Amigos.png).
rm => este comando deleta arquivos, para deletar diretórios é necessário que vc use a opção -r logo após o comando. Sintaxe: rm <arquivo> (apaga um arquivo qualquer>, rm -r <diretório> (apaga um diretório, se esse diretório possuir arquivos dentro, será necessário que se confirme a exclusão de cada um desses arquivos), rm -rf <diretŕoio> (esse comando apaga o diretório sem a necessidade de se confirmar a exclusão do mesmo). Obs.: SÓ USE ESSE COMANDO SE VOCÊ TIVER CERTEZA DO QUE ESTA FAZENDO
Bom, esses são alguns dos comandos mais utilizados no Shell, ainda existam muuuuuuitos outros, espero que esses possam ser muito úteis para vocês.
Obs.: Não esqueçam que o Linux é case sensitive, ou seja, ele diferência letras MAIÚSCULAS de minúsculas, sendo assim Ls é diferente de ls, isso é um dos principais motivos que as pessoas acham que Linux é dificil!!!!
Obrigado pela visita!!!!!
Estrutura de Diretórios no Linux
19 , Fevereiro , 2008
A primeira diferença que um usuário que esta migrando do Windows para o Linux nota é uma grande diferença na estrutura de diretórios. Normalmente no Windows os arquivos de configuração do sistema e arquivos de configuração da maioria dos programas ficam localizados em 2 pastas, são elas: Windows e Arquivos de Programas, com isso vc pode cirar e organizar as suas pastas da meneira que quiser, no Windos os dispositivos de armazenamento e dispositivos ópticos são organizados em letras, A:, C:, D:, essas letras vão mudando conforme o número de unidades que o computador possui. No Linux, a história é um pouco diferente, a começar que as unidades de armazenamento não aparecem identificadas com letras, mas sim em pastas, que vão mudar o nome de acordo com o hardware, isso será mostrado a seguir:
Diretório Descrição
—————————————————————-
/bin Armazena executáveis de programas e comandos básicos do prompt;
/usr Lê-se USER, este é o diretório com o maior número de arquivos em qualquer distribuição Linux, onde é armazenado os executáveis e as bibliotecas dos principais programas;
/usr/bin bin significa binário, essa pasta armazena a maioria dos programas que estão instalados no seu S.O., em uma instalação padrão, o programa será instalado nessa pasta;
/usr/lib Aqui é armazenado as bibliotecas dos programas, essas bibliotecas tem função parecidas com os arquivos .DLL do Windows;
/boot Esta pasta armazena o Kernel e os arquivos usados pelo gerenciodor de boot (normalmente o LILO ou GRUB), esses arquivos são carregados na fase inicial do boot;
/dev dev eh a abreviação de devices, todos os seus arquivos não são armazenados em HD, mas sim links para dispositivos de hardware que o seu computador contém. Por exemplo, arquivos que são grvados em /dev/dsp são reproduzidos pela placa de som, /dev/ttyS0 são informações enviadas pelo mouse. Este tipo de organização facilita a vida de programadores, que não precisam de nenhum comando para enviar informações do seus software para qualquer hardware do computador, basta coloca-l no dispositivo desejado;
/etc Armazena os arquivos de configuração do sistema, esses arquivos são organizados de forma que se possa edita-los manualmente, ao contrário dos registros do Windows, que não se sabe o que está acontecendo em cada um deles. Os nomes desses arquivos é formado pelo nome do programa seguido normalmente da extensão .conf, por exemblo, o arquivo de configuração do servidor de dados Samba, esta localizado em /etc/samba/smb.conf;
/mnt mnt é a abreviação de mount, ele recebe esse nome por servir de ponto de montagem dos dispositivos de armazenamento do computador;
/media Esta pasta em algumas distribuições como Ubuntu, Debian, Kurumin….. é utilizada de ponto de montagem temporário dos dispositivos de armazenamento, lembrando que pode se montar os dispositivos em qualquer pasta, desde que você tenha permissão para acessa-las e para montar esse dispositivo;
/opt Esta pasta é utilizada normalmente para instalar programas que o usuário instala “manualmente”, ou seja, quando se deseja instalar um programa com a extensão .bin, ele é copiado para esta pasta e é executado, ficando armazenado nela;
/home Local onde fica armazenada as pastas dos usuários, cada pasta que se encontra dentro desse diretório é um usuário que esta cadastrado no sistema, lembrando que se um novo usuário for criado, e a sua pasta não for criada dentro do diretório /home, ele vai ser impedido de fazer login;
Bom, essa é uma breve descrição da estrutura de diretórios do Linux, lembrando que um usuário comum só tem permissão de gravação e “exclusão” dentro da sua pasta Home, fora dela ele só terá acesso as pasta que o root (administrador do sistema) permitir, lembrando que o root tem acesso total a qualquer pasta do sistema, lembrando também que p Linux é case sensitive, ou seja, ele faz desntinção entre letras maiúsculas e minúsculas, sendo ls diferente de Ls, isso causa uma grande confusão nos novos usuários.
Sejam bem vindos
15 , Fevereiro , 2008

——————————————————————————————
——————————————————————————————
——————————————————————————————