![]() |
|
|||||||
![]() |
|
|
LinkBack (1) | Ferramentas do Tópico | Modos de Exibição |
![]() |
![]() |
|
Diretoria Colegiada
Registrado em: Aug 2006
Postagens: 257
Entradas no Blog: 19
Thanks: 6
Thanked 19 Times in 16 Posts
Reputação: 4 @ 105
![]() ![]() |
Para quem tiver um host, tiver um site, ou então seu site está no seu computador, você pode configurar o Apache para ser mais seguro. Nunca use a segurança Padrão do Apache.
O tutorial abaixo foi feito por Hugo Cisneiros. [h2]1. Introdução[/h2] Oi pessoal, neste tutorial vou tocar em alguns métodos dee segurança com os arquivos .htaccess do Apache, para proteger diretórios na Web, criar meios de login controlado, e outras utilidades deeste arquivo. O .htaccess é um arquivo especial para o Apache. Quando um usuário está navegando por alguma página do seu servidor Apache, para todo diretório que ele tentar acessar (e se o servidor estiver configurado para isso), o Apache procura pelo tal do .htaccess e se encontrar, verifica alguma restrição ou liberação para o usuário. Com isso podemos fazer duas coisas básicas em relação à segurança: Restringir acesso aos arquivos e diretórios do servidor Web através de um usuário e senha, ou então pelo IP/Hostname de quem está acessando. Trataremos dos dois assuntos aqui neste tutorial. [h2]2. Configurando o Apache[/h2] Antes de mais nada, você precisará se certificar que o Apache está configurado para aceitar os arquivos .htaccess como arquivos especiais. Para configurar, você precisará editar o arquivo de configuração do Apache, que é o "httpd.conf". Geralmente ele está localizado no diretório "/etc/httpd/conf". Dentro deste arquivo, você encontrará uma ou duas diretrizes mais ou menos desta forma: Código:
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
ou Código:
<Directory "/var/www/html">
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
Código:
<Directory />
Options FollowSymLinks Indexes
AllowOverride AuthConfig
</Directory>
![]() Como a própria documentação do Apache diz, podemos usar as seguintes opções para diretórios: "None", "All", ou qualquer combinação de "Indexes", "Includes", "FollowSymLinks", "ExecCGI", or "MultiViews". A opção "Indexes" faz com que quando não tiver nenhum arquivo do tipo index.html, index.htm, ou "páginas iniciais", o Apache cria uma página com a lista dos arquivos existentes no diretório. O "Includes" permite colocar arquivos do tipo SSI (Server Side Includes), que são páginas dinâmicas antigamente usadas por muitos (Agora a moda é PHP, Python, Perl, etc). O "FollowSymLinks" faz com que o Apache aceite links simbólicos no sistema, seguindo os diretórios ou arquivos que os links apontam. O "ExecCGI" faz com que neste diretório possam ser executados arquivos CGI (Common Gateway Interface). A opção ExecCGI pode ser (e geralmente é) encontrada para o diretório "/var/www/cgi-bin", onde estão localizados os scripts CGI. Já o "multiViews" serve para por exemplo, servir páginas de acordo com a preferência de língua do usuário (index.html.pt_BR, indeex.html.en, etc). O All significa todas as opções (menos o MultiViews) e o None significa nenhuma ![]() Deixando de lado essa parte, vamos ao que realmente interessa. A opção "AllowOverride AuthConfig" é a que diz para o Apache verificar pelos arquivos .htaccess nos diretórios e aplicar as regras contidas no arquivo nos diretórios e subdiretórios de onde o arquivo esteja localizado. Colocada esta opção, é só dar um restart ou reload no servidor Web e tudo funcionará. Para fins de entendimento, o nome "AllowOverride" já diz tudo: Ele sobrescreve as configurações padrões do servidor Apache para colocar novas configurações para aquele diretório. Estas configurações podem ser permissões dee acesso, opções (como as que mostrei acima), entre outros. [h2]3. Utilizando o .htaccess[/h2] Agora que o servidor Apache já está configurado, teremos que criar o arquivo .htaccess com as regras. Utilize o seu editor prefeiro (no meu caso, o vim). Poderemos fazer várias coisas neste arquivo. Neste tutorial estarei usando vários arquivos .htaccess para demonstrar cada opção à cada caso, mas você pode utilizar um .htaccess no diretório principal do seu servidor, e definir as permissões e opções colocando-as dentro de tags , , etc. Tentarei dar alguns exemplos aqui. [h2]3.1. Restringindo o acesso por IP/Hostname[/h2] [NOTA IZZY] Aqui podemos observar que a pessoa que trabalha com o Giba, não tinha esse conhecimento, até o Google e Yahoo "invadiu" a intranet dos supermercados Cobal. Uma configuração tão simples que se não fazer bem feita pode ter seu servidor inteiramente detonado. [/FIM DE NOTA IZZY] As vezes precisamos restringir certos arquivos e diretórios para cecrtos IPs. Isso é válido por exemplo, quando você tem um provedor, e só se quer permitir acessar algumas páginas de administração os IPs da Intranet do provedor. Para isso pode-se aplicar estas regras no .htaccess. Veja o exemplo abaixo: Código:
# Deixa a Intranet acessar Order allow,deny allow from 192.168.0. deny from all Esse exemplo de .htaccess fará com que o diretório, seus arquivos e seus subdiretórios só poderão ser acessados por quem estiver na faixa de IP de 192.168.0.1 até 192.168.0.254. Vamos supor agora que eu queira restringir apenas 1 IP, para não acessar um certo diretório. O .htaccess ficaria assim: Código:
# Deixa todo mundo acessar, menos o IP 192.168.0.25 Order deny,allow deny from 192.168.0.25 allow from all [h2]3.2. Restringindo o acesso por usuário e senha[/h2] Agora vem uma parte muito interessante. As vezes não temos como restringir apenas por IPs, seja porque o usuário que tem que acessar possa etar em qualquer lugar, ou ter IP dinâmico, etc. Para resolver esse caso, podemos utilizar o método de usuário e senha. Antes de mais nada você terá que ter o utilitário "htpasswd", que serve para criar um arquivo de senhas criptografadas. Neste tutorial, criaremos 3 usuários exemplo: Código:
$ mkdir /etc/httpd/auth $ cd /etc/httpd/auth $ htpasswd -c acesso hugo New password: Re-type new password: Adding password for user hugo $ htpasswd acesso eitch New password: Re-type new password: Adding password for user eitch $ htpasswd acesso sakura New password: Re-type new password: Adding password for user sakura Código:
hugo:zEerw0euqYD3k eitch:85QVc5DD0rB8M sakura:UpZuXkyuIq9hw Observação: Caso você não tenha o utilitário htpasswd, você pode criar as senhas criptografadas com um comando do perl. Por exemplo, se eu quiser criar a senha criptografada chamada "minhasenha", farei o seguinte comando: Código:
$ perl -e 'print crypt("minhasenha", "Lq"), "\n";'
E então é só incluir a senha no arquivo como no esquema acima. Como pode ver, as senhas estão criptografadas. Este armazenamento de senhas é muito simples. Há outros métodos de se armazenar senhas (arquivos de banco de dados por exemplo), mas por enquanto não vou cobrir isto no tutorial porque não é tão necessário. Mas fica extremamente necessário se houver muitos e muitos usuários e senhas, pois se houver muitos, o processo de autenticação pode demorar um pouco. Agora que o arquivo de usuários e senhas está criado, vamos criar o .htaccess que irá verificar este arquivo. Veja o exemplo do .htaccess: Código:
AuthName "Acesso Restrito à Usuários" AuthType Basic AuthUserFile /etc/httpd/auth/acesso require valid-user Salve o arquivo e pronto, quando um usuário acessar a URL, o servidor irá verificar este arquivo .htaccess e irá perguntar pro cliente um usuário e senha. Epa, mas peraí, vamos explicar direitinho o arquivo acima!
Código:
admin:hugo eitch visitante: sakura empresa: hugo eitch sakura Salve o arquivo e então criamos três grupos. Para usar estes grupos, teremos que modificar o arquivo .htaccess anterior para ficar desta maneira: Código:
AuthName "Acesso Restrito à Usuários" AuthType Basic AuthUserFile /etc/httpd/auth/acesso AuthGroupFile /etc/httpd/auth/grupos require group admin No arquivo acima eu adicionei a linha "AuthGroupFile", que indica pro servidor onde está o arquivo dos grupos (bem parecido com o "AuthUserFile" hein?) e no "require", coloquei que requer o grupo admin. Simples de entender, não? Agora já dá pra brincar bastante restringindo usuários ![]() [h2]3.3. Opções diferentes[/h2] Lembra do "Options" na diretriz no tópico 2? Pois é, você pode colocar estas opções também no .htaccess. Se por exemplo você quer que o diretório onde você colocou o .htaccess liste os arquivos caso não haja um index.html da vida, você adiciona o seguinte no .htaccess: Código:
Options +Indexes E para tirar essa opção: Código:
Options -Indexes E nisso você pode usar para qualquer uma das opções. [h2]3.4. Mensagens de Erro personalizadas[/h2] Vamos supor que você tenha uma sub-página no seu servidor, e queira que as mensagens de erro do servidor sejam bonitinhas e no formato que você criou. Para fazer isso, você precisará apenas saber o que significa cada código de erro do servidor e apontar para a uma página com o .htaccess: Código:
ErrorDocument 401 /erros/falhaautorizacao.html ErrorDocument 404 /erros/naoencontrado.html ErrorDocument 403 /erros/acessonegado.html ErrorDocument 500 /erros/errointerno.html Caso você não saiba os códigos de erro do Apache, a configuração do apache 2.x já tem uma boa ajuda quanto a isto, vou colocar as linhas aqui como referência (entenda se quiser e puder :P): Código:
ErrorDocument 400 /error/HTTP_BAD_REQUEST.html.var ErrorDocument 401 /error/HTTP_UNAUTHORIZED.html.var ErrorDocument 403 /error/HTTP_FORBIDDEN.html.var ErrorDocument 404 /error/HTTP_NOT_FOUND.html.var ErrorDocument 405 /error/HTTP_METHOD_NOT_ALLOWED.html.var ErrorDocument 408 /error/HTTP_REQUEST_TIME_OUT.html.var ErrorDocument 410 /error/HTTP_GONE.html.var ErrorDocument 411 /error/HTTP_LENGTH_REQUIRED.html.var ErrorDocument 412 /error/HTTP_PRECONDITION_FAILED.html.var ErrorDocument 413 /error/HTTP_REQUEST_ENTITY_TOO_LARGE.html.var ErrorDocument 414 /error/HTTP_REQUEST_URI_TOO_LARGE.html.var ErrorDocument 415 /error/HTTP_SERVICE_UNAVAILABLE.html.var ErrorDocument 500 /error/HTTP_INTERNAL_SERVER_ERROR.html.var ErrorDocument 501 /error/HTTP_NOT_IMPLEMENTED.html.var ErrorDocument 502 /error/HTTP_BAD_GATEWAY.html.var ErrorDocument 503 /error/HTTP_SERVICE_UNAVAILABLE.html.var ErrorDocument 506 /error/HTTP_VARIANT_ALSO_VARIES.html.var [h2]3.5. Opções para arquivos e diretórios específicos[/h2] Agora vamos supor que você queira somente fazer restrições para certos arquivos e diretórios. Para isso você poderá fazer tudo o que fazia antes, só que dentro de tags como ou . Veja o exemplo de .htaccess a seguir com comentários embutidos explicando o contexto: Código:
# Restringe o arquivo_secreto.html somente para o IP 192.168.0.30
<Files arquivo_secreto.html>
Order allow,Deny
Allow from 192.168.0.30
Deny from all
</Files>
# Restringe o diretório admin para utilizar senhas
<Directory /admin>
AuthName "Acesso Restrito à Usuários"
AuthType Basic
AuthUserFile /etc/httpd/auth/acesso
AuthGroupFile /etc/httpd/auth/grupos
require group admin
</Directory>
# Nega o acesso dos clientes ao .htaccess (bom colocar no httpd.conf)
# - Vem com a configuração padrão do Apache
<Files ~ "^\.ht">
Order allow,deny
Deny from all
</Files>
Entendeu bem como funciona o esquema? Então é só brincar bastante ![]() [h2]4. Conclusão[/h2] Pudemos aprender bastante como mexer com o .htaccess, mas o que vimos aqui não foi tudo não. Tem muita coisa ainda que se dá para colocar no .htaccess. Como eu disse no início dedste tutorial, o .htaccess poded comportar todo tipo de configuração de diretórios do Apache, sobrescrevendo as configurações padrões contidas no httpd.conf. Explorar as funcionalidades é uma questão de prática, então mãos a obra! Bom proveito! Bem-vindo ao X-TRAD - Suporte Avançado para Users Experts Em Xoops do Brasil! ![]() Abraços, Izzy |
|
|
|
![]() |
![]() |
|
Diretoria Colegiada
Registrado em: Aug 2006
Postagens: 257
Entradas no Blog: 19
Thanks: 6
Thanked 19 Times in 16 Posts
Reputação: 4 @ 105
![]() ![]() |
|
|
|
|
![]() |
![]() |
|
Diretoria Colegiada
Registrado em: Aug 2006
Postagens: 257
Entradas no Blog: 19
Thanks: 6
Thanked 19 Times in 16 Posts
Reputação: 4 @ 105
![]() ![]() |
Citação:
![]() |
|
|
|
|
![]() |
![]() |
![]() |
![]() |
|
Novato
![]() Registrado em: Nov 2007
Localização: 127.0.0.1 - Localhost - São Paulo - SP
Postagens: 5
Entradas no Blog: 2
Thanks: 0
Thanked 1 Time in 1 Post
Reputação: 0 @ 15
![]() |
Antes de mais nada, não vejo motivos para ter medo da palavra "FORK".
Particularmente eu acho que o Fork é a melhor solução para um sistema que é bom, mas tem evolução lenta e/ou burocrática. Pergunta: Como fazer para saber se minha "Distro" é Fork? Resposta: Você alterou/adicionou uma vírgula sequer, que não seja dentro da pasta "modules" ou "themes"? Se não, é "Distro". Se sim, é Fork. O Xoops é um CMS que te permite colocar quantos módulos e temas quiser. Mas se você pega o xoops 2.0.17 e altera um simples template do módulo system, você não está criando um novo módulo ou tema, você está alterando o Core do sistema (logo, as pessoas não poderão usufruir do seu trabalho apenas baixando a última versão estável no site do projeto). XoopsFacil é Distro. Xoops XT-XM é Fork. E isso é fato, não é opinião não. Não importa se é compatível ou não! Porque quando se desenvolve algo "em prol" do projeto original, você pega suas alterações e SUGERE aos desenvolvedores do projeto, que têm o trabalho de ANALISAR e aprovar (ou não) o seu trabalho, para que o aprovado seja inserido em qualquer versão futura (eles podem por exemplo achar que suas alterações foram boas, mas não serão implementadas na próxima versão, para dar tempo de TESTAR primeiro). Quando se desenvolve algo, cria site e comunidade, coloca para download com roadmap e o escambau, é Fork. Essa mania de querer chamar de "Distro", de "Versão", etc só serve para confundir os usuários novatos, que ficam perdidos quando precisam decidir qual sistema usar / confiar. "O termo Fork é particularmente usado no software livre ou de código aberto, quando uma divisão ocorre por causa de diferentes objetivos ou brigas de personalidade. Alguns vêem os forks como uma fraqueza no software livre, mas outros acreditam que eles demonstram a adaptabilidade do modelo. A relação entre os times pode ser cordial ou muito dura (ver xMule e seu fork aMule)." - Fonte: Fork - Wikipédia Eu acho a idéia do XT-XM muito boa! O negócio é bonito e parece que funciona (mas deixando claro que nunca testei, só vi funcionando). Mas a verdade é que será XOOPS quando estiver no Core do XOOPS, até lá, sugiro inventar um codinome ou qualquer coisa que não confunda os usuários que querem saber mais de XOOPS, e conhecer XOOPS. Dizer que XT-XM é Xoops, além de confundir, compromete a imagem do próprio Xoops, principalmente depois das últimas "traquinagens" com este projeto. Minha opinião profissional (a opinião pessoal envolve minha amizade com o Fábio, então...) : Eu confio no Xoops e em seus desenvolvedores, mas não confio no XT-XM hoje, mas esperarei até um lançamento oficial responsável (com a crise de identidade resolvida ) para testar e PRESSIONAR (analisar a segurança).Abraços! Última edição por topet05; 05-12-2007 às 12:21 PM. |
|
|
|
![]() |
![]() |
|
Diretoria Colegiada
Registrado em: Aug 2006
Postagens: 257
Entradas no Blog: 19
Thanks: 6
Thanked 19 Times in 16 Posts
Reputação: 4 @ 105
![]() ![]() |
Isso me faz lembra de uma pergunta: vc é deficiente físico?
1) Usa óculos? É deficiente 2) Usa bengala? É deficiente E por aí vai... Acredito que ninguém nasceu com óculos e bengalinha na mão, né? Bom, eu não quero ser chato com ninguém, só estou tentando colocar as coisas em ordens. Abração!! Izzy |
|
|
|
![]() |
![]() |
|
Webmaster
![]() Registrado em: Dec 2005
Localização: rio de janeiro
Idade: 51
Postagens: 2,076
Entradas no Blog: 2
Thanks: 61
Thanked 35 Times in 25 Posts
Reputação: 10 @ 186
![]() ![]() |
Realmente eh um post muito bom
![]() Mas ... andrax: somos 2 ! abraços bola pra frente ... vamos aguardar o dito cujo aqui. * sabe uma coisa q ficou faltando ? foi colocar aqui o tal arquivo para q a turma pudesse procurar o codigo... "O reino de Deus esta dentro de você e ao seu redor, não em construções de madeira e pedra. Lasque um pedaço de madeira e estarei lá; erga uma pedra e me encontrarás" ![]() ![]() |
|
|
|
![]() |
![]() |
|
Diretoria Colegiada
Registrado em: Apr 2006
Localização: Salvador - Bahia
Idade: 27
Postagens: 269
Thanks: 37
Thanked 34 Times in 25 Posts
Reputação: 4 @ 180
![]() ![]() |
O arquivo inserido foi esse aqui...
xml.zip Quanto a versão do XT-XM, a ultima liberada foi essa... xtxmv7k.zip P.s: Procurei, mas não encontrei o arquivo malicioso, logo suponho que esteja limpa... ;-) |
|
|
|
![]() |
![]() |
|
Diretoria Colegiada
Registrado em: Aug 2006
Postagens: 257
Entradas no Blog: 19
Thanks: 6
Thanked 19 Times in 16 Posts
Reputação: 4 @ 105
![]() ![]() |
Citação:
Já temos um refém: Citação:
Última edição por izzy; 06-12-2007 às 01:49 PM. |
||
|
|
|
![]() |
![]() |
Favoritos | ![]() |
LinkBacks (?)
LinkBack to this Thread: http://www.x-trad.org/forums/noticias-x-trad/5511-foi-descoberta-uma-sabotagem.html
|
||||
| Postado Por | For | Type | Data | |
| X-TRAD :: SEU TERRITÓRIO DE TRADUÇÃO | This thread | Refback | 27-11-2007 03:02 PM | |
![]() |
Usuários ativos no Tópico: 1 (0 Membros e 1 Visitantes) | ![]() |