OpenBSD como servidor de Internet

1. OpenBSD como servidor de Internet

Clemilton
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



  






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts