Para atualizar os repositórios do apt e instalar quaisquer atualizações disponíveis:
$ sudo apt-get update
$ sudo apt-get upgrade
Os pacotes necessários são:
1) subversion – pacote contendo arquivos binários, ferramentas de administração svnadmin e distribuição svnserve;
2) libapache2-svn – módulos mod_dav_svn e mod_authz_svn que permitem o acesso aos repositórios através do protocolo http e https via WebDAV;
3) apache2 – servidor web. Veja mais em: http://pt.wikipedia.org/wiki/Servidor_Apache;
4) ssl-cert – pacote que permite a instalação de outros pacotes que precisam criar certificados SSL. Leia também sobre OpenSSL.
Para instalação desse pacotes:
$ sudo apt-get install subversion libapache2-svn apache2 ssl-cert
II) Abilitando o suporte ao SSL
Para habilitar o suporte a SSL no Apache 2 é necessário criar um certificado digital utilizando o comando make-ssl-cert e um arquivo modelo de configuração. Por padrão o Ubuntu 9.04 já traz este modelo em /usr/share/ssl-cert/ssleay.cnf com o seguinte conteúdo:
#Não há problemas caso você não faça nenhuma modificação neste modelo.
# SSLeay example configuration file.
#
RANDFILE = /dev/urandom
[ req ]
default_bits = 1024
default_keyfile = privkey.pem
distinguished_name = req_distinguished_name
prompt = no
policy = policy_anything
Crie o diretório onde o certificado será criado:
$ sudo mkdir /etc/apache2/ssl
Agora, utilizando o make-ssl-cert e o modelo no arquivo ssleay.cnf vamos criar o certificado armazenando-o no arquivo apache.pem:
$ sudo make-ssl-cert /usr/share/ssl-cert/ssleay.cnf /etc/apache2/ssl/apache.pem
Surgirá uma tela, como a figura abaixo, onde será solicitado o nome do servidor. Você pode preencher com o IP da máquina se desejar.
Para definir a permissão ao arquivo.
$ sudo chmod 660 /etc/apache2/ssl/apache.pem
III) Configurando Apache 2 e habilitando o SSL
Verifique se o Apache 2 para que seja habilitada o suporte a porta 443. Para isso visualize o arquivo ports.conf no diretório do Apache 2:
$ gedit /etc/apache2/ports.conf
Seu arquivo deverá estar como mostro abaixo:
NameVirtualHost *:80
Listen 80
# SSL name based virtual hosts are not yet supported, therefore no
# NameVirtualHost statement here
Listen 443
$ sudo a2enmod ssl
O último passo da configuração do Apache 2, para o perfeito funcionamento do SSL, consiste em criar o arquivo svn em /etc/apache2/sites-available, este arquivo deve conter as configurações para a porta 443, ou seja, a porta ao qual definimos como responsável pelo SSL.
Para isso vamos copiar o arquivo default que está em /etc/apache2/sites-available para o arquivo svn.
$ sudo cp /etc/apache2/sites-available/default /etc/apache2/sites-available/svn
Agora edite o arquivo utilizando, por exemplo, o gedit:
$ sudo gedit /etc/apache2/sites-available/svn
Altere a linha VirtualHost *:80 para VirtualHost *:443 e logo abaixo adicione as linhas:
SSLEngine onVamos entender cada uma das três linhas acima:
ServerSignature On
SSLCertificateFile /etc/apache2/ssl/apache.pem
1) SSLEngine on – Ativa se definida como “on” a utilização do protocolo SSL/TLS;
2) SeverSignature On – Ativa ou desativa a exbição da assinatura do servidor, ou seja, a linha que exibe as configurações do Apache. Por exemplo: Apache/2.2.9 (Ubuntu) DAV/2 SVN/1.5.1 PHP/5.2.6-2ubuntu4.1 with Suhosin-Patch mod_ssl/2.2.9 OpenSSL/0.9.8g Server at 192.168.0.30 Port 44. Na influencia no funcionamento do servidor;
3) SSLCertificateFile – Define o caminho para certificado.
Após a criação do arquivo svn, então é necessário habilitá-lo no Apache 2. Para isso utilize o script a2ensite. Este script habilita arquivos que contenham o bloco
$ sudo a2ensite svn
$ sudo /etc/init.d/apache2 force-rel oad
Teste seu servidor, digitando no navegador o endereço IP precedido por https, por exemplo: https://200.45.202.123.
Você poderá ver uma página como a da figura abaixo. Fique tranquilo! Essa mensagem não reflete um problema em seu servidor. Na verdade a mensagem é exibida, pois você configurou um certificado próprio (auto-assinado) e não foi emitido por uma autoridade certificadora, como é o caso de sites que utilizam certificado homologado pela VeriSign. Apenas clique no link “você pode adicionar uma exceção” e depois no botão “Adicionar exceção…”. Aparecerá seu endereço IP. “Clique em verificar certificado” e logo em seguida, clique no botão “Confirmar exceção de segurança”. Pronto.
Configurando o Subversion
Vamos criar um repositório de teste para que possamos garantir a correta instalação (e na sequência vamos finalizar a instalação). Para criarmos um repositório é necessário criar um diretório e a partir dele, alterarmos o “proprietário” do diretório e definir as permissões. Após estes passos, então poderemos adicioná-lo ao Subversion com o comando svnadmin. Com o svnadmin é possível manipular usuários, projetos, repositórios e acessos.Agora vamos habilitar a autenticação no Apache 2. O htpasswd é o responsável pela criação e atualização de arquivos que armazenam o nome de usuário (login) e a senha para autenticação via HTTP.$ sudo mkdir /var/svn/teste
$ sudo chown -R www-data:www-data /var/svn/teste
$ sudo chmod -R g+ws /var/svn/teste
$ sudo svnadmin create /var/svn/teste
$ sudo htpasswd -c -m /etc/apache2/dav_svn.passwd admin
Importante, este comando serve apenas para quando se está criando o primeiro usuário, para outros usuários deve ser utilizado o mesmo comando sem a opção -c , pois ela faz a criação do arquivo, deve ser utilizado apenas a opção -m para que a senha armazenada seja com HASH MD5
Repare que no final da linha, após o caminho, existe o nome de usuário utilizado, ou seja, admin. Após executado comando acima, será solicitada uma senha. Evite esquecer a senha.
Após a definição da senha, então devemos editar o arquivo dav_svn.conf para habilitar o WebDAV e o SVN no Apache 2.
Agora altere o arquivo dav_svn.conf para a estrutura como mostrada abaixo:$ sudo gedit /etc/apache2/mods-available/dav_svn.conf
DAV svn
SVNParentPath /var/svn
AuthType Basic
AuthName "Repositorio da Logica Digital"
AuthUserFile /etc/apache2/dav_svn.passwd
Require valid-user
SSLRequireSSL
1)
2) DAV svn – habilita o repositório;
4) AuthType Basic – define o método de autenticação de usuário. É possível inclusive utilizar LDAP para habilitar Single sign-on. Prometo que farei um post sobre essa configuração;
5) AuthName – serve apenas como descritivo;
6) AuthUserFile – caminho do arquivo criado pelo comando htpasswd;
7) Require valid-user – confi
8) SSLRequireSSL – obriga que a comunicação com o servidor de controle de versão seja feita sobre o protocolo SSL.
Após configurado o arquivo de integração entre o Subversion e o Apache 2, então é necessário reinicializar o Apache 2:
$ sudo /etc/init.d/apache2 force-reload
Acesse, através do seu navega
Pronto. O servidor de controle de versão com Subversion, Apache 2 com SSL no Ubuntu Intrepid Ibex está funcionado. O próximo post virá com dicas de utilização.
1) http://andreferraro.wordpress.com/2009/04/05/linux-instalando-o-subversion-com-apache-2-e-ssl-no-ubuntu-intrepid-ibex-ubuntu-810/
2) https://help.ubuntu.com/9.04/serverguide/C/subversion.html
3) http://moisesfontana.blogspot.com/2007/09/mover-repositrio-do-svn-entre.html
4) https://help.ubuntu.com/9.04/serverguide/C/subversion.html
5) http://linuxieu.blogspot.com/2009/06/ubuntu-subversion.html
Nenhum comentário:
Postar um comentário