sábado, 18 de dezembro de 2010

Servidor LAMP - Virtual host redirecionamento [Linux]

Virtual Hosts


Outro recurso suportado pelo Apache, e muito usado, é a possibilidade de hospedar vários sites no mesmo servidor (shared hosting). Mais de 80% dos sites da internet são hospedados dessa forma econômica.

Nesse caso, os arquivos de cada site ficam guardados em uma pasta diferente e o servidor se encarrega de direcionar cada visitante ao site correto. Servidores como os dos serviços de hospedagem gratuita exploram esse recurso ao extremo, com um número assustador de sites hospedados em cada servidor.

Em um host compartilhado, os recursos do servidor (HD, memória, processamento e link) são divididos entre os sites hospedados, assim como vários programas abertos simultaneamente disputam os recursos da máquina. Isso faz muito sentido no caso de sites pequenos ou médios, que não possuem um número suficiente de visitas para saturarem, sozinhos, o servidor.

Ao hospedar seu site em um host compartilhado, você tem direito a uma determinada quota de espaço em disco e pode acessar os arquivos do site via FTP ou SFTP. Porém, você não pode instalar novos pacotes, nem alterar a configuração do servidor: fica limitado aos recursos disponíveis.

A segunda opção é alugar um host dedicado, onde você tem um servidor completo à sua disposição, inclusive com a possibilidade de criar virtualhosts e hospedar outros sites.

Invariavelmente, ao hospedar vários domínios, você precisa configurar um servidor DNS (o mais usado é o Bind) para responder a todos os domínios hospedados no servidor, entregando o endereço IP do seu servidor Apache. Não é necessário que o DNS esteja instalado no mesmo servidor que o Apache, a função dele será unicamente responder às requisições dos clientes, fornecendo o IP correto.

Em muitos casos, a própria empresa que lhe aluga o servidor oferece esse serviço, mas vamos aprender como fazer isso manualmente logo a seguir.

Configurar um servidor DNS pode ser um pouco indigesto, mas a configuração do Apache é bastante simples. Em primeiro lugar, você deve criar uma pasta separada para cada site que será hospedado. Você pode usar a própria pasta "/var/www", como em:

# mkdir /var/www/joao
# mkdir /var/www/maria

Além de configurar o servidor Web, precisaremos fazer com que os responsáveis possam acessar os arquivos nas suas respectivas pastas, a fim de atualizar seus sites. A forma mais simples de fazer isso é criar um usuário para cada um e dar acesso a eles via FTP. Mais adiante veremos como configurar o servidor FTP com o Proftpd. Veja que as três coisas acabam se integrando: o Bind resolve os nomes de domínio, o Apache fornece as páginas e o Proftpd permite que os webmasters atualizem os sites.

Acesse agora a pasta "/etc/apache2/sites-available", onde vai a configuração dos sites disponíveis. Comece editando o arquivo "/etc/apache2/sites-available/default", substituindo as linhas:

NameVirtualHost *
<VirtualHost *>

Por:

NameVirtualHost *:80
<VirtualHost *:80>

Essa configuração é necessária para ativar o suporte a SSL para os virtual hosts. Sem ela, além do SSL não funcionar para os virtual hosts (funcionaria apenas para o site default), você precisaria modificar a configuração de cada um, usando sempre "<VirtualHost *>" ao invés de "<VirtualHost *:80>".

Imagine que vamos hospedar os sites "www.joao.com.br" e "www.maria.com.br", usando as duas pastas criadas anteriormente. Criaríamos, então, um arquivo para cada site, contendo o seguinte:

- /etc/apache2/sites-available/joao:

<VirtualHost *:80>
ServerAdmin joao@joao.com.br
ServerName www.joao.com.br
ServerAlias joao.com.br
DocumentRoot /var/www/joao
</VirtualHost>

- /etc/apache2/sites-available/maria:

<VirtualHost *:80>
ServerAdmin maria@gmail.com
ServerName www.maria.com.br
ServerAlias maria.com.br
DocumentRoot /var/www/maria
</VirtualHost>

Note que adicionei uma nova diretiva, a "ServerAlias", que permite que o site seja acessado tanto com, quanto sem o "www". A linha "ServerAdmin" é, na verdade, opcional, contém apenas o e-mail de contato do administrador do site.

Fazendo dessa forma, os logs de acessos serão misturados no log principal do Apache, o "/var/log/apache2/access.log". Para que cada site tenha seus logs separados, você deve adicionar duas linhas adicionais, especificando a localização. Não é recomendável deixar os logs disponíveis ao público, por isso seria interessante usar diretórios diferentes, como em:

<VirtualHost *:80>
ServerAdmin joao@joao.com.br
ServerName www.joao.com.br
ServerAlias joao.com.br
DocumentRoot /var/www/joao/html
ErrorLog /var/www/joao/logs/error.log
CustomLog /var/www/joao/logs/access.log combined
</VirtualHost>

Caso queira ativar o suporte a SSL para os virtual hosts, adicione (depois de fazer a configuração que vimos no tópico sobre virtual hosts) a sessão referente ao SSL dentro da configuração de cada site, indicando corretamente a pasta do site e os arquivos de log. O SSL pode ser tanto ativado para o raiz do site, permitindo que os visitantes visualizem qualquer parte do site usando o "https://", ou utilizar uma pasta separada, onde está a parte de comércio eletrônico do site, por exemplo, como em:

<VirtualHost *:443>
DocumentRoot /var/www/joao/ssl
ErrorLog /var/www/joao/logs/error.log
CustomLog /var/www/joao/logs/access.log combined
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/apache.pem
</VirtualHost>

Neste caso ao acessar o "http://joao.com.br" o visitante visualizará o conteúdo da pasta "/var/www/joao/html", enquanto ao acessar o "https://joao.com.br", visualizará a "/var/www/joao/ssl".

Depois de feita a configuração, ative ambos os sites usando o comando a2ensite, o que criará links para eles na pasta "/etc/apache2/sites-enabled":

# a2ensite joao
# a2ensite maria

Você pode adicionar quantos sites quiser usando esses mesmos passos. Sempre que alterar a configuração, é necessário dar um force-reload, para que as alterações entrem em vigor:

# /etc/init.d/apache2 force-reload

Note que, como todos os sites ficam hospedados no mesmo servidor, a única forma de chegar ao site desejado é fazendo o acesso através do domínio. Se você tentar acessar diretamente o IP do servidor, vai cair no site padrão (configurado através do arquivo "/etc/apache2/sites-available/default"), que, por padrão, usa o raiz da pasta "/var/www".

Esta página default pode ser usada para mostrar alguma publicidade da empresa responsável pelo servidor, ou uma lista dos sites hospedados.

Alterar teclado Terminal para PT_BR [Linux]


  1. Certifique-se que os seguintes pacotes estejam instalados:
    • language-pack-pt
    • language-pack-pt-base
    Para instalar, você pode usar o Gerenciador de Pacotes Synaptic (gráfico), ou executar esta linha de comando (requer sudo / permissão de root):
    $ sudo apt-get install language-pack-pt language-pack-pt-base
  2. Edite o arquivo /var/lib/locales/supported.d/local e adicione a seguinte linha no início do arquivo (requer sudo / permissão de root):
    pt_BR.ISO-8859-1 ISO-8859-1
  3. Edite o arquivo /etc/locale.alias e adicione a seguinte linha (requer sudo / permissão de root):
    pt_BR pt_BR.ISO-8859-1
  4. Edite o arquivo /etc/environment e altere o parâmetro LANG da seguinte forma (requer sudo / permissão de root):
    LANG="pt_BR"
  5. Atualize os locales, com o comando (requer sudo / permissão de root):
    $ sudo dpkg-reconfigure locales
  6. Para ativar imediatamente as novas configurações no ambiente gráfico, reinicie o seu X, com a seguinte combinação de teclas:
    [Ctrl] + [Alt] + [Backspace]
  7. Abra o arquivo ~.bashrc (no seu home) e adicione a seguinte linha no final do arquivo [NOTA: para mim, este passo não foi necessário]:
    source /etc/environment

Copiar arquivos entre servidores via Terminal

Exemplo de como copiar o arquivo 9.avi para o servidor remoto 192.168.0.1 na pasta /home/teste

scp -P 22 /home/kadu137/9.avi root@192.168.0.1:/home/teste/


SSH mais seguro

Para quem mantém algum servidor exposto à internet com acesso ssh, um
risco comum são as tentativas de acesso por robôs com a finalidade de descobrir
senhas fáceis. Uma maneira de minimizar esse risco é instalar o fail2ban;
esse programa monitora os arquivos de log e bloqueia os endereços IP dos atacantes, caso um determinado número de tentativas sem sucesso tenha sido alcançado.
A instalação, em sistemas baseados no Debian, é simples


# apt-get install fail2ban


Após a instalação, edite o arquivo /etc/fail2ban/jail.conf.
Nele podemos configurar quais serviços o fail2ban vai monitorar.
O que estamos interessados no momento é o SSH.
Altere o número máximo de tentativas na seção [ ssh ].
Você também pode alterar o tempo de banimento através da opção "bantime".
Após a edição do arquivo, reinicie o serviço para que as configurações entrem em vigor.
# /etc/init.d/fail2ban restart
Acompanhe quais IPs foram banidos através do arquivo /var/log/fail2ban.log. Você vai se surpreender com a quantidade de IPs banidos.

sexta-feira, 3 de dezembro de 2010

Vídeo Aulas AD, Windows Server 2003 e 2008

Links:



Active Directory 1ª estrela



O que é o active directory?



Active Directory 2ª estrela



Grupo Global



Active Directory 3ª estrela



Estrutura



Active Directory 4ª estrela



Introdução



Active Directory 5ª estrela



Mestre de Operações



Backup e Restore



Gerenciando contas de usuários



GPMC1



GPMC2



Mestre de Operações (Rulles)



Gerenciando replicação entre DC's



Unidade Organizacional



Monitorando replicação



DCPROMO



Níveis funcionais de domínio



Relação Transitiva e Intransitiva

Continua...

segunda-feira, 27 de setembro de 2010

Monitorando servidores com NAGIOS

Nesse tutorial, utilizarei o apt para a instalação dos pacotes no servidor

1) Faça a instalação do NAGIOS3 via apt (apt-get install nagios3)
2) Após efetuar a instalação, baixe o arquivo NSCLIENT++ e salve em arquivos de programas da máquinas WINDOWS que deseja monitorar.

obs.: o nsclient já está com as devidas linhas comentadas do arquivo nsc.ini, nenhum alteração será necessária.
3) Descompacte e acesso a pasta pelo prompt de comandos (Iniciar / Executar / CMD - (cd %programfiles%/nsclient))
4) Execute o comando NSClient++.exe /install, para fazer a instalação do serviço responsável por enviar as informações para o servidor.

5) No servidor, acesse o diretório /etc/nagios3 e edite o arquivo nagios.cfg e acrescente o conteúdo:
cfg_file=/etc/nagios3/objects/servidor.cfg
6) No diretório /etc/nagios3/objects crie o arquivo servidor.cfg e adicione o seguinte conteúdo:
### Definicao do Host ###
define host{
       use                     generic-host
       host_name               Servidor
       alias                   servidor
       address                 192.168.1.1
       check_command           check-host-alive
       max_check_attempts      2
       check_interval          1
       notification_interval   30
       notification_period     24x7
       notification_options   d,u,r
       contact_groups          admins
}

### PING ###
define service{
       host_name                       servidor
       service_description             PING
       check_command                   check_ping!5000.0,80%!8000.0,100%
       max_check_attempts              2
       normal_check_interval           1
       retry_check_interval            1
       check_period                    24x7
       notification_interval           30
       notification_period             24x7
       notification_options            w,c,r
       contact_groups                  admins
}


define service{
        use                             generic-service         ; Name of service template to use
        host_name                       servidor
        service_description             Disk Space
        check_command                   check_all_disks!20%!10%
        }

define service{
        use                             generic-service         ; Name of service template to use
        host_name                       servidor
        service_description             Total Processes
                check_command                   check_procs!250!400
        }

Lembre de Alterar para o endereço IP do servidor em ADDRESS!
7) Salve e reinicie o serviço com o comando: /etc/init.d/nagios3 restart

Comando para verificar se o nagios está com erros:

/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

Verificar saída de checagem nagios:
cd /usr/local/nagios/var/
tail -f nagios.log


Bom trabalho!

domingo, 12 de setembro de 2010

Adicionar usuários no AD usando uma planilha XLS

Obs1.: O Microsoft Office deve estar instalado no servidor
Osb2.: Deve executar com a conta 'administrador' (administrator versão inglês)

1) Primeiramene, faça o download da planilha com o exemplo de formado a ser usado;
2) Salve-a no C:\ do seu servidor e altere de acordo com sua necessidade (Deixe o nome do arquivo como está);
3) Copie e cole o script abaixo para um arquivo .txt


' UserSpreadsheet .vbs
' Sample VBScript to create User accounts from a spreadsheet
' Author Guy Thomas http://computerperformance.co.uk/
' Version 4.6 - June 2005
' ------------------------------------------------------'
Option Explicit
Dim objRootLDAP, objContainer, objUser, objShell
Dim objExcel, objSpread, intRow
Dim strUser, strOU, strSheet
Dim strCN, strSam, strFirst, strLast, strPWD

' -------------------------------------------------------------'
' Important change OU= and strSheet to reflect your domain
' -------------------------------------------------------------'

strOU = "OU=Temp ," ' Note the comma
strSheet = "c:\UserSpread1.xls"

' Bind to Active Directory, Users container.
Set objRootLDAP = GetObject("LDAP://rootDSE")
Set objContainer = GetObject("LDAP://" & strOU & _
objRootLDAP.Get("defaultNamingContext"))

' Open the Excel spreadsheet
Set objExcel = CreateObject("Excel.Application")
Set objSpread = objExcel.Workbooks.Open(strSheet)
intRow = 3 'Row 1 often contains headings

' Here is the 'DO...Loop' that cycles through the cells
' Note intRow, x must correspond to the column in strSheet
Do Until objExcel.Cells(intRow,1).Value = ""
   strSam = Trim(objExcel.Cells(intRow, 1).Value)
   strCN = Trim(objExcel.Cells(intRow, 2).Value)
   strFirst = Trim(objExcel.Cells(intRow, 3).Value)
   strLast = Trim(objExcel.Cells(intRow, 4).Value)
   strPWD = Trim(objExcel.Cells(intRow, 5).Value)

   ' Build the actual User from data in strSheet.
   Set objUser = objContainer.Create("User", "cn=" & strCN)
   objUser.sAMAccountName = strSam
   objUser.givenName = strFirst
   objUser.sn = strLast
   objUser.SetInfo

   ' Separate section to enable account with its password
   objUser.userAccountControl = 512
   objUser.pwdLastSet = 0
   objUser.SetPassword strPWD
   objUser.SetInfo

'On Error GoTo TrataErro
On Error Resume Next

intRow = intRow + 1
Loop
objExcel.Quit

WScript.Quit 
 4) Altere a OU de destino para onde o Script vai salvar os novos usuários (No script);
 5) Feche o .txt, salve com o nome 'UserSpreadsheet.vbs';
 6) Execute e veja o resultado!

Add HD para o seu XenServer [Associar a VM]

segunda-feira, 6 de setembro de 2010

POSTFIX, POP3 e IMAP

Instalando e configurando WINDOWS UPDATE SERVICES (WSUS)

Wsus
View more documents from kadu137.

GPO Desabilitar descanso de tela / Hibernar

Usando a Função SEIZE (recuperar RULES)

Seize
View more documents from kadu137.

Problemas de Replicação entre DOMAIN CONTROLLERS

Resolver
View more documents from kadu137.

Specops GPUpdate é uma boa ferramenta Active Directory para administração remota

Specops
View more documents from kadu137.

Recuperar Zona MSDCS do DNS - WINDOWS SERVER

Resetando a senha do modo de restauração do Active Directory

Movendo as roles FSMO