IT & GNU/Linux

Νέα για την Information Technology και το αγαπημένο μου OS

KDE4 μας τέλειωσε… Καλωσήρθατε στο XFCE4

Από τότε που αποδήμησε εις κύριον το προηγούμενο laptop μου (4 χρονάκια έβγαλε στα χέρια μου – καναδυό στον προηγούμενο χρήστη) δεν κατάφερα να ασχοληθώ σοβαρά με το linuxακι που είχα αρον αρον φορτώσει στο νεοαποκτηθέν παρά μόνο αφότου απολύθηκα και ως τίμιος άνεργος ιατρός σε διαρκή αναμονή αφιέρωσα χρόνο στο «κόλλημά» μου. Έστησα λοιπόν το τελευταίο KDE στο portage tree (4.2.1 νομίζω) και άρχισα να ψάχνομαι…

ΦΡΙΚΗ #1: Τέτοιο γερό «μηχανάκι» που ξεφραγκιάστηκα και πήρα δικαιούταν και όλα τα γραφικά μπιχλιμπίδια που χώραγε, έτσι για να γουστάρω τα λεφτά μου και να την λέω και στους πατζουράδες που θα καίγανε τριπλάσια resources για να κάνουν τα αντίστοιχα. Compiz λοιπόν λέω αλλά τρώω ένα ξεγυρισμένο άκυρο. KDE4 και Compiz λέει είναι no-go αν έχεις nvidia proprietary drivers γιατί το πρώτο είναι εκλεκτικό  και θέλει σωστό code base στους drivers. Τι λες ρε φίλε; Άσχετα με τα προβλήματα του κλειστου κώδικα της nvidia και κατά πόσον είναι αποδεκτή επιλογή να γυρίσεις σε non accelerated open source driver (nv), τι δουλειά έχει ένα desktop environment να ανακατεύεται με τόσο low level κώδικα;!!!

ΦΡΙΚΗ #2: Για ουσιαστικά minimal added value στην χρηστική αξία του desktop με το plasma, το KDE4 «καίει» τον κώλο του από πόρους… Ένιωθα σαν  να  οδηγώ SUV στην πλατεία κωλωνακίου! Γιατί ούτε πραγματικά off road σε πήγαινε ούτε ξεγλίστραγες μέσα στο μποτιλιάρισμα των πόρων… Vista-wannabe! Σκατά!!!!

ΦΡΙΚΗ#3: Καλά ρε μαλάκες, μια δεκαετία μετά, ακόμα να καταλάβετε πως να κάνετε σωστή δουλειά με τον ήχο;! Γαμώ τον arts και την γενιά του όλη!! Για το 4 έλεγαν πως το θέμα ήχος θα γραφόταν from scratch αλλά έχω την εντύπωση τελικά πως from scratch έπρεπε να γίνει και η επιλογή των developers που ασχοληθήκανε.

ΦΡΙΚΗ #4: Με τα πολλά αποφάσισα να δοκιμάσω ένα oldie but goodie, έτσι για την σύγκριση πόρων και ουσιαστικού overhead. Emerge fluxbox λοιπόν… Πάω να ανοίξω έναν konqueror (δεν με έπεισε καθόλου ο dolphin σαν κάτι το παραπάνω στο file management) και μένω… ΠΑΓΩΤΟ. Δεν ανοίγει! ΓΙΑΤΙ; Μια googlαδα μετά ξέρω πως κανένα KDE4 app δεν μπορεί να λειτουργήσει εκτώς  KDE4 environment… Οργή! Ντροπή και αίσχος! Οποία προσβολή στις αρχές του open source και του linux way of doing things. Μια ζωή, όσοι είχαμε ασχοληθεί  με linux advocacy, λέγαμε στους πατζουρόφιλους naysayers πως το παν είναι οι ατέλειωτες επιλογές που σου πρόσφερε το linux. Και τώρα το KDE κάνει lock out σε επίδοξους  «μερικούς» χρήστες; Αναγκαστικά λένε οι υπερασπιστές αφού το code μπαίνει βαθειά μέσα στο σύστημα (βλέπε και το σκηνικό με το compiz). Και ποιος σας είπε ρε γίδια να μπείτε βαθειά στο σύστημα; Τι δουλειά έχει ένα desktop environment τόσο μέσα; Διαπερνάς τον Xserver σαν ζεστό βούτυρο και μιλάς απευθείας με τον kernel driver; Αν χρειάζεσαι κάτι στα libs του τελευταίου που δεν έχει… then do it the open source way! Κάνε release ένα patch για τον xorg ακόμα κι αν δεν δεχτούν να το βάλουν στο maintree… όποιος το θέλει το βάζει αφού διαβάσει τα disclaimers. Και μην ακούσω τίποτα χαζοδικαιολογίες περί end users και ease of installation  γιατί μια χαρά θα μπορούσαν να το «πακετάρουν» οι σχετικές babysitter distros σαν εναλλακτικό πακέτο του Xorg έτοιμο για εύκολο install.

Θα μπορούσα να «γυρισω» σε KDE 3κάτι, πίσω στα παλιά λημέρια… Αλλά αυτό θα ήταν επιλογή με ημερομηνία λήξεως! Να βάλω gnome τότε; Ναι, να αφήσω το ένα overbloated babysitting desktop για άλλο, που μου έχει γυρίσει τα άντερα εδώ και χρόνια… Ψαχνοντας για εναλλακτικές θυμήθηκα πως το xfce πάσχιζε εδώ και χρόνια να γίνει lightweight desktop environment  αντί για (όχι και τόοοοσο lightweight) window manager. Μια βόλτα στο site με πείθει να ξεκινίσω το πείραμα…

Welcome to XFCE 4.6.1! Αναφέρω επιγραμματικά τις εναλλακτικές για τις μέχρι στιγμής λειτουργίες που έχω χρειαστεί, είτε είναι apps του ιδίου του xfce είτε gtk/qt-based αλλά πάντα kde/gnome-free.

  • Browsing: firefox όπως πάντα…
  • office: openoffice όπως πάντα…
  • email: claws-mail (πρόκειται για ολικό fork του θρυλικού ομώνυμου patchset για το sylpheed)
  • msn: aMSN – σιχαίνομαι τα non antialiased fonts του, αλλά κατά τα άλλα κάνει μια χαρά δουλειά…
  • torrents: qBittorent – πολύ καλό παρότι νεόκοπο σε qt4 αλλά όχι kde!
  • text editor: οι προσφιλείς σε terminal nano αλλά και vim για ζόρια, λιτός και λειτουργικός ο mousepad του ίδιου του xfce αλλά ο emacs είναι πάντα emacs.
  • file management: thunar του xfce – δεν προσφέρει ό,τι ο konqueror της σειράς 3 αλλά μπορείς να τον χρησιμοποιήσεις. Αν σου κάνει ο windows explorer σου κάνει κι αυτός…  Στα πολύ δυνατά συν του η επεκτασιμότητα με plugins αν και δεν έχω καθίσει ακόμα να ασχοληθώ.
  • LaTeX editor: TeXMaker – σε πρώτη όψη θυμίζει πάρα πολύ τον λατρεμένο μου kile ο οποίος πλέον θα αναγκαστεί να μπει στο 4 και να κλειδωθεί στο KDE… Δεν έχω γράψει ακόμα κάτι αρκετά πολύπλοκο για να τεστάρω τα όριά του όποτε επιφυλάσσομαι.
  • R front end: JGR σε java που πλέον έχει ξεπεράσει τα πολλά παιδικά νοσήματά του (κυρίως σταθερότητας).
  • music library organizer and player (itunes – style): gmusicbrowser. Παίζει στα ίσια στην λειτουργικότητα τον amarok αν και χάνει σε eye-candiness. Πολλές αλλά μικρές deps κυρίως perl modules και gstreamer (μπορεί να χρησιμοποιήσει και τον mplayer σαν μηχανή αλλά δεν με ικανοποίησε η απόδοση έτσι).
  • pdf viewer: acrobat reader 8. ’nuff said… (είναι σίγουρα πιο βαρύς απο τον αντίστοιχο Kκάτι αλλά χωρίς το overhead από όλα τα Κ-τζατζαλομάτζαλα πάλι κερδισμένος βγαίνεις)
  • ps-viewer: gsview. Σκατά… Παλαιολιθικό πρόγραμμα σε TKlib. Γρήγορο μεν αλλά… Το postscript είναι σχεδόν εγκαταλελειμένο format πλυν ειδικών σκοπών και περιστάσεων οπότε δεν έχει υπάρξει και ισχυρό drive για την  δημιουργία νέου ανεξάρτητου reader πλυν των ενσωματωμένων στα 2 κυρίαρχα desktop environments.
  • image library viewer: mirage πολύ καλός για ελαφριές χρήσεις  – για κάτι πιο ζόρικο ίσως θα έπρεπε να κοιτάξετε τον picassa της google. Εμένα μου φτάνει κι αυτός…
  • image editor: gimp τι άλλο;!!!
  • video player: (g)mplayer, vlc… no further comments

ΥΓ1: Το compiz-fusion με emerald window manager δουλεύει μια χαρά και στραβώνει κόσμο.

ΥΓ2: Νεότερες «ανακαλύψεις» εναλλακτικών προγραμμάτων θα προστίθενται μία μία καθώς θα προκύπτουν από τις ανάγκες και το αντίστοιχο ψάξιμο/πειραματισμό…

Advertisements

Μαμά, έρχεται ο blogονόμος! :-P

Η βαβούρα με τα νομοθετικά πλαίσια ελέγχου του διαδικτύου εν ελλάδι συνεχίζεται εν είδει ψιθύρων προς το παρόν όπως μας πληροφορεί μεταξύ άλλων και ο Όνειρος. Προφανώς οι διοχετεύσεις αυτές γίνονται για να βολιδοσκοπήσουν τόσο το μέγεθος της αντίδρασης που θα συναντήσουν αλλά και τυχόν διορθώσεις και προβλέψεις που θα πρέπει να περιληφθούν στο νομοσχέδιο…

Έχουμε ξεφύγει εντελώς μου φαίνεται… Σε λίγο θα ψηφιστεί και νόμος περί επιτηρητών στις καφετέριες, μη τυχόν ξεφύγει κανενός μας πάνω στον καφέ καμιά κουβέντα παραπάνω και θιχθεί η προσωπικότητα του τάδε ή του δίνα βολεμένου «αναπτυξιακού, πολιτισμικού, whatever παράγοντα». Τα προτεινόμενα / διαρρεόμενα μέτρα πέρα του αυταρχικού χαρακτήρα και της μοναδικότητας τους ανά τον κόσμο παρουσιάζουν κι ένα επιπλέον χαρακτηριστικό: την αδυναμία εφαρμογής τους.

Οι «φωστήρες» νομοθέτες μας θα έπρεπε να υποψιαστούν πως, παρόλο το παγκόσμιο πλεόνασμα αυταρχισμού και προσπάθειας ελέγχου της ατομικής έκφρασης, τέτοιες ρυθμίσεις παραμένουν στην σφαίρα του «γελοίου και γραφικού» τουλάχιστον στις αναπτυγμένες χώρες ακριβώς εξαιτίας της αδυναμίας εφαρμογής τους και όχι γιατί οι «άλλοι» είναι χαζοί και αυτοί ξεφτέρια στις νέες τεχνολογίες. Ακόμα και αν δεχθούμε πως θα ξεπεραστεί η κατακραυγή και το διεθνές γιουχάρισμα το μόνο πράγμα που θα επιτύχει ένας διαδικτυακός «τρομονόμος» θα είναι «να σιγήσουν τα πυροβόλα που βρίσκονται σε γνωστά υψώματα».

Πολλά blog και διαδικτυακές περσόνες που τριγυρίζουν σε fora ακολουθόντας pattern και έχοντας διαρρεύσει πληροφορίες που επιτρέπουν την αναγνώρισή τους στον φυσικό κόσμο θα κατεβάσουν ρολά και άλλα θα το γυρίσουν σε πολύ πιο γλυκανάλατη γραφή. Ταυτόχρονα όμως θα φτιαχτούν καινούρια, πιθανότατα και σε μεγάλο βαθμό από τους ίδιους συγγραφείς, που εξ αρχής θα φροντίσουν να διασφαλίσουν την ανωνυμία τους ώστε να συνεχίσουν την ελεύθερη έκφραση του λόγου. Σύντομα οι νέες αυτές «μετενσαρκώσεις» θα αποκτήσουν την δική τους αναγνωρισιμότητα ανεξάρτητα από την προηγούμενη περσόνα του δημιουργού τους.

Υπάρχουν πολλές τεχνολογικές εφαρμογές και επιλογές για την διασφάλιση της ανωνυμίας και την αρχή της διατήρησης της «αρνησιμότητας» (deniability), όπως το Tor network, anonymous proxies, κρυπτογράφηση και στεγανογραφία στο mail, SSL στο messaging/chat, κρυπτογράφηση δεδομένων και ολόκληρων σκληρών δίσκων… εξαρτάται μόνο από το πόσο θέλει να το «χοντρύνει» κανείς και κατά πόσο οι δικτυο-μπαμπούλες είναι έτοιμοι να διαχειριστούν (κοινωνικά, οικονομικά και τεχνολογικά) κανά χιλιάρι μπλόγκερς ως οργανωμένους και καλοεφοδιασμένους κατασκόπους.

Για να κάνουμε την αρχή, ορίστε το πρώτο HOW-TO για την χρήση tor+privoxy σε gentoo linux (αυτό τρέχω, τι να κάνουμε ρε πατζουράδες; :-P). Εξυπακούεται πως με ελάχιστες μεταβολές το HOW-TO μπορεί να εφαρμοστεί και σε άλλες distros, με λίγο κόπο και σε MacOSX – για πατζούρια δυστυχώς επιφυλάσομαι…

Το μουλάρι, ο πινγκουίνος και η γέφυρα.

Ή πώς να κατεβάζετε ανενόχλητοι τα mail σας κι ας οργιάζουν τα P2P στην LAN…

Η κατάσταση

Στο σπίτι εχουμε μια σύνδεση τύπου LAN μέσω ενός proprietary router που επιτρέπει μέσω dhcp μόνο 3 IP addresses. Καθώς είμαστε 3 στο σπίτι και εγώ έχω δύο υπολογιστές (tower και laptop), χρησιμοποιώ ένα custom linux gateway για να συνδεθώ στον router. Οι άλλοι δύο συγκάτοικοι ωστόσο αρνούνται πεισματικά να μπούν «πίσω» από το firewall τόσο εξαιτίας του περιορισμού στις ηλιθιώδεις uPNP συνδέσεις που το λογισμικό της Μ$ χρησιμοποιεί κατά κόρον όσο και, όπως υποπτεύομαι, μιας κουτοπόνηρης απληστίας για το bandwidth (φοβούμενοι μάλλον πως πίσω από ένα firewall του οποίου μόνο εγώ έχω τις τεχνικές γνώσεις να ρυθμίσω θα τους «έριχνα» στο traffic shaping).

Ένας δεύτερος περιορισμός είναι πως το upload bandwidth είναι ιδιαίτερα περιορισμένο σε σχέση με το download (4Mbps down / 512Kbps up) με αποτέλεσμα πως όταν το download πλησιάζει τον κορεσμό, το upload να καταλαμβάνεται σχεδόν εντελώς από τα ACK πακέτα.

Το τρίτο, και ίσως σημαντικότερο, πρόβλημα είναι πως ο router είναι μάλλον της πλάκας και έχει ιδιαίτερα περιορισμένη χωρητικότητα στα ARP tables.

Το πρόβλημα

Το πρώτο πρόβλημα που παρουσιάστηκε, αυτό του κορεσμού του upload εξαιτίας του downloading, θα λυνόταν εύκολα με QoS στο firewall. Λόγω της μη συμμετοχής των δύο κύριων λειτουργών του (προσωπικά θα με δείτε να κάνω massive download μόνο στα update της gentoo) το πρόβλημα τελικά λύθηκε με προσωπικά network traffic limits στα P2P «κατεβαστήρια» του καθενός.

Όταν όμως πρόσφατα και οι δύο πέρασαν από το DC πρωτόκολο σε eMule… άρχισε το δράμα, χειρότερο από ποτέ άλλοτε και ιδίως για μένα που και πέρναγα από ενα επιπλέον hop (τον gateway) και δεν κράταγα live connections αφού ως επί το πλείστον έκανα web browsing και check mails. Η κατάσταση έφτασε στο απροχώρητο: loading web pages αρκετές φορές με μισό kb/s, 3 στις 5 φορές οι mail servers έπεφταν σε timeout connection και γενικά η σύνδεσή μου είχε καταντήσει unusable.

Ομολογώ πως έφτασα σε τέτοια απόγνωση που σε μια συζήτηση για το πρόβλημα με έναν φίλο, επαγγελματία sysadmin, αγγίξαμε την ιδέα μεταξύ σοβαρού και αστείου για ARP poisoning, να DoSάρω δλδ τους συγκάτοικους για να μπορώ να δω και κανα μπλογκ! Έκει όμως κάτι έκανε «κλικ» στο μυαλό μας: δεν ηταν το πνιγμένο download που μου έκανε την ζωή δύσκολη, αφού διαπιστωμένα τα «κατεβαστήρια» είχαν λογικά όρια, αλλά τα connections. Το μουλάρι (eMule) από default αφήνει έναν απίστευτα υψηλό αριθμό ανοιχτών συνδέσεων (με «κόφτη» κάπου στις 70000 αν δεν κάνω λάθος) κι ας μην κατεβάζει στα όρια της γραμμής. Αυτή η συμπεριφορά δεν εμφανίζεται σε άλλα πρωτόκολα p2p και εξ ου η δραματική αλλαγή όταν και οι δύο πέρασαν σε συστηματική του χρήση. Μιλάμε επίσης για δύο εντελώς non-techie ανθρώπους που αποκλείεται να έπαιρναν είδηση του τι και γιατί συμβαίνει ενώ οι πρώτες «διερευνητικές» νύξεις μου έπεσαν εντελώς στο κενό. Όποια λύση και να έβρισκα, θα έπρεπε να την βρώ μόνος μου και να είναι εντελώς transparent στους άλλους δύο.

Η λύση

Ο Γιώργος (ο sysadmin) είχε βρεθεί σε μια αντίστοιχη φάση στην εταιρία που δούλευε παλιότερα όταν μια κατοστάρα pc «τσακώνονταν» για μια θέση στα ARP tables μιας SOHO σύνδεσης στα 12Mbps. Μιλάμε φυσικά για «μεσογειακές καταστάσεις» όπου εταιρικός ή μη υπολογιστής, αφού έχει broadband access, θα έχει και το «μουλάρι» του, με αποτέλεσμα όσοι έφταναν πέντε λεπτά νωρίτερα από τους άλλους να κατεβάζουν της παναγιάς τα μάτια και οι υπόλοιποι να αδυνατούν να στείλουν ένα απλό text mail!

Η λύση που έδωσε τότε ήταν το στήσιμο ενός linux firewall με «patchαρισμένο» netfilter για «connection limit» target. Έτσι, κανείς χρήστης δεν μπορούσε να έχει πάνω από έναν συγκεκριμένο αριθμό ανοιχτών connections με αποτέλεσμα να μην «μπουκώνει» ο router και ενώ τα μουλάρια συνέχιζαν να κατεβάζουν με μια λογική ταχύτητα, όλοι είχαν ουσιαστική access στο internet για «πιο χρήσιμα πράγματα» όπως mails και web.

Εδώ όμως είχαμε ένα επιπρόσθετο πρόβλημα: η δουλειά έπρεπε να γίνει εντελώς transparent, σαν να μην υπήρχε καν ο gateway στην θέση του και τα pc να συνδέονταν κατευθείαν στον router. Η λύση στο πρόβλημα ήρθε με την μορφή του bridging, γεφυρώνοντας την «εξωτερική» eth1 με την «εσωτερική» eth0. Για τον έλεγχο του headless gateway προσθέσαμε μια τρίτη NIC με private address και μέσω της οποιάς μπορώ να συνδεθώ με ssh. Τα πρώτα αποτελέσματα είναι εξαιρετικά ικανοποιητικά αν και χρειάζεται ακόμα πολύ fine tunning.

Το «How-To»

Τι χρειάζεστε:

  • Τα bridge-utils για την δημιουργία και τον έλεγχο της bridge.
  • Έναν πρόσφατο 2.6.x kernel.
  • Τον πηγαίο κώδικα του latest stable iptables (προς το παρόν 1.3.5).
  • Το latest patchset «patch-o-matic» (εμείς χρησιμοποιήσαμε το patch-o-matic-ng-20060216).

Το «στήσιμο»:

  1. «Στήνετε» κανονικά (configure – make – make install) τα bridge-utils.
  2. «Ξεπακεταρετε» στο /usr/src/ τον kernel, το iptables και το patch-o-matic.
  3. Μπαινετε στην directory του patch-o-matic και τρεχετε το εξης command που θα «πατσάρει» kernel sources και το userland iptables με τα «known to work» features:
    KERNEL_DIR=/usr/src/linux IPTABLES_DIR=/usr/src/iptables-1.3.5 ./runme base
  4. Ρυθμίζουμε τον kernel (π.χ. με make menuconfig) ώστε να περιέχει σαν support το bridging καθώς και όλα τα targets του netfilter που μας ενδιαφέρουν κατά προτίμιση σαν modules. ΠΡΟΣΟΧΗ, στον δικό μου 2.6.11-gentoo-r4 το TIME target εκανε fail οπότε και ξύλωσα το support γι’ αυτό (δεν ήταν κάτι που με «έκαιγε» κιόλας). Λογικά ένας πιο recent kernel δεν θα αντιμετωπίσει πρόβλημα με κανένα module αλλά που να κατέβαζα 30+Mb με τέτοιο πρόβλημα που είχα…
  5. Στήνουμε κανονικά τον kernel (make – make modules_install) και τον φορτώνουμε στον bootloader.
  6. Στήνουμε το userspace iptables με make KERNEL_DIR=/usr/src/linux και make install KERNEL_DIR=/usr/src/linux
  7. Reboot, και ειμαστε έτοιμοι να φτιάξουμε ένα bridging firewall με connection limiting.

Οι firewall rules

Για να μην σπάμε τα @@ μας, βασιζόμενοι στο αρχικό script του Γιώργου για την εταιρία, στήσαμε τα παρακάτω scriptακια. Φυσικά λοίπουν οι rules για το νορμαλ firewalling που θα πρέπει να προσθέσετε εσείς ανάλογα με τις ανάγκες σας, ενώ interfaces και IP addresses θα πρέπει να προσαρμοστούν στο δικό σας περιβάλλον.

Το /etc/init.d/fw-bridge (αυτόματο «ανέβασμα» και «κατέβασμα» του bridging firewall):

#!/bin/bash
#(C) G. Tsarouchas 2005-2006
DATESTAMP=`date`
LOGFILE=/var/log/fw-status.log
flush_rules()
{
ERRORSTATUS=0
echo -n "Flushing Firewall Rules..."
LIMIT=`grep  -v -e '^#' /etc/fw-rules/flush.cfg |wc -l | cut -d " " -f 1`
for ((i=LIMIT ; i > 0 ; --i))
do
RESULT=`grep  -v -e '^#' /etc/fw-rules/flush.cfg | tail -n $i |line`
echo -ne "tiptables $RESULT   " >> $LOGFILE
/sbin/iptables $RESULT 2>> $LOGFILE
RET_VAL=$?
if [ $RET_VAL != "0" ]
then echo "...FAILED" >> $LOGFILE
ERRORSTATUS=1
else
echo "...done!" >> $LOGFILE
fi
done
if [ $ERRORSTATUS = "1" ]
then echo "......FAILED"
else
echo "......done"
fi
}

default_policy()
{
ERRORSTATUS=0
echo -n "Applying Default Policy...."
LIMIT=`grep  -v -e '^#' /etc/fw-rules/policy.cfg|wc -l | cut -d " " -f 1`
for ((i=LIMIT ; i > 0 ; --i))
do
RESULT=`grep  -v -e '^#' /etc/fw-rules/policy.cfg| tail -n $i |line`
echo -ne "tiptables $RESULT   " >> $LOGFILE
/sbin/iptables $RESULT 2>> $LOGFILE
RET_VAL=$?
if [ $RET_VAL != "0" ]
then echo "...FAILED" >> $LOGFILE
ERRORSTATUS=1
else
echo "...done!" >> $LOGFILE
fi
done
if [ $ERRORSTATUS = "1" ]
then echo "......FAILED"
else
echo "......done"
fi
}

create_chains()
{
ERRORSTATUS=0
echo -n "Creating IPTABLES Chains"
LIMIT=`grep  -v -e '^#' /etc/fw-rules/chains-declare.cfg |wc -l | cut -d " " -f 1`
for ((i=LIMIT ; i > 0 ; --i))
do
RESULT=`grep  -v -e '^#' /etc/fw-rules/chains-declare.cfg| tail -n $i |line`
echo -ne "tiptables $RESULT   " >> $LOGFILE
/sbin/iptables $RESULT 2>> $LOGFILE
RET_VAL=$?
if [ $RET_VAL != "0" ]
then echo "...FAILED" >> $LOGFILE
ERRORSTATUS=1
else
echo "...done!" >> $LOGFILE
fi
done
if [ $ERRORSTATUS = "1" ]
then echo "......FAILED"
else
echo "......done"
fi
}

assign_chains()
{
ERRORSTATUS=0
echo -n "Assigning Default Chain Policies"
LIMIT=`grep  -v -e '^#' /etc/fw-rules/chains-policy.cfg |wc -l | cut -d " " -f 1`
for ((i=LIMIT ; i > 0 ; --i))
do
RESULT=`grep  -v -e '^#' /etc/fw-rules/chains-policy.cfg| tail -n $i |line`
echo -ne "tiptables $RESULT   " >> $LOGFILE
/sbin/iptables $(echo "$RESULT") 2>> $LOGFILE
RET_VAL=$?
if [ $RET_VAL != "0" ]
then echo "...FAILED" >> $LOGFILE
ERRORSTATUS=1
else
echo "...done!" >> $LOGFILE
fi
done
if [ $ERRORSTATUS = "1" ]
then echo "......FAILED"
else
echo "......done"
fi
}
outbound_traffic()
{
ERRORSTATUS=0
echo -n "Applying Outbound Policy"
LIMIT=`grep  -v -e '^#' /etc/fw-rules/intranet-internet.cfg |wc -l | cut -d " " -f 1`
for ((i=LIMIT ; i > 0 ; --i))
do
RESULT=`grep  -v -e '^#' /etc/fw-rules/intranet-internet.cfg |tail -n $i |line`
echo -ne "tiptables $RESULT   " >> $LOGFILE
/sbin/iptables $RESULT 2>> $LOGFILE
RET_VAL=$?
if [ $RET_VAL != "0" ]
then echo "...FAILED" >> $LOGFILE
ERRORSTATUS=1
else
echo "...done!" >> $LOGFILE
fi
done
if [ $ERRORSTATUS = "1" ]
then echo "......FAILED"
else
echo "......done"
fi
}

inbound_traffic()
{
ERRORSTATUS=0
echo -n "Applying Inbound Policy"
LIMIT=`grep  -v -e '^#' /etc/fw-rules/internet-intranet.cfg |wc -l | cut -d " " -f 1`
for ((i=LIMIT ; i > 0 ; --i))
do
RESULT=`grep  -v -e '^#' /etc/fw-rules/internet-intranet.cfg |tail -n $i |line`
echo -ne "tiptables $RESULT   " >> $LOGFILE
/sbin/iptables $RESULT 2>> $LOGFILE
RET_VAL=$?
if [ $RET_VAL != "0" ]
then echo "...FAILED" >> $LOGFILE
ERRORSTATUS=1
else
echo "...done!" >> $LOGFILE
fi
done
if [ $ERRORSTATUS = "1" ]
then echo "......FAILED"
else
echo "......done"
fi
}

gateway_traffic()
{
ERRORSTATUS=0
echo -n "Applying Gateway's self Policy"
LIMIT=`grep  -v -e '^#' /etc/fw-rules/gateway.cfg|wc -l | cut -d " " -f 1`
for ((i=LIMIT ; i > 0 ; --i))
do
RESULT=`grep  -v -e '^#' /etc/fw-rules/gateway.cfg |tail -n $i |line`
echo -ne "tiptables $RESULT   " >> $LOGFILE
/sbin/iptables $RESULT 2>> $LOGFILE
RET_VAL=$?
if [ $RET_VAL != "0" ]
then echo "...FAILED" >> $LOGFILE
ERRORSTATUS=1
else
echo "...done!" >> $LOGFILE
fi
done
if [ $ERRORSTATUS = "1" ]
then echo "......FAILED"
else
echo "......done"
fi
}

natting_rules()
{
echo -n "Applying NAT rules"
LIMIT=`grep  -v -e '^#' /etc/fw-rules/nat.cfg|wc -l | cut -d " " -f 1`
for ((i=LIMIT ; i > 0 ; --i))
do
RESULT=`grep  -v -e '^#' /etc/fw-rules/nat.cfg|tail -n $i|line`
echo -ne "tiptables $RESULT   " >> $LOGFILE
/sbin/iptables $RESULT 2>> $LOGFILE
RET_VAL=$?
if [ $RET_VAL != "0" ]
then echo "...FAILED" >> $LOGFILE
ERRORSTATUS=1
else
echo "...done!" >> $LOGFILE
fi
done
if [ $ERRORSTATUS = "1" ]
then echo "......FAILED"
else
echo "......done"
fi
}

modules_load()
{
ERRORSTATUS=0
echo -n "Loading IPTABLE'S modules "
for i in /lib/modules/`uname -r`/kernel/net/ipv4/netfilter/ip*
do
echo -n "Loading Module " >> $LOGFILE
MDL=$(echo $i|cut -d / -f 9|cut -d "." -f 1)
echo -n " $MDL " >> $LOGFILE
modprobe $MDL 2>&1 >/dev/null
RET_VAL=$?
if [ $RET_VAL != "0" ]
then echo "...FAILED" >> $LOGFILE
ERRORSTATUS=1
else
echo "...done!" >> $LOGFILE
fi
done
if [ $ERRORSTATUS = "1" ]
then echo "......FAILED"
else
echo "......done"
fi
}
modules_unload()
{
ERRORSTATUS=0
echo -n "Unloading IPTABLE'S modules "
for i in /lib/modules/`uname -r`/kernel/net/ipv4/netfilter/ip*
do
echo -n "Unloading Module " >> $LOGFILE
MDL=$(echo $i|cut -d / -f 9|cut -d "." -f 1)
echo -n " $MDL " >> $LOGFILE
modprobe -r $MDL 2>&1 >/dev/null
RET_VAL=$?
if [ $RET_VAL != "0" ]
then echo "...FAILED" >> $LOGFILE
ERRORSTATUS=1
else
echo "...done!" >> $LOGFILE
fi
done
if [ $ERRORSTATUS = "1" ]
then echo "......FAILED"
else
echo "......done"
fi
}
bridge_start()
{
echo -n "Activating Bridging ...."
echo 1 > /proc/sys/net/ipv4/ip_forward
echo -n "Shutting down interfaces "
/etc/init.d/net.eth0 stop 2>&1 >> $LOGFILE
if [ "$?" != "0" ]
then echo -n "ETH0 FAILED"
else
echo -n "eth0"
fi
/etc/init.d/net.eth1 stop 2>&1 >> $LOGFILE
if [ "$?" != "0" ]
then echo  "ETH1 FAILED"
else
echo  "eth1"
fi

echo -n "Getting eth0 in promiscuous mode..."
/sbin/ifconfig eth0 0.0.0.0 up
if [ "$?" != "0" ]
then echo "FAILED"
else
echo "Done"
fi
echo -n "Getting eth1 in promiscuous mode..."
/sbin/ifconfig eth1 0.0.0.0 up
if [ "$?" != "0" ]
then echo "FAILED"
else
echo "Done"
fi
echo -n "Creating bridge br0..."
/sbin/brctl addbr br0
if [ "$?" != "0" ]
then echo "FAILED"
else
echo "Done"
fi
echo -n "adding interfaces "
/sbin/brctl addif br0 eth0
if [ "$?" != "0" ]
then echo -n "ETH0 FAILED"
else
echo -n "eth0"
fi
/sbin/brctl addif br0 eth1
if [ "$?" != "0" ]
then echo  "ETH1 FAILED"
else
echo "eth1"
fi
echo -n "Activating dhcp on br0..."
/sbin/dhcpcd br0
if [ "$?" != "0" ]
then echo "FAILED"
else
echo "Done"
fi

echo -n "Activating Bridge " >> $LOGFILE
}

bridge_stop()
{
echo -n "Deactivating Bridging ...."
echo 0 > /proc/sys/net/ipv4/ip_forward
echo -n "Deactivating Bridging " >> $LOGFILE
/sbin/brctl delif br0 eth0
/sbin/brctl delif br0 eth1
if [ "$?" != "0" ]
then echo "FAILED"
else
echo "Done"
fi
echo -n "Destroying bridge br0..."
/sbin/brctl delbr br0
if [ "$?" != "0" ]
then echo "FAILED"
else
echo "Done"
fi
echo -n "Activating ethernet "
/etc/init.d/net.eth0 start
if [ "$?" != "0" ]
then echo -n "ETH0 FAILED"
else
echo -n "eth0"
fi
/etc/init.d/net.eth1 start
if [ "$?" != "0" ]
then echo  "ETH1 FAILED"
else
echo "eth1"
fi
}

case "$1" in
start)
echo "Starting Gateway..."
echo "Starting Gateway at $DATESTAMP">> $LOGFILE
bridge_start
modules_load
flush_rules
default_policy
create_chains
assign_chains
outbound_traffic
inbound_traffic
gateway_traffic
natting_rules
;;
stop)
echo "Stopping Gateway..."
echo "Stopping Gateway at $DATESTAMP">> $LOGFILE
flush_rules
modules_unload
bridge_stop
;;
restart)
echo "Restarting Gateway"
$0 stop
$0 start
;;

*)
echo "Usage: $0 {start|stop|restart}"
;;
esac

/etc/fw-rules/chains-declare.cfg:

-N intranet-internet
-N internet-intranet
-N icmp-acc
-N external
-N internal
-N limited
-N bridge-in
-N bridge-out
#end here

/etc/fw-rules/chains-policy.cfg:

-A INPUT -p icmp -j icmp-acc
-A INPUT -i br0 -j external
-A INPUT -i eth2 -j internal
-A FORWARD -p icmp -j icmp-acc
-A FORWARD -i eth2 -o br0 -j intranet-internet
-A FORWARD -i br0 -o eth2 -j internet-intranet
-A limited -j LOG --log-level info --log-prefix Limited_
-A limited -j REJECT
-A FORWARD -m physdev --physdev-in eth1 --physdev-out eth0 -j bridge-in
-A FORWARD -m physdev --physdev-in eth0 --physdev-out eth1 -j bridge-out
-A intranet-internet -j LOG --log-prefix intra-inter_
-A internet-intranet -j LOG --log-prefix out-in_
-A bridge-out -j LOG --log-prefix bridge-out_
-A bridge-in -j LOG --log-prefix bridge-in_
#end here

/etc/fw-rules/flush.cfg:

-Z
-X
-F
-t nat -F
#End Here

/etc/fw-rules/gateway.cfg:

-A external -p tcp -s 0/0 --dport 22 -j ACCEPT
-A internal -p tcp -s 10.0.0.0/24 --dport 22 -j ACCEPT
#end here

/etc/fw-rules/internet-intranet.cfg:

-A internet-intranet -p icmp -m limit --limit 30/minute -j ACCEPT
-A internet-intranet -p icmp -j REJECT
-A internet-intranet -m state --state ESTABLISHED,RELATED -j ACCEPT
-A internet-intranet -j DROP
#end here

/etc/fw-rules/intranet-internet.cfg:

-A icmp-acc -i eth2 -o br0 -m limit --limit 30/minute -j ACCEPT
connlimit --connlimit-above 25 --connlimit-mask 32 -j limited
-A intranet-internet -s 10.0.0.0/24 -d 0/0 -j ACCEPT
-A intranet-internet  -j DROP
#Bridging support rules
-A bridge-in -j ACCEPT
-A bridge-out -p tcp --dport 1024:64000 --syn -m connlimit --connlimit-above 500 --connlimit-mask 32 -j limited
-A bridge-out -j ACCEPT
#end here

/etc/fw-rules/nat.cfg:

-t nat -A POSTROUTING -s 10.0.0.0/24 -o br0 -j MASQUERADE
#end here

/etc/fw-rules/policy.cfg:

-P FORWARD DROP
-P OUTPUT DROP
-A INPUT -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
-A OUTPUT -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i eth2 -s 10.0.0.0/24 -d 0/0 -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A FORWARD -p udp -s 0.0.0.0/32 -d 255.255.255.255 --sport 67 --dport 68 -j ACCEPT
-A OUTPUT  -o lo -s 0/0 -d 0/0 -j ACCEPT
-A OUTPUT -j ACCEPT
#end here

grep [:ITissues:] NikosDimou.blog &> /dev/null και άλλα παλαβιάρικα

Γύρισα τις προάλλες στην «παλιά την μπλογκογειτονιά» μιας και από την μία είχα λίγο ελεύθερο χρόνο και από την άλλη είχα κάτι πολύ σοβαρό (τουλάχιστον για μένα) να πω. Άρχισα να χαζεύω λοιπόν και λιγάκι στα πέριξ. Ένα από τα βασικά πράγματα που πρόσεξα ήταν μια απίστευτη animosity απέναντι στον γνωστό Νίκο Δήμου. Προφανώς κάποιοι νιώθουν πως «απειλούνται» από την παρουσία του στην «παρέα», πως «επισκιάζονται» απο το «ειδικό βάρος» της φήμης του συγγραφέα. Προσωπικά δεν τα καταλαβαίνω αυτά τα πράγματα. Γιατί θα πρέπει να κρίνω και να χειροκροτήσω ή να κατακρίνω τα γραφόμενα οποιουδήποτε με βάση το όνομά του; Ο άνθρωπος καλά έκανε και άνοιξε blog για να λέει τις απόψεις του. Μία χαρακτηριστική κριτική (ορθώς ενυπόγραφη) που διάβασα στο ΚΟΙΝΟΒΙΟ ήταν πως «γιατί ήρθε στο blogspot αφού έχει site;» Καταλαβαίνουμε ελπίζω την διαφορά ανάμεσα σε ένα λιγότερο ή περισσότερο στατικό site με ένα blog… Τώρα γιατί ο κ. Δήμου διάλεξε έναν τρίτο server όπως ετούτος εδώ της google, αυτό εξηγείται μάλλον με τα εξής:

1) Το να στήσεις μία μηχανή blogging πάνω σ’ένα web server δεν είναι δα και ό,τι πιο εύκολο, ενώ το blogspot ή το wordpress προσφέρουν ήδη την μηχανή έτοιμη. Φτάνει απλά να στήσεις το layout σου και είσαι έτοιμος.

2) Μπορεί κάλλιστα να θέλησε να «ψαρέψει» όσο το δυνατόν περισσότερα comments μπαίνοντας μέσα σε μία στημένη και μεγάλη κοινότητα. Πού το κακό ρε παίδες; Αν δεν γουστάρετε να βλέπετε τις γνώμες των άλλων γιατί αφήνετε τα comments ανοιχτά στα blog σας; Το feedback πιστεύω είναι ο σοβαρότερος λόγος που το blogging έχει αυτή την τάση δημιουργίας «εξάρτησης».

Τα παραπάνω βέβαια ας μην εκληφθούν σαν «λουστράρισμα» του Ν. Δήμου από μέρους μου. Κι εδώ έρχομαι στο πρώτο μέρος του τίτλου. Με τον Νίκο Δήμου διαφωνώ σε πολλά θέματα και μάλιστα κατά τρόπο που μπορεί να χαρακτηριστεί συστηματικός όταν η κουβέντα γυρνάει σε θέματα πληροφορικής. Οι unixοθραμμένοι της παρέας καταλάβανε μάλλον ήδη από την ψευδοεντολή του τίτλου τι εννοώ. Τελευταίο παράδειγμα των ριζικών διαφορών στις απόψεις μας; Ένα, ασήμαντο κατά τ’ άλλα, snippet από πρόσφατο post του κ. Δήμου:

Ο Bill Gates αποφάσισε ότι θα δώσει το 95% της περιουσίας του στον Τρίτο Κόσμο. Δεν είναι μόνο ότι δίνει δισεκατομμύρια – έφτιαξε άλλη μία Microsoft, για να επιβλέψει την σωστή διανομή.

Μάλιστα, ας γλείψουμε άλλο λίγο τον Βασιλάκη τον Πόρτα. Thank you my lord! God – fucking – bless you my lord! Αυτό μοιάζει σαν να σε πιάσουν να σε πηδήξουν, και αφού σου αφήσουν ένα πενηντάευρο για την «εξυπηρέτηση» να πεις και ευχαριστώ! Πως την έκανε την περιουσία ρε Δήμου ο μάγκας; Δεν έχω καταλάβει τον λόγο που στην ελλάδα αρνούμαστε πεισματικά να καταλάβουμε τι γίνεται γύρω μας. Η κυρά η Microsoft έχει ΚΑΤΑΔΙΚΑΣΤΕΙ τελεσίδικα για παράνομο μονοπώλειο από δικαστήριο των ΗΠΑ. Επίσης η Ε.Ε. θα της επιβάλει τεράστια πρόστιμα αν συνεχίσει τον χαβά της και δεν προσφέρει άμεσα αποδείξεις συνεργασίας της με άλλους δημιουργούς software αντί για τις συνήθεις θολές τακτικές της να αποκλείει την σωστή λειτουργία εφαρμογών τρίτων όταν ανταγωνίζονται δικά της προιόντα. Αυτό είναι ήδη λημμένη ΑΠΟΦΑΣΗ της Ευρωπαικής Επιτροπής. Όχι και άγιος ο Billys ρε παιδιά, μην ξεράσουμε! Για το φιλανθρωπικό του project έλεγε στον Αλογοσκούφη ο Βασιλάκης τις προάλλες;! Μια χαρά είναι η φιλανθρωπία, φτάνει να μην συνεπάγεται πως η πατρίδα μου θα σκλαβωθεί στις διαθέσεις μιας πολυεθνικής για τα επόμενα 20 χρόνια και το όλο σκέρτσο θα μου κοστίσει κάτι τρισεκκατομύρια ευρώ! Άσε ρε, βάζω FLOSS και αυτά που περισσεύουν – γιατί θα περισσέψουν ΠΑΡΑ ΠΟΛΛΑ – τα δίνω εγώ ο ίδιος στην Αφρική!!! Και ανοίγω και δουλειές στην ίδια μου την χώρα! Δεν με πιστεύετε; Καλά, ρωτήστε την γαλλική εφορία…

repost καθίκια!!!!

Προφανώς κάποιοι ενοχλήθηκαν και το ποστ ξαφνικά σβήστηκε ενώ η σελίδα μου είναι #403!!!!!

ΚΑΘΙΚΙΑ!
REPOST!

Τεχνοφοβία και «Τεχνολατρεία της μπροσούρας»

Είμαι σίγουρος πως το 99% των ελληνικών blog ασχολούνται με την (όχι και τόσο) απίστευτη ιστορία παρακολουθήσεων. Θ’ασχοληθώ κι εγώ… Όχι για να «βρώ» και να καταδικάσω τους υπαίτιους σαν άλλος Σέρλοκ Χολμς ούτε για να κάνω «απολογισμό της ζημιάς» χωρίς να έχω την παραμικρή ιδέα του ΤΙ υποκλάπηκε (παραγγελία στο σουβλατζίδικο της γειτονιάς ή κρατικα μυστικά). Αυτό που θέλω να σχολιάσω είναι η γενικότερη στάση της ελληνικής κοινωνίας απέναντι στην τεχνολογία, γνωστή από καιρό μεν, εξοργιστική όμως στα λόγια έντρομων ρεπόρτερ από προχτές!

Οι «τεχνολάτρες»
Για να είσαι «in» στην σημερινή ελληνική κοινωνία πρέπει να μπορείς να μιλάς σαν διαφημιστική μπροσούρα για κάθε λογής ηλεκτρονικό μπιχλιμπίδι και να το προωθείς σαν το τέλος νόσης πάσας. Το εξοργιστικό της υπόθεσης είναι πως κανείς δεν έχει την παραμικρή ιδέα για το τι μιλάει, για τις έστω βασικές ιδέες πίσω από την λειτουργία του εκάστοτε «μπιχλιμπιδίου». Σαν διαφημιστικές μπροσούρες λοιπόν οι έλληνες διαγωνίζονται για το μήκος και το βάθος της μπουρδολογίας τους, προσπαθώντας να εντυπωσιάσουν τους πάντες πλην του εαυτού τους. Ας μου επιτραπεί ο όρος, αλλά το τι ΜΑΛΑΚΙΑ έχω ακούσει αυτές τις δύο μέρες από κοντά και από τηλεόραση δεν λέγεται! Αυτή η πιπίλα της «υψηλής τεχνολογίας» που λειτουργεί ως wildcard για οποιαδήποτε τεχνολογική ορολογία και πραγματικότητα που αγνοούν, πραγματικά μου έχει σπάσει τα νεύρα.

Σιγά την αξεπέραστη και απόκρυφη γνώση πληροφορικής που χρειάζεσαι για να στήσεις ενα γαμημένο rootkit! Σίγουρα βέβαια χρειάζεσαι access σε μια ρέπλικα του συστήματος που θες να τρυπήσεις, και ένας server κινητής τηλεφωνίας δεν είναι κάτι που μπορεί να έχει στο σπίτι του ο καθένας. Επίσης το όλο εγχείρημα θα είναι απείρως ευκολότερο αν έχεις κάποιον «από μέσα» που θα εγκαταστήσει το rootkit παρά να πρέπει να τρυπήσεις σιωπηλά και διαδοχικά ένα κάρο servers πριν βρεθείς μέσα στο δίκτυο τηλεπικοινωνιών. Κοινώς χρειάζεσαι λεφτά και διασυνδέσεις που ελάχιστοι μπορούν να έχουν. ΑΥΤΟ είναι το στοιχείο που περιορίζει τους υπόπτους και όχι η «απόλυτη τεχνογνωσία»! Μην ξεχνάτε ότι το software που χρησιμοποιήθηκε για την αποστολή των δεδομένων σε τρίτους παρέχεται από την ίδια την κατασκευάστρια εταιρία για «νόμιμες» παρακολουθήσεις. Το μόνο που έκανε το εν λόγω rootkit ήταν η απόκρυψη της λειτουργίας του προγράμματος από τους admins (i.e. ο ορισμός της λειτουργίας ενός rootkit). Επίσης, κάθε server που θέλει να είναι τιμά το όνομά του, κρατάει εκτενή logs και η συγκάληψη των ιχνών του δράστη στο εσωτερικό τους είναι επίσης «αρμοδιότητα» του rootkit. Αφού πάραυτα ήξεραν τις καιρέες λήψης των αποδεκτών, είτε το rootkit ήταν ψιλομαλακία και δεν έκανε όλη την δουλειά του είτε συλλέχθησαν πληροφορίες επικοινωνίας μετά την ανακάλυψή του από τους τεχνικούς.

Οι ευθήνες της vodafone περιορίζονται στο ότι δεν ειδοποιήσε τις αρμόδιες αρχές παρά τις υπερπήδησε παράτυπα ενώ συγκάλήψε το γεγονός από τους πελάτες της (κάτι που δίνει βάση για μυνήσεις ύψους πολλών εκατοντάδων χιλιάδων ευρώ από τα θύματα). Οι ευθήνες των διωκτικών αρχών όμως είναι ΤΕΡΑΣΤΙΕΣ – και κανείς, τουλάχιστον από αυτούς που μιλάνε σε μικρόφωνο, δεν φαίνεται να το αντιλαμβάνεται. Οι αρχές ρουφήξαν το αυγουλάκι τους σαν καλά παιδάκια την στιγμή που θα έπρεπε:
1) Να ανακρίνουν άπαντες εργαζόμενους στα κεντρικά της vodafone, μέχρι καθαρίστριας, αφού ΠΡΟΦΑΝΩΣ υπήρξε insider για να γίνει η δουλειά.
2) Να συνδέσουν άμεσα την υπόθεση αυτοκτονίας.
3) Να αναλύσουν αμέσως τα logs και να επαναλειτουργήσουν το rootkit σε ελεγχόμενο περιβάλλον (βλέπε δεύτερος server που εξυπερετεί μόνο τα τηλέφωνα θυμάτων και θυτών) με την τελευταία ελπίδα να εντοπίσουν τους θύτες.
4) Να ενημερώσουν τα θύματα καθιστώντας ίσως καθαρό πως η διαπόμπευση του θέματος ενώ συνεχίζεται η έρευνα θα μπορούσε να θεωρηθεί παρακόληση δικαιοσύνης (δεν είμαι δικηγόρος για να ξέρω ΑΝ και ΠΩΣ κάτι τέτοιο γίνεται).
Αντίθετα η vodafone και, αδιανόητα κατ’ επέκταση, το προσωπικό της θεωρήθηκαν υπεράνω υποψίας ως καταγγέλοντες. Ορίστε ένα «χολυγουντιανό» σενάριο που δείχνει πόσο «μαλάκες» θα μπορούσαν να έχουν πιαστεί. Ο CEO της εταιρίας τα κάνει πλακάκια με τους «κακούς» και βάζει έναν έμπιστο υπάλληλο να κάνει την «βρωμοδουλειά». Από τυχαία μαλακία αποκαλύπτεται η πουστιά αλλά όχι και οι αυτουργοί. Ο φυσικός αυτουργός αυτοκτονεί ή… «αυτοκτονεί» ενώ ο ηθικός αυτουργός πρώτα ειδοποιεί τους «κακούς» να την κάνουν λούηδες και κατόπιν ειδοποιεί «εμπιστευτικά» τα ανώτατα κλιμάκια για το συμβάν βγάζοντας την ουρά του απέξω. ΠΡΟΣΟΧΗ: αυτό το σενάριο είναι εντελώς φανταστικό όπως τουλάχιστον άλλα είκοσι που μπορεί να φτιάξει κανείς στο μυαλό του, από την καθαρίστρια που βάζει μέσα στο κτίριο μυστικά την νύχτα κάποιον cracker μέχρι την συνομωσία μιας ολόκληρης ομάδας από admins! Χρησιμοποιώ το συγκεκριμμένο σαν μια δραματοποιημένη απόδειξη της κακώς εννοούμενης «αγαθότητας» των ελληνικών αρχών.

Πότε όμως έγινε η ΕΛΑΣ «αγαθή»;!! Δυστυχώς είναι και αυτοί θύματα της «τεχνολατρείας της μπροσούρας». Έτσι μας έβαλαν και πληρώσαμε τα μαλλιοκέφαλά μας για τα δήθεν κορυφαία τεχνο-μπιχλιμπίδια ασφαλείας την στιγμή που κανείς τους δεν έχει τα qualifications για να τα αξιοποιήσει, πέρα από την ενόχληση των συνήθων υπόπτων και την «κουτσομπολίστικη παρακολούθηση» ανύποπτων πολιτών. Τις δραστηριότητες, δηλαδή, που πάντα έκανε και χωρίς τα βαρύγδουπα και πανάκριβα μπιχλιμπίδια και την συνεπαγόμενη ακατάσχετη περηφανο-μπουρδολογία! Έτσι ακριβώς κάποιοι «μπουρδολόγοι – μπροσουρολόγοι» προφυλάκισαν ως spammer εναν διάσημο security expert και μας έκαναν διεθνώς ξεφτίλα ως ιθαγενείς που εμβρόντητοι κοιτάνε τις γιαλιστερές τους μπίλιες και τα καθρεφτάκια. Έτσι ακριβώς λοιπόν και αυτή η υπόθεση θα αρχειοθετηθεί σαν «μια τρύπα στο νερό». Έννοια σας, και ο ανασχηματισμός σύντομα θα γίνει σκεπάζοντας με την δικιά του μεντιατική παπαρολογία ετούτα εδώ τα τριτοκοσμιλίκια. Τότε ο κάθε έλλην παπαριζόβλητος τεχνοβλάκας θα μπορεί να συνεχίσει ανεμπόδιστα την «μπροσουρολογία» του. Ούτε γάτα ούτε ζημιά…

Χτες διάβασα ένα άρθρο στην καθημερινή για την «χαμένη γενιά» του internet στην ελλάδα. Το πώς δηλαδή η έλλειψη παροχής φθηνής και/ή ευρυζωνικής σύνδεσης στο διαδίκτυο κόστισε στην ελλάδα μια γενιά που ενώ καλείται να χρησιμοποιήσει σε καθημερινή βάση προιόντα και υπηρεσίες πληροφορικής, διατηρεί πλήρη ή σχεδόν πλήρη άγνοια των εμπλεκόμενων τεχνολογιών. Το άρθρο επικεντρώνεται βασικά στις οικονομικές συνέπειες αυτής της απώλειας. Προσωπικά θεωρώ την κοινωνιολογική πλευρά του προβλήματος ακόμα πιο σημαντική. Η έκθεση της ελληνικής κοινωνίας σε νέες τεχνολογίες χωρίς την αντίστοιχη κουλτούρα που, κατά κύριο λόγο, διοχετεύεται και αναπτύσεται στο διαδίκτυο είναι κατά την άποψή μου το κύριο αίτιο της αντίληψης μπροσούρας απέναντι στην τεχνολογία που παρατηρούμε σήμερα.

I miei coglioni…

Για όσους δεν καταλάβανε… δεν πειράζει, δεν χάσατε και τίποτα.

Για όσους πάλι καταλάβανε, ναι… μου την έχει δώσει ΕΝΤΕΛΩΣ! Έχω πάρει σαν δουλειά να γράψω τα manuals για το linux certification της εταιρίας. No worries θα μου πεις, latex ξέρεις αρκετό, βάλε και το memoirs σαν documentclass που μαμεί και δέρνει και είσαι τσέκας. Εμ. το κόλλημα δεν είναι στα technicalities… είναι με τους ανθρώπους.

Σκάει το πρωί τηλέφωνο ο δικός σου και πως πάει και τι κάνεις και προχωράει το ρημάδι; Ναι ρε φίλε, δεν μπορώ να περάσω να τα πούμε από κοντά αλλά τσίμπα σε mail το 1ο κεφάλαιο και πέσμου πως τα βλέπεις. Ε, όσο πήρατε εσείς απάντηση πήρα κι εγώ. Τι διάολο ρε φιλαράκο, να μου σπας τα παπάρια πρωί πρωί ήξερες, ένα scroll 30 σελίδες pdf δεν μπορείς να κάνεις; Να ξέρω κι εγώ τι κάνω… Μην μου πεις μετά από καμια βδομάδα πως άλλα θες και κάθομαι και ξαναγράφω σαν μαλάκας! Άσε που και μόνο το γεγονός πως πρέπει να σου στείλω pdf αντί για το .tex να κάνουμε δουλειά μας interactively είναι επιεικώς ντροπή για κάποιον που δηλώνει unixας – να χέσω μέσα στο AIX σου ρε μπάρμπα!

Ωραια… και αφου μου πρήστηκε το δεξί, κάτσε να πρηστεί και το αριστερό να τα έχουμε ασορτί. Υποτίθεται πως γράφω για mandriva μιας και είναι entry level και οι αναγνώστες παντελώς γκαγκα… Οκ, μπορεί όπως γράφω να έχω δίπλα μου μια λεκάνη να ξερνάω με τις user-friendly ανωμαλίες της mandriva αλλά η δουλειά είναι δουλειά… Μπορεί επίσης να ξήλωσα το DVD-ROM να βάλω τον αρχαίο 15αρη δίσκο να την κάνω install αλλά και πάλι δεν τρέχει τσάι… καλύτερα λίγη ταλαιπωρία με το hardware παρά να στείλω στο διάολο την gentoo μου – δεν σφάξανε. Κι αφού μπαίνω στο κεφάλαιο 2 (το 1ο είναι παραμυθάκι περί unix, φιλοσοφίας GNU και δεν συμμαζεύεται) ήρθε η ώρα να την στήσω για να α) ξέρω τι στο διάολο γράφω β) τραβήξω και τα σχετικά screenshots (γιατί έτσι και χώσω το δικό μου desktop θα αρχίσουν να τρέχουν σαν μουρλοί όσοι το ξεφυλλίσουν το βιβλίο). Εμ δε! Ο συγκάτοικος πήρε μαζί του τα δισκάκια στην ελλάδα! Τι να τα κάνει;!! Αφού είναι αμετανόητος πατζουράς! Ωχ θεέ μου… άντε ξανακατέβασε 2,1Gb isos από ftp.unina.it και ftp.ntua.gr μπας και κάνουμε πιο γρήγορα – παπάρια, έχουν cap κάπου στα 30kb/s! Να χέσω μέσα στην broadband μου! Πάει πρήστηκε και το αριστερό τ’ αρχίδι…

Aghhh!!! Sorry για το rant, αλλά δεν άντεχα… θα έσκαγα!

memtest-86: «ΤΡΥΠΑ» στα 791Mb!

Η αλλιώς, πως τον ήπια μέχρι τις αμυγδαλές…

Τις τελευταίες μέρες, το tower pc είχε αρχίσει να κάνει «παλαβιάρικα»: segfaults, στουκαρίσματα κτλ. Τόσα χρόνια στο κουρμπέτι, δεν είχα δει σωστά στημένο linux box να φαίρεται έτσι – πόσο μάλλον που δεν είχα κάνει και κανα update για να πεις ότι τα σκάτωσα με καμιά library… Μπήκαν ψίλοι στα αυτιά μου, μην άρχισε να τα τινάζει το reiser4 στο /usr μετά απο 2 απανοτά black-outs που έκατσαν στο σπίτι.

Ξέρω, ξέρω, extreme experimental fs στο /usr, are you fscking nuts? Δεν μου έδωσε πότε μέχρι τώρα προβλήματα και για κάποιο καιρό κράταγα backup το partition μέχρι να σιγουρευτώ πως δεν θα μου έσκαγε στα μούτρα. Ε, με 4 μήνες 24/7 operation, τι με updates, τι με installs, τι με power losses είχα σιγουρευτεί για το αξιόπιστο και σταμάτησα τα incremental backups, πέταξα και το γιγάντιο tar γιατί ξέμενα από δίσκο και όλα ωραία… μέχρι τις προάλλες, που άρχισαν οι «ομορφιές».

Boot λοιπόν με το custom livecd με kernel nitro και reiser4 support (πάντα έχετε ένα πρόχειρο, είναι αφάνταστα χρήσιμο!) και κάνω fsck. Επιβεβαιώνονται οι φόβοι μου: έβγαλε παπάδες – «και δούλευε έστω έτσι ρε το θηρίο; Μωρέ μπράβο!». Reboot, και τα πράγματα καταντάνε σουρεάλ:

– τι στο διάολο, λες να γαμήθηκε physically ο δίσκος;!!

– μπααα, το S.M.A.R.T. μια χαρά report δίνει… Μάλλον έχασε κανά inode παραπάνω με το fsck και φρικάρουν εντελώς κάποια proggies.

– Ok, reinstall το δίνα πρόγραμμα να στρώσει… Ooops, segfault ο gcc! Εεεεε;!!!

– Ξανά! Ooops, segfault το emerge! Τι έγινε, γαμώ το σπίτι σου, γαμώ;!

– Ξανά! Ok, package emerged correctly! Χμμ… Ρε, λες; Αν είναι έτσι, τον ήπιαμε…

Όποιος έχει δει μια 20άρα bug reports, ξέρει πως σε linux κάτι τέτοια inconsistent segmentation faults, ειδικά σε gcc, δεν ωφείλονται σε κάποια «προσωπικότητα» του pc, ούτε σε μάγια. Εδώ βρωμάει memory corruption…

Reboot ξανά με το livecd και επιλογή για memtest-86: δεν δείχνει πάντα την ζημιά, αλλά τα περισσότερα τα πιάνει και αν είναι έτσι, ζήτω που καήκαμε… Ανάβω τσιγάρο και πριν προλάβω να κάνω το μισό, έχω αρχήσει τις παναγίες και τους χριστούς! Στο 10% το test, έχει πετάξει ίσαμε 16000 errors, ΟΛΑ consistently στα 791Mb, δηλαδή κάπου στα μισά του 2ου memory module (έχω – είχα μάλλον – 2 των 512). Σβήσιμο, πετάω έξω το 2ο module (2 χρόνια νεότερο παρακαλώ από το άλλο!) και ξανά boot με livecd και memtest86. All pass, τουλάχιστον έχω 512Mb ακόμα και δεν θα τρέχω σαν τον παλαβό να πάρω μνήμες…

Reboot. Παραξενιάς συνέχεια… Ωχχχ! Μόλις κατάλαβα τι μαλακία έκανα. Έτρεξα fsck με –rebuild-fs με «τρύπια μνήμη». Κι αν δεν ήταν σώβρακο το partition, σίγουρα τώρα το έχω κάνει. Μετά απο μια σειρά «αυτομουντζώματα» και headbanging στο γραφείο, ακολουθεί απέλπιδα προσπάθεια διάσωσης με κατέβασμα portage snapshot και του τελευταίου stage3 και emerge -pve world. Στα μισά του emerge… BOOM! /usr/bin/python: bad interpreter. Χωρίς βρισίδια, αφού το ένιωθα πως τα chances ήταν πια μηδαμινά, αναφωνώ: Boy, are we fucked now!

Reboot με livecd, ξύλωμα/καθάρισμα partitions και install from scratch. Αυτή την στιγμή κάνει compile το kdebase ενώ εγώ σας γράφω από το laptop…

Τα νεύρα μου, τα χάπια μου κι ένα ταξί να φύγω!!!

Συμπέρασμα 1: Never, EVER, try to fix the software unless you are 100%, positevely sure that the hardware operates correctly. Μ’άρεσει που τα διδάσκω κιόλας ο μαλάκας. «Δάσκαλε που δίδασκες και νόμο δεν εκράτεις…»

Συμπέρασμα 2: Ποτέ, μα ποτέ μην ξαναγοράσεις πράγμα από ναπολετάνικο retail shop. Όλα σκάρτα βγήκανε ρε πούστη μου! Ότι έχω πάρει από ελλάδα, από internet, από προμηθευτές… όλα μια χαρά. Ότι πήρα από εδώ, από διάφορα μαγαζιά, όλα τα πήρε ο διάολος. ΟΛΑ!!! Σκατόγυφτοι, φέρνετε Β διαλογές και τις πουλάτε για χρυσάφι… Αει στο διάολο παλιόπουστες!