sábado, abril 14, 2007

Gravando CDs pelo console

Outro dia me deparei com uma situação em que precisava gravar cds em modo texto. Depois de uma rápida "googlada" descobri algumas dicas que podem ajudá-los se um dia tiverem que gravar cds usando o cdrecord.
Vamos as dicas:

  1. Como gravar em modo console
    Em modo console podemos usar o cdrecord. Antigamente ele era um pouco mais complicado, tinha que saber o id do dispositivo e tal, mas agora é simples. veja abaixo:
    cdrecord -v dev=/dev/hdc speed=52 driveropts=burnfree -data imagemdoseucd.iso
    Tenha o cuidade de descriminar a sua unidade gravadora em dev (no meu caso /dev/hdc)e limites de velocidade adequados a ela e a mídia usando speed. a opção burnfree serve para utilizarmos o buffer apra evitar qualquer problema na hora da gravação.

  2. Gravando vários cds da mesma imagem
    while : ; do cdrecord -v dev=/dev/hdc speed=52 driveropts=burnfree -data imagemdoseucd.iso ; eject ; sleep 10 ; eject -t ; done
    Com este comando você terá 10 segundos para trocar o cd.

  3. Gravação multi-camada
    Todas as sessões de gravação devem usar a flat -multi, do comando cdrecord, a não ser a última vez, quando então o CD será finalizado.
    Para a criação da primeira imagem, use o comando mkisofs, como no exemplo a seguir:
    mkisofs -J -L -R -o backup.iso backup
    backup é o nome do diretório onde se encontram os arquivos a serem gravados no CD. O nome backup não aparecerá no conteúdo do CDROM, somente o seu conteúdo.
    Para gravar a imagem use:
    cdrecord dev=/dev/hdc -v -multi -data speed=52 driveropts=burnfree -eject backup.iso
    Para a criação da segunda imagem, precisamos determinar onde começa o espaço livre no CD:
    cdrecord dev=/dev/hdc -msinfo 0,12639
    De posse desta informação, criamos então a segunda imagem a ser gravada no CDROM:
    mkisofs dev=/dev/hdc -J -L -R -o backup.iso -C 0,12639 backup
    Gravamos então esta segunda imagem:
    cdrecord dev=/dev/hdc -v -multi -data speed=52 driveropts=burnfree -eject backup.iso
    Lembrando que da última vez que formos utilizar o comando devemos finalizar o disco usando o cdrecord sem a opção multi.
Referência:
Dicas-L - Gravação de CDs em modo multisessão
Dicas-L - Gravação de muitos CDs iguais
Dicas-L - Como gravar dados em um disco DVD

terça-feira, março 13, 2007

Como instalar MRTG e SQUID no Ubuntu

Neste artigo estaremos vendo como instalar um servidor proxy com monitoramento dos acessos e do(s) link(s).

A ambiente é o segunte:

  • Um servidor AMD Athlon 1800+, 768 MB de RAM DDR 2700, HD 120 GB
  • 3 placas de rede. 1 Via Rhine II (OnBoard - para rede secundária), 1 Realtek (acesso Internet) e 1 3Com para acesso da rede interna.
  • Servidor rodando Ubuntu Dapper-Drake 6.06 LTS.
Explicado o ambiente , vamos a instalação dos componentes.

Em primeiro lugar instale todas as atualizações de segurança do sistema. No prompt de comando pode rodar:

sudo apt-get update
sudo apt-get upgrade

Agora vamos acrescentar alguns reposítórios ao sources.list pardrão.

sudo cp /etc/apt/sources.list /etc/apt/bkp.sources.list
sudo vim /etc/apt/sources.list


O conteúdo do sources.list deve ser como do arquivo abaixo, habilitando alguns repositórios "universe".

deb http://br.archive.ubuntu.com/ubuntu/ dapper main restricted
deb-src http://br.archive.ubuntu.com/ubuntu/ dapper main restricted
deb http://br.archive.ubuntu.com/ubuntu/ dapper-updates main restricted
deb-src http://br.archive.ubuntu.com/ubuntu/ dapper-updates main restricted
deb http://br.archive.ubuntu.com/ubuntu/ dapper universe
deb-src http://br.archive.ubuntu.com/ubuntu/ dapper universe
deb http://security.ubuntu.com/ubuntu dapper-security main restricted
deb-src http://security.ubuntu.com/ubuntu dapper-security main restricted
deb http://security.ubuntu.com/ubuntu dapper-security universe
deb-src http://security.ubuntu.com/ubuntu dapper-security universe

Após editar o sources.list vamos a instalação dos pacotes necessários.

sudo apt-get install squid bind9 apache2 php5 mysql-server mysql-client snmp snmpd mrtg sarg dhcpd3

Após instalar os pacotes necessários vamos configurá-los.

SNMP


O snmp é um protocolo utilizado para gestão da rede. Roda sobre o protocolo UDP. Atráves dele podemos recuperar dados de máquinas eremotas e com isso monitorar e planejar a rede. Mais informações em:

NET-SNMP

1. Primeiro vamos criar os arquivos de configuração do snmp.

sudo touch /etc/snmp/snmpd.conf
sudo touch /etc/snmp/snmp.conf


2. Agora vamos editar os arquivos.

sudo vim /etc/snmp/snmpd.conf


3. O snmpd.conf deve ficar assim:

com2sec readonly default public
group MyROSystem v1 paranoid
group MyROSystem v2c paranoid
group MyROSystem usm paranoid

group MyROGroup v1 readonly
group MyROGroup v2c readonly
group MyROGroup usm readonly
group MyRWGroup v1 readwrite
group MyRWGroup v2c readwrite
group MyRWGroup usm readwrite

view all included .1 80
view system included .iso.org.dod.internet.mgmt.mib-2.system
access MyROSystem "" any noauth exact system none none
access MyROGroup "" any noauth exact all none none
access MyRWGroup "" any noauth exact all all none
syslocation UVA
syscontact lucianosds@gmail.com
disk / 10000
load 12 14 14



Para criar o conteúdo do snmp.conf usaremos este comando:

sudo vim /etc/snmp/snmp.conf


E o snmp.conf deve ficar como esta abaixo:

defaultport 161
defversion 2c
defcommunity public
printnumericenums 1
printnumericoids 1
suffixprinting 0


Agora é só habilitar o snmp com o seguinte comando:

/etc/init.d/snmpd restart


E você pode testar para ver se está tudo usando o snmpwalk.

snmpwalk -v 2c -c public localhost

SNMPv2-MIB::sysDescr.0 = STRING: Linux proxy 2.6.15-28-386 #1 PREEMPT Thu Feb 1 15:51:56 UTC 2007 i686
SNMPv2-MIB::sysObjectID.0 = OID: NET-SNMP-MIB::netSnmpAgentOIDs.10
SNMPv2-MIB::sysUpTime.0 = Timeticks: (66898) 0:11:08.98
SNMPv2-MIB::sysContact.0 = STRING: lucianosds@gmail.com
SNMPv2-MIB::sysName.0 = STRING: proxy
SNMPv2-MIB::sysLocation.0 = STRING: UVA
SNMPv2-MIB::sysServices.0 = INTEGER: 79
SNMPv2-MIB::sysORLastChange.0 = Timeticks: (2) 0:00:00.02
SNMPv2-MIB::sysORID.1 = OID: IF-MIB::ifMIB
SNMPv2-MIB::sysORID.2 = OID: SNMPv2-MIB::snmpMIB
SNMPv2-MIB::sysORID.3 = OID: TCP-MIB::tcpMIB
SNMPv2-MIB::sysORID.4 = OID: IP-MIB::ip
SNMPv2-MIB::sysORID.5 = OID: UDP-MIB::udpMIB
SNMPv2-MIB::sysORID.6 = OID: SNMP-VIEW-BASED-ACM-MIB::vacmBasicGroup
SNMPv2-MIB::sysORID.7 = OID: SNMP-FRAMEWORK-MIB::snmpFrameworkMIBCompliance
SNMPv2-MIB::sysORID.8 = OID: SNMP-MPD-MIB::snmpMPDCompliance
SNMPv2-MIB::sysORID.9 = OID: SNMP-USER-BASED-SM-MIB::usmMIBCompliance
SNMPv2-MIB::sysORDescr.1 = STRING: The MIB module to describe generic objects for network interface sub-layers
SNMPv2-MIB::sysORDescr.2 = STRING: The MIB module for SNMPv2 entities
SNMPv2-MIB::sysORDescr.3 = STRING: The MIB module for managing TCP implementations
SNMPv2-MIB::sysORDescr.4 = STRING: The MIB module for managing IP and ICMP implementations
SNMPv2-MIB::sysORDescr.5 = STRING: The MIB module for managing UDP implementations
SNMPv2-MIB::sysORDescr.6 = STRING: View-based Access Control Model for SNMP.
SNMPv2-MIB::sysORDescr.7 = STRING: The SNMP Management Architecture MIB.
SNMPv2-MIB::sysORDescr.8 = STRING: The MIB for Message Processing and Dispatching.
SNMPv2-MIB::sysORDescr.9 = STRING: The management information definitions for the SNMP User-based Security Model.
SNMPv2-MIB::sysORUpTime.1 = Timeticks: (0) 0:00:00.00
SNMPv2-MIB::sysORUpTime.2 = Timeticks: (0) 0:00:00.00
SNMPv2-MIB::sysORUpTime.3 = Timeticks: (0) 0:00:00.00
SNMPv2-MIB::sysORUpTime.4 = Timeticks: (0) 0:00:00.00
SNMPv2-MIB::sysORUpTime.5 = Timeticks: (0) 0:00:00.00
SNMPv2-MIB::sysORUpTime.6 = Timeticks: (1) 0:00:00.01
SNMPv2-MIB::sysORUpTime.7 = Timeticks: (2) 0:00:00.02
SNMPv2-MIB::sysORUpTime.8 = Timeticks: (2) 0:00:00.02
SNMPv2-MIB::sysORUpTime.9 = Timeticks: (2) 0:00:00.02


Pronto! Agora já podemos passar a configuração do MRTG para monitorar os nossos links.

MRTG

O MRTG é um programa poderoso para monitoramento. Ele cria gráficos com os dados recolhidos, de forma que podemos visualizar dados de forma mais prática do que a númerica. Pode ser utilizado não somente para monitorar a velocidade da rede, mas também para monitorar acesso a servidores de páginas, emails, proxys, dados da saúde de um computador, como temperatura, "uptime", espaço em disco, e assim por diante.

Para mais informações sobre o MRTG você pode procurar informações nestes sites:

Site Oficial do MRTG
Lista do Yahoo Goups - MRTG/BR


A configuração do MRTG é mais simples. Como ele já foi instalado com o apt-get no início do procedimento.

1. Para começar iremos criar um diretório que não é criado durante a instalação:

mkdir /var/lock/mrtg


2. Agora criaremos a arquivo de configuração do mrtg.

cfgmaker public@localhost /etc/mrtg.conf


3. Vamos verificar se foi criado o arquivo de agendamento no cron para rodar o script de forma automática.

cat /etc/cron.d/mrtg


O resultado será:

*/5 * * * * root if [ -x /usr/bin/mrtg ] [ -r /etc/mrtg.cfg ]; then env LANG=C /usr/bin/mrtg /etc/mrtg.cfg /var/log/mrtg/mrtg.log 2 fi


OBS.: Cuide para que o nome do arquivo de configuração seja igual ao que você criou.

4. Se não aparecer nada, é só criar o arquivo usando o comando abaixo e dar permissão de execução. O conteúdo deve ser o que foi descrito acima:

sudo vim /etc/cron.d/mrtg
sudo chmod 755 /etc/cron.d/mrtg


5. Pronto, agora iremos criar a página de acesso para os gráficos.

sudo indexmaker /etc/mrtg.conf /var/www/mrtg/index.html


Agora é só utilizar a página do MRTG para monitorar a qualidade da sua rede.

DHCPD3

Iremos agora configurar o servidor dhcp da rede. Ele tem a função de automaizar a distribuiçao de IP. É útil para rede com alguns computadores, já que ao mudar um parâmetro da rede como o servidor DNS, este valor é atualizado em todas as máquinas que requisitam IP para este servidor.

1. Vamos fazer um backup do arquivo de configuração e editá-lo:

cp /etc/dhcp3/dhcpd.conf /etc/dhcpd3/bkp.dhcpd.conf
sudo vim /etc/dhcp3/dhcpd.conf


2. O copie o conteúdo abaixo e cole no arquivo. Lembrando que você deve adequá-lo ao IP da sua rede.

default-lease-time 600;
max-lease-time 7200;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.2.255;
option routers 192.168.2.1;
option domain-name-servers 192.168.2.1, 200.221.11.100, 201.10.128.3;
option domain-name "perfectinfo.com.br";
subnet 192.168.2.0 netmask 255.255.255.0 {
range 192.168.2.10 192.168.2.100;
}

3. Agora é só iniciar o serviço:

/etc/init.d/dhcpd restart


SQUID

É hora do principal. A instalação do squid. O squid é um proxy de rede. Ele recebe as requisições do micro da rede, e se necessário ele faz a busca das informações fora da rede. Se a informação já houver sido requisitada antes ele as repassa do cache local, o que acelera sensivelmente a rede, e ainda protege a rede de ataques externos.

Mais informações abaixo:

Site Oficial Squid
LinuxMan - Squid Proxy
Yahoo Groups Squid

Como nós já instalamos o squid via apt-get, vamos apenas a configuração do mesmo. Esta configuração se dará da seguinte forma:

1. Vamos editar o squid.conf. O squid.conf é um arquivo complexo, com mais de 3500 linhas. Ele é extremamente bem detalhado e você deve lê-lo smpre que tiver dúvidas.

Após usar o egrep, podemos deixá-los com pouco mais de 20 linhas.

cp /etc/squid/squid.conf /etc/squid/squid.conf.bkp
egrep -v "^#|^$" squid.conf.bkp squid.conf


2. O arquivo ficará assim:

hierarchy_stoplist cgi-bin ?
acl QUERY urlpath_regex cgi-bin \?
no_cache deny QUERY
hosts_file /etc/hosts
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern . 0 20% 4320
acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl to_localhost dst 127.0.0.0/8
acl rede dst 192.168.0.0/24
acl SSL_ports port 443 563 # https, snews
acl SSL_ports port 873 # rsync
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 563 # https, snews
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 1025-65535 # unregistered ports
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # multiling http
acl Safe_ports port 631 # cups
acl Safe_ports port 873 # rsync
acl Safe_ports port 901 # SWAT
acl purge method PURGE
acl CONNECT method CONNECT
http_access allow manager localhost
http_access deny manager
http_access allow purge localhost
http_access deny purge
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost
http_access allow rede
http_access deny all
http_reply_access allow all
icp_access allow all
visible_hostname tyrondier.lsantos.eti.br
coredump_dir /var/spool/squid


3. Pronto, nosso servidor já está configurado. Agora vamos colocá-lo para rodar:

/etc/init.d/squid restart


4. Agora o servidor já está rodando! Agora vamos configurá-lo para rodar de forma transparente.

Primeiro vamos acrescentar algumas linhas no final do nosso arquivo:

sudo vim /etc/squid/squid.conf


E adicione as seguintes linahs:

httpd_accel_host virtual
httpd_accel_port 80
httpd_accel_with_proxy on
httpd_accel_uses_host_header on

E necessitamos agora redirecionar a porta 80 para a 3128, para evitar que algum espertinho desconfigure o proxy. isso é feito utilizando o iptables, o firewall do linux.

sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128


Se você tiver problemas com DNS, ou não souber configurá-lo, pode rediceionar as consultas DNS, mas isso é mais um quebra-galho. O melhor é configurar o servidor DNS para rodar no mesmo servidor do proxy.

Agora o nosso servidor rodar de forma transparente na rede, e não precisamos ser incomodados pelos usuários. E isto nos deixa prontos para podemor começar a brincar com tudo o que fizemos até aqui.



Referências:

UBUNTU
Guia UBUNTU
Ubuntu Forum
Net-SNMP
MRTG
SQUID
Underlinux
Viva o Linux!
Devin Eitch
Linuxman
Wikipédia
TLDP



powered by performancing firefox



Technorati Tags: , , , , , , , ,