Tutorial de Instalação
Transcrição
Tutorial de Instalação
Tutorial de Instalação Instalação do Sneplivre 1.3.9.6 (fonte) em Asterisk 1.4.44 Distribuição Linux CentOS 6.5 x86_64 (64 bits) Elaborado por: Urik B. da Silva E-mail: [email protected] Atualizado em: 30/01/2014 SNEP Livre – http://www.sneplivre.com.br 1/25 Atribuição – Uso não-comercial – Compartilhamento pela mesma licença 2.5 Brasil Você pode: Copiar, distribuir, exibir e executar a obra. Sob as seguintes condições: Atribuição: Você deve dar crédito ao autor original, da forma especificada pelo autor ou licenciante. Uso não-comercial: Você não pode utilizar esta obra com finalidades comerciais Compartilhamento pela mesma licença: Se você alterar, transformar ou criar outra obra com base nesta, você somente poderá distribuir a obra resultante sob uma licença idêntica a esta. A reprodução do material contido neste tutorial é permitido desde que se incluam os créditos ao autor em local visível. SNEP Livre – http://www.sneplivre.com.br 2/25 Índice de ilustrações Ilustração 1: PHP 5.4.4.......................................................................................................................12 Ilustração 2: Erro - Forbidden Apache...............................................................................................18 Ilustração 3: Bem vindo ao SNEP Livre.............................................................................................19 Ilustração 4: Tela de diagnósticos.......................................................................................................19 Ilustração 5: Configuração do Sistema...............................................................................................20 Ilustração 6: Tela de login do Sistema................................................................................................20 Ilustração 7: Tela de Status do Sistema..............................................................................................21 SNEP Livre – http://www.sneplivre.com.br 3/25 Sumário Versão...................................................................................................................................................4 1. Objetivo............................................................................................................................................5 2. Configurando rede e definindo hostname.........................................................................................6 3. Atualizando o sistema.......................................................................................................................7 4. Instalando o Apache2.......................................................................................................................7 4.1 Liberando Apache no Iptables...................................................................................................8 4.2 Desabilitando o SELinux...........................................................................................................9 5. Instalando o MySQL......................................................................................................................10 Guarde a senha de root!......................................................................................................................11 6. Instalação do PHP5.........................................................................................................................12 7. Instalando as dependências pré-compilação do Asterisk................................................................13 7.1 Instalando o headers.................................................................................................................13 7.2 Obtendo e Instalando o Asterisk..............................................................................................14 8. Obtendo e instalando o SNEP Livre...............................................................................................15 9. Extras..............................................................................................................................................22 3.1 Iptables.....................................................................................................................................22 10. Considerações Finais....................................................................................................................26 Versão Criado/Alterado Data Versão Urik B. Da Silva 30/01/2014 V1.0 SNEP Livre – http://www.sneplivre.com.br 4/25 1. Objetivo O objetivo desse pequeno tutorial (Howto) é guiar usuários iniciantes ou avançados para proceder uma instalação do SNEP Livre usando os pacotes fontes, compilando o Asterisk e resolvendo dependências na “mão” a partir do sistema operacional CentOS. Nesse tutorial não serão abordados aspectos de instalação, particionamento do CentOs. Como referência, pode ser consultado o site oficial: http://www.centos.org/docs/5/ As versões utilizadas nesse tutorial são: – CentOS 6.5 x86_64 minimal – Disponível em: http://centos.ufms.br/6.5/isos/x86_64/ – Asterisk 1.4.44 – Disponível em: http://downloads.asterisk.org/pub/telephony/asterisk/releases/asterisk-1.4.44.tar.gz – SNEP Livre 1.3.9.6 – Disponível em: http://sourceforge.net/projects/snep/files/snep/stable/ O procedimento completo de todas as etapas deve durar entre 30 e 50 minutos, dependendo do seu nível de familiaridade com o SNEP, Asterisk e Linux. Notas: – Você deverá efetuar todos os passos abaixo utilizando o usuário root (#); – Anote as senhas que você usar, elas serão importantes nos passos; SNEP Livre – http://www.sneplivre.com.br 5/25 2. Configurando rede e definindo hostname Logo após efetuar a instalação do sistema, será preciso definir o IP e o hostname do seu servidor. - Por padrão, utilizaremos o nome sneplive. - No ambiente desse tutorial foi usado o IP 10.48.0.128. Ajuste ao seu ambiente. Configurando a rede: vi /etc/sysconfig/network-scripts/ifcfg-eth0 Remova do arquivos as linhas HWADDR e UUID, ficando como como abaixo: DEVICE=eth0 TYPE=Ethernet ONBOOT=yes NM_CONTROLLED=no BOOTPROTO=static IPADDR=10.48.0.128 NETMASK=255.255.255.0 GATEWAY=10.48.0.254 Setando o hostname: vi /etc/sysconfig/network NETWORKING=yes HOSTNAME=sneplivre.localdomain Ajustando o hosts: vi /etc/hosts Deixe como abaixo: 127.0.0.1 127.0.0.1 ::1 localhost localhost.localdomain sneplivre sneplivre.localdomain sneplivre sneplivre.localdomain Após feito as configurações, reinicie o servidor para confirmar se funcionou: reboot SNEP Livre – http://www.sneplivre.com.br 6/25 3. Atualizando o sistema Antes de proceder com a instalação dos pacotes específicos, faça uma atualização dos pacotes padrão do sistema: yum update Total size: 52 M Is this ok [y/N]: y Installed: kernel.x86_64 0:2.6.32-431.3.1.el6 Complete! 4. Instalando o Apache2 yum install httpd -y Antes de proceder edite o arquivo /etc/httpd/conf/httpd.conf e na linha 58, abaixo de “ServerRoot” adicione a linha: vi /etc/httpd/conf/httpd.conf ServerName sneplivre Salve e saia do arquivo. Configure o Apache para iniciar automaticamente a cada boot: service httpd start chkconfig httpd on Nesse ponto, mesmo com o Apache instalado, você não irá conseguir acessá-lo devido às configurações do iptables. Se quiser adicionar regra, proceda conforme abaixo, ou desabilite o Selinux, também apresentado abaixo. SNEP Livre – http://www.sneplivre.com.br 7/25 4.1 Liberando Apache no Iptables vim /etc/sysconfig/iptables Adicione a linha: *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT -A INPUT -p icmp -j ACCEPT -A INPUT -i lo -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT -A INPUT -j REJECT --reject-with icmp-host-prohibited -A FORWARD -j REJECT --reject-with icmp-host-prohibited COMMIT Reinicie o serviço: service iptables restart Testar acesso ao Apache: http://IPdoservidor SNEP Livre – http://www.sneplivre.com.br 8/25 4.2 Desabilitando o SELinux sed -i s/SELINUX=enforcing/SELINUX=disabled/g /etc/selinux/config reboot SNEP Livre – http://www.sneplivre.com.br 9/25 5. Instalando o MySQL yum install mysql mysql-server -y Configure o Apache para iniciar automaticamente a cada boot: service mysqld start chkconfig mysqld on Por padrão, o MySQL não vêm com senha de root setada. Proceda como abaixo para efetuar a definição da senha de root: mysql_secure_installation NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MySQL SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY! In order to log into MySQL to secure it, we'll need the current password for the root user. If you've just installed MySQL, and you haven't set the root password yet, the password will be blank, so you should just press enter here. Enter current password for root (enter for none): [ENTER] OK, successfully used password, moving on... Setting the root password ensures that nobody can log into the MySQL root user without the proper authorisation. Set root password? [Y/n] Y New password: Re-enter new password: Password updated successfully! Reloading privilege tables.. ... Success! By default, a MySQL installation has an anonymous user, allowing anyone to log into MySQL without having to have a user account created for them. This is intended only for testing, and to make the installation go a bit smoother. You should remove them before moving into a production environment. Remove anonymous users? [Y/n] Y ... Success! Normally, root should only be allowed to connect from 'localhost'. This ensures that someone cannot guess at the root password from the network. Disallow root login remotely? [Y/n] Y ... Success! SNEP Livre – http://www.sneplivre.com.br 10/25 By default, MySQL comes with a database named 'test' that anyone can access. This is also intended only for testing, and should be removed before moving into a production environment. Remove test database and access to it? [Y/n] Y - Dropping test database... ... Success! - Removing privileges on test database... ... Success! Reloading the privilege tables will ensure that all changes made so far will take effect immediately. Reload privilege tables now? [Y/n] Y ... Success! Cleaning up... All done! If you've completed all of the above steps, your MySQL installation should now be secure. Thanks for using MySQL! Guarde a senha de root! SNEP Livre – http://www.sneplivre.com.br 11/25 6. Instalação do PHP5 yum install php -y Crie o arquivo info.php com o conteúdo para testar o funcionamento do PHP: vi /var/www/html/info.php <?php phpinfo() ?> http://IPdoservidor/info.php Se você ver uma página com várias informações do sistema e módulo PHP instalados, prossiga com a instalação. Senão, reveja algum passo acima. Ilustração 1: PHP 5.4.4 Instalando demais pacotes PHP necessários: yum install php-mysql php-cgi php-gd php-pear -y Efetuando ajuste importante no php.ini: vi /etc/php.ini Na linha 717, altere: DE: register_argc_argv = Off PARA: register_argc_argv = On Após finalizar a instalação e ajustes, reinicie o Apache service httpd restart SNEP Livre – http://www.sneplivre.com.br 12/25 7. Instalando as dependências pré-compilação do Asterisk yum install -y unixODBC unixODBC-devel libtool-ltdl libtool-ltdl-devel wget openssl-devel ncurses-devel make newt-devel libxml2-devel kernel-devel gcc gcc-c++ libuuid-devel Outras dependências importantes: yum install -y sox 7.1 Instalando o headers yum install kernel-headers -y SNEP Livre – http://www.sneplivre.com.br 13/25 7.2 Obtendo e Instalando o Asterisk cd /usr/src wget -c http://downloads.asterisk.org/pub/telephony/asterisk/releases/asterisk-1.4.44.tar.gz tar -zxvf asterisk-1.4.44.tar.gz cd asterisk-1.4.44/ ./configure make menuselect Confirme se os driver ODBC estão instalados: ---> Call Detail Recording [*] cdr_csv [*] cdr_custom [*] cdr_manager [*] cdr_odbc ---> Channel Drivers Marque a opção [*] chan_features Se sim, sai do menu (ESC) e siga os passos abaixo. Se não, reveja algum passo acima. Enter S to save your changes, and exit S make && make install Finalizando a instalação, adicionando o inicializável do Asterisk no init.d cp /usr/src/asterisk-1.4.44/contrib/init.d/rc.redhat.asterisk /etc/init.d/asterisk cd /etc/init.d service asterisk start chkconfig asterisk on Testando o acesso ao Asterisk: rasterisk Asterisk 1.4.44, Copyright (C) 1999 - 2010 Digium, Inc. and others. Created by Mark Spencer <[email protected]> Asterisk comes with ABSOLUTELY NO WARRANTY; type 'core show warranty' for details. This is free software, with components licensed under the GNU General Public License version 2 and other licenses; you are welcome to redistribute it under certain conditions. Type 'core show license' for details. ======================================================================= == Connected to Asterisk 1.4.44 currently running on sneplivre (pid = 26565) Verbosity is at least 3 sneplivre*CLI> SNEP Livre – http://www.sneplivre.com.br 14/25 8. Obtendo e instalando o SNEP Livre cd /usr/src tar -zxvf sneplivre-1.3.9.6.tar.gz mv sneplivre /var/www/html/ chown -R apache.apache /var/www/html/sneplivre/ Criando links simbólicos: ln -s /var/www/html/sneplivre /var/www/html/snep ln -s /var/www/html/sneplivre/ /var/www/snep Habilitando Virtual Hosts no Apache: mkdir /etc/httpd/sites-enabled echo Include /etc/httpd/sites-enabled/ >> /etc/httpd/conf/httpd.conf cp /var/www/snep/install/snep.apache2 /etc/httpd/sites-enabled/001-snep Reinicie o Apache: service httpd restart SNEP Livre – http://www.sneplivre.com.br 15/25 Copiando os arquivos do Asterisk: cp -avr /var/www/snep/install/etc/asterisk/ /etc/ Copiando os arquivos da conexão ODBC: cp /var/www/snep/install/etc/*.ini /etc/ cp: sobrescrever "/etc/odbc.ini"? y cp: sobrescrever "/etc/odbcinst.ini"? y Criar a base de dados, usuário snep e importar os templates do banco: mysql -u root -p < /var/www/snep/install/database.sql mysql -u root -p snep25 < /var/www/snep/default/installer/schema.sql mysql -u root -p snep25 < /var/www/snep/default/installer/system_data.sql mysql -u root -p snep25 < /var/www/snep/default/installer/cnl_data.sql Ajustando os diretórios necessários ao SNEP: ln -s /var/www/snep/agi/ /var/lib/asterisk/agi-bin/snep mkdir /var/lib/asterisk/sounds/backup mkdir /var/lib/asterisk/sounds/tmp chown -R apache.apache /var/lib/asterisk/sounds/ mkdir /var/lib/asterisk/moh/snep_1 mkdir /var/lib/asterisk/moh/snep_2 mkdir /var/lib/asterisk/moh/snep_3 chown -R apache.apache /var/lib/asterisk/moh/ SNEP Livre – http://www.sneplivre.com.br 16/25 Instalando o pacote de sons pt_BR do Asterisk: cd /usr/src/ wget -c http://www.sneplivre.com.br/downloads/asterisk-sounds.tgz tar -zxvf asterisk-sounds.tgz mv /usr/src/sounds/pt_BR/ /var/lib/asterisk/sounds/ chown -R apache:apache /var/lib/asterisk/sounds/ ln -s /var/lib/asterisk/sounds/pt_BR /var/www/snep/sounds/pt_BR ln -s /var/lib/asterisk/moh/ /var/www/snep/sounds/moh mkdir /var/log/snep touch /var/log/snep/ui.log chown apache.apache /var/log/snep/ui.log Reinicie o Apache e inicie o Asterisk: service httpd restart Stopping httpd: Starting httpd: [ OK ] [ OK ] service asterisk restart Starting asterisk: [ OK ] Para testar o funcionamento do Asterisk: # rasterisk Connected to Asterisk 1.4.44 currently running on sneplivre (pid = 21397) Verbosity is at least 3 sneplivre*CLI> exit Executing last minute cleanups SNEP Livre – http://www.sneplivre.com.br 17/25 Finalizando a instalação através do Wizard: 1. Através do browser, acesse o endereço http://ipdoservidor/snep Se você receber o erro abaixo: Ilustração 2: Erro - Forbidden Apache Edite o arquivo /etc/httpd/sites-enabled/001-snep e altere os valores em “Allow From” para a sua faixa de rede. vi /etc/httpd/sites-enabled/001-snep No meu caso, fica 10.48.0.0/255.255.255.0 Obs.: Existem alguns parâmetros que também podem ser ajustados de acordo com o hardware que você está utilizando. Para um servidor com processodor Core 2 Duo – 2Gb RAM, a configuração abaixo têm bom desempenho e não trava relatórios: php_value output_buffering 4096 php_value memory_limit 512M php_value upload_max_filesize 10M php_value max_execution_time 180 SNEP Livre – http://www.sneplivre.com.br 18/25 Passos de finalização da instalação via Wizard: Ilustração 3: Bem vindo ao SNEP Livre Ilustração 4: Tela de diagnósticos SNEP Livre – http://www.sneplivre.com.br 19/25 Ilustração 5: Configuração do Sistema Os campos de senha grifados em azul, deverão ser preenchidos. Ilustração 6: Tela de login do Sistema SNEP Livre – http://www.sneplivre.com.br 20/25 Ilustração 7: Tela de Status do Sistema SNEP Livre – http://www.sneplivre.com.br 21/25 9. Extras 3.1 Iptables O Iptables vêm habilitado por padrão. Num passo anterior foi mostrado como adicionar regra individual para funcionamento do Apache. Se você deseja deixar o iptables habilitado, será preciso liberar as portas de uso do Asterisk. Portas do Asterisk: Edite o arquivo e deixo-conforme modelo abaixo: vi /etc/sysconfig/iptables Firewall configuration written by system-config-firewall # Manual customization of this file is not recommended. *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT -A INPUT -p icmp -j ACCEPT -A INPUT -i lo -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT # Apache -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT # SIP -A INPUT -m state --state NEW -m udp -p udp --dport 5060 -j ACCEPT # RTP -A INPUT -m state --state NEW -m udp -p udp --dport 10000:20000 -j ACCEPT -A INPUT -j REJECT --reject-with icmp-host-prohibited -A FORWARD -j REJECT --reject-with icmp-host-prohibited COMMIT Reinicie o iptables: service iptables restart SNEP Livre – http://www.sneplivre.com.br 22/25 Confirmando o funcionamento: [root@sneplivre src]# service iptables status Table: filter Chain INPUT (policy ACCEPT) num target prot opt source destination 1 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 2 ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0 3 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 4 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 5 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 6 ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 7 ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 8 REJECT all -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22 state NEW tcp dpt:80 state NEW udp dpt:5060 state NEW udp dpts:10000:20000 reject-with icmp-host-prohibited Chain FORWARD (policy ACCEPT) num target prot opt source destination 1 REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited Chain OUTPUT (policy ACCEPT) num target prot opt source state RELATED,ESTABLISHED destination Importante: O procedimento acima está liberando as portas para qualquer origem. Se o seu SNEP possui IP válido para Internet, é recomendável que se atribua como origem somente as redes que você deseja que efetuem autenticação. Caso contrário, você poderá sofrer ataques de brute-force. Caso tenha dúvidas em como criar as regras, consulte a documentação: http://www.netfilter.org/documentation/HOWTO/pt/packet-filtering-HOWTO-7.html SNEP Livre – http://www.sneplivre.com.br 23/25 • Para desabilitar totalmente o iptables e não subir no boot: service iptables stop iptables: Setting chains to policy ACCEPT: filter iptables: Flushing firewall rules: iptables: Unloading modules: [ OK ] [ OK ] [ OK ] chkconfig iptables off service iptables status iptables: Firewall is not running. 3.2 Ajustes no Asterisk Pode ser preciso ajustar o parâmetro localnet na configuração do Asterisk para a sua faixa de rede, se a sua faixa de rede for diferente de 192.168.0/24. Para tanto, proceda da seguinte forma: Abra o arquivo /etc/asterisk/sip.conf e mude o valor de localnet= vi /etc/asterisk/sip.conf Na linha 289, altere: DE: localnet=192.168.0.0/255.255.0.0; All RFC 1918 addresses are local networks PARA: localnet=10.48.0.0/255.255.255.0; All RFC 1918 addresses are local networks SNEP Livre – http://www.sneplivre.com.br 24/25 10. Considerações Finais Esse tutorial teve como objetivo apresentar uma configuração completa de um ambiente operacional de telefonia IP. Caso encontre algum erro, ou encontre outra solução, ou queira colaborar com mais material de colaboração com o projeto do Sneplivre, utilize o fórum do site http://www.sneplivre.com.br e colabore para o crescimento dessa ferramenta genuinamente brasileira. SNEP Livre – http://www.sneplivre.com.br 25/25
Documentos relacionados
Aprendendo Asterisk – Manual para Iniciantes
Sobre as opções padrões: 1. Todos os arquivos em uma única partição (para iniciantes) Esse esquema é para iniciantes porque irá criar apenas um sistema de arquivos, as configurações do /home, /usr,...
Leia mais