clemylton
(usa Slackware)
Enviado em 08/10/2008 - 18:48h
Tutorial bacana de como usar o OpenBSD como servidor de internet retirado do UnderLinux.
http://under-linux.org/wiki/index.php/Tutoriais/OpenBSD/opensbd-internet
------------------------------------------------------------------------------------
Esse artigo tem por objetivo ensinar ao leitor como configurar um servidor de internet, rodando Bind ,qmail, apache(PHP),e o packetfilter, no OpenBSD.
------------Bind---------
Nesse nosso WebServer, utilizaremos o Bind 4.9.8, que vem como padrão no OpenBSD 3.1. Nosso domínio "exemplo" será o "open.opensolutions.com.br", com ip (fictício) 200.259.111.1. Utilizaremos o diretório /var/named/namedb como base dos arquivos, e o nosso arquivo principal de configuração será o /var/named/named.boot. Por padrão, o named no OpenBSD ja vem com uma configuração bem segura, rodando em um anbiente "chroot" (/var/named), e sendo executado pelo usuário named. Abaixo segue os arquivos de configuração do nosso domínio. Onde tiver ";"(ponto e vírgula) é um comentário. Cada arquivo começa com um comentário mostrando a sua localização no sistema e termina com um "EOF arquivo". Qualquer dúvida consulte nossos textos sobre DNS.
--/var/named/named.boot--
directory /namedb
;diretório base
cache . named.ca
primary 0.0.127.IN-ADDR.ARPA named.local
primary open.opensolutions.com.br open.db
primary 1.111.259.200.IN-ADDR.ARPA 200.259.111.1.db
--EOF /var/named/named.boot--
-- /var/named/namedb/named.local --
@ IN SOA localhost. root.localhost. (
1 ; Serial
3600 ; Refresh
900 ; Retry
3600000 ; Expire
3600 ) ; Minimum
IN NS localhost.
1 IN PTR localhost.
--EOF /var/named/namedb/named.local--
-- /var/named/namedb/open.db--
@ IN SOA open.opensolutions.com.br. daniel.underlinux.com.br. (
1 ; serial
3600 ; refresh
900 ; retry
3600000 ; expire
3600 ) ; minimum
;NameServer
@ IN NS open.opensolutions.com.br.
;SubDomains
@ IN A 200.259.111.1
ns IN A 200.259.111.1
www IN A 200.259.111.1
@ IN MX 5 open.opensolutions.com.br.
EOF /var/named/namedb/open.db
-- /var/named/namedb/200.259.111.1.db --
@ IN SOA open.opensolutions.com.br. daniel.underlinux.com.br. (
1 ; serial
3600 ; refresh
900 ; retry
3600000 ; expire
3600 ) ; minimum
@ IN PTR open.opensolutions.com.br.
@ IN NS open.opensolutions.com.br.
EOF /var/named/namedb/open.db
O arquivo named.ca, é um arquivo a parte, e pode ser obtido, renomeando-se o /var/named/namedb/root.cache, ou então baixando-o de ftp.internic.net.
mv /var/named/namedb/root.cache /var/named/namedb/named.ca
Feito isso, é só iniciar o named:
ndc start
-------Qmail---------
Agora iremos falar do qmail. O OpenBSD vem com o sendmail como MTA padrão, mas por motivos de segurança e de facilidade, vamos instalar e configurar o qmail. Para começar, devemos criar o diretório que irá ser usado pelo qmail:
mkdir /var/qmail
Criar os usuários e grupos utilizados por ele, baixar o qmail e então instalá-lo:
groupadd nofiles
groupadd qmail
useradd -g nofiles -d /var/qmail/alias -m alias
useradd -g nofiles -d /var/qmail qmaild
useradd -g nofiles -d /var/qmail qmailp
useradd -g nofiles -d /var/qmail qmaill
useradd -g qmail -d /var/qmail qmailq
useradd -g qmail -d /var/qmail qmails
useradd -g qmail -d /var/qmail qmailr
wget
http://cr.yp.to/software/qmail-1.03.tar.gz
tar -zxvf qmail-1.03.tar.gz
cd qmail-1.03
make setup check
./config-fast open.opensolutions.com.br (dominio da sua maquina)
wget
http://cr.yp.to/ucspi-tcp/ucspi-tcp-0.88.tar.gz
tar -zxvf ucspi-tcp-0.88.tar.gz
cd ucspi-tcp-0.88
make setup check
wget
http://cr.yp.to/checkpwd/checkpassword-0.90.tar.gz
tar -zxvf checkpassword-0.90.tar.gz
cd checkpassword-0.90
make
make setup check
Feito isso, devemos configurar alguns "alias" necessários para o qmail, "desabilitar" o sendmail" e então iniciar o qmail:
cd ~alias
touch .qmail-postmaster
touch .qmail-mailer-daemon
touch .qmail-root
chmod 644 ~alias/*
chmod 0 /usr/sbin/sendmail
mv /usr/sbin/sendmail /usr/sbin/sendmail-old
ln -s /var/qmail/bin/sendmail /usr/sbin/sendmail
sh -cf '/var/qmail/boot/home &'
/usr/local/bin/tcpserver -u (qmaild id) -g (qmaild gid) 0 25
/var/qmail/bin/qmail-smtpd 2>/dev/null& (na mesma linha)
/usr/local/bin/tcpserver 0 110 /var/qmail/bin/qmail-popup
open.opensolutions.com.br /bin/checkpassword
/var/qmail/bin/qmail-pop3d Mailbox 2>/dev/null& (na mesma linha tudo)
Pronto, espero que não tenha ficado muito chato. Mas basta seguir esses passos para funcionar corretamente. Para mais detalhes, veja
www.qmail.org. Para iniciar o qmail durante o boot, veja a ultima parte.
-------------Apache---------------
O Apache já vem pré-instalado no OpenBSD, bastando apenas algumas modificações para o seu funcionamento desejado. No nosso exemplo, queremos rodar ele com suporte a PHP, então devemos instalar o PHP:
cd /usr/ports/www/php4
make
make install
/usr/local/sbin/php4-enable
E depois adicionar as seguintes linhas no /var/www/conf/httpd.conf, para ele aceitar seus scripts PHP:
LoadModule php4_module /usr/lib/apache/modules/libphp4.so
DirectoryIndex index.php index.html index.wml index.php3
AddType application/x-httpd-php .php .php3 .phtml
AddType application/x-httpd-php-source .phps
E então reiniciar o apache:
apachectl restart
--------------PF------------------
O OpenBSD ( a partir do 3.0) vem com o packetfilter (pf), que é um excelente filtro de pacotes, mas com uma configuração bem simples, toda dentro do arquivo "/etc/pf.conf" (nat.conf para nat). No nosso exemplo, usaremos a política de bloquear todo o acesso a nossa máquina, liberando apenas as portas usadas por nós (22,25,53,80 e 110). O acesso de saída será totalmente liberado. Nosso arquivo de configuração ficaria então desse modo:
#echo >> /etc/pf.conf << EOF
#Arquivos comecados com "#" sao comentarios e nao serao lidos.
#"dc0" e a nossa interface de rede. Troque pela a da sua maquina.
#ver /etc/hostname.xxx (xxx = interface de rede)
scrub in all
pass in log quick on dc0 inet proto tcp from any to any port 22 flags S/SA
pass in quick on dc0 inet proto tcp from any to any port 25 flags S/SA
pass in quick on dc0 inet proto tcp from any to any port 80 flags S/SA
pass in quick on dc0 inet proto tcp from any to any port 110 flags S/SA
pass in quick on dc0 inet proto tcp from any to any port 53 flags S/SA
pass in quick on dc0 inet proto udp from any to any port 53 flags S/SA
block in on dc0 inet from {127.0.0.0/8, 192.168.0.0/16 } to any
block in on dc0 from any to any
pass out on dc0 from any to any keep state
#EOF
Bem, agora basta iniciar o pf:
pfctl -R /etc/pf.conf
pfctl -e
>>>>>>>>>>>>>>>>>>Iniciando tudo durante o boot<<<<<<<<<<<<<<<<<<<<<<<<<<<
Todos os nossos serviços já foram iniciados, mas para automatizar esse processo durante o boot, é necessário de mais algumas configurações. Para iniciar o "qmail" durante o boot, devemos adicionar as seguintes linha no final do arquivo /etc/rc (antes de exit 0):
echo "iniciando o qmail"
sh -cf '/var/qmail/boot/home &'
/usr/local/bin/tcpserver -u 1003 -g 1000 0 25 /var/qmail/bin/qmail-smtpd 2>/dev/null &
/usr/local/bin/tcpserver 0 110 /var/qmail/bin/qmail-popup open.opensolutions.com.br /bin/checkpassword /var/qmail/bin/qmail-pop3d Mailbox 2>/dev/null&
E para iniciar o named, o Apache e o pf, basta deixar as seguintes linhas no arquivo /etc/rc.conf na forma:
named_flags=""
httpd_flags=""
pf=YES
Conclusão
Apos ter seguido todos esses passos, é só dar um logoff e deixar sua máquina trabalhando. E ó que ela trabalha... olha o Uptime do meu servidor (p100 com 16 de ram):
uptime
6:36PM up 43 days, 9:50, 3 users, load averages: 0.58, 0.22, 0.14
Bem, deixando a "grannde" performance do meu p100 de lado, se tiver alguma duvida,sugestão ou crítica, mail me:
Daniel B. Cid daniel@underlinux.com.br