Mostrando postagens com marcador servidor web. Mostrar todas as postagens
Mostrando postagens com marcador servidor web. Mostrar todas as postagens

terça-feira, 30 de setembro de 2014

Servidores web vulneráveis baseados nos sistemas Linux tem sido utilizados em botnets para ataques DDoS. A Akamai Technologies está alertando empresas para ameaças de alto risco ao Iptables e Iptablex nesses sistemas. Segundo o relatório da Akamai, a infestação em massa do Iptables e Iptablex parece estar sendo ocasionada por sistemas Linux desatualizados, comprometidos principalmente por exploits de Apache, Tomcat e Elasticsearch.

Atacantes tem utilizado as vulnerabilidades, presentes nos servidores que estão sem manutenção, para ganhar o acesso, escalando os privilégios de modo a obter controle remoto da máquina, e então instalar códigos maliciosos no sistema e executá-los. A indicação de que o sistema foi comprometido é a existência de um arquivo nomeado .Iptables ou. Iptablex localizado no diretório /boot.

O malware também possui um mecanismo de atualização, fazendo com que o sistema infectado tente contatar dois endereços IP localizados na Ásia. Segundo Stuart Scholly, membro da unidade de segurança da Akamai, os administradores de sistemas Linux precisam tomar conhecimento dessas vulnerabilidades para tomarem ações que protejam seus servidores.


Maiores informações através do link.

Fonte: SegInfo

segunda-feira, 5 de agosto de 2013

Ao acessar qualquer site, há um servidor por trás daquele endereço responsável por disponibilizar as páginas e todos os demais recursos que você pode acessar. Assim, quando você envia um e-mail através de um formulário, coloca uma mensagem em um fórum de discussão, faz uma compra on-line, etc, um servidor Web é responsável por processar todas essas informações.

Bom vamos Criar um servidor web com o APACHE.

S.O - Ubuntu 12.10

Após instalado o S.O vá até o terminal com permissão de root, digite - apt-get update

Para atualizarmos o s.o.

após, execute o comando - sudo apt-get install php5 mysql-server apache2 
esse comando instala o PHP, MySQL e o APACHE.


após instalado vá até o browser e digite o ip do servidor - Ex. - http://ipdoservidor . 
Se aparecer a página "It Works" é que está tudo certo, não ocorreu nenhum problema durante o download.

Essa página aparece porque está dentro de /var/www/ que é o diretório de páginas, caso colocasse outra página dentro de /var/www/ iria abrir normalmente.


Cenário = Você é o responsável pela informática de sua empresa, e seu gestor pede para alojar mais de uma página no servidor web(apache) o que vc faria?
Bom para termos mais de uma página alojada em um servidor web, temos que configurar o apache para suportar Virtual Hosts.


Acessar o arquivo /etc/httpd/conf/httpd.conf - nele configuramos a porta que o APACHE irá funcionar.


CÓDIGO:
<VirtualHost *:80>
ServerAdmin mail@mail.com
DocumentRoot /var/www/root
<Directory "/var/www/root">
AllowOverride none
Require all denied
Satisfy Any
Allow from all
</Directory>
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\"" combined
CustomLog /var/www/logs/ROOT_log_acesso combined
</VirtualHost>




Essa opção diz ao apache que tem um host virtual a escuta na porta 80  que está no diretório /var/www/root

e que irá criar um log de acessos em /var/www/logs/


Quando se trata de virtual hosts normalmente gosto de definir um host "vazio" (que é o caso deste exemplo) ficando como default do servidor. Para adicionar mais hosts deverá replicar estas configurações acrescentando:



CÓDIGO:
ServerName seudominio.com
ServerAlias *.seudominio.com


Pronto isso faz com que o servidor responda a todos pedidos com o endereço do seu site e encaminhe para a pasta correta no servidor, então configuramos o nosso dominio para apontar para o nosso servidor.

 Blz pessoal tá ai minha contribuição...se puxem...

Duvidas podem retornar...

Flwsss


By - Sabotage 

terça-feira, 2 de julho de 2013

Já comentei por aqui sobre o acervo de guides focados em segurança do Cisecurity - Center for Internet Security - Uma organização, sem fins lucrativos, que tem como objetivo auxiliar na disseminação de conhecimentos sobre cyber security para as pessoas e para as empresas.

A Cisecurity possui, em minha opinião, alguns dos melhores guides sobre hardening, que abordam quase todos os sistemas operacionais conhecidos – Solaris, HP-UX, windows, Linux (RedHat,Debian), FreeBSD e tantos outros. Além de equipamentos de redes, como Cisco e Juniper, Virtualização, WebServers- Apache e IIS e tantos outros. Deem uma olhada no seguinte link.

Falando de guides. Eu acabei de revisar o que fala sobre o Apache 2.4. Saiu do forno há poucos dias e posso dizer que ele está excelente. As mitigações quanto aos ataques DDoS Layer 7, configurações de timeouts e tantos outros funcionam. É mais do que recomendado para aqueles que trabalham administrando servidores Apache. O seu download poderá ser feito a partir do seguinte link.

Ponto de atenção: Eu enviei um e-mail para o pessoal do instituto questionando quanto a criação de guias para os seguintes produtos, e aproveitei para me oferecer como revisor:
  • Nginx 
  • Varnish 

Veremos o resultado. :)

Mais um post ótimo do Coruja de TI.

domingo, 9 de junho de 2013

Se por acaso você tiver um servidor web confira aqui 10 dicas para deixar seu servidor mais seguro.

1. Desative módulos desnecessários


Se você está instalando o apache pelo seu código fonte você deve desativar alguns módulos. Se você usar o ./configure —help você verá todos os módulos que podem ser ativados ou desativados. Antes de desativar confira se não vai necessitar de um desses módulosOs principais são:

userdir – Mapeamento de diretórios específicos de usuários
autoindex – Lista os diretórios quando o index.html não estiver presente
status - Mostra o status do servidor
env - Limpar e configurar variáveis de ambiente
setenvif - Colocar variáveis de ambiente nos cabeçalhos
cgi - Scripts CGI
actions - Ações disparadas em certas requisições
negotiation - Negociação de conteúdo
alias - Mapeamento de requisições para diferentes sistemas de arquivos
include - Declarações server side
filter - Filtro de requisições
versão - Manipulação de informações de versão e arquivos conf
as-is - arquivos as-is

Desabilite isso tudo na hora do comando ./configure, conforme exemplo:

./configure \
--enable-ssl \
--enable-so \
--disable-userdir \
--disable-autoindex \
--disable-status \
--disable-env \
--disable-setenvif \
--disable-cgi \
--disable-actions \
--disable-negotiation \
--disable-alias \
--disable-include \
--disable-filter \
--disable-version \
--disable-asis

Se você habilitar o ssl, terá de habilitar o mod_setenv, se não receberá o erro:

Error: Syntax error on line 223 of /usr/local/apache2/conf/extra/httpd-ssl.conf: Invalid command ‘BrowserMatch’, perhaps misspelled or defined by a module not included in the server configuration

Após a instalação, você pode ver o que está instalado com o comando httpd -l:

/usr/local/apache2/bin/httpd -l
Compiled in modules:
core.c
mod_authn_file.c
mod_authn_default.c
mod_authz_host.c
mod_authz_groupfile.c
mod_authz_user.c
mod_authz_default.c
mod_auth_basic.c
mod_log_config.c
mod_ssl.c
prefork.c
http_core.c
mod_mime.c
mod_dir.c
mod_so.c

Neste caso, temos os seguintes módulos instalados:

core.c – Módulos principais do apache
mod_auth* – Módulos para autenticação
mod_log_config.c – Módulo para tratamento de logs
mod_ssl.c – Para SSL
prefork.c – Para MPM
httpd_core.c – Módulos principais do apache
mod_mime.c – Configurações do MIME
mod_dir.c – Módulo para redirecionamentos de diretórios para a index.html
mod_so.c – Para iniciar módulos no início e reinício

2. Rode o apache em um usuário e grupo separado do resto

Por padrão, o apache roda como nobody ou daemon. É bom rodar o apache com seu próprio usuário sem privilégios. Por exemplo um usuário chamado apache.

Vamos então criar o usuário e o grupo e configurar para ser o padrão do apache

groupadd apache
useradd -d /usr/local/apache2/htdocs -g apache -s /bin/false apache
vi httpd.conf
User apache
Group apache
Após isso, reinicie o apache, e com o comando ps -ef você verá que o apache está rodando no usuário apache.

3. Restrinja o acesso aos diretórios (com deny, allow)

Para isso, defina isso no arquivo httpd.conf:

Options None
Order deny,allow
Deny from all
Isto quer dizer:

Options None – Marcando isto como None vai evitar que alguma opção a mais seja habilitada
Order deny,allow – Isso é como as ações deveram ser seguidas. Usando deny,allow, todas as funções deny serão executadas por primeiro.
Deny from all – Isso remove o acesso a todos dos diretórios raiz. Como não tem nenhuma opção allow todos permanecem sem acesso a raiz.

4. Defina permissões apropriadas para os diretórios conf e bin

Estes diretórios devem ser acessados apenas por usuários autorizados. É uma boa idéia criar um grupo e adicionar todos os usuários que devem acessar e bloquear para todo o resto. Vamos chamar esse grupo de apacheadmin.

groupadd apacheadmin
chown -R root:apacheadmin /usr/local/apache2/bin
chmod -R 770 /usr/local/apache2/bin
chown -R root:apacheadmin /usr/local/apache2/conf
chmod -R 770 /usr/local/apache2/conf
vi /etc/group
apacheadmin:x:1121:user1,user2

5. Remova navegação por diretórios 

Se você não fizer isso, todos os usuários poderão ver todos os arquivos e diretórios, desde a raiz.


Para isso apenas precisamos colocar o None ou -Indexes como parâmetro nos arquivos de configuração:


Options None Order allow,deny Allow from all

ou


Options -Indexes
Order allow,deny
Allow from all

6. Não libere o .htaccess 

Usando o .htaccess dentro de um diretório, os usuários podem reescrever todas as diretivas do apache. Em algumas situações isso é bom, mas este arquivo deve ser evitado.

Precisamos usar a opção "AllowOverride None" para remover o .htaccess:

Options None
AllowOverride None
Order allow,deny
Allow from all

7. Desabilite outras opções



Segue algumas outras opções:


Options All – Todas as opções são habilitadas (exceto MultiViews). Se você não especificar nada, este é o estado padrão.
Options ExecCGI – Executa os scripts CGI (uses mod_cgi)
Options FollowSymLinks – Se você tiver links simbólicos eles serão seguidos
Options Includes – Permite includes server side (usando mod_include)
Options IncludesNOEXEC – Permite includes server side sem a possibilidade de rodar comandos ou scripts
Options Indexes – Remove a listagem de diretórios
Options MultiViews - Permite content negotiated multiviews (usando mod_negotiation)
Options SymLinksIfOwnerMatch – Similar ao FollowSymLinks. Mas, apenas se o dono do link e do diretório que aponta são os mesmos

Nunca especifique ‘Options All’. Sempre use uma ou mais das opções acima (você pode usar várias em conjunto).

Veja alguns exemplos:


Options Includes Indexes
AllowOverride None
Order allow,deny
Allow from all


Options -Includes +FollowSymLink
AllowOverride None
Order allow,deny
Allow from all

8. Remova os módulos DSO desnecessários

Se você carregou algum módulo dinâmico compartilhado no apache, ele estará presente dentro do httpd.conf dentro de "LoadModule".


Comente todas as linhas desnecessárias.

9. Remova o acesso a uma rede específica

Se você quer que seu site seja visto apenas por um range de ip específico ou por uma rede use o seguinte: 


Options None
AllowOverride None
Order deny,allow
Deny from all
Allow from 10.10.0.0/24

Ou


Options None
AllowOverride None
Order deny,allow
Deny from all
Allow from 10.10.1.21

10. Não mostre e nem envie informações com a versão do apache

Por padrão, um servidor HTTP responde nos cabeçalhos a versão do apache e do php. Isso a princípio é inofensivo, mas se pudermos remover essa informação de um possível atacante podemos melhorar nossa segurança.

vi httpd.conf
ServerTokens Prod
Segue abaixo alguns possíveis valores:
ServerTokens Prod displays “Server: Apache”
ServerTokens Major displays “Server: Apache/2″
ServerTokens Minor displays “Server: Apache/2.2″
ServerTokens Min displays “Server: Apache/2.2.17″
ServerTokens OS displays “Server: Apache/2.2.17 (Unix)”
ServerTokens Full displays “Server: Apache/2.2.17 (Unix) PHP/5.3.5″ (Se você não especificar nenhum ServerTokens este será o valor padrão)

Fonte: r00tsec

quinta-feira, 16 de maio de 2013

Olá!

A alguns dias eu postei varias aplicações web vulneráveis para testar e aprender com elas, mas a maioria das perguntas que chegaram foi "como que eu acesso elas". Para resolver essas dúvidas estou criando esse post, ensinando como criar um servidor LAMP para "hospedar" localmente suas aplicações.


Vamos precisar de:

  • Debian/Ubuntu based distro
  • Apache 2 - Linux Web serve
  • MySQL 5 - MySQL Database Server
  • PHP4/5 - PHP Scripting Language
  • phpMyAdmin - Web-based database admin software.

Antes de começar, saiba que um Servidor LAMP quer dizer Linux + Apache + MySQL + PHP/Perl together.

Primeiramente, vamos preparar o sistema operacional para nosso servidor. Vou usar nesse tuto uma distro Linux baseada em Debian/Ubuntu. Pode usar uma vm para o servidor e outra para o atacante, funciona bem. O servidor pode ter apenas 256MB de RAM, não precisaremos mais que isso. Esse é o mínimo, se quiser pode usar mais, menos que isso o MySQL começará a mandar erros.

Vamos fazer toda a instalação pelo apt-get, com isso, poupamos tempo e não temos que nos preocupar com problemas de instalação, configurações e dependencias de pacote. Antes de vermos os comandos, saiba que isto vai fazer seu site ser acessível apenas internamente, para que ele seja acessível para toda a internet você precisa de um servidor dedicado.

E vamos então aos comandos. Usaremos praticamente só terminal para instalar e configurar tudo. O primeiro comando é para nos certificar que está tudo certinho com o sistema, e caso falte algo baixar os pacotes necessários do Debian. Para isso usaremos o comando:

apt-get update

Instalando Apache + PHP


O Apache é um dos mais famosos servidores web para Linux, com apenas alguns comandos conseguiremos configurar o apache para rodar com PHP 4 ou PHP 5.

Se você quiser instalar o PHP 4 use o seguinte comando:
apt-get install apache2 php4 libapache2-mod-php4

Para instalar o PHP5, use o mesmo comando, mudando apenas o "4"pelo "5". O comando ficará assim:
apt-get install apache2 php5 libapache2-mod-php5

O arquivo de configuração do Apache fica no diretório /etc/apache2/apache2.conf e o diretório do seu site em /var/www.

Para testar se o php está instalado e funcionando, crie um arquivo chamado teste.php na pasta /var/www com a função phpinfo() exatamente como mostrado abaixo:
vim /var/www/test.php
# test.php
<?php phpinfo(); ?>


Para saber se funcionou, no browser, digite http://seu_ip/teste.php, se tudo estiver correto você verá todas as configurações default do seu php.

Instalando Banco de Dados MySQL


Quase sempre um banco de dados é necessário para uma aplicação web. Lembrando, use mais de 256MB de RAM para evitar problemas. O seguinte comando instala o servidor e o cliente MySQL:
apt-get install mysql-server mysql-client php5-mysql

Nota: Se você instalou anteriormente o php4, você terá que fazer uma pequena modificação no comando:

apt-get install mysql-server mysql-client php4-mysql



O arquivo de configuração do mysql fica no diretório /etc/mysql/my.conf.


Criando usuários e mudando a senha do root no MySQL


Por default o mysql cria um usuário root sem senha, você precisa mudar isso!

Para mudar a senha:

mysql -u root
mysql> USE mysql;
mysql> UPDATE user SET Password=PASSWORD('nova-senha') WHERE user='root';
mysql> FLUSH PRIVILEGES;

Nunca use o root, sempre crie um usuário para conectar ao banco em um script PHP. Você também pode fazer isso por um painel, como o phpMyAdmin para criar e mudar facilmente permissões de usuário, vamos instalar o phpmyadmin no decorrer dessa configuração.

Instalação do phpMyAdmin


PhpMyAdmin é uma interface web muito boa para organizar e administrar bancos de dados com o apache. Administrar bancos de dados é muito mais fácil com o phpmyadmin do que com tabelas, colunas e tudo mais do terminal, caso preferir pode seguir pela interface web.

Tudo o que precisamos fazer é digitar o comando:
apt-get install phpmyadmin

O arquivo de configuração do phpmyadmin está do diretório /etc/phpmyadmin.

Para que tudo funcione no apache precisamos adicionar uma linha ao arquivo /etc/apache2/apache2.conf:

Include /etc/phpmyadmin/apache.conf

Agora reinicie o apache com o seguinte comando:
/etc/init.d/apache2 restart

Para acessar o painel do phpMyAdmin acesse http://seu_ip/phpmyadmin

E era isso! MySQL e phpMyAdmin estão funcionando também. Agora é só configurar suas aplicações e começar seus estudos!

Para mais informações acesse: http://www.mysql-apache-php.com/

Bons estudos!
Subscribe to RSS Feed Follow me on Twitter!