Este projecto que tem como objectivo criar um livro de referência sobre Debian GNU/Linux. Este livro pretende ser uma referência para fins práticos disponível para os utilizadores de Debian.
Olá Pessoal,
Nesta pequena dica venho explicar como preparar o Etch para ser um servidor sem serviços desnecessários e processos que não são úteis.
Alem do aumento de segurança, vão notar um bom aumento de performance e velocidade de arranque.
Estas configurações devem ser aplicadas logo a seguir à instalação do Debian 4.0 ("Etch").
Depois das configurações, o debian vai servir SSH de forma segura (Para administração remota).
Instalação de algum software necessário para que o sistema fique mais bem preparado para configurações futuras:
apt-get install wget bzip2 rdate fetchmail unzip zip ncftp libarchive-zip-perl zlib1g-dev libpopt-dev nmap openssl lynx fileutils g++ ssh htop iproute nfs-client
Remover software não necessário a um servidor:
apt-get remove lpr pidentd pcmcia-cs pppoe pppoeconf ppp pppconfig
Desactivar (Remover) alguns serviços do arranque:
update-rc.d -f exim remove
update-inetd --remove daytime
update-inetd --remove telnet
update-inetd --remove time
update-inetd --remove finger
update-inetd --remove talk
update-inetd --remove ntalk
update-inetd --remove ftp
update-inetd --remove discard
/etc/init.d/openbsd-inetd reload
dpkg-reconfigure locales
Desctivar todas as linguas e escolher apenas estas:
[*] pt_PT ISO-8859-1
[*] pt_PT.UTF-8 UTF-8
[*] pt_PT@euro ISO-8859-1
Carregar em seguinte e depois escolher:
pt_PT
Esta é a configuração base que aplico aos meus servidores antes de começar a configuração dos restantes serviços, e garanto-vos que me evita muitos problemas.
Espero que vos seja util.
Um Abraço,
Daniel Costa
O SpeedStep é uma função encontrada em alguns processadores Intel Centrino que consiste em variar dinâmicamente (via software) a velocidade do processador. Com isto é baixada a tensão de funcionamento diminuíndo a velocidade e assim o consumo da bateria e o aquecimento.
Existem programas nos arquivos Debian que colocam o processador à mínima velocidade (e menor consumo) e vão aumentando a velocidade consoante aumenta a carga no processador.
Para activar o SpeedStep é necessário activar algumas opções no kernel:
mferra@isosceles:/boot$ grep -i speedstep config-2.6.12.6 CONFIG_X86_SPEEDSTEP_CENTRINO=y
CONFIG_X86_SPEEDSTEP_CENTRINO_ACPI=y
# CONFIG_X86_SPEEDSTEP_CENTRINO_TABLE is not set
CONFIG_X86_SPEEDSTEP_ICH=y
CONFIG_X86_SPEEDSTEP_LIB=y
# CONFIG_X86_SPEEDSTEP_RELAXED_CAP_CHECK is not set
mferra@isosceles:/boot$
Debian GNU/Linux pode ser obtido de várias formas. Estão disponíveis várias imagens de CD, cada uma com a sua particularidade, para quem desejar instalar esta distribuição.
Para ver vídeos ou ouvir musica em formatos como WMA, ASF e WMV no Debian basta fazer o seguinte:
- Descarregar os codecs da internet:
$ wget -c http://www.debian-multimedia.org/pool/main/w/w32codecs/w32codecs_2006102...
- Instalar os Codecs:
$ sudo dpkg -i w32codecs_20061022-0.0_i386.deb
Depois de os codecs estarem instalados basta abrir os videos com o leitor multimedia (Por exemplo o Totem, Xine ou o Mplayer)
Mais uma funcionalidade que prova que não é necessário ter windows para conseguir tirar total partido do mundo viciado da informática.
Um Abraço,
Daniel Costa
Todos sabemos o que é o DNS e todos os dias em que olhamos para a configuração de rede das nossas maquinas nos lembramos da sua existencia e da sua importancia.
Um servidor de DNS mal configurado pode ser usado por terceiros sem grande esforço para ataques DoS. Pode também ser um meio de entrada para o sistema que o alberga(como qualquer outro serviço de rede).
Tendo isto em conta vamos instalar o BIND que é um dos dinossauros em continua evolução que mantem grande parte do serviço de DNS. O historico de bugs criticos e compromissos de segurança com este software é negro, contudo a versão actual ainda é na minha humilde opinião o melhor pacote gratuito de DNS do mercado.
Mas antes de arregaçar as mangas é preciso planear a estrutura do DNS, as zonas primarias, secundarias, stub, assim como a localização geográfica dos servidores, o alojamento dos mesmos, as delegações(subdominios), etc.
Recomendo para este efeito pelo menos uma olhada no DNS howto e para os mais afortunados mesmo a leitura do DNS & Bind da O’Reilly.
Na versão 9 é uma brisa montar um ambiente 'estanque', um chroot, onde o processo estará isolado do resto do sistema. Basta para isso seguir o chroot-bind-howto.
Depois criam-se as zonas respectivas e/ou na ausencia delas configuram-se os forwarders ficando com um cashing-only DNS server.
Existe uma equipa que mantem uma template de config para o bind verdadeiramente impressionante pela qualidade. A ‘Team Cymru’, deixo o link como referencia.
Espero que seja um ponto de partida para muito divertimento.
Referencias:
http://www.dns.net/dnsrd/rfc/
http://en.wikipedia.org/wiki/Domain_name_system
http://tldp.org/HOWTO/DNS-HOWTO.html
http://www.ibiblio.org/pub/Linux/docs/HOWTO/other-formats/pdf/Chroot-BIN...
http://www.cymru.com/Documents/secure-bind-template.html
Basicamente esta operação consiste em colocar o serviço a correr num ambiente restringido a uma zona do sistema de ficheiros de modo a dificultar a vida a quem possa explorar falhas de segurança com sucesso.
Testado com Debian Etch 4.0
Instalação:
apt-get install bind9
Configuração:
Parar o serviço:
/etc/init.d/bind9 stop
Restringir o serviço ao directorio do chroot:
Editar /etc/default/bind9
Alterar a linha:
OPTIONS="-u bind -t /var/lib/bind9"
Criar a arvore de directorios do chroot:
mkdir /var/lib/bind9
mkdir -p /var/lib/bind9/etc
mkdir /var/lib/bind9/dev
mkdir -p /var/lib/bind9/var/cache/bind
mkdir -p /var/lib/bind9/var/run/bind/run
mv /etc/bind /var/lib/bind9/etc/bind
Precaver algum problema com futuras actualizações:
ln -s /var/lib/bind9/etc/bind /etc/bind
Criar os dispositivos necessários para o seu funcionamento:
mknod /var/lib/bind9/dev/null c 1 3
mknod /var/lib/bind9/dev/random c 1 8
Acertar as permissões dos ficheiros:
chmod 666 /var/lib/bind9/dev/null /var/lib/bind9/dev/random
chown -R bind:bind /var/lib/bind9/var/*
chown -R bind:bind /var/lib/bind9/etc/bind
Preparar o syslog para recolher os dados do log do bind:
Editar /etc/default/syslogd
Alterar a linha:
SYSLOGD="-a /var/lib/bind9/dev/log"
Reiniciar os serviços:
/etc/init.d/sysklogd restart
/etc/init.d/bind9 start
Finalmente verificar erros em /var/log/syslog
e está prontinho :)
# Referencias:
* http://www.howtoforge.com/howto_bind_chroot_debian
* http://tldp.org/HOWTO/Chroot-BIND-HOWTO.html
O Dynamic Host Configuration Protocol é o serviço que trata de distribuir endereços IP por um conjunto de hosts.
Como estes IP's mudam frequentemente torna-se importante manter o DNS coerente ou poderiamos ter nomes a apontar para os hosts errados. Como fazemos isso?
Configuramos o servidor de DHCP para fazer essas actualizações no DNS de cada vez que houver alterações nos leases.
Para instalar o servidor de DHCP e DNS:
apt-get install bind9 dhcp3-server
colocar os interfaces relevantes para o servidor de DHCP:
/etc/default/dhcp3-server
INTERFACES="eth0 tap0"
/etc/dhcp3/dhcpd.conf
# activar o DDNS
ddns-updates on;
ddns-update-style interim;
# zona DNS Forward em que vai actualizar os nomes
ddns-domainname "joao.o-meu-dominio.whatever.";
# zona DNS Reverse em que vai actualizar os PTR's
ddns-rev-domainname "in-addr.arpa.";
# Esta linha inibe resposta aos pedidos de actualização DDNS dos clientes, usa-se em zonas inseguras
#ignore client-updates;
# Chave para aceder ao servidor de DNS
include "/etc/dhcp3/rndc.key";
option domain-name "joao.o-meu-dominio.whatever.";
option domain-name-servers 10.0.0.254;
default-lease-time 3600;
max-lease-time 17200;
authoritative;
log-facility local7;
zone joao.o-meu-dominio.whatever. {
primary 127.0.0.1;
key rndc-key;
}
subnet 10.0.0.0 netmask 255.255.255.0 {
range 10.0.0.10 10.0.0.50;
option routers 10.0.0.254;
option broadcast-address 10.0.0.255;
allow unknown-clients;
filename "pxelinux.0";
next-server 10.0.0.1;
zone 0.0.10.in-addr.arpa. {
primary 127.0.0.1;
key "rndc-key";
}
}
subnet 172.31.0.0 netmask 255.255.255.0 {
range 172.31.0.60 172.31.0.70;
option routers 172.31.0.1;
option broadcast-address 172.31.0.255;
allow unknown-clients;
filename "pxelinux.0";
next-server 172.31.0.254;
zone 0.31.172.in-addr.arpa. {
primary 127.0.0.1;
key "rndc-key";
}
}
Na configuração do bind colocar a linha allow-update { key "rndc-key"; }; nas zonas respectivas:
/etc/bind9/named.conf.local
zone "joao.o-meu-dominio.whatever" {
type master;
file "/etc/bind/db.farm";
allow-update { key "rndc-key"; };
notify yes;
};
zone "0.0.10.in-addr.arpa" {
type master;
file "/etc/bind/db.10.0.0";
allow-update { key "rndc-key"; };
notify yes;
};
zone 0.31.172.in-addr.arpa. {
type master;
file "/etc/bind/db.172.32.0";
allow-update { key "rndc-key"; };
notify yes;
};
Arrancar os serviços e voilá...
/etc/init.d/dhcp3-server start
/etc/init.d/bind9 start
Como demorei uma manhã inteira a experimentar pode ser ajude outros a não perder tempo. Só consegui pôr a funcionar com uma NAT. Se alguém souber de formas alternativas por fazer diga-me.
É necessário ter o módulo vmnet e a máquina virtual estar configurada para utilizar o device vmnet8.
#!/bin/sh
#Recebe em parametro ($1) a interface que tens ligada à internet
#IP do SOHost 192.168.224.2 (interface vmnet8)
#IP do SOGuest 192.168.224.1 (ip que a máquina virtual vai ter)
#Criar uma ligação entre o SO Host e o SO Guest
sudo vmnet-natd /dev/vmnet8 &
sudo vmnet-netifup -d /var/run/vmnet8.pid /dev/vmnet8 vmnet8
sudo ifconfig vmnet8 192.168.224.2 up
sudo route add -net 192.168.224.1 netmask 255.255.255.255 gw 192.168.224.1 vmnet8
#Neste momento o SO host já deve conseguir comunicar com o SO Guest (experimentar ping entre os dois)
#Agora é só fazer NAT para o SO Guest conseguir falar com o resto do mundo
sudo iptables -P FORWARD ACCEPT
sudo iptables -t nat -A POSTROUTING -o $1 -j MASQUERADE
sudo echo 1 > /proc/sys/net/ipv4/ip_forward
Olá Pessoal,
Neste howto passo a mostrar como se faz a configuração da rede no Debian:
Configuração de IP:
ifconfig eth0 IP A DEFINIR
Exemplo: ifconfig eth0 192.168.0.1
Definir um Gateway na Rede:
route add default gw IP DO GATEWAY
Exemplo: route add default gw 192.168.0.254
Configurar a resolução de nomes (DNS):
Editar o Ficheiro /etc/resolv.conf
Adicionar a linha:
nameserver IP DO SERVIDOR DNS
Pode-se e deve-se adicionar várias linhas nameserver com vários ip's de servidores dns.
Como configurar de forma estática a rede:
Editar o ficheiro /etc/network/interfaces e adicionar as seguintes linhas:
----------------------------------------------------------------------------------------------------
auto eth0 #arranca automaticamente com a interface de rede.
allow-hotplug eth0 #Faz com que o Debian detecte e aplique as configurações logo que o cabo é ligado ou desligado.
iface eth0 inet static #inicia a configuração estática da rede
address 192.168.0.1 # Define o IP que fica configurado
netmask 255.255.255.0 # Define a Mascara de rede, neste caso de 24Bits
broadcast 192.168.0.255 # Define o Broadcast de Rede
network 192.168.0.0 # Define o Segmento de rede em que está o IP acima indicado.
gateway 192.168.0.254 #Define o Gateway de rede.
----------------------------------------------------------------------------------------------------
As configurações de DNS são iguais às acima indicadas já que ficam estáticas se a opção de configuração de rede no /etc/network/interfaces for "static".
Como criar rotas dinâmicas ou estáticas para outras redes:
Instalar o software necessário:
apt-get install iproute
Criação do routeamentos:
ip route add 10.0.0.0/24 via 192.168.0.200
O comando acima indicado cria um routeamento para a rede 10.0.0.0/24 através do Gateway 192.168.0.200.
Para activar este routeamento como estático, basta adicionar ao /etc/network/interfaces a seguinte linha:
up ip route add 10.0.0.0/24 via 192.168.0.200
Espero que este how-to seja útil.
Um abraço,
Daniel Costa
Uma das características que distingue Debian de outras distribuições é a gestão de pacotes da distribuição. Debian tipicamente sempre disponibilizou ferramentas mais evoluidas para a gestão de pacotes. Na verdade Debian disponibiliza uma série de utilitários para a gestão de pacotes que executam as suas tarefas de forma simples e eficiente. Consoante o que se pretende fazer é só utilizar a ferramenta certa. Aqui fica listado uma série de exemplos que pretendem demonstrar como fazer as tarefas de gestão de pacotes consoante a necessidade de cada um.
Actualizar a lista dos pacotes disponíveis
apt-get update
ou
aptitude update
Actualizar os pacotes instalados
apt-get upgrade
ou
aptitude upgrade
Ficheiro com a lista de arquivos de pacotes a utilizar:
/etc/apt/sources.list
Por exemplo, para utilizar a distribuição estável a partir de um arquivo Português, basta editar o ficheiro indicado e ter lá o seguinte counteúdo:
deb http://debian.ua.pt/debian/ testing main contrib non-free
*uma breve explicação acerca desta linha: *
- http://...... é o método de acesso ao repositório de pacotes, também poderia ser cdrom:// para CDs de pacotes, file:// para repositórios locais, etc...
- testing, é a distribuição. Neste campo opções possíveis são stable, testing e unstable.
- main contrib e non-free são as secções do repositório que irão ser acedidas. É possível utilizar somente a main.
Para ter também disponível o código fonte dos pacotes, acrescentar no ficheiro:
deb-src http://debian.ua.pt/debian/ testing main contrib non-free
Procurar um pacote
apt-cache search nome
ou
aptitude search nome
Detalhes de um pacote
apt-cache show pacote
ou
aptitude show pacote
Olá Pessoal,
Desta vêz venho mostrar como instalar a placa de rede Intel Pro Wireless 2200 BG no Debian (Etch).
Esta instalação apenas é possivel a quem aparecer o serguinte resultado ao comando lspci:
02:02.0 Network controller: Intel Corporation PRO/Wireless 2200BG Network Connection (rev 05)
Ou a quem aparece o resultado abaixo no comando "dmesg |grep ipw":
ipw2200: Intel(R) PRO/Wireless 2200/2915 Network Driver, 1.1.2kmq
ipw2200: Copyright(c) 2003-2006 Intel Corporation
ipw2200: Detected Intel PRO/Wireless 2200BG Network Connection
ipw2200: ipw2200-bss.fw request_firmware failed: Reason -2
ipw2200: Unable to load firmware: -2
ipw2200: failed to register network device
ipw2200: probe of 0000:02:02.0 failed with error -5
Começamos por fazer o download dos drivers da Intel usando o site:
http://downloadfinder.intel.com/scripts-df-external/...ProductID=1847
Extrai-se os ficheiros:
tar -xvzf ipw2200_linux_1_2_0.tgz
cd intel_ipw2200_120/
tar -xvzf ipw2200-fw-3.0.tgz
cd ipw2200-fw-3.0/
Copiar firmware para o local correcto:
cp -v ipw2200-bss.fw ipw2200-ibss.fw ipw2200-sniffer.fw /lib/firmware/
Verificar se o modulo está carregado:
lsmod |grep ipw
Deve apresentar um resultado semelhante a isto:
ipw2200 93824 0
ieee80211 29416 1 ipw2200
firmware_class 9600 2 pcmcia,ipw2200
Então devemos descarregar o modulo e voltar a carrega-lo:
modprobe -r ipw2200 && modprobe ipw2200
E pronto, está instalado!!!
Para testar basta fazer:
iwconfig
Deve aparecer algo do genero:
eth2 unassociated ESSID:off/any
Mode:Managed Channel=0 Access Point: Not-Associated
Bit Rate:0 kb/s Tx-Power=20 dBm Sensitivity=8/0
Retry limit:7 RTS thr:off Fragment thr:off
Encryption key:off
Power Management:off
Link Quality:0 Signal level:0 Noise level:0
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:0
Então podemos agora procurar por redes wireless:
iwlist eth2 scan
Espero que vos ajude....
Um abraço,
Daniel Costa
Os nomes de código das distribuições de Debian representam nomes das personagens dos filmes "Toy Story". Até agora os nomes dos lançamentos têm sido: