Traffic data class (trafic_data) is a PHP class which allows you to retrieve all the traffic data for the websites using the trafic.ro engine. The code can get all the data (including the site ID) using only the URL of a page containing the trafic.ro code.
Continue reading…
Because I’m on vacation and I don’t really feel like doing my homework, i decided to take any quiz I could find on the internet 🙂 The funniest was the super-hero quizz. The results?
I am Spider-Man
|
I am intelligent, witty, a bit geeky and have great power and responsibility. |
Yeah right! 😆
It’s been a year since my first post here… a long and interesting year. I’ve changed the layout countless times (only to get back to this theme :P) and I’ve been through at least 4 different Worpress versions. I really hope that 2007 will bring even more interesting stuff that I can blog about. Untill then, Merry Christmas and a happy new year to all my readers!
I was trying to check my account on an well-known global website specialised in freelance software developement. (Un)fortunately, when I wrote the address in Firefox, I wrote .ro instead of .com. Surprise! The domain is registered by a Ploieşti, România-based company, is active and it offers pretty much the same services as its US counterpart.
After my unfortunate experience with Piatadesoft.ro, I became extremely careful with Romanian software sites, so the first thing I did was to check for the owner’s data. All I could find was a contact form, but no offline contact method. There are no projects on that website just yet, and my sincere hope is that there will never by any. If you read this, I strongly advise you NOT to use their services if they ever become active.
Well, since Andressa seems to have a good time in Poland and she doesn’t bother with the blog any more, we all have to find alternate sources of fun 🙂 Here are my nominations:
- Entering the IT industry from Tudor Damian – some common sense pieces of advice for the future IT professionals
- Bash tricks: comparing floating point numbers by Petre – an somewhat old post about BASH. Interesting because that’s one of the problems in my homework for the Operating Systems course 🙂
- Yahoo! fights messenger spam by evolve – fact or just messenger trouble? We’ll see…
- Metro etiquette by Just me – an excellent idea! There is a good reason for the yellow footsteps on the Bucharest metro’s escalators. Ever wondered what’s that reason?
Remember about it? It’s the oldest multinational in the world, born in 1863 🙂 The romanian branch was created in 1874 and was oficially recognised by the International Red Cross Comitee on the 23rd of August 1876. It’s current activity is more than discrete, but they seem to have helped the victims of the 2006 floods. The TV stations choose to ignore them, prefering to show the donations of certain well-known politicians rather than the collective efforts of the red cross voluteers. They also have a collaboration with Petrom.
YOU can also help, by donating money or by volunteering. You can also spread the word or buy some of their products.
I decided to write this article because the Red Cross calendars was one of the few things offered by the professors that I acceped to spend money on in highschool. The CICR is a very well-known organisation and the Romanian Red Cross Society deserves a simmilar media coverage. Unfortunately this blog is not widely read, so if any of the popular bloggers would like to help spread the word, I would be most grateful 🙂
Cuprins |
Introducere
În România există foarte mulţi ISP care trimit pachetele către utilizatori cu ttl=1, pentru a împiedica furtul de net. Din păcate acest lucru afectează şi utilizatorii cinstiţi, care posedă mai multe calculatoare şi doresc să le conecteze în reţea, eventual wireless.
Acest articol va explica cum se poate realiza acest lucru cu ajutorul unui router care rulează Linux.
Ce este TTL?
TTL, sau Time to live, este un câmp din antetul pachetelor IP care precizează prin câte servere/routere poate trece pachetul respectiv. Acest câmp este setat de calculatorul care trimite pachetul şi este decrementat de fiecare router prin care va trece. Când valoarea sa ajunge la 0, pachetul este distrus. După cum spuneam, anumiţi ISP modifică valoarea TTL-ului la 1 pentru toate pachetele la ultimul router înainte de calculatorul utilizatorului. În acest fel, dacă înainte de calculator mai pui un router, toate pachetele primite vor fi distruse de acesta.
Cum se poate modifica TTL?
Un răspuns simplu este: în loc să-l decrementăm, îl setăm la orice valoare dorim. În Linux, acest lucru se realizează prin comada iptables. Cum se procedează exact puteţi afla din [7]. Pentru comenzile care vă trebuie pentru modificarea TTL, citiţi în continuare. 🙂
Cerinţe
Cunoştinţe necesare
CUNOŞTINŢE INDISPENSABILE (aka dacă nu eşti sigur pe astea las-o baltă):
- lucrul în linie de comandă în Linux;
- configurarea plăcii de reţea pe sistemul tău de operare (adresă IP, adresă de reţea, netmask, DNS, DHCP);
- cunoştinţe despre rutare;
- folosirea unei interfeţe web (deşi dacă ai ajuns să citeşti asta probabil că măcar atât eşti în stare)
CUNOŞTINŢE RECOMANDATE (aka caută şi tu pe net):
- cum se poate prinde ISP-ul că tu ai router;
- securitatea în reţele wireless (dacă ai un router wireless)
Cerinţe hardware
Pentru a implementa această soluţie, aveţi nevoie de un router care să ruleze Linux. O listă a routerelor suportate de OpenWrt găsiţi aici.
Linksys WRT54GL
Eu am ales un router Linksys WRT54GL. WRT54G a fost primul router la care Linksys a făcut publice sursele firmwareului său. Ulterior, Linksys a trecut de la Linux la VxWorks dar a scos pe piaţă modelul GL care rulează în continuare Linux. Puteţi găsi preţuri căutând pe Google.
Instalarea OpenWrt
OpenWrt este una din multele distribuţii de Linux apărute pentru routerele care rulează Linux. Deşi nu există încă versiunea 1.0 (deci teoretic sistemul este încă în faza de testare), OpenWrt este suficient de stabil pentru utilizatorii obişnuiţi.
- Înainte de orice, citiţi ghidul oficial de instalare
Modalitatea cea mai simplă de instalare, precum şi singura prezentată aici, este din interfaţa web a routerului. Eu personal vă recomand să setaţi conexiunea la internet din interfaţa web ÎNAINTE de a instala OpenWrt. Valorile setate se vor păstra.
- Downloadaţi de aici imaginea de firmware corespunzătoare routerului folosit (pentru WRT54GL fisierul este openwrt-wrt54g-squashfs.bin )
- Intraţi în interfaţa web la adresa http://192.168.1.1/ şi mergeţi la system -> administration -> firmware upgrade
- Alegeţi fişierul downloadat şi cu asta basta!
- După instalarea OpenWrt este recomandată (dar nu neapărat necesară) instalarea X-Wrt, un set de pachete care ameliorează interfaţa cu utilizatorul a OpenWrt. Principala componentă este webif2, o interfaţă web complet modificată. Instalarea X-Wrt se poate face online, direct din pagina principală a proiectului. Pozele prezentate în continuare folosesc X-Wrt. Multe dintre ele pot fi din versiuni mai vechi, dar în principiu nu există deosebiri esenţiale.
Configurarea
Configurarea minimală a routerului
După ce modificaţi ceva din setări, amintiţi-vă să apăsaţi pe butonul „Save”. La sfărşit trebuie să apăsaţi pe legătura „Apply Changes” pentru ca modificarile să fie efectuate pe router
Stabilirea unei parole
La prima pornire a OpenWrt vi se va cere să vă setaţi o parolă pentru utilizatorul root. Acest lucru este necesar pentru asigurarea securităţii routerului.
Instalarea librăriilor necesare
Pentru a realiza configurările prezentate mai jos, aveţi nevoie de câteva pachete suplimentare. Instalarea lor se face foarte uşor din interfaţa web, mai exact din tabul System ->Packages. Trebuie să alegeţi din lista de pachete disponibile toate pachetele care încep cu iptables- sau cu kmod-ipt-. În mod normal, dacă instalaţi pachetul iptables-extra, celelalte pachete necesare vor fi instalate automat. Dacă nu, apăsaţi pe linkul Install de lângă fiecare pachet.
Configurarea interfeţei externe
În interfaţa de reţea WAN veţi introduce cablul de reţea care vine de la ISP/modemul de cablu/modemul ADSL. Pentru a o configura, mergeţi în interfaţa web la tabul Network ->WAN-LAN -> WAN Configuration. Configurarea este intuitivă, ea semănând destul de mult cu cea din Windows. Singurul lucru care merită menţionat este să vă salvaţi modificările înainte de a adăuga un server DNS.
Configurarea interfeţei cu reţeaua locală
Pentru a modifica aceste setări, mergeţi în interfaţa web la tabul Network ->WAN-LAN -> WAN Configuration. În principiu, setările default ar trebui să fie OK.
Configurarea reţelei Wireless
Dacă aveţi şi o interfaţă wireless, o puteţi configura din tabul Network ->Wireless. Dacă nu ştiţi cu ce se mănâncă setările respective, căutaţi pe net sau lăsaţi-le aşa cum sunt.
Configurarea calculatoarelor
Cel mai uşor este să vă setaţi calculatoarele să-şi ia adresa IP automat de la serverul DHCP (încorporat în router). Pentru a modifica modul de funcţionare al acestui server, mergeţi în interfaţa web a routerului la tabul Network ->DHCP. Setările default ar trebui să fie OK.
Mărirea TTL-ului
În acest moment aveţi o reţea funcţională, dar care nu poate accesa Internetul 🙂
Singurul calculator pentru care ar trebui să funcţioneze este routerul însuşi. Pentru a verifica acest lucru, logaţi-vă prin ssh la router (un client foarte bun de ssh pentru Windows este putty) folosind userul root şi parola setată la instalare, apoi încercaţi să scrieţi în linia de comandă ping www.yahoo.com. Dacă serverul vă răspunde, aţi terminat cu prima parte. Dacă nu, verificaţi că aţi băgat toate firele şi aţi configurat corect routerul.
Observaţi că mesajele de răspuns de la yahoo au ttl=1. În continuare vom încerca să modificăm acest ttl la 64.
Primul lucru (şi de fapt şi singurul) care trebuie făcut este să modificăm fişierul /etc/firewall.user. Acest fişier este rulat la start-up şi setează modul în care routerul tratează pachetele primite. Pentru modificare trebuie să folosim editorul vim. Dacă nu sunteţi familiar cu comenzile sale, citiţi mai întâi manualul.
- Conectaţi-vă prin ssh la router.
- Când vă apare linia de comandă, scrieţi:
vi /etcfirewall.user
- Chiar la începutul fişierului, adăugaţi liniile următoare:
/sbin/insmod ipt_ttl.o 2> /dev/null /sbin/insmod ipt_TTL.o 2> /dev/null /sbin/insmod ipt_recent.o 2> /dev/null
Aceste linii încarcă în kernel anumite librării (suprimând mesajele de eroare)
- Dacă nu le aveţi deja, introduceţi şi liniile următoare:
WAN_IP=$(nvram get wan_ipaddr) LAN_IP=$(nvram get lan_ipaddr)
- În sfârşit ajungem şi la liniile care modifică efectiv ttl-ul:
iptables -t mangle -F PREROUTING iptables -A PREROUTING -t mangle -d $WAN_IP -j TTL --ttl-set 64
Să explicăm un pic semnificaţiile comenzilor. Prima linie goleşte, în tabelul mangle, suita de comenzi efectuate înainte de rutarea fiecărui pachet. A doua linie introduce, în acelaşi loc, o nouă comandă care setează ttl-ul la valoarea de 64. Pentru mai multe informaţii vedeţi [6].
- Salvaţi fişierul. În acest moment ar trebui să puteţi accesa internetul de pe oricare din calculatoarele din reţea fără probleme.
Alte configurări
Internetul funcţionează, dar ce facem dacă dorim să rulăm un server sau să folosim programe p2p gen DC++ sau BitTorrent? Răspunsul este port forwarding. Setările respective se pot face din interfaţa web, din tabul Network ->Firewall. Acolo puteţi seta reguli de tratare a pachetelor în funcţie de IP/portul sursă/destinaţie.