Daniels Blog
29 Jan/12 0

Online per UMTS mit Surfstick unter Debian mit wvdial und O2 Mobile Flat

Da mein neuer DSL-Anschluss erst in einigen Wochen geschaltet wird, habe ich bei Alice die Option "Quickstart" gewählt. Hier erhält man eine SIM-Karte, mit der man 3 Monate lang kostenlos surfen kann, als Überbrückung, bis der DSL-Anschluss geschaltet wurde.

Natürlich wollte ich die Internetverbindung nicht über einen Client herstellen, sondern wie gewohnt über meinen Homeserver, der für das ganze Heimnetz als Router fungiert.

Die größten Probleme hatte ich mit der Alice Hotline. Mit der SIMkarte kam eine Kurzanleitung, wie man diese über das Alice-Portal aktivieren könne. Leider hat das Portal weder in Firefox, Chrome oder Opera richtig funktioniert. Ich bin nicht bis zur Aktivierung der SIMkarte vorgedrungen.

Also leider Anrufe auf der 01805 Hotline. Sehr ärgerlich für 42ct./Min.

Über die Hotline war die Akivierung der Karte zum Glück schnell erledigt, leider konnte man mir dort zunächst nicht den notwendigen APN für die Konfiguration von wvdial nennen. Ich wollte hier sicher gehen, da ich etwas Angst vor exorbitanten Rechnungen hatte bei falscher Konfiguration des Wertes. Hier konnte mir die Technik zum Glück weiterhelfen. Für die Alice / O2 Quickstart Mobile Internet Flat lautet der APN nach Angaben der Hotline " internet.partner1 ". Bei der Vergabe des Namens war wohl niemand vom Marketing beteiligt ;)

Als nächsten Schritt habe ich die SIMkarte in ein Handy eingelegt um auf die Aktivierung zu warten und diese mitzubekommen. Das ging recht schnell, nach ca. 30 Minuten war meine SIM bereits aktiv und konnte sich ins Netz einbuchen. Erstaunlich schnell, da die Aktivierung von Alice zunächst zu O2 propagiert wird. Um das Handy zu zwingen sich neu ins Netz einzubuchen, kann man es aus- und wieder einschalten. Ich habe nun mit dem Handy noch die PIN-Abfrage der SIM deaktiviert, da ich vor einiger Zeit schon einmal üble Probleme mit wvdial und einer PIN hatte.

Der Rest funktionierte erstaunlich gut.

Ich habe die SIM in meinen Huawei Surfstick (T-Mobile Surfstick III)

Bus 001 Device 004: ID 12d1:1003 Huawei Technologies Co., Ltd. E220 HSDPA Modem / E270 HSDPA/HSUPA Modem

eingelegt. Nach dem Einstecken in einen USB-Port stellt Debian mit einem aktuellen Kernel das Device /dev/ttyUSB0 zur Verfügung.

Dieses kann man mit wvdial ansprechen

 # / Etc / wvdial.conf [Dialer Defaults] = ATZ Init2 = ATQ0 Init1 V1 E1 S0 = 0 & C1 & D2 + FCLASS = 0 Init3 = AT + CGDCONT = 1, "IP", "internet.partner1" Phone = * 99 * ** 1 # Password = Nome de Usuário = blank branco New PPPD = yes Modem = / dev/ttyUSB0 Baud = 460800 Tipo Modem = Auto modem analógico Reconnect = on 

Então pode-se estar com "wvdial" a conexão é estabelecida:

 GBN-root-00: 19:27 ~ -> wvdial
 -> WvDial: Internet dialer versão 1,60
 -> Não é possível obter informações para a porta serial
 -> Initializing modem.
 - Envio>: ATZ
 ATZ
 OK
 -> Sending: ATQ0 V1 E1 S0 = 0 & C1 & D2 + FCLASS = 0
 ATQ0 V1 E1 S0 = 0 & C1 & D2 + FCLASS = 0
 OK
 -> Sending: AT + CGDCONT = 1, "IP", "internet.partner1"
 AT + CGDCONT = 1, "IP", "internet.partner1"
 OK
 -> Modem inicializado.
 - Envio>: ATDT * 99 *** 1 #
 -> Esperando pela transportadora.
 ATDT * 99 *** 1 #
 CONNECT
 - Carrier> detectado.  Waiting for prompt.
 -> Não sei o que fazer!  Começando pppd e esperando pelo melhor.
 -> A partir pppd na Sun 29 de janeiro de 2012 00:19:58
 -> Pid do pppd: 3749
 -> Usando a interface ppp0
 -> Pppd: ȧ
 -> Pppd: ȧ
 -> Pppd: ȧ
 -> Pppd: ȧ
 -> Pppd: ȧ
 -> Pppd: ȧ
 -> Endereço IP local 10.43.145.228
 -> Pppd: ȧ
 -> Endereço IP remoto 10.64.64.64
 -> Pppd: ȧ
 -> O endereço DNS primário 193 189 244 225
 -> Pppd: ȧ
 -> O endereço DNS secundário 193 189 244 206
 -> Pppd: ȧ 

Após isso é através da interface ar para o Internet Device ppp0 disponíveis que agora você pode usar para roteamento e regras de firewall.

Jusante é no centro de Dusseldorf muito bem, o montante pode ser desejado, no entanto, muito:

 Velocidade de download: 2082 kbit / s (260 kByte / s)
 Velocidade de upload: 71 kbit / s (9 kbytes / s)

Mas ... Não olhe para um cavalo de presente na boca. Eu pagaria por esse desempenho, no entanto.


Suplemento

Infelizmente, a conexão não é estável. Após menos de uma hora, não há mais dados sobre o fluxo ppp0, wvdial recebe-los, infelizmente com nada e acha que a conexão ainda está ativa, escolher um que não é em si mesmo continuamente. Para depurar este problema foi muito complicado, porque esta solução alternativa em qualquer caso, apenas algumas semanas até que o circuito tem que trabalhar o DSLers. O seguinte script pequeno que verifica se a conexão ainda é válido. Se não, comece wvdial mortos e nova.

 # / Bin / bash

 www.google.de ping-c1> / dev / null

 if $ [?  Ne-0];
         então
         killall wvdial
         echo date ``>> / var / log / connection_lost.log
         wvdial &
 fi

Eu chamo este script automaticamente através de um trabalho do cron e agora estou sempre em:

 # / Etc / crontab

 # REDIAL linha O2 CRAPPY
 * * * * * Root / root / scripts / redial_ppp


Armadilhas:

  • SIM proteção PIN não está desativado
  • A conexão via provedor de telefonia móvel é, infelizmente, geNATtet. O servidor privado não é acessível directamente a partir do exterior. Serviços de servidor pode ser oferecido apenas com dificuldade.
Dez/11 5 0

5 plugins para mais privacidade enquanto navega com o Firefox

Para proteger sua privacidade na Internet é cada vez mais difícil. Nem a indústria nem tem interesse político em proteger a privacidade do uso da Internet. Alguns anos atrás era o suficiente, em nenhum lugar o seu verdadeiro nome e outros dados pessoais, como data de nascimento ou números de contas bancárias indicar. Hoje em quase todos os site invisivelmente no fundo que coleta dados - e não apenas pelo operador do site em si, mas também por muitos outros provedores comerciais. Ao passar os dados para terceiros tem-se qualquer vantagem. Você também perderá SO País despercebida com controle de tempo sobre seus próprios dados e perfis de hábitos de consumo sofisticados, interesses, gostos e desgostos em bancos de dados incontrolável. A traição da personalidade está em pleno andamento e as ajudas apenas um pouco de informações de higiene pessoal para atender às novas ameaças.

Existe vagueou através da abertura de Facebook o nome claro para a rede, é a capacidade de ligação com os hábitos de navegação de pessoa não mais adequado a ser uma possibilidade teórica, mas é totalmente automatizada e continuamente.

Neste artigo vou listar algumas maneiras de proteger sua privacidade online. Infelizmente, quase todas as medidas exigem um grau de iniciativa pessoal e um pouco de treinamento. Muitas vezes, você perde (pelo menos inicialmente) um pouco de conforto ao navegar. No entanto, o uso das pontas, a longo prazo ser muito útil.

Mas primeiro experiement um pouco. Para o pequeno teste que eu comecei um navegador Firefox atual em sua configuração padrão, excluídos todos os cookies e depois surfou seis lados, e Spiegel.de, Bild.de, GMX.de, Twitter, Facebook e um site pornô. O resultado é 21 novo cookie permanente no seu computador.

Mesmo depois de chamar esse páginas poucos, o navegador é completamente grampeado com cookies de 3. Esses 'cookies' para identificar a minha instalação do navegador agora para direitos autorais e pode ser lido com eles novamente. Inicialmente, isso pode mesmo acontecer em suas próprias páginas. Mas em sites de terceiros, que está cooperando com.

Assim, o cookie do Google é lido, por exemplo, em cada página que usa o Google Analytics, Google em publicidade, incorpora Google Maps, ou usar um dos muitos outros serviços Complimetary Google para webmasters. Isto dá buscas do Google não só a história do meu Google, mas é preciso verdade também para muitos outros sites que eu visito ela.

Da mesma forma, corre com os cookies de outros fornecedores. Agências de publicidade, empresas de pesquisa de mercado, empresas de marketing e spammers estão constantemente a tentar definir cookies no seu navegador e em sites parceiros para ler novamente, para saber mais sobre mim.

Isto é feito através de arquivos unsichbare pequena no site ("Web beacons", "imagem de rastreamento") ou scripts Java que estão instalados nos locais do sócio.

Um primeiro passo para uma maior privacidade, há também o cookie de rastreamento, web beacons e JavaScript rastreamento para combater enchentes.

Dica 1 - Com um arquivo host local a maioria dos espiões fechou completamente.

Como uma imunização básica contra a praga ajuda a um arquivo host local. Em qualquer sistema operacional moderno no arquivo host, uma lista de nomes de domínios com o IP correspondente
ser depositados. O primeiro sistema usa o arquivo host local para procurar endereços na Internet, somente então um servidor DNS na Internet. Plotagem no arquivo host, assim, os endereços de domínios maliciosos que você deseja definir o cookie de rastreamento e encaminha os pedidos para estes sites para localmente, o navegador não pode chegar a estas páginas maliciosas.

Então você já resolveu grande parte do problema. Pode hospedar um arquivo muito bem conservados que contém milhares de domínios de rastreamento vai encontrá-lo aqui: http://winhelp2002.mvps.org/hosts.txt No Linux ele só salva-lo do arquivo / etc / hosts na máquina local para habilitá-lo .

  # / Bin / bash
 wget-O / tmp http://winhelp2002.mvps.org/hosts.txt / tracking.txt
 mv / etc / hosts / etc / hosts.backup
 mv / tmp tracking.txt / / etc / hosts 

Explora o seu próprio servidor DNS na LAN , você pode configurá-lo para que ele use o arquivo host e automaticamente livre no centro LAN todo.

Dica 2: Google é apenas o mínimo necessário comunicar com GoogleSharing

Google Rastreador # 1 está na Internet e gravado de uma forma indireta de agora quase todas as páginas visitadas informações de identificação pessoal, esta pode ser rastreada e ligados às suas próprias pesquisas no Google por identificação pessoal usando o Gmail, Google + ou outros serviços personalizados para sua própria pessoa. Por outro lado, ajuda o declínio de cookies do Google, eo GoogleSharing plugins interessantes Firefox. O plugin Google anonymisert todos os contatos, criando identidades aleatório constante, que são compartilhados com todos os outros usuários do plugin. Google pode usar para identificar usuários individuais do plugin não está mais em esta coincidência massa anônima.

O plugin funciona de forma totalmente automática e reduz o desempenho do Google simplesmente irrelevante.
GoogleSharing lá diretamente no Firefox em Ferramentas / Addons ou a partir deste site: https://addons.mozilla.org/en-US/firefox/addon/googlesharing/

Dica 3: Controle total sobre cookies com Cookie Monster

Os cookies não estão lá apenas para monitoramento. Muitos sites usam para funções completamente legítimas, como o gerenciamento de registros ou preferências do usuário da loja. Portanto, é razoável a proibição primeira vez todos os cookies em geral e, em seguida, passo a passo manualmente para permitir os cookies que você realmente necessários para páginas que você usa com freqüência ativa. Isso é com o Firefox-board meios possíveis, mas, infelizmente, bastante complicado. Isto é onde a livre plugin "Cookie Monster". Ele está localizado após a instalação na bandeja do sistema e fornece acesso rápido às configurações de cookie para a página atualmente aberta. Cookie Monster faz para configurar inicialmente um pouco de trabalho, já que muitos sites não funcionam sem os cookies, na verdade, mas depois de um curto período de tempo para obter o melhor nível possível de bolinho de higiene pessoal. Cookie Monster está aqui: https://addons.mozilla.org/de/firefox/addon/cookie-monster/


Dica 4: javascripts rastreamento, iframes e filmes Flash com NoScript proibição

A maioria dos cookies são definidos por JavaScripts. Porque tantos sites não são utilizáveis ​​quando completa JavaScript incapacitante, você deve fazer uma seleção aqui, infelizmente, assim como os cookies. Monitoramento também pode ser feito através de iframes e filmes Flash, também ajuda NoScript.

Aqui é a mesma abordagem: primeiro, proibir todos os scripts, uma vez completamente e então permitir que scripts necessários pedaço por pedaço. Ela ajuda o plugin do Firefox NoScript, que é semelhante ao monstro de biscoito na bandeja do sistema e permite o acesso de permitir ou não permitir Javascript por página visitada. Mesmo aqui há um monte de estresse no início, quase nada funciona mais. Pelo tempo que você tem o plugin, no entanto, tão bem adaptado às suas necessidades pessoais, que dificilmente prejudicada. Como um bom efeito colateral muitas páginas carregar muito mais rápido porque não tem que recarregar a página e ainda a construção de uma variedade de dados externos de terceiros.


Dica 5: endereço de IP anônimos com o botão TOR

Pelas dicas anteriores que eu tenho agora desligado pelo menos uma vez antes de 99,9% dos trackers 3rd party. Eu ir para obter os sites, mas ainda com quem eu sou e pode acompanhar o meu endereço IP. Isso ajuda a rede TOR, através do qual você pode navegar anonimamente. Este é semelhante ao GoogleSharing Prizip. Seu próprio endereço IP é perdido em um grande pool de endereços e traçar outro já não é a sua própria conexão.

TOR é, infelizmente, bastante lento e, portanto, não é adequado para uso diário. Mas pode ocasionalmente ser muito útil. TOR é um plugin para integrar muito facilmente e rapidamente no Firefox e desligar. Mais informações e downloads aqui: https://www.torproject.org/torbutton/


Dica 6: Remover publicidade com AdBlock Plus

Todos os banners, não foram aprovadas pelo dicas anteriores, já que você pode removê-lo com o AdBlock Plus. Este plugin usa uma lista de servidores pelos anunciantes e bloqueando o acesso a seus servidores. Firefox não pode baixar banners de publicidade e mais filmes e as posições correspondentes permanecem vazias nos sites. O plugin funciona de forma totalmente automática e pegou um monte de publicidade antes de chegar ao browser. Publicidade que não AdBlock bloqueia automaticamente pode ser marcado manualmente, de modo que AdBlock pode bloqueá-lo e reconhecê-lo. Adblock-lo aqui: https://addons.mozilla.org/de/firefox/addon/adblock-plus

Dez/11 1 1

Informações de registro on-line em Dusseldorf faz má impressão

Eu não estava muito claro o que os dados pessoais podem passar o serviço de registo para quem. Estou após alguma pesquisa sobre esta ação empurrou os piratas que chamam a opor-se a divulgação de seus próprios dados no escritório de registro. Muitos escritórios de registro fornecer os dados que agora todo mundo! Pays. Isso só pode ser evitado por uma contradição.

Dados do escritório de registro será encaminhado para:

 Autoridades estaduais, em caso de interesse legítimo no contexto da assistência

Por exemplo: polícia, Ministério Público, os serviços de estatística, etc

 O GEZ

Os irmãos, que já conhecemos muito bem.

 Partidos, grupos de eleitores e outras fontes de nomeações em
 Relacionados com as eleições parlamentares e locais; § 35 parágrafo 1 MG NRW

Para obter a campanha publicitária muito brilhante.

 a requerentes e partes em conexão com as petições e
 Referendos com os cidadãos e tomada de decisões; § 35 para.2 MG NRW

A fim de obter alto brilho o ajudará a fazer os referendos freqüentes.

 na forma de consulta automatizada na Internet; § 34 Abs.1b MG NRW

Esse é o ponto que eu não era conhecida anteriormente. Pode ter um portal na Internet
qualquer um que conhece algumas características de uma pessoa automaticamente através da Internet
Obtenção de relatórios de informações. A consulta custa atualmente € 4 por registro em Dusseldorf.

A Lei de Registro NRW diz neste momento:



 § 34 Abs.1b MG NRW
 (1b) Se a chamada ser possível graças à Internet, garantir que os procedimentos de candidatura e prestação de informações transportadas de forma criptografada.  A abertura de acesso deve ser de conhecimento público.  A chamada não é permitida se o indivíduo se opôs a essa forma de troca de informações.  A autoridade de registro para nota mais tardar um mês antes da abertura do acesso à Internet através de um aviso público sobre o direito de se opor.  Além disso, n. º 35 § 6, frase 2 se aplica.

Um recurso contra a transferência de dados é possível através do preenchimento de um formulário. Düsseldorf para isso é aqui: https://formulare.duesseldorf.de/forms/frm/7PRPfAZH5gQA8Ja8AkNGaH1rNpDcHR3 Essa taxa pode ser liberado para cargos públicos. Então não tem acesso on-line é possível em seus próprios dados mais. Aparentemente, os pedidos de dados do respectivas cidades e condados regionais organizadas.

Quando perguntei ao atendente (muito simpática) no escritório para os cidadãos, poderia
Eu não estava arrependido de dizer a URL do portal consulta. Uma rápida pesquisa me levou, em seguida, mas rapidamente neste lado da cidade de Düsseldorf:

% https://www.duesseldorf.de/emra/emra.jsp?stadt=D FCsseldorf & tipo = cidade

O portal foi tecnicamente muito duvidosa para dizer o mínimo impressão.
Primeiro de tudo, parece não haver captcha ou similar para dar. Uma consulta chão parece ser possível com scripts apropriados.

Além disso, a aplicação web aprovado com a seguinte consulta na minha mensagem de erro de teste Tomcat porque eu não tinha ativado os cookies:

Eu li isso, mas depois cada vez mais duvidar do profissionalismo de um aplicativo que fornece acesso aos dados de todos os cidadãos da cidade oferece. Um script não deve falhar se as condições não existem na máquina do usuário (neste caso meu cookie em falta). Mensagens de erro de script a partir de servidores Web que não estão em uso produtivo para desativar é negligente , pois pode revelar muito sobre o ambiente do sistema utilizado. Especialmente quando um jsp (como na imagem acima), dependendo da configuração do servidor e também comentários do programador para obter Quelltextschnippsel. Este era descuidado. Em uma interface de dados pessoais não deveria acontecer.

Deixe-me sentar e usar a versão do Tomcat, que também aparece na mensagem de erro abaixo. (Apache Tomcat/6.0.24) Esta é uma versão mais antiga do servidor web em 21/01/2010. A versão atual é 6.0.33. O servidor tem quatro registros versões longas não são atualizados. Se você olhar para as vulnerabilidades que foram abordados nesta versão final, está ficando desconfortável. O servidor não é, obviamente, nas melhores condições:

 http://tomcat.apache.org/security-6.html fixo no Apache Tomcat 6.0.33 lançado 18 de agosto de 2011 Moderado: fraquezas múltiplas em HTTP autenticação DIGEST CVE-2011-1184 A implementação do HTTP autenticação DIGEST foi descoberto para ter várias fraquezas: ataques de repetição foram autorizados nonces servidor não foram verificados nonce conta do cliente não foram verificados valores qop não foram verificados valores reino não foram verificados o segredo servidor foi codificado em uma seqüência conhecida O resultado destas deficiências é que apenas o que a autenticação DIGEST como segura como a autenticação BASIC.  Isto foi corrigido na revisão 1158180  Isso foi identificado pela equipe de segurança Tomcat em 16 de Março de 2011 e tornado público em 26 de setembro de 2011.  Afeta: 6.0.0-6.0.32 baixo: a divulgação de informações CVE-2011-2204 Ao usar o banco de dados de memória do usuário (com base no tomcat-users.xml) e criação de usuários através de JMX, uma exceção durante o processo de criação do usuário pode disparar uma mensagem de erro O cliente JMX que inclui a senha do usuário.  Esta mensagem de erro é então gravada nos logs do Tomcat.  Senhas de usuários são visíveis para os administradores com JMX acesso e / ou administradores com acesso de leitura para o arquivo tomcat-users.xml.  Não que esses usuários têm permissões, mas são capazes de ler arquivos de log pode ser capaz de descobrir a senha de um usuário.  Isto foi corrigido na revisão 1.140.071 th  Esta foi identificado por Polina Genova em 14 de junho de 2011 e tornado público em 27 de Junho 2011th  Afeta: 6.0.0-6.0.32 baixa: divulgação de informações CVE-2011-2526 Tomcat fornece suporte para o envio de arquivo com o HTTP e HTTP conectores NIO em abril.  sendfile é usada para conteúdo automaticamente servido através do DefaultServlet e os aplicativos implementados podem usá-lo diretamente via web atributos configuração pedido.  Estes atributos não foram validados pedido.  Quando executando sob um gerente de segurança, essa falta de validação permitiu uma aplicação web maliciosas para fazer um ou mais dos seguintes que normalmente seria impedido por um gerente de segurança: arquivos de retorno aos usuários que o gestor de segurança deve fazer cessar inacessíveis (por um acidente ) a JVM Além disso, essas vulnerabilidades ocorrem somente quando todas as seguintes forem verdadeiras: as aplicações web não confiáveis ​​estão sendo utilizados o gerenciador de segurança é usado para limitar as aplicações web não confiável o NIO HTTP ou HTTP abril conector é usado sendfile está habilitado para o conector (esta é o padrão) Isto foi corrigido na revisão 1146703  Isso foi identificado pela equipe de segurança Tomcat em 07 de julho de 2011 e tornado público em 13 de Julho 2011th  Afeta: 6.0.0-6.0.32 Importante: Divulgação de informações CVE-2011-2729 Devido a um bug no código de capacidades, jsvc (o wrapper de serviço para Linux que faz parte do projeto Commons Daemon) não deixa cair capacidades Permitindo a aplicação para acessar arquivos e diretórios que pertencem superusuário.  Esta vulnerabilidade ocorre somente quando todas as seguintes forem verdadeiras: Tomcat está rodando em um sistema operacional Linux compilado com libcap que jsvc usuário tomcat parâmetro é usado As versões afetadas fornecido com arquivos de origem para jsvc que incluiu esta vulnerabilidade.  Isto foi corrigido na revisão 1153824  Esta foi identificado por Wilfried Weissmann em 20 de Julho de 2011 e tornado público em 12 de agosto de 2011.  Afeta: 6.0.30-6.0.32 fixo no Apache Tomcat 6.0.32 lançado 3 de fevereiro de 2011 Nota: O problema abaixo foi corrigido no Apache Tomcat 6.0.31 release, mas o voto para o candidato liberação 6.0.31 não passou.  Portanto, embora os usuários devem baixar 6.0.32 para obter uma versão que inclui uma correção para esse problema, a versão 6.0.31 não está incluído na lista de versões afetadas.  Importante: negação de serviço remoto CVE-2011-0534 O conector NIO expande sua linha de buffer durante o processamento do pedido sem parar.  Que o comportamento pode ser usado para um ataque de negação de serviço usando uma solicitação cuidadosamente elaborada.  Isto foi corrigido na revisão 1066313th  Isso foi identificado pela equipe de segurança Tomcat em 27 de janeiro de 2011 e tornado público em 5 de fevereiro de 2011.  Afeta: 6.0.0-6.0.30 fixo no Apache Tomcat 6.0.30 liberada janeiro 13, 2011 Baixa: site scripting Cross-CVE-2011-0013 O Gerente de HTML interface da aplicação web exibidos dados fornecidos, tais como nomes, sem filtragem.  Uma aplicação web malicioso pode provocar a execução do script por um usuário administrativo ao visualizar as páginas gerente.  Isto foi corrigido na revisão 1057270  Isso foi identificado pela equipe de segurança Tomcat em 12 de novembro de 2010 e tornado público em 05 de fevereiro de 2011.  Afeta: 6.0.0-6.0.29 moderada: site scripting Cross-CVE-2010-4172 O aplicativo Gerenciador usado eo usuário forneceu os parâmetros orderBy espécie diretamente, sem filtragem permitindo assim cross-site scripting.  Isto foi corrigido na revisão 1037779  Este foi relatada pela primeira vez para a equipe de segurança Tomcat em 15 de novembro de 2010 e tornado público em 22 de novembro de 2010.  Afeta: 6.0.12-6.0.29 Baixa: SecurityManager desvio de permissão de arquivo CVE 2010-3718 Quando executando sob um gerente de segurança, o acesso ao sistema de arquivos é limitada, mas as aplicações web são concedidos de leitura / gravação permissões para o diretório de trabalho.  Este diretório é usado para uma variedade de arquivos temporários, como os arquivos intermediários gerados ao compilar JSPs para servlets.  A localização do diretório de trabalho é especificado por um atributo ServletContect que é feito para ser lido somente para aplicações web.  No entanto, devido a um erro de codificação, a definição só de leitura não foi aplicada.  Portanto, um aplicativo web malicioso pode modificar o atributo antes Tomcat Aplica-se as permissões do arquivo.  Isto pode ser usado para conceder leitura / gravação permissões para qualquer área do sistema de arquivos que uma aplicação web malicioso pode então aproveitar.  Essa vulnerabilidade só é aplicável quando hospedagem de aplicações web de fontes não confiáveis, tais como ambientes de hospedagem compartilhada.  Isto foi corrigido na revisão 1022560  Isto foi descoberto pela equipe de segurança Tomcat em 12 de maio de 2010 e tornado público em 5 de fevereiro de 2011.  Afeta: 6.0.0-6.0.29 fixo no Apache Tomcat 6.0.28 lançado 09 de julho de 2010 Importante: negação de serviço remoto e Vulnerabilidade de Divulgação de Informações CVE-2010-2227 Várias falhas na manipulação de cabeçalho "Transfer-Encoding 'foram encontrados impediu que a reciclagem de um buffer.  Um atacante remoto pode provocar esta falha que faria com que os pedidos subsequentes ao fracasso e / ou vazamento de informações entre as solicitações.  Esta falha é atenuada se o Tomcat está por trás de um proxy reverso (como o Apache httpd 2.2), como o proxy deve rejeitar o cabeçalho codificação inválido transferência.  Isto foi corrigido na revisão 958.977 ª  Este foi relatada pela primeira vez para a equipe de segurança Tomcat em 14 de junho de 2010 e tornado público em 09 de julho de 2010.  Afeta: 6.0.0-6.0.27 Nota: O problema abaixo foi corrigido em Apache Tomcat 6.0.27 release, mas o voto para o candidato liberação 6.0.27 não passou.  Portanto, embora os usuários devem baixar 6.0.28 para obter uma versão que inclui uma correção para esse problema, a versão 6.0.27 não está incluído na lista de versões afetadas.  Baixa: Divulgação de informações em cabeçalhos de autenticação CVE-2010-1157 A WWW-Authenticate cabeçalho HTTP para o BASIC e autenticação DIGEST inclui um nome de domínio.  Se um   elemento é especificado no web.xml para a aplicação que será usada.  No entanto, uma   não é especificado, Tomcat irá gerar nome de realm usando o código snippet request.getServerName () + "" + request.getServerPort ().  Em algumas circunstâncias isso pode expor o nome do host local ou endereço IP da máquina rodando Tomcat.  Isto foi corrigido na revisão 936.540 ª  Este foi relatada pela primeira vez para a equipe de segurança Tomcat em 31 de Maio de 2009 e tornado público em 21 de abril de 2010.  Afeta: 6.0.0-6.0.26 

Isso tudo parece muito incerto, e para mim é um exemplo da vontade do Estado viveu privacidade. Os dados são vendidos, e quase ninguém tem conhecimento. A execução técnica deixa muito a desejar, e roda em sistemas muito técnicos que são conhecidos por estar com defeito e precisa ser atualizado com urgência. Também parece ser uma inspeção final e aceitação qualificados em projetos de TI (conhecidas para o estado são geralmente muito caros) nem sempre acontecem.

O único ponto mais posso notar que parece haver nenhum portal central em todo o país com a leitura on-line para todos os dados de relatório. Então nós certamente não muito longe do que os israelenses aconteceu recentemente .

Fico feliz que eu me segurava, mas se alguém não entende um pouco de energia criminal e conhecimento técnico ainda pode acontecer (gratuito) para mim (e todos os outros), eu acho, pelo menos, questionável. À primeira vista, não o sistema de Düsseldorf endurecido contra ataque.

20 Nov/11 4

Neglector tweet. Um pequeno script PHP para apagar os tweets antigos do Twitter

Tweet automatiza o processo de apagar os tweets antigos Neglector da sua conta Twitter. Basicamente ele oferece para "expirar" funcionalidade para o seu tweets. É útil para pessoas que querem usar o Twitter, mas não querem uma história de seus tweets para ficar on-line durante décadas.

 HISTÓRIA:
 20 de novembro de 2011 | Versão 0.1
 Lançamento inicial.  Tweets exclui

 28 de dezembro de 2011 | Versão 0.2
 Pequenas correções de bugs.  Agora retweets apaga também.

 BUGS CONHECIDOS:
 - Não vai funcionar se você tweet mais de 1000 os tweets no período de tempo você pretende manter tweets.  Mesmo para retweets (100 permitidas).  Estes são deficiências da API do Twitter GET eu estou usando ATM.  Talvez eu corrigir isso com a próxima versão

Tweet Neglector usa a API do Twitter para apagar todos os seus tweets que foram postadas antes de um determinado número de dias a partir de agora. Desta forma, você pode configurar o script para apagar todos os tweets que são mais velhos do que uma semana ou um mês, por exemplo. O script deve ser executado automaticamente a partir de um trabalho cron ou outro mecanismo de automação em uma base regular.

Este script não pode protegê-lo de arquivos Tweet externo. Assim, não se sabe se os tweets excluídos são arquivados em silêncio pelo Twitter (eu aposto que eles são). Então (como sempre) pensar antes de twittar.

Tweet Neglector utiliza PHP como linguagem de script e os pacotes do Twitter OAuth biblioteca de Matt Harris para o acesso API.

Instalação

 - PHP5 necessários para tmhOAuth

 - Descompacte o arquivo em um diretório de sua escolha.

 - Registrar suas Chaves da API do Twitter em https://dev.twitter.com/apps

 - Edite a configuração do script para atender às suas necessidades:

 Chaves # Twitter API, tokens e segredos
 # Get essas teclas na -> https://dev.twitter.com/apps

 $ CONSUMER_KEY = "CHAVE SEU AQUI";
 $ CONSUMER_SECRET = "CHAVE SEU AQUI";
 $ Access_token = "CHAVE SEU AQUI";
 $ Access_token_secret = "CHAVE SEU AQUI";

 # Número de tweets por sessão a trabalhar em
 Tweets_per_session = $ 1000;

 # Nome de Usuário do Twitter
 $ Twitter_username = "SEU NOME DE USUÁRIO AQUI";

 Dias # para manter os tweets
 $ Keep_days = 30;

 - Execute o script manualmente a partir do browser, console, ou automaticamente pelo cron
 / Usr / bin / php / var / www / tweetneglector / tweetneglector.php

Tweet Neglector 0,2 baixar aqui

24 Okt/11 0

HOWTO: Rápido e sujo DHCP servidor e cache DNS com dnsmasq no Ubuntu

DHCP na LAN é prático. Que não mais necessita para gerenciar a configuração de rede de cada computador na rede para os clientes em si, mas tudo tem uma linda localização central no servidor. Salvar pelo cache DNS clientes um pouco de tempo deve ser feita ao resolver nomes de host, uma vez que as consultas podem ser aplicados a nomes bem conhecidos do cache host local e não para um servidor na Internet.

Um pequeno servidor DHCP é configurado muito rapidamente com dnsmasq.

 # Instalar o dnsmasq
 apt-get install dnsmasq

A configuração tem lugar central no arquivo / etc dnsmasq.conf /. Não se deve sair antes as opções de configuração concentrada no arquivo dissuadido. Quase tudo é apenas um exemplo e é por padrão comentada. Uma configuração muito curto já é suficiente para uma configuração de trabalho:

DHCP

 # Netmask DHCP
 Os clientes receberam # netmask 255.255.255.0 como
 dhcp-option = 1,255.255.255.0

 # Gateway padrão
 # Os clientes recebem como um gateway 192.168.1.251
 dhcp-option = 3,192.168.1.251

 # Dns
 Clientes # obter o nome do servidor 192.168.1.4
 # Se você quiser usar dnsmasq como cache de DNS, este deve ser o
 Ser # IP do servidor que está executando o dnsmasq
 dhcp-option = 6,192.168.1.4

 # Hosts para o mesmo endereço IP do MAC a ser concedido:
 # Este é o host com o MAC 00:11:22:33:44:55 IP 192,168.1.1 por 12 horas

 dhcp-host = 00:11:22:33:44:55, lobby, 192.168.1.1,12 h
 dhcp-host = 00:11:22:33:44:66, Lobby2, 192.168.1.2,12 h

 # Qualquer computador que não pode ser identificado por MAC receberá IPs
 # A partir do pool de 192.168.1.120 a 150

 dhcp-range = 192.168.1.120,192.168.1.150,12 h

DNS

A funcionalidade de DNS dnsmasq não precisa de configuração.
dnsmasq está em causa a sua nameservers em / etc / resolv.conf. Aqui deve
servidor de nomes conhecidos do provedor são registrados e, possivelmente, até mesmo como um fallback
8.8.8.8 para os servidores do Google DNS.

Hostnames mais que devem ser aplicadas na rede local pode, dnsmasq no arquivo
Ser / etc / hosts dado a conhecer. Aqui estão todos os computadores hostnames registrados
na LAN.

Armadilhas

dnsmasq necessidade de re-ler seus arquivos de configuração Konfigänderungen

 / Etc / init.d / dnsmasq restart

Se os clientes não têm um contrato de arrendamento a partir do servidor DHCP de idade, você pode manualmente trazê-lo para iniciar uma nova solicitação de DHCP.

 # Linux
 dhclient eth0

 # Windows
 ipconfig / RELEASE
 ipconfig / renew

Urgência tem que ter cuidado, até o momento para usar em qualquer lugar do servidor DHCP (normalmente no roteador para a Internet) para desativar. Dois servidores DHCP na rede local pode gerar uma grande quantidade de caos.

Okt/11 5 0

Sem fio para EEE 1000H rt2860 no Ubuntu

Com qualquer atualização recentemente o wireless estava no meu Eee PC 1000H com Ubuntu bastante instável. Permanente desconexões, não sem fio após suspender, conexão lenta, etc

Ich bin mir nicht ganz sicher woran es liegt, wahrscheinlich hat der rt2860 Treiber mit irgendeinem Update einen Bug bekommen.

Zum Glück kann das Problem durch die Installation der Windows-Treiber mit ndiswrapper gelöst werden.

Dies ist nur eine etwas verkürzte deutsche Übersetzung der englischen Originalanleitung von nevdelap aus dem Ubuntuforum. (Vielen Dank)

1. Windows Treiber saugen und entpacken (comm_driver_gigabyte_mimobility_v.1.3.1.0.15.zip)

Segundo Linux Treiber blacklisten

#/etc/modprobe.d/blacklist.conf

blacklist rt2x00lib
blacklist rt2x00pci
blacklist rt2x00usb
blacklist rt2400pci
blacklist rt2500pci
blacklist rt2500usb
blacklist rt2800lib
blacklist rt2800pci
blacklist rt2800usb
blacklist rt61pci
blacklist rt73usb
blacklist rt2600
blacklist rt2860 # Asus eee 1000H has an rt2860. To be loaded by ndiswrapper.
blacklist b43
blacklist b43legacy
blacklist ssb
blacklist r8192s_usb

Terceiro Mit ndisgtk den Windowstreiber aus drivers/GN-WI30N_WP30N_WS30N_WS30HN_WS31N/WINXP2k installieren

sudo ndisgtk

4 Grub konfigurieren

#/etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="pciehp.pciehp_force=1 pciehp.pciehp_poll=1 quiet splash"
sudo update-grub2

5 Powermanagement Rule erstellen

#/etc/pm/sleep.d/ndiswrapper

#!/bin/bash
case "$1" in
    hibernate|suspend)
        sudo rmmod ndiswrapper
        ;;
    thaw|resume)
        sudo modprobe ndiswrapper
        ;;
    *)
        ;;
esac
exit $?
chmod +x /etc/pm/sleep.d/ndiswrapper


6 Reboot

Danach läuft das WLAN schnell und stabil.

29 Jul/11 0

PHP Spickzettel

Hier sammele ich nützliche PHP Codeschnipsel

Pseudo Multithreading mit screen

#!/usr/bin/php5 for ($i=1;$i<50;$i++) { echo "starting $i\n"; exec("screen -d -m /usr/bin/php5 ./thread.php"); } 

MySQL Server has gone away in lange laufenden PHP-Shellscripten

#/etc/php5/cli/php.ini
mysql.allow_persistent = On
mysql.max_persistent = -1
mysql.max_links = -1
mysql.connect_timeout = -1
veröffentlicht unter: Linux keine Kommentare
7 Jul/11 0

Company Connect – Spass mit dem Telekom Vertrieb

Ein Kunde hatte ein Problem. Wegen einer speziellen Applikation, wurde ein schnellerer Ping nach Taiwan benötigt. Ein herkömmlicher Telekom DSLer brachte konstant 290 - 320ms zu Hinet, einem grossen taiwanesischen Provider. Eine streßfreie Nutzung der Applikation war mit diesen Paketlaufzeiten nicht möglich, deshalb forschte man nach Alternativen um eine schnellere Verbindung herzustellen. Ich war von Anfang an skeptisch ob eine Verbesserung der Situation überhaupt möglich war. Mit dem DSLer wurden die Pakete zunächst über das Telekom-Netz nach New York geroutet. Von dort aus ging es mit AT&T weiter quer durch die USA, dann über den Pazifik zu Hinet. Von Kalifornien bis Taiwan entstand der Hauptteil der Paketlaufzeit - fast 200ms. Meiner Meinung nach wäre eine Verbesserung nur möglich gewesen, wenn die Telekom selbst einen Backbone ihres Netzes in Taiwan unterhalten würde. Bei meiner Suche nach Anbietern, die das unmögliche leisten könnten, stieß ich auf das Telekom-Produkt Company Connect , das aus einer Standleitung besteht, die direkt an den Telekom-Backbones hängt. Telefonisch versicherte man mir, dass man mit "CoCo" ohne weiteres einen Ping unter 50ms nach Asien erreicht. Ich war freudig überrascht, aber nach wie vor skeptisch. Einige Tage später kam ein jung-dynamischer Telekom-Vertriebler ins Haus und bestätigte die Behauptung der Hotline erneut. "Ich habe mich für Sie erkundigt, das ist alles kein Problem. Die Telekom unterhält weltweit Backbones." Beim verlassen des Gebäudes erzählte er mir noch, dass er sich gerade einen neuen BMW bestellt hätte. Muito bonito. Am nächsten Tag kam per E-Mail direkt der Vertrag ins Haus. Wir schickten ihn mit dem Zusatz zurück, dass wir den Vertrag stornieren können, falls keine Pings unter 100ms nach Taiwan erreicht werden könnten. Die Telekom unterschrieb. Danach passierte erst einmal lange nichts mehr. Der Vertriebler hatte eine Schaltung innerhalb eines Monats zugesichert. Nach einem Monat fragten wir nach, der Vertriebler war allerdings ab dann (bis heute) nicht mehr erreichbar. Auch E-Mails an seine Abteilung wurden nicht beantwortet. Nach 2 1/2 Monaten wurden wir ungeduldig und drohten mit einer Stornierung des Auftrags, falls nicht innerhalb einer Woche ein Termin für die Schaltung vereinbart werden könnte. Danach ging es plötzlich sehr schnell. Die "Eskalationsstelle" organisierte einen Termin für uns, die Leitung wurde geschaltet. Für einen ersten Test klemmte ich einen Router und mein Netbook an die brandneue Leitung.

box-ww-11:57:35 ~ -> ping www.hinet.net
PING www.hinet.net (202.39.224.7) 56(84) bytes of data.
64 bytes from 202-39-224-7.HINET-IP.hinet.net (202.39.224.7): icmp_req=1 ttl=237 time=306 ms
64 bytes from 202-39-224-7.HINET-IP.hinet.net (202.39.224.7): icmp_req=2 ttl=237 time=306 ms

LOL. Was hätte man anderes erwarten können? Exakt die gleichen Ping-Werte wie zuvor. Exakt die gleiche internationale Route wie zuvor. Kein technisches Problem. Einfach nur viel Bullshit-Blah-Blah. Ich bin gespannt, ob die Kündigung genauso "problemlos" funktionieren wird wie die Schaltung.

19 Jun/11 0

XS UMTS Stick W14 unter Ubuntu

Der XS Stick W 14 unter Ubuntu zickte ein wenig herum. Gelegentlich erkannte der Network-Manager ihn als USB-Modem, dann konnte er allerdings trotzdem keine Verbindung herstellen. Nach ein wenig erfolgloser Frickelei bin ich auf das Sakis3G Script gestoßen, das verspricht mit fast allen Sticks eine Verbindung herstellen zu können. Und tatsächlich: Es hat mit Sakis3G sofort funktioniert. Empfehlenswert, wahrscheinlich auch für andere Sticks.

TYPENSCHILD

XS Stick W14
P/N 3000.000056.00
www.4g-systems.com
#lsusb
Bus 002 Device 006: ID 1c9e:9603
# /var/log/syslog beim Einstecken

Jun 19 20:41:04 box kernel: [74186.796148] usb 2-2: new high speed USB device using ehci_hcd and address 7
Jun 19 20:41:04 box kernel: [74186.946031] scsi11 : usb-storage 2-2:1.0
Jun 19 20:41:05 box usb_modeswitch: switching 1c9e:f000 (USB Modem: USB Modem)
Jun 19 20:41:06 box kernel: [74189.293850] usb 2-2: USB disconnect, address 7
Jun 19 20:41:07 box kernel: [74189.660069] usb 2-2: new high speed USB device using ehci_hcd and address 8
Jun 19 20:41:07 box kernel: [74189.819348] option 2-2:1.0: GSM modem (1-port) converter detected
Jun 19 20:41:07 box kernel: [74189.819577] usb 2-2: GSM modem (1-port) converter now attached to ttyUSB0
Jun 19 20:41:07 box kernel: [74189.819802] option 2-2:1.1: GSM modem (1-port) converter detected
Jun 19 20:41:07 box kernel: [74189.819950] usb 2-2: GSM modem (1-port) converter now attached to ttyUSB1
Jun 19 20:41:07 box kernel: [74189.820220] option 2-2:1.2: GSM modem (1-port) converter detected
Jun 19 20:41:07 box kernel: [74189.820395] usb 2-2: GSM modem (1-port) converter now attached to ttyUSB2
Jun 19 20:41:07 box kernel: [74189.821414] scsi12 : usb-storage 2-2:1.3
Jun 19 20:41:07 box modem-manager[10480]:  (ttyUSB1) opening serial port...
Jun 19 20:41:07 box modem-manager[10480]:  (ttyUSB0) opening serial port...
Jun 19 20:41:07 box modem-manager[10480]:  (ttyUSB2) opening serial port...
Jun 19 20:41:08 box usb_modeswitch: switched to 1c9e:9603 (USB Modem: Modem Configuration)
Jun 19 20:41:08 box kernel: [74190.823474] scsi 12:0:0:0: Direct-Access USBModem Disk 2.31 PQ: 0 ANSI: 2
Jun 19 20:41:08 box kernel: [74190.825402] sd 12:0:0:0: Attached scsi generic sg3 type 0
Jun 19 20:41:08 box kernel: [74190.833436] sd 12:0:0:0: [sdc] Attached SCSI removable disk
15 Jun/11 0

12 Maßnahmen um einen Linux root LAMP Apache MySQL PHP Webserver abzusichern


Die Hacking-Frequenz ist in den letzten Monaten stark angestiegen. Besonders viele Daten werden abgegriffen durch Hacks auf Webserver. Sogar der SONY-PSN-Hack nutzte Schwachstellen in einem ungepatchten Apache-Webserver. Deshalb sammele ich hier Maßnahmen, die den eigenen Server etwas sicherer gegen Angriffe von außen machen können. Natürlich bieten auch diese keinen 100%igen Schutz, aber es ist besser, den bösen Buben das Spiel ein wenig schwieriger zu machen. Einige der Maßnahmen benötigen nur einen minimalen Installations- und Wartungsaufwand. Andere benötigen viel Zeit und Kenntnisse von PHP um zu greifen. Man sollte immer auf das Kosten-Nutzen-Verhältnis bei der Auswahl der Sicherheitsmaßnahmen achten. Es macht keinen Sinn, eine kleine, private Website so abzusichern wie die Federal Reserve Bank. Allerdings können wenige gezielte Änderungen am System bereits ein großes Mehr an Sicherheit bedeuten. Und das sollte man sich schon gönnen, bevor es zu spät ist....

Alle Tipps und Codesnips beziehen sich auf eine aktuelle Debian-Kiste.

Primeiro Die Firewall - erst einmal alles verbieten

Die meisten Linux-Distributionen öffnen in ihren Standardinstallationen keine Ports nach außen, die nicht unbedingt notwendig sind. Diese Situation kann man jedoch schnell selbst ändern, wenn man am Server
herumspielt und Dinge ausprobiert. Plötzlich lauscht auch der Mediaserver im Internet oder die Datenbank
nimmt Verbindungen aus dem Internet entgegen. Deshalb ist es nicht verkehrt sich selbst zu disziplinieren und eine sehr restriktive Firewall aufzusetzen, die grundsätzlich erst einmal alle Verbindungen von außen verbietet und nur (selbst) ausgewählte Verbindungen gestattet. Zum Glück ist das mit iptables schnell erledigt. Auf diese Art und Weise kann man nicht mehr aus versehen Dienste der Welt zugänglich machen, die dort nichts zu suchen haben. Man bezahlt leider mit etwas Komfort - die Firewall muss jedes Mal angepasst werden, wenn man neue Dienste anbieten möchte. Trotzdem ist der Aufwand klein und der Nutzen groß.

#!/bin/bash

# Bestehende Tables löschen
iptables -F

# Alle eingehenden Verbindungen verbieten
iptables -P INPUT DROP
iptables -P FORWARD DROP

# Alle ausgehenden erlauben
iptables -P OUTPUT ACCEPT

# SSH erlauben
iptables -A INPUT -j ACCEPT -p tcp --dport 22 

# HTTP erlauben
iptables -A INPUT -j ACCEPT -p tcp --dport 80 

# Weiteren Dienst (UDP) erlauben, zum Beispiel Gameserver
iptables -A INPUT -j ACCEPT -p udp --dport 4534 

# Alles von Localhost erlauben. (Damit der Server selbst ungehindert auf seine Dienste zugreifen kann,
# zum Beispiel PHP auf die lokale Datenbank
iptables -A INPUT -j ACCEPT -s 127.0.0.1

# Bereits aufgebaute Verbindungen werden an jedem Port akzeptiert
# (Notwendig für manche Daemons)
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

Dieses kleine Grundgerüst kann man einfach weiter ausbauen und eigene Dienste hinzufügen. Bei Arbeiten an der Firewall sollte man immer für den Fall vorsorgen, dass man sich selbst aussperrt. Besonders bei Remote-Servern, auf die man keinen physischen Zugriff hat, ist es sehr ärgerlich, durch eine mißglückte Firewallregel den eigenen Zugriff zu verlieren. Um diesem Problem aus dem Weg zu gehen, kann man bei Arbeiten an der Firewall einfach temporär einen Cronjob starten lassen, der die Firewall alle paar Minuten zurücksetzt oder den Server neu startet. Sind die Regeln später getestet und geliebt, kann der Cronjob wieder deaktiviert werden und die neuen Regeln bleiben permanent aktiv.

Um herauszufinden, welche Dienste gerade auf dem eigenen Server herumlauschen, kann man netstat benutzen:

#Für TCP-Sockets:
netstat -lpn | grep tcp

#Analog für UDP:
netstat -lpn | grep udp

Um zu testen ob die Firewall wirklich funktioniert, kann man den eigenen Server von einem anderen Rechner aus portscannen. Hat alles geklappt, sollten im Ergebnis nur die selbst geöffneten Ports auftauchen:

#Für TCP:
nmap -p1-65535 meinserver.de

#Für UDP:
nmap -sU -p1-65535 meinserver.de

Segundo SSH Logins verbieten

Am eigenen root-Server hat man uneingeschränkten SSH-Zugriff. Das ist recht praktisch, da man von jedem SSH-Client aus mal eben auf den Server kann um an ihm zu arbeiten. Der Nachteil davon ist, dass das natürlich auch jeder andere kann, der unglücklicher Weise irgendwie an das eigene Passwort gelangt ist. Es ist viel sicherer SSH-Logins nur mit einer gültigen Schlüsseldatei zu erlauben. Dafür wird der öffentliche Schlüssel des Clients auf den Server kopiert und interaktive Logins per Passworteingabe werden deaktiviert.

# Auf dem Client einen öffentlichen Schlüssel erstellen
# Wird bei der Generierung ein Passwort angegeben, benötigt man zum
# einloggen später die Schlüsseldatei UND das Passwort. Ansonsten wird
# nur der Schlüssel benötigt.

ssh-keygen -t rsa

# Den erstellten Schlüssel danach auf den Server kopieren

ssh-copy-id -i ~/.ssh/id_rsa.pub root@meinserver.de

# Danach auf dem Server /etc/ssh/sshd_config anpassen
 .
 .
PasswordAuthentication no
 .
 .

# Danach SSh neu starten
/etc/init.d/ssh restart

Auch hier sollte man Vorkehrungen treffen, um sich nicht selbst auszusperren, falls etwas nicht funktioniert.
Der Public Key auf einem USB-Stick mit dem dazugehörigen Passwort im eigenen Kopf macht es sehr viel schwerer für böse Buben eine Shell zu erhalten.

Terceiro SSH Bruteforcing verhindern mit denyhosts

Falls Tipp 2 nicht praktikabel ist und man den Komfort von passwortgestützten Logins nicht aufgeben will, kann man zumindest das automatisierte Passwortraten von Angreifern auf dem Server verhindern. Sehr viele Bots im Internet machen den ganzen Tag nichts anderes als nach SSH-Servern zu suchen und bei Ihnen verschiedenste Passwörter durchzuprobieren. Mit einem halbwegs sicheren Passwort ist das kein großes Problem, trotzdem gibt es ein besseres Gefühl, wenn nicht einmal das möglich ist. Außerdem schützt man so auch seine User, falls auf dem Server auch Useraccounts bestehen. Hier kann man sich nicht darauf verlassen, dass die Benutzer sichere Passwörter verwenden. denyhosts überprüft ständig Logins auf dem ssh und sperrt Benutzer für eine gewisse Zeit, die ihr Passwort wiederholt falsch angegeben haben. Die IP's dieser Nutzer landen temporär in /etc/hosts.deny, so dass für sie kein Zugriff mehr möglich ist. Damit wird SSH-Bruteforcing zu einer sehr langwierigen und wenig erfolgversprechenden Aufgabe.

apt-get install denyhosts

# denyhosts funktioniert direkt nach der Installation. Man kann es
# in der Datei /etc/denyhosts.conf feintunen

4 Blacklisten benutzen, um bekannte Problem-IPs auszusperren

Im Internet werden verschiedene Blacklisten gepflegt, die eine große Anzahl von kriminellen/gehackten/spammenden/betrügerischen Servern auflisten. Diese IP-Listen können direkt in die Firewall eingetragen werden, so dass von diesen bekanntermaßen nicht vertrauenswürdigen Rechnern überhaupt keine Verbindung mehr zum eigenen Server möglich ist. So kann man das Spamaufkommen auf dem eigenen Server drastisch verringern und auch das eine oder andere Script-Kiddie aussperren, weil sein Russland-Proxy plötzlich nicht mehr funktioniert. Wie man das macht habe ich bereits in einem anderen Blog-Artikel am Beispiel der Blacklist von Infiltrated.net beschrieben.

5 Kein FTP benutzen für die Arbeit am Server

FTP ist ein Relikt aus besseren Zeiten in denen das Internet noch ein kleines vertrauenswürdiges Dörfchen war. Viele Admins von Webseiten nutzen nach wie vor FTP um Dateien zum Server zu übertragen oder um an der eigenen Website zu arbeiten. Das ist leider sehr unsicher, da FTP alle Daten ungesichert übertragt. Passwörter und Daten können an jedem Hop zwischen Server und Client ohne Probleme mitgelesen werden. Viel sicherer geht es mit sshfs. Hiermit kann man sich per SSH ein Verzeichnis des Remote-Servers in sein lokales Dateisystem mounten. Man kann danach auf dem Server so arbeiten, als sei er auf dem lokalen Rechner. Alle Dateizugriffe auf Dateien auf dem Server sind komplett transparant, man kann also auch mit dem lokalen Grafikprogramm ein Bild auf dem Server direkt öffnen, bearbeiten und wieder speichern. Mehr Komfort und mehr Sicherheit ohne großen Aufwand.

#sshfs installieren
apt-get install sshfs

#mountpoint im lokalen Dateisystem anlegen
mkdir /media/meinserver

#Server ins lokale Dateisystem mounten
sshfs www-data@mein-server.de:/var/www /media/meinserver

#Nun ist das Verzeichnis /var/www auf meinserver lokal unter /media/meinserver verfügbar

6 Updates installieren

Ein super abgesichertes System hilft nichts, wenn das System selbst fehlerhaft ist und eine bekannte Sicherheitslücke ausgenutzt werden kann. Meist werden diese Sicherheitslücken schnell geschlossen, oft vergessen Admins jedoch regelmäßige Updates des Systems zu machen. Ob man automatische Updates auf Linux-Servern aktivieren sollte oder nicht ist ein strittiges Thema. Einige würden es niemals tun, da es natürlich mit viel Pech auch sein kann, dass die Updates das System unbrauchbar machen. Dies ist mir in über 10 Jahren Arbeit an Debian-Systemen allerdings niemals passiert und ich schätze den Nutzen von zeitnahen und regelmässigen Updates viel höher ein, als die daraus entstehende Gefahr.

#Diese Zeile in der /etc/crontab aktualisiert das System täglich um 6 Uhr morgens
0 6 * * * root apt-get update && apt-get -y upgrade

Diese Quick-and-dirty Methode funktionierte bei mir bisher immer gut. Vor kurzem habe ich gelesen, dass im Debian Repository auch das Paket unattended-upgrades existiert, das die Aufgabe wohl etwas eleganter löst, ich habe es allerdings bisher nicht getestet.

Auch bei diesen vollautomtischen Systemupdates ist man nicht komplett aus dem Schneider. Falls ein Kernel-Update ausgeliefert wurde, muss man das System trotzdem noch per Hand neu booten, da ansonsten die Änderungen nicht aktiv werden.

Benutzt man fremden PHP-Code auf dem Server, wie zum Beispiel ein Open-Source CMS oder ein Forum, ist es natürlich absolut notwendig auch diesen Code mit neuen Versionen aktuell zu halten. Da Debian mit seinen Updates Änderungen an diesen Applikationen in der Regeln nicht abdeckt, ist hier Handarbeit nötig. Am besten liest man die Mailinglisten der entsprechenden Produkte mit um immer auf dem Laufenden zu sein.

7 PHP einsperren mit open_basedir

Viele Hacks basieren darauf, dass eine Sicherheitslücke im PHP-Code ausgenutzt wird, um auf Dateien im Dateisystem zuzugreifen, die nicht zur Website gehören, sondern zum System selbst. Deshalb sollte man PHP einsperren, so dass es nur in explizit erlaubten Verzeichnissen lesen und schreiben darf. Dafür bietet die php.ini die Konfigurationsoption open_basedir. PHP hat nach setzten der Option nur noch Zugriff auf die dort erlaubten Verzeichnisse. Dateien wie /etc/passwd werden unerreichbar. Hostet man auf einem Server mehrere Webseiten sollte man open_basedir in der jeweiligen VirtualHost-Konfiguration pro Seite setzen.

# Global per php.ini:
# /etc/php5/apache2/php.ini
open_basedir = /var/www/:/tmp/

# Per Site in der VirtualHost Config:
php_value open_basedir /var/www/site/:/tmp/

Wichtig ist zu prüfen ob wirklich alle Orte eingetragen wurden, auf die die Skripte normalerweise Zugriff haben müssen, ansonsten kann es sein, dass man auch legitime Funktionen der PHP-Applikation behindert.

8 Für Websites einen eigenen MySQL-Benutzer anlegen

Benutzt die eigene PHP-Applikation MySQL, sollte man unbedingt für die Apllikation einen eigenen MySQL-Benutzer anlegen und auf keinen Fall den MySQL-root-Benutzer für Zugriffe nutzen. Außerdem sollte man die Rechte des Benutzers so weit einschränken, dass wirklich nur noch Operationen erlaubt sind, die das PHP-Skript benötigt. CREATE TABLE und DROP TABLE werden zum Beispiel häufig bei SQL-Injections genutzt und werden in den meisten PHP-Applikationen nie benötigt. Hostet man mehrere Websites mit mehreren Datenbanken auf einem Server, sollte man für alle Datenbanken eigene Benutzer anlegen. So hat ein Angreifer nach einem erfolgreichen Angriff nur Zugriff auf eine der Datenbanken und nicht direkt auf alle. Wenn man nicht die Kommandozeile bemühen möchte, um die MySQL-Useraccounts zu verwalten, funktioniert das Usermanagement auch recht einfach mit PHPmyAdmin unter der Registerkarte "Rechte".

9 PHP Fehlermeldungen abschalten

PHP-Fehlermeldungen können einem Angreifer viel über den eigenen Server verraten: Verzeichnisstrukturen, Datenbankstrukturen, Konfigurationsfehler, etc. Außerdem sehen sie für den Benutzer sehr unprofessionell aus. Aus diesem Grund sollte man sie auf einem Live-Webserver grundsätzlich abschalten, da man sie ohnehin weiterhin in den Logs sehen kann.

# Global per php.ini:
# /etc/php5/apache2/php.ini
display_errors = Off

# Per Site in der VirtualHost Config:
php_flag display_errors Off

# Fehlermeldungen trotzdem lesen:
cat /var/log/apache2/error.log | grep PHP

10 Angriffsfläche für SQL-Injections einschränken mit modSecurity

SQL-injections sind die wohl am häufigsten genutzte Angriffsmethode auf Webserver. Der Zugriff erfolgt direkt über die Webapplikation und es genügt ein Browser um sie durchzuführen. Dabei werden über vom User übermittelte Variablen geschickt SQL-Abfragen eingebaut, die mit den Rechten des Datenbankbenutzers alles an der eigenen Datenbank nach belieben auslesen, löschen oder bearbeiten können. Ein wirklicher echter Schutz gegen SQL-Injections besteht nur, wenn der PHP-Code der Site im Hinblick auf diese Angriffe geschrieben wurde. Jede Variable aus Benutzereingaben, die in eine SQL-Abfrage gelangen könnte, muss geprüft und escaped werden. PHP bietet dafür die Funktion real_mysql_escape_string().

Ist man nicht sicher, ob der Code sauber ist, kann mod_security für den Apache helfen eine große Menge dieser Angriffe trotzdem abzuwehren. mod_security überprüft ständig alle Requests an den Webserver und reagiert auf vorgefertigte Muster mit denen viele SQL-Injection-Angriffe abgewehrt werden können. Leider funktioniert auch mod_security nur gut mit manuellem Aufwand. Oft blockt mod_security nach einer frischen Installation auch gewünschte (normale) Funktionen des eigenen PHP-Codes, so dass einem nichts anderes übrig bleibt, als die komplette Applikation nach der Installation einmal durchzutesten. Nur so findet man heraus, ob mod_security nicht eventuell auch gewünscht Funktionen blockt. Ist das der Fall, muss die Filterliste angepasst werden, so dass die false-positives verschwinden.

Die Konfiguration von mod_security ist etwas komplizierter und würde den Umfang dieses Artikels sprengen, es gibt aber massenweise gute Tutorials zu mod_security im Internet.

11 Ausweiskontrolle - Der Apache sagt nicht mehr, wer er ist
Dies ist keine wirklich wirkungsvolle Methode gegen einen Hack, sie macht es automatisierten Skripten, die nach Server-Versionen suchen aber etwas schwerer. Normalerweise zeigt der Apache auf Seiten mit Fehlermeldungen (zB 404 Not Found) seine Serversignatur.

Apache/2.2.16 (Debian) Server at www.daniel-ritter.de Port 80

So erhalten potentielle Angreifer zumindest schon einmal Informationen über den eigesetzten Webserver und den Versionsstand. Die Serversignatur ist schnell ausgeschaltet:

#/etc/apache2/conf.d/security
ServerSignature Off

12. Nicht benutze Apache-Module deaktivieren

Per default hat der Apache einige Module geladen, die fast nie benötigt werden. Unter Debian findet man die geladenen Module
als Softlinks in /etc/apache2/mods-enabled.

Fast immer entfernt werden können:

mod_cgi

Dient dem ausführen von CGI-Skripten. Diese Technik stammt noch aus den Urzeiten des Web und war der Vorvater der modernen Skriptsprachen um dynamische Webseiten zu ermöglichen. mod_cgi ist auf 99% der PHP-Websites unnötig und bei einer fehlerhaften Apache-Config eine potentielle Sicherheitslücke

a2dismod cgi

mod_status

Ermöglicht es Browsern Statusinformationen über den Apache auszulesen. Es wird so gut wie nie für "normale" Sites genutzt, bietet Angreifern aber Statusinformationen über den Apache.

a2dismod status

mod_autoindex

mod_autoindex sorgt dafür, dass Verzeichnisse auf dem Webserver aufgelistet werden können, wenn es keine gültige Index-Seite in dem entsprechenden Verzeichnis gibt. Falls diese Funktionalität nicht erwünscht ist, sollte man sie abschalten, da durch sie ganze Verzeichnisbäume auf dem Webserver nach aussen sichtbar werden können.

a2dismod autoindex
9 Jun/11 0

Linux Server mit der Scam/Spam/Crime Blacklist von Infiltrated.net absichern

Im Internet gibt es viele böse Buben: Scammer, Hacker, Viagrabuden, Scriptkiddies, etc.

Infiltrated.net pflegt eine recht umfangreiche Liste auffällig gewordener Server unter http://www.infiltrated.net/blacklisted .

Wenn man Zugriff auf seinen Server oder auch sein Heimnetz von diesen IP's unterbindet, hat man bereits sehr viele Russen Proxies, Spammer und anderes Gesindel ausgesperrt.

Das folgende kleine Script saugt sich automatisch die aktuelle Liste und trägt die Hosts in die Firewall ein.

Mit einem Cronjob regelmässig gestartet, ermöglicht es ein Quentchen mehr Sicherheit für die eigenen Dienste.

#!/usr/bin/php
<?
# Zuerst bereits bestehende (eigene) Firewallrules ausführen
exec("/root/scripts/meine_standard_firewall_rules");

# Blacklist saugen
exec("wget -O /tmp/infiltrated_blacklist http://www.infiltrated.net/blacklisted");

$list = file("/tmp/infiltrated_blacklist");

$i = 1;

# Ein bisschen auseinanderschnibbeln und ab in Iptables
foreach ($list as $line)
{
$line = trim($line);
$line = str_replace("\t"," ",$line);

$line = explode(" ",$line);
$line = $line[0];

$firstchar = substr($line,0,1);
if (!is_numeric($firstchar))continue;

exec ("iptables -I INPUT -s $line -j DROP");
$i++;
}

echo "done. $i rules set.";
?>
veröffentlicht unter: Linux keine Kommentare
28 Mrz/11 0

The Adobe Flash plugin has crashed – Reparieren – Ubuntu – NVidia

Seit einer der letzten Firefox Versionen wollte Flash nicht mehr so richtig. Bei sehr vielen Videos crashte der Adobe Flash Player. Ich habe das Problem gelöst, bin mir aber nicht 100%ig sicher woran es lag. Ich tippe auf 2 Bugs: Einmal auf das Zusammenspiel der Hardwarebeschleunigung von Flash mit meiner Grafikkarte und zum anderen auf das neue Plugin-Crash-Handling von Firefox.

Primeiro Hardwarebeschleunigung deaktivieren

In ein Flash-Video rechtsklicken. Einstellungen wählen. Haken bei Hardwarebeschleunigung entfernen.

Segundo Plugin-Crash-Handling von Firefox deaktivieren

about:config in der Adresszeile eingeben

Die Werte dom.ipc.plugins.processLaunchTimeoutSecs und dom.ipc.plugins.timeoutSecs auf "-1" setzen.

Seitdem habe ich keine Probleme mehr mit Ubuntu 10.10, Firefox 4 und Flash 10.2.153.1

veröffentlicht unter: Ubuntu keine Kommentare