Online via UMTS surfe stick med Debian med WvDial og O2 Mobile Flat
Siden min nye DSL-forbindelse er aktiveret kun i et par uger, jeg er Alice i "Quick Start" er valgt. Blev slået her får du et SIM-kort, som du kan surfe gratis i 3 måneder, som lappeløsning indtil DSL-forbindelse.
Jeg naturligvis ikke gøre internettet forbindelse fra en klient, men som sædvanlig på min hjemme-server, der fungerer for hele hjemmenetværket som en router.
De største problemer jeg havde med Alice hotline. SIM-kortet kom med en kort vejledning om hvordan du aktiverer det gennem Alice portalen. Desværre er hverken den websted i Firefox, Chrome eller Opera fungerer korrekt. Jeg er ikke avancerede før aktivering af SIM-kortet.
Så desværre, opkald til hotline 01 805. Meget irriterende for 42ct./Min.
Om Hotline Akivierung af kortet blev gjort hurtigt, heldigvis, jeg var der først, desværre ikke kunne kalde APN nødvendige for konfiguration af WvDial. Jeg ville være sikker på jeg havde nogle bange for ublu regninger på den forkerte konfiguration af værdien. Her kunne teknikken hjælpe mig til lykke. For Alice / O2 Quick Start Mobile Internet APN er den flade, i henhold til Hotline "internet.partner1". Ved tildeling af navnet var nok ingen, der var involveret i markedsføringen ![]()
Som et næste skridt, har jeg indsat SIM-kortet i en mobiltelefon til at vente på, at aktivering og dem bevidste om det. Det gik forholdsvis hurtigt, efter ca 30 minutter, var mit SIM allerede aktiv og logger på netværket. Forbavsende hurtigt, da aktivering af Alice i første omgang forfremmet til O2. At tvinge telefonen til nye einzubuchen i nettet, kan det være slukket og tændes igen. Jeg har nu med telefonen stadig deaktiverer SIM PIN-kode-anmodning, fordi jeg havde for nogen tid siden allerede dårlig problemer med WvDial og en pinkode.
Resten fungerede forbavsende godt.
Jeg har den SIM i mit Huawei Surf Drive (T-Mobile Surf Stick III)
Bus 001 Device 004: ID 12D1: 1003 Huawei Technologies Co, Ltd. E220 HSDPA Modem / E270 HSDPA / HSUPA Modem
været indsat. Efter at tilslutte en USB-port med en aktuel kerne Debian giver enheden / dev/ttyUSB0 til rådighed.
Det kan appellere til dig med WvDial
# / Etc / wvdial.conf [Dialer Defaults] = ATZ Init1 Init2 = ATQ0 V1 E1 S0 = 0 & C1 & D2 + FCLASS = 0 Init3 = AT + CGDCONT = 1, "IP", "internet.partner1" Phone = * 99 * ** 1 # Password = blank Brugernavn = blank Ny PPPD = yes Modem = / dev/ttyUSB0 Baud = 460800 Modem Type = Analog Modem Auto Reconnect = på Så man kan være med "WvDial" forbindelsen er etableret:
gbn-root-00: 19:27 ~ -> WvDial -> WvDial: Internet dialer version 1.60 -> Kan ikke få oplysningerne til seriel port -> Initialiserer modem. -> Afsendelse: ATZ ATZ OK -> Sender: ATQ0 V1 E1 S0 = 0 & C1 & D2 + FCLASS = 0 ATQ0 V1 E1 S0 = 0 & C1 & D2 + FCLASS = 0 OK -> Sender: AT + CGDCONT = 1, "IP", "internet.partner1" AT + CGDCONT = 1, "IP", "internet.partner1" OK -> Modem initialiseret. -> Sender: ATDT * 99 *** 1 # -> Waiting for carrier. ATDT * 99 *** 1 # CONNECT -> Carrier opdaget. Venter på prompten. -> Ved ikke hvad de skal gøre! Start pppd og håbe på det bedste. -> Start pppd hos Sun 29 januar, 2012 00:19:58 -> Pid af pppd: 3749 -> Brug af grænsefladen ppp0 -> Pppd: ȧ -> Pppd: ȧ -> Pppd: ȧ -> Pppd: ȧ -> Pppd: ȧ -> Pppd: ȧ -> Lokale IP-adresse 10.43.145.228 -> Pppd: ȧ -> Fjernbetjening IP-adresse 10.64.64.64 -> Pppd: ȧ -> Primær DNS-adresse 193 189 244 225 -> Pppd: ȧ -> Sekundær DNS-adresse 193 189 244 206 -> Pppd: ȧ
Når dette er overstået luften grænseflade til internettet Device ppp0 rådighed, som du nu kan bruge til routing og firewall-regler.
Downstream er i centrum af Düsseldorf fint, kan upstream ønske, dog meget:
Download hastighed: 2082 kbit / s (260 kByte / s) Upload hastighed: 71 kbit / s (9 kbytes / s)
Men ... Kig ikke en gave hest i munden. Jeg ville betale for denne ydelse, dog.
Tillæg
Desværre er forbindelsen ikke er stabil. Efter mindre end en time, ikke flere data til at flyde i ppp0 WvDial får dem desværre med ingenting og synes, at forbindelsen er stadig aktiv, skal du vælge en, der ikke selv hele tiden. At fejlsøge dette problem var for kompliceret, fordi denne løsning i alle tilfælde kun et par uger, indtil banen er nødt til at arbejde DSLers. Det følgende lille script, der kontrollerer, om forbindelsen er stadig gældende. Hvis ikke, start WvDial dræbt og nye.
# / Bin / bash www.google.de ping-c1> / dev / null hvis $ [? -Ne 0]; Derefter killall WvDial echo `dato`>> / var / log / connection_lost.log WvDial & fi
Jeg kalder dette script automatisk via et cron job og nu er jeg altid på:
# / Etc / crontab # GENOPKALD crappy O2 linjen * * * * * Root / root / scripts / redial_ppp
Faldgruber:
- SIM PIN-beskyttelse ikke er deaktiveret
- Forbindelsen via mobiltelefon udbyder er desværre geNATtet. Den private server er ikke direkte adgang udefra. Server-tjenesterne kan tilbydes kun med besvær.
Online-registrering oplysninger i Düsseldorf gør dårligt indtryk
Jeg var ikke helt klart, hvilke personlige data kan passere registreringen kontor til hvem. Jeg er efter nogle forskning på denne handling skubbede de pirater, der kalder at modsætte sig udlevering af egne data ved registreringen kontoret. Mange registrering kontorer levere de data, der nu alle! Pays. Dette kan kun undgås ved en selvmodsigelse.
Data fra registreringen kontor vil blive sendt til:
Statslige myndigheder, i tilfælde af berettiget interesse i forbindelse med bistand
F.eks politi, anklagere, statistiske kontorer, osv.
Den GEZ
Brødrene, vi allerede kender alt for godt.
Partier, vælgere og andre kilder til nomineringer i I forbindelse med parlaments-og lokalvalg; § 35 para.1 MG NRW
For at få den smukke blanke kampagnen reklame.
til ansøgerne og fester i forbindelse med andragender og Folkeafstemninger med borgerne og beslutningsprocessen; § 35 para.2 MG NRW
For at opnå højglans vil hjælpe dig med at de hyppige folkeafstemninger.
i vejen for elektronisk søgning på internettet; § 34 Abs.1b MG NRW
Det er det punkt, som jeg ikke tidligere var kendt. Kan have en internetportal
nogen der kender nogle karakteristika af en person automatisk over internettet
Indhente oplysninger rapportering. Forespørgslen i øjeblikket koster € 4 pr rekord i Düsseldorf.
Den Registration Act NRW siger på dette punkt:
§ 34 Abs.1b MG NRW (1b) Hvis opkaldet skal gøres mulig via internettet, sikre, at ansøgningsprocedurer og tilvejebringelse af informationer, der transmitteres i krypteret form. Åbningen af adgangen skal være offentligt kendt. Et opkald er ikke tilladt, hvis den enkelte har gjort indsigelse mod denne form for informationsudveksling. Registreringen myndighed at bemærke, senest en måned før åbningen af Internet adgang med offentlig meddelelse om retten til indsigelse. Hertil kommer, § 35 stk 6, sætning 2 finder anvendelse.
En appel mod overførsel af data er mulig ved at udfylde en formular. Düsseldorf til dette er her: https://formulare.duesseldorf.de/forms/frm/7PRPfAZH5gQA8Ja8AkNGaH1rNpDcHR3 Denne afgift kan frigives i offentlige kontorer. Så ingen online-adgang er mulig på deres egne data mere. Tilsyneladende data anmodningerne fra de respektive regionale byer og amter organiseret.
Da jeg spurgte (meget venlige) kontorassistent på kontoret til borgerne, kunne
Jeg var ikke ked af at fortælle webadressen på forespørgslen portalen. En hurtig søgning førte mig da, men hurtigt på denne side af byen Düsseldorf:
https://www.duesseldorf.de/emra/emra.jsp?stadt=D% FCsseldorf & type = by
Portalen var teknisk set en meget tvivlsom for at sige det mindste indtryk.
Først og fremmest, synes der ingen CAPTCHA eller lignende til at give. En begrundelse forespørgsel synes at være muligt med passende scripts.
Desuden godkendte web applikation med følgende forespørgsel i min test Tomcat fejlmeddelelse, fordi jeg ikke havde slået cookies:
Jeg har læst det, men så i stigende grad tvivler på professionalisme i et program, der giver adgang til data for alle borgere i byen tilbyder. Et script bør ikke gå ned, hvis betingelserne ikke findes på brugerens maskine (i dette tilfælde min manglende cookie). Script fejlmeddelelser fra web-servere, der ikke er i produktivt brug for at deaktivere har udvist forsømmelighed , fordi det kan afsløre en masse om det system, der anvendes miljø. Især når man jsp (som i skærmbilledet ovenfor), afhængigt af konfigurationen af serveren og også kommentarer fra programmøren at få Quelltextschnippsel. Dette var sjusket. På et interface til personoplysninger, bør ikke ske.
Lad mig sidde op og bruge Tomcat version, som også vises i fejlmeddelelsen nedenfor. (Apache Tomcat/6.0.24) Dette er en ældre version af web-server på 21/01/2010. Den aktuelle version er 6.0.33. Serveren har fire registre lange versioner er ikke opdateret. Hvis man ser på de svagheder, der blev behandlet i denne endelige udgave, er det at blive ubehageligt. Serveren er naturligvis ikke i den bedste stand:
http://tomcat.apache.org/security-6.html Fast i Apache Tomcat 6.0.33 frigivet August 18, 2011 Moderat: Flere svagheder i HTTP Digest Authentication CVE-2011-1184 Gennemførelsen af HTTP Digest Authentication blev opdaget at have flere svagheder: replay angreb var tilladt server nonces blev ikke kontrolleret klient nNår tæller ikke blev kontrolleret qop værdier blev ikke kontrolleret realm værdier blev ikke kontrolleret serveren hemmelighed var hard-kodet til en kendt streng Resultatet af disse svagheder er, at kun hvad Digest Authentication som sikkert som BASIC godkendelse. Dette blev fastsat i revisionen 1158180. Dette blev identificeret af Tomcat sikkerhed holdet den 16. marts 2011 og offentliggjort den 26. september 2011. Påvirker: 6.0.0-6.0.32 lav: afsløring af oplysninger CVE-2011 til 2204 Når du bruger hukommelsen brugerdatabasen (baseret på Tomcat-users.xml) og oprette brugere via JMX, en undtagelse i løbet af brugeren skabelsesprocessen kan udløse en fejlmeddelelse i Den JMX klient, der omfatter brugerens adgangskode. Denne fejlmeddelelse er derefter skrevet til Tomcat logs. Brugerkodeord er synligt for administratorer med JMX adgang og / eller administratorer med læse-adgang til Tomcat-users.xml fil. Ikke at disse brugere ikke har tilladelser, men er i stand til at læse logfiler kan være i stand til at opdage en brugers adgangskode. Dette blev fastsat i revisionen 1.140.071 th Dette blev identificeret af Polina Genova den 14. juni 2011 og offentliggjort den 27. juni 2011th Påvirker: 6.0.0-6.0.32 lav: afsløring af oplysninger CVE-2011 til 2526 Tomcat giver støtte til at sende fil med HTTP og NIO HTTP-stik i april. sendfile bruges til indhold automatisk serveret via DefaultServlet og installeret programmer kan bruge det direkte via web indstilling anmodning attributter. Disse egenskaber blev ikke valideret anmodning. Når du kører under en security manager, denne mangel på validering have en ondsindet web-applikation til at gøre en eller flere af følgende, der normalt ville blive forhindret af en Security Manager: tilbage filer til brugere, at Security Manager skal gøre utilgængelige opsige (via et nedbrud ) JVM Derudover disse sårbarheder kun ske, når alle de følgende er sandt: tillid til web-applikationer bliver brugt Security Manager bruges til at begrænse tillid til web-applikationer HTTP NIO eller HTTP-April-stik bruges sendfile er aktiveret for stikket (dette er standard) Dette blev fastsat i revisionen 1146703. Dette blev identificeret af Tomcat sikkerhed team den 7. juli 2011 og offentliggjort den 13. juli 2011th Påvirker: 6.0.0-6.0.32 Vigtigt: Oplysninger videregivelse CVE-2011 til 2729 På grund af en fejl i koden kapaciteter, jsvc (tjenesten wrapper til Linux, som er en del af Commons Daemon projektet) ikke falder evner at imødekomme anmodningen at få adgang til filer og mapper, der ejes af superbruger. Denne sårbarhed opstår kun, hvis alle de følgende er sandt: Tomcat kører på et Linux-operativsystem kompileret med libcap hvad jsvc-bruger Tomcat parameter bruges Berørte versioner leveres med kildefiler til jsvc, der omfattede denne sårbarhed. Dette blev fastsat i revisionen 1153824. Dette blev identificeret af Wilfried Weissmann den 20. juli 2011 og offentliggjort den 12. august 2011. Påvirker: 6.0.30-6.0.32 Rettet i Apache Tomcat 6.0.32 frigivet 3 februar 2011 Note: Spørgsmålet nedenfor blev fastsat i Apache Tomcat 6.0.31 release men afstemningen til 6.0.31 Release Candidate ikke passere. Derfor, selvom brugere skal downloade 6.0.32 for at få en version, der indeholder en løsning på dette problem, er version 6.0.31 ikke medtaget på listen over berørte versioner. Vigtigt: remote denial of service CVE-2011-0534 Den NIO stik udvider sin serie buffer endeløst løbet anmodning behandling. Denne adfærd kan bruges til et denial of service angreb ved hjælp af en omhyggeligt udformet anmodning. Dette blev fastsat i revisionen 1066313th Dette blev identificeret af Tomcat sikkerhed team den 27. januar 2011 og offentliggjort den 5 Feb 2011. Påvirker: 6.0.0-6.0.30 Rettet i Apache Tomcat 6.0.30 frigivet 13 Januar 2011 Low: Cross-site scripting CVE-2011 til 0013 HTML-Manager-web-applikation brugerflade, data, der vises, som viste navne, uden filtrering. En ondsindet web-applikation kan udløse scriptet henrettelse ved en administrativ bruger, når du ser lederen sider. Dette blev fastsat i revisionen 1057270. Dette blev identificeret af Tomcat sikkerhed team den 12. november 2010 og offentliggjort den 5 Feb 2011. Påvirker: 6.0.0-6.0.29 Moderat: Cross-site scripting CVE-2010 til 4.172 Manager applikationen anvendes, og brugeren forudsat slags orderBy parametre direkte uden filtrering Dermed tillader cross-site scripting. Dette blev fastsat i revisionen 1037779. Dette blev først indberettet til Tomcat sikkerheden holdet den 15. november 2010 og offentliggjort den 22 Nov 2010. Påvirker: 6.0.12-6.0.29 Lav: SecurityManager fil tilladelse bypass CVE 2010-3718 Når du kører under en Security Manager, adgang til filsystemet er begrænset, men web-applikationer er tildelt læse / skriveadgang til arbejdet bibliotek. Denne mappe bruges til en lang række midlertidige filer såsom mellemliggende filer, der genereres ved udarbejdelsen JSP'er til servlets. Placeringen af arbejdet mappe er specificeret af et ServletContect attribut, der er ment som read-only til web applikationer. Men på grund af en kodefejl, var den read-only indstilling anvendes ikke. Derfor kan en ondsindet web applikation ændre attributten før Tomcat Anvender filtilladelser. Dette kan bruges til at give læse / skriveadgang til et område på filsystem der en ondsindet web-applikation kan så drage fordel af. Denne sårbarhed er kun gældende, når hosting web-applikationer fra tillid kilder såsom delt hosting miljøer. Dette blev fastsat i revisionen 1022560. Dette blev opdaget af Tomcat sikkerheds-holdet den 12. maj 2010 og offentliggjort den 5 Feb 2011. Påvirker: 6.0.0-6.0.29 Rettet i Apache Tomcat 6.0.28 frigivet 9 Juli 2010 Vigtigt: Remote Denial Of Service og offentliggørelse af oplysninger sårbarhed CVE-2010 til 2227 Flere fejl i håndteringen af "Transfer-Encoding 'header blev fundet forhindrede, at genanvendelsen af en buffer. En angriber kan udløse denne fejl hvilket vil medføre efterfølgende anmodninger til at mislykkes og / eller at lække oplysninger mellem anmodninger. Denne fejl er mildnet, hvis Tomcat er bag en reverse proxy (såsom Apache httpd 2.2) som proxy bør afvise den ugyldige overførslen kodning header. Dette blev fastsat i revisionen 958.977 th Dette blev først indberettet til Tomcat sikkerhed team den 14. juni 2010 og offentliggjort den 9 Jul 2010. Påvirker: 6.0.0-6.0.27 Note: Spørgsmålet nedenfor blev fastsat i Apache Tomcat 6.0.27 release men afstemningen til 6.0.27 Release Candidate ikke passere. Derfor, selvom brugere skal downloade 6.0.28 for at få en version, der indeholder en løsning på dette problem, er version 6.0.27 ikke medtaget på listen over berørte versioner. Lav: offentliggørelse af oplysninger i autentificering headers CVE-2010-1157 WWW-Authenticate HTTP header for BASIC og Digest Authentication indeholder et realm navn. Hvis enelement er angivet i web.xml for at anvende det vil blive brugt. Men en er ikke specificeret så Tomcat vil generere rige navn ved hjælp af kodestykket request.getServerName () + "" + request.getServerPort (). Under visse omstændigheder kan dette udsætte lokale værtsnavnet eller IP-adressen på den maskine, der kører Tomcat. Dette blev fastsat i revisionen 936.540 th Dette blev først indberettet til Tomcat sikkerheden holdet den 31. maj 2009 og offentliggjort den 21. Apr 2010. Påvirker: 6.0.0-6.0.26
Alt dette virker meget usikker, og for mig er et eksempel på den vilje staten levede privatliv. Dataene er solgt, og næppe nogen er klar over. Den tekniske gennemførelse lader meget tilbage at ønske, og kører på meget tekniske systemer, som er kendt for at være defekt, og skal opdateres hurtigst muligt. Synes også at være en endelig kontrol og godkendelse kvalificerede i it-projekter (kendt til den tilstand er som regel ret dyrt) ikke altid finder sted.
Det eneste plus punkt, jeg kan konstatere, at der synes at være nogen central landsdækkende portal med online læsning for alle rapportering af data. Så ville vi helt sikkert ikke langt fra, hvad israelerne skete for nylig .
Jeg er glad for jeg har holdt mig, men hvis nogen ikke forstår nogle kriminelle energi og teknisk viden kan stadig forekomme (gratis) til mig (og alle andre), jeg tror i hvert fald tvivlsom. Ved første øjekast, ikke i Düsseldorf systemet hærdet mod angreb.
Tweet Neglector. En lille PHP script til at slette gamle tweets fra Twitter
Tweet automatiserer processen med at Neglector at slette gamle tweets fra din Twitter-konto. Dybest set, det leverer til "udløbe" funktionalitet til din tweets. Det er nyttigt for folk, der ønsker at bruge Twitter, men ønsker ikke en historie om deres tweets til at forblive online i årtier.
HISTORIE: November 20, 2011 | version 0.1 Første udgivelse. Sletter Tweets December 28, 2011 | Version 0.2 Små fejlrettelser. Nu sletter retweets så godt. Kendte fejl: - Vil ikke, hvis du tweet mere end 1000 tweets i tidsperioden som du planlægger at holde tweets. Samme for retweets (100 tilladt). Disse er mangler på Twitter API GET jeg bruger ATM. Måske vil jeg løse dette problem med den næste udgivelse
Tweet Neglector bruger Twitter API til at slette alle dine tweets, der blev indsendt før et givet antal dage fra nu. På denne måde kan du konfigurere scriptet til at slette alle tweets, der er ældre end en uge eller en måned for eksempel. Scriptet skal være automatisk køres fra et cron job eller anden automatisering mekanisme på en regelmæssig basis.
Dette script kan ikke beskytte dig fra eksterne Tweet arkiver. Så det er uvist om slettes tweets er arkiveret stille af Twitter (jeg vil vædde de er). Så (som altid) tænke før twitte.
Tweet Neglector bruger PHP som scriptsprog og bundter Twitter OAuth bibliotek fra Matt Harris for API-adgang.
Installation
- PHP5 kræves for tmhOAuth - Udpak arkivet i en mappe efter eget valg. - Registrer dit Twitter API Keys på https://dev.twitter.com/apps - Rediger konfigurationen af scriptet, der passer til dine behov: # Twitter API nøgler, poletter og hemmeligheder # Få disse nøgler på -> https://dev.twitter.com/apps $ Consumer_key = "Din nøglen her"; $ Consumer_secret = "Din nøglen her"; $ Access_token = "Din nøglen her"; $ Access_token_secret = "Din nøglen her"; # Antal tweets per session til at arbejde på Tweets_per_session = $ 1000; # Twitter Brugernavn $ Twitter_username = "dit brugernavn her"; # Dage at holde tweets $ Keep_days = 30; - Kør scriptet manuelt fra browser, konsol, eller automatisk ved cronjob / Usr / bin / php / var / www / tweetneglector / tweetneglector.php
Tweet Neglector 0,2 downloades her
HOWTO: Hurtig og beskidt DHCP-server og DNS-cache med dnsmasq på Ubuntu
DHCP på LAN er praktisk. Man behøver ikke længere at administrere netværkskonfigurationen af hver enkelt computer i netværket til kunderne selv, men alting har en dejlig central placering på serveren. Spare ved caching DNS klienter lidt tid skal foretages, når løse værtsnavne, da forespørgsler kan anvendes på kendte navne fra den lokale vært cache og ikke til en server på internettet.
En lille DHCP-server er sat op meget hurtigt med dnsmasq.
# Installer dnsmasq apt-get install dnsmasq
Konfigurationen foregår centralt i filen / etc / dnsmasq.conf. Man bør ikke forlade før koncentreret konfigurationsmuligheder i filen afskrækket. Næsten alt er bare et eksempel og er som standard kommenteret ud. En meget kort Config er allerede tilstrækkelig til en fungerende opsætning:
DHCP
# DHCP netmask # Kunder modtaget 255.255.255.0 som netmasken dhcp-option = 1,255.255.255.0 # Default gateway # Kunder modtager som en gateway 192.168.1.251 dhcp-option = 3,192.168.1.251 # Dns # Kunder får navnet serveren 192.168.1.4 # Falls man dnsmasq auch als DNS-Cache benutzen möchte, sollte dies die # IP des Servers sein, auf dem dnsmasq läuft dhcp-option=6,192.168.1.4 # Für bekannte Rechner immer dieselbe IP anhand der MAC-Adresse vergeben: # Hier bekommt der Rechner mit der MAC 00:11:22:33:44:55 die IP 192,168.1.1 für 12 Stunden dhcp-host=00:11:22:33:44:55,lobby,192.168.1.1,12h dhcp-host=00:11:22:33:44:66,lobby2,192.168.1.2,12h # Alle Rechner, die nicht per MAC identifiziert werden können, erhalten IPs # aus dem Pool 192.168.1.120 bis 150 dhcp-range=192.168.1.120,192.168.1.150,12h
DNS
Die DNS-Funktionalität von dnsmasq benötigt eigentlich keine Konfiguration.
dnsmasq besorgt sich seine Nameserver aus /etc/resolv.conf . Hier sollten die
bekannten Nameserver des Providers eingetragen werden und evtl noch als Fallback
die 8.8.8.8 für Googles DNS-Server.
Weitere Hostnames, die im lokalen Netz gelten sollen, können dnsmasq in der Datei
/etc/hosts bekannt gemacht werden. Hier eingetragene Hostnames stehen allen Rechnern
im LAN zur Verfügung.
Fallstricke
dnsmasq muss nach Konfigänderungen seine Konfigurationsdateien neu einlesen
/etc/init.d/dnsmasq restart
Falls Clients noch eine Lease vom alten DHCP-Server haben, kann man sie manuell dazu bringen, einen neuen DHCP-request zu starten.
#Linux dhclient eth0 #Windows ipconfig /RELEASE ipconfig /RENEW
Dringend muss man darauf achten, den bisher genutzen DHCP-Server (meistens im Router zum Internet) zu deaktivieren. 2 DHCP-Server im LAN können viel Chaos generieren.
Trådløse for EEE 1000H rt2860 i Ubuntu
Mit irgendeinem Update in letzter Zeit wurde das WLAN auf meinem EEE PC 1000H unter Ubuntu recht instabil. Dauernde Verbindungsabbrüche, kein WLAN nach Suspend, langsame Verbindung, 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)
2. 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
Tredje 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.
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
Firma Connect - sjov med telecom salg
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. Sehr schön. 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.
XS Stick W14 UMTS med 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
12 trin til en Linux Apache MySQL PHP web server roden LAMP sikkert
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.
Første 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
2. 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.
Tredje 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
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.";
?>
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.
Første Hardwarebeschleunigung deaktivieren
In ein Flash-Video rechtsklicken. Einstellungen wählen. Haken bei Hardwarebeschleunigung entfernen.
2. 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









