In our business there are times that you have to work with windows boxes.
The main problem with that is that they are constantly broken.
So is there a efficient way to build a proper backup image ?
The answer is YES, by using SystemRescueCd and ntfsclone
A simple and mini howto is here: http://balaskas.gr/wiki/ntfsclone
Enjoy
Who s/he claims that knows everything, must be constantly being asked by everyone else.
If you want to ask me something, do it public.
I have some knowledge of linux stuff, but i dont know everything.
This is a well known fact.
If you ask something in public then there will be something magical.
1.
More people could experience the same problem.
They will immediately comment that they have the exact same problem with you.
You will feel that you are not alone in this world!
2.
Some nerds will try to answer you before you even complete your question. Dont pay any attention to them. But your post will be the top of every search in a few seconds. Dont be bias at them. They have good at their heart.
3.
Some geeks will try to answer you with LMGTFY and wikipedia comments. Dont feel sorry about that. You should have read the manual in the first time, so this is your fault. Read them know.
4.
Some guru will answer to you. Be very carefully. Statistics are against you. From time to time you will cry like a baby by these answers. Guru’s have the ability to amplify all problems and resolve them in a way that even you can understand them.
5.
From the moment you asked something public, there is a trace that you exist! People now know you!!! You are the newbi3_1995 (or something).
6.
If you asked something that someone else have already asked, then you feel this magical connection to him. Internet love is true, embrace it. But seriously you have solved your problem with just a few links to the first question (back in 2005)!.
7.
And the most importance of all, is of course that you will not bother me :P
ps: dont afraid to ask me something.
As you may already know, you can install a 32bit linux distribution into a 64bit machine.
Many people are keep telling me, that they are still using a 32bit installation cause of some (not always opensource) applications which havent yet built up for 64bit kernel.
Lately i came into a same experience, when trying to access my android mobile through a usb, using google’s android platform tool: adb.
Android SDK has only a 32bit flavor.
Many distros support multi-lib (libraries) repositories that you can add to your linux box and use 32bit libs & applications inside your 64bit installation.
Of course this method isnt only for 32bit but also if you want to have different versions of the same shared object and dont want to rebuild your packages.
I find this method a lot messy and i dis-approve setups like that.
The alternative method is to use GNU’s core utility: chroot.
Change root directory (run command or interactive shell with special root directory) is extremely easy to setup. Till now perhaps you have listened that chroot is to jail exposed services, but in fact you can build your own environments for clean development or testing applications or whatever you have thought.
You dont even need to have an extra partition or even reboot your linux box!
The archlinux package manager aka pacman has a “root device” parameter so in fact you can create a new chroot archlinux enviroment like adding a new package in your existing linux box!
With the below script you will setup a new 32bit enviroment into your archlinux machine:
export ROOT=/arch32
mkdir -pv $ROOT/var/cache/pacman/pkg/ $ROOT/var/lib/pacman/
pacman -v --arch i686 -r $ROOT --noconfirm -Sy base
mount --bind /dev $ROOT/dev
mount --bind /proc $ROOT/proc
mount --bind /sys $ROOT/sys
chroot $ROOT
If you need to open gui apps from your chroot env, you must type:
xhost +
from your primarly OS.
I bought this laptop Fujitsu Siemens Amilo Si 1520
http://www.e-shop.gr … .phtml?id=PER.906260
sometime in 2006.
Its amazing. This laptop is keep working almost every day for a lot of hours without any complains.
Only two problems so far:
a. the screen isnt as clear as in the beginning of my trip &
b. the battery seems to be holding just for an hour or so.
I’ve recently figured it out, that the touchpad can identify multi touch events!!!
And i can now scroll up & down using my two fingers.
And even more recently i tested to see if the cpu is 64bit. And it is!!!!
This dual core cpu is working perfectly on 64bit.
I’ve decided last friday to rebuild my current machine to an arch 64bit core distro.
This time i’ve used lvm and converting my sda partitions to logical volumes wasnt pretty!
A lot of hours (in fact after 3 full days) later my current machine has:
- winxp home partition
- /boot
- lvm
a. rootfs
b. swap
c. encrypted home
etc
etc
etc
other logical volumes.
Just for a moment remember that i bought this laptop back in 2006, but fujitsu inform me that this build is from latest 2005!!!!
I dont have any SSD disk at the moment (i leave testing to other people) but the magic with this laptop is that it can support natively kvm (Virtualization extensions).
I mean thats a good old fashion laptop.
Unfortunately thats a known fact by xmarks it self.
Is there a work around ?
The disable proxy suggestion isnt a solution, especially if you cant access internet directly.
In my research for solution and gazillions test i think i’ve figured it out.
a. Using proxychains.
- Chain your proxy
- use:
export -p LD_PRELOAD=libproxychains.so
before running firefox (or alter firefox startup script)
works even with an http proxy!
b. Using a socks proxy.
Using a socks proxy, xmarks can connect to your custom (or not) webdav server and sync!
So if you arent using an http proxy (directly), xmarks will sync.
Mercurial has an excellent built-in extension for serving your code to other via http.
hg help serve
but hasnt have any authentication method.
You can, of course, use ssh to control access to your project, a http server (or wsgi).
Searching on Extensions wiki page, i’ve came up with hg-textauth!
In a few minutes i had textauth extension in my linux box.
Lets get started with:
A.
~/.hgrc
[extensions]
textauth = /FULL_PATH/textauth.py
[textauth]
file= /FULL_PATH/text.auth
B.
touch /FULL_PATH/text.auth
hg authedit -v -c ebal
Enter password: ******
Verify password: ******
That’s it!
Now test it
C.
hg serve
And in another shell (machine/whatever):
D.
hg clone http://example.com:8000 myproject.hg
requesting all changes
http authorization required
realm: mercurial
user: ebal
password: ******
adding changesets
adding manifests
adding file changes
added 1 changesets with 4 changes to 4 files
updating to branch default
resolving manifests
getting ToDo
getting help.html
getting image.png
getting myproject.py
4 files updated, 0 files merged, 0 files removed, 0 files unresolved
This afternoon at hackerspace we’ve booted up via PXE, tinycorelinux on alix3d3!
we didnt have any usb keyboard, so we used xvkbd for screen keyboard and then we downloaded firefox, openssh-server, x11vnc & mpd. Using mpc from our laptops we were listening streamed music from alix.
And all of that in only a 500Mhz cpu with only 256Mb Ram!!!
See some pictures
Η μητέρα μου, βρίσκεται σε συγγενικό σπίτι. Εκεί έρχεται σε γνωριμία με κάποιον από τον χώρο της μουσικής και πιο ειδικά από τον χώρο του marketing. Γνωρίζονται και μπλα μπλα μπλα
-Τι δουλειά κάνει ο γιος σας.
-Πληροφορική.
-Ενδιαφέρεται να φτιάχνει site για συγκροτήματα; Είναι τεχνικός ή προγραμματιστής;
-Κάνει τα πάντα, έχει γράψει προγράμματα μπλα μπλα μπλα (μια μάνα καμαρώνει για τον γιο της).
Μετά από δύο/τρεις ώρες μιλάω με την μητέρα μου.
-Σου έκλεισα δουλειά, να φτιάξεις ένα site να κονομισεις.
-Μα δεν φτιάχνω sites, ΔΕΝ κάνω αυτή την δουλειά!
-Τι? Δεν θες να βγάλεις λεφτά; Θα σε γνωρίσουν κι εκεί κι εκεί και μπλα μπλα μπλα μπλα
Οκ, εργάζομαι ως διαχειριστής Unix/Linux συστημάτων σε ISP. Δεν περιμένω ο στενός μου οικογενειακώς κύκλος να ξέρει τι ακριβώς κάνω. Τόσα χρόνια ούτε καν οι φίλοι μου δεν γνωρίζουν με τι ασχολούμαι επαγγελματικά.
Δεν νιώθω απογοήτευση, ούτε μνησικακία. Ίσως λίγο μοναξιά (ώρες ώρες), αλλά από την άλλη υπάρχει και το Twitter. Αλλά ρε γαμώτο να με γειώνει η μάνα μου γιατί δεν φτιάχνω site!!!
Για αυτό από εδώ και πέρα θα απαντώ
-Πιανίστας σε μπουρδέλο
Υγ: δεν απέχει και πολύ από την πραγματικότητα. Μόνο ότι δεν ξέρω πιάνο!
Richard WM Jones is the man behind redhat & fedora Virtualization projects.
One of his recent invention is guestmount!
With guestmount you can mount a live virtual machine and not only you can read the contents but also …. (wait for it) … write into the mounted virtual machine!
So, you can take incremental backups from your host and not your guest operating system!
Redhat has put all of it’s money to virtualization.
Lets see what’s next!
See also guestmount man page
and take a look on guestfs-browser too.
Σήμερα στις 19.00 στον χώρο του hsgr θα γίνει μια κουβέντα (παρέα με μπύρες) περί ΜικροΕθνοτήτων. History of MicroNations
Ένα από τα μεγαλύτερα προβλήματα ελευθερίας στην Ελλάδα είναι χωρίς αστυνομική ταυτότητα θεωρήσε παράνομος. Για την μη-κατοχή της ταυτότητας, η αστυνομία μπορεί να σε οδηγήσει στο κρατητήριο για την εξακρίβωση των στοιχείων σου.
Χωρίς πολλά πολλά, είσαι παράνομος εάν δεν έχεις την ταυτότητα σου. Όπως γράφει ο νόμος, η αστυνομική ταυτότητα αποτελεί μοναδικό στοιχεία ταυτοποίησης και κανείς δεν μπορεί να ζητήσει κάτι παραπάνω! Από το 1980 και μετά η ταυτότητα είναι υποχρεωτική και όλες οι νομικές ή μη κινήσεις πρέπει να γίνονται με την χρήση της αστυνομικής ταυτότητας.
Κάθε έλληνας πολίτης που κλείνει το φράγμα των 12 ετών οφείλει να βγάλει αστυνομική ταυτότητα κι ως εκ τούτου έχει νομική ευθύνη - για παράδειγμα μπορεί να υπογράψει σε νομικό έγγραφο.
ΔΕΝ είμαι δικηγόρος - μπορεί κάποια πράγματα να τα έχω λάθος ή μπερδεμένα στο μυαλό μου.
Αλλά η καθημερινότητά μου, μου δίνει παραδείγματα ότι πλέον η Ελλάδα δεν είναι μέρος που μπορεί κανείς να ζήσει ελεύθερος. Οι πολιτικοί που έχουν κυβερνήσει τα τελευταία 30 χρόνια έχουν κυριολεκτικά καταστρέψει την χώρα. Οικονομικά & πολιτικά.
Είναι πλέον αποδεκτό το γεγονός ότι η φοροδιαφυγή και η κλοπή, εις βάρος των μισθωτών & συνταξιούχων είναι πλέον η καθημερινότητά μας. Είναι κρίμα να μην μπορώ να κυκλοφορήσω ελεύθερος στους δρόμους που γεννήθηκα και μεγάλωσα. Είτε επειδή δεν έχω την αστυνομική μου ταυτότητα - είτε επειδή πλέον δεν έχω χρήματα για να ζήσω.
Κι εγώ θεωρώ τον εαυτό μου από τους τυχερούς! Έχω ακόμα δουλειά!
Είναι πραγματικά πολύ κρίμα να νιώθω έτσι στα 31 μου. Δλδ όσο υπάρχω σε αυτόν τον κόσμο - πριν γίνω κι εγώ σκόνη - δεν έχω δει την Ελλάδα ελεύθερη και τους ανθρώπους ευτυχισμένους.
Μην με παρεξηγείται - δεν είμαι μοιρολάτρης. Ούτε πιστεύω ότι εγώ προσωπικά ΔΕΝ φταίω για την κατάσταση της χώρας που γεννήθηκα. Γιατί καμία σχέση δεν έχει με την χώρα που πλέον ζω.
Μέσα από το hsgr προσπαθώ να δράσω, μαζί με μια χούφτα ακόμα πυροβολημένους σαν κι εμένα, δημιουργώντας ένα εργαστήρι που να στηρίζεται στις βασικές αρχές του opensource. Για φαντάσου! Στο hsgr κάνουμε ελεύθερα εργαστήρια και μαθήματα, πληρώνουμε από το (πραγματικά) υστέρημά μας όλα τα έξοδα - χωρίς να είμαστε εταιρεία, σύλλογος ή κοινότητα ή κάτι παρόμοιο.
Στην πραγματικότητά, έχουμε κι εμείς δημιουργήσει το δικό μας έθνος. Κάτι το οποίο πρεσβεύει τις αρχές του opensource. Κάτι για το οποίο νιώθουμε περήφανοι.
Φυσικά θέλουμε κάθε βοήθεια, χρειαζόμαστε κάθε βοήθεια.
Περάστε από το hsgr, ελάτε να μας γνωρίσετε. Σίγουρα με την 1η ματιά δεν θα σας γεμίσουμε το μάτι. Μα οι ιδέες μας, σίγουρα θα σας κερδίσουν.
Περάστε λοιπόν σήμερα να μιλήσουμε για μικρο-έθνη. Κι ίσως ….. ίσως αποφασίσουμε να φτιάξουμε κι εμείς ένα δικό μας!
I usually use find to search for files and analyze the output.
Reading the manual page i learned about nouser & nogroup test expressions.
So i’ve tried some test to find the quicker (or a better way) to remove files with find.
First, lets create a demo dir and a lot of files
# cp -ra /usr /usr.test
# chown -R 10101.10101 /usr.test
How many files do we have ?
# time find /usr.test/ -xdev | wc -l
124298
real 0m0.575s
user 0m0.243s
sys 0m0.363s
Ok, 124.298 files are a lot!
If i want to delete the entire directory via rm, the running time will be:
# time rm -rf usr.test/
real 0m5.883s
user 0m0.287s
sys 0m5.063s
5.88 seconds !
A walk through entire tree path:
# time find /usr.test/ -xdev -nouser > /dev/null
real 0m6.480s
user 0m2.763s
sys 0m3.660s
6.48 secs. It’s faster to remove them!
We now have a base to compare our results.
We will try 3 methods:
a. -delete find option
b. -exec find option
c. xargs via pipe
First Method
# time find /usr.test/ -xdev -nouser -delete
real 0m12.739s
user 0m2.826s
sys 0m9.513s
12.74 secs. Thats the twice amount of time
Second Method
# time find /usr.test -xdev -nouser -exec rm -rf {} ;
real 0m6.307s
user 0m0.253s
sys 0m5.516s
6.3 secs. Same as rm (that was expected by the way).
Third Method
# time find /usr.test/ -xdev -nouser | xargs rm -rf
real 0m4.666s
user 0m1.117s
sys 0m3.426s
4.66 secs!
So xargs is the faster way for the above methods
Εισαγωγικά μαθήματα Linux
( εγκατάσταση / γνωριμία με το λειτουργικό / γνωριμία με την γραμμή εντολών )
Κάθε Τρίτη στον χώρο του hsgr από τις 17.00 μέχρι τις 20.00 θα
πραγματοποιούνται παρουσιάσεις γύρω από το λειτουργικό σύστημα Linux.
Ξεκινάμε την Τρίτη 27 Σεπτεμβρίου 2011 στις 17.00.
Θα παρουσιάσουμε αναλυτικά την εγκατάσταση δύο δημοφιλή διανομών.
Fedora & Ubuntu.
ΥΓ: Φυσικά το hsgr μπορεί να φιλοξενήσει οποιοδήποτε
workshop/παρουσίαση θέλετε κι εσείς να πραγματοποιήσετε.
Evaggelos Balaskas
Unix System Engineer - http://balaskas.gr.
Yesterday evening i had the pleasure to watch my apache crashing till the entire memory of my vps server was been consumed.
I had the opportunity to see a memory leak and drink a couple of beers among good friends.
Friends that can support you (psychological) till you find the bug (is it?) and fix it.
So lets begin our journey:
My blog engine (flatpress) has a identi.ca/twitter plugin for posting entries on my blog.
I’ve connected it with my identi.ca account and i ‘ve done a little hack to add a microblogging category to separate my rss feed from my blogging rss feed (category=1)
So the main problem was(is) that the identica.png image doesnt get the correct file path from php variable.
It should be something like that:
blog/fp-plugins/identicaconnect/res/identica.png
but it seems to be:
https://balaskas.gr/blog/https://balaskas.gr/blog/blog/fp-plugins/identicaconnect/res/identica.png
That would be easy to fix, right?
That was what i thought too.
But in the process or fixing it, i saw the below error on my apache logs:
“PHP Notice: Undefined index: PATH_INFO”
I fired up my php.info page and saw that there wasnt any value for the $_SERVER[’PATH_INFO’]
In fact there wasnt any $_SERVER[’PATH_INFO’] in PHP Variables !!!
WTF ?
I was searching for an answer on google and i was noticing that my site was inaccessible.
pgrep httpd | wc -l
showed me about 200 apache threads and rising really fast.
dmesg complaint about resource and at that moment my vps crashed for the first time with a memory leak in console !!!
My previous apache installation was : httpd 2.0.64 + php-5.3.3 + suhosin-patch-5.3.3-0.9.10.patch + mod_evasive + eaccelerator-0.9.6.1 and my apache custom compilation options were:
./configure
--enable-dav
--enable-rewrite
--enable-ssl
--enable-so
--enable-proxy
--enable-headers
--enable-deflate
--enable-cache
--enable-disk-cache
my php compilation options were:
./configure
--with-zlib
--with-openssl
--with-gd
--enable-mbstring
--with-apxs2=/usr/local/apache2/bin/apxs
--with-mysql
--with-mcrypt
--with-curl
When i saw the memory leak, my first (and only) thought was: killapache.pl !
In a heartbeat, i was compiling httpd-2.2.20 + php-5.3.8 + suhosin-patch-5.3.7-0.9.10.patch + eaccelerator-0.9.6.1 + mod_evasive, i had moved my /usr/local/apache2 folder to apache2.bak and installed the newest (and hopefully most secure) version of apache & php.
I have pretty well document all of my installations process and i am keeping comments for every line in configuration files i have ever changed. So to setup up httpd 2.2.20 was in indeed a matter of minutes.
I was feeling lucky and confident.
I started apache and fired up my blog.
I was tailing error logs too.
BUM !!!!
apache had just crashed again !!!!
WTF^2 ?
How can a null php variable, crash apache with a memory leak and open about a million threads?
After debugging it, i fix it by just putting an isset function in front of $_SERVER[’PATH_INFO’] php variable !!!!
Too much trouble to fix (i didnt) the path of an image in my blog.
So my question is this:
- Is this an apache bug ?
- Is this a php bug ? or
- Is it a software bud (flatpress) ?
Χρησιμοποιώ dovecot για imap και postfix για λήψη/αποστολή αλληλογραφίας.
Τους χρήστες της υποδομής τους έχω δημιουργήσει σε ένα dovecot userdb αρχείο.
Σε αυτό περιέχονται τα usernames, συνθηματικά πρόσβασης και πληροφορίες που σχετίζονται με το mail τους.
Ένα από αυτά είναι και ο τύπος του λογαριασμού κι ένα άλλο η τοποθεσία στην οποία αποθηκεύονται τα emails.
Στο αρχείο /etc/aliases έχω περασμένα τα FirstName.LastName aliases που δείχνουν στα username.
Το postfix ΔΕΝ έχει ιδέα για τους χρήστες - παρά μόνο για τα aliases.
Το postfix by default στέλνει reject στους Unknown users. Αφού λοιπόν μόνο ο dovecot ξέρει τους χρήστες, το postfix στέλνει reject για όλους.
Μία λύση είναι η δημιουργία ενός dovecot command στο master.cf κι αλλάζοντας το mail transport.
Αυτό όμως ΔΕΝ μου φάνηκε και πολύ καλή ιδέα.
Σε περίπτωση επίθεσης, το postfix θα αναλάβει να προωθήσει όλα τα emails στο dovecot.
Οπότε δεν θα περιορίσει κάτι, απλά θα μεταβιβάσει το πρόβλημα στο dovecot.
Το catch all options ήταν κάποτε (ίσως) λύση, μα πλέον είναι κατά την γνώμη μου λάθος να μπαίνει.
Σκέφτηκα να κάνω χρήση του dovecot-LDA, μα το postfix προσπαθεί να παραδώσει local τα emails επειδή βρήκε τα usernames & τα Ευάγγελος.Μπαλάσκας λογαριασμούς στο /etc/aliases. Έτσι δεν κάνει χρήση του mail_command γιατί χρησιμοποιεί το local.
Έτσι σκέφτηκα ότι η απλούστερη λύση είναι μονάχα η τροποποίηση του /etc/aliases, προσθέτοντας τα usernames με το αντίστοιχο dovecot-lda command
π.χ. “/etc/aliases”
Evaggelos.Balaskas: ebal
ebal: | “/usr/local/libexec/dovecot/deliver -d ebal”
Ακόμα και τώρα που το σκέφτομαι, θεωρώ ότι είναι η καλύτερη και απλούστερη λύση που μπορώ να σκεφτώ.
Μα τα προβλήματά μου, μόλις τώρα ξεκινάνε!!!
Κι όλα αυτά γιατί ο Wietse Venema θεώρησε καλό κάθε service να τρέχει με διαφορετικό χρήστη και να μην έχουν πρόσβαση στα ίδια πράγματα. Στα ίδια πρότυπα λειτουργεί και ο Timo Sirainen (dovecot).
Τώρα δεν φταίει αυτός - το αυτονόητο έκανε. Πρόσθεσε ασφάλεια!
Ο mail owner του postfix είναι ο postfix μα τα δικαιώματα που κληρονομούνται στις διεργασίες είναι του nobody.
Έτσι χθες κατέληξα στο πρόβλημα, πως ο nobody θα μιλήσει με τον dovecot που εκτελείτε ως postfix (για χάρη ευκολίας) . Μα o dovecot deliver πρέπει να μιλήσει στο auth-userdb για να πάρει το mail_location, το οποίο έχει και setuid κι όλα αυτά τρέχουν ως root.
Μα ακόμα κι εάν τα έφτιαξα όλα αυτά … έφτασα στο συμπέρασμα ότι οι virtual users, ανήκουν σε διαφορετικό uid/gid και δεν μπορεί να τα παραδώσει εν τέλη! Οπότε πρέπει να διορθώσω κι αυτό …
Αλλά μετά από όλα αυτά - έπαιξε !!!
Για κάθε αλλαγή στο dovecot userdb, θα πρέπει να κάνω μια παρόμοια αλλαγή στο /etc/aliases. ΑΛΛΑ δεν χρειάζεται να αλλάξω κάτι στην αρχιτεκτονική ή στα configuration files των δαιμόνων.
Some people using Google reCAPTCHA (noone knows why) on their sites, but this is messing people up - especially people with astigmatism
This is what you suppose to see and write down:
This is what i see (without my glasses - i forgot them this morning, my bad):
Error:
PAM unable to dlopen(/lib/security/pam_fprintd.so): /lib/security/pam_fprintd.so: cannot open shared object file: No such file or directory: 1 Time(s) PAM adding faulty module: /lib/security/pam_fprintd.so: 1 Time(s)
Solution:
authconfig –disablefingerprint –update
WTF, in only 40min, ssh brute force attack !
Jul 14 17:54:56 server1 sshd[1135]: Server listening on 0.0.0.0 port 22.
…
Jul 14 18:36:16 server1 sshd[2325]: Invalid user center from 70.38.23.166
thank Venema for TCP Wrapper
I believe that this is a security risk for new installations.
Ok, root cant ssh access the server.
But common!
We create a simple user to login and then su to root.
I dont want ssh daemon to be started by default, before i finished with my linux server configuration and add some security measures to prevent issues like that.
And the most significant part is that i had configured my router sshd port to a non known tcp port !!!!
Σήμερα, 28 Μαΐου 2011 κι ώρα 19.00
το hsgr ανοίγει τις πόρτες του στο κοινό.
Ελάτε να γνωρίσετε έναν opensource χώρο για open source & intelligent people.
Ένας ανοιχτός χώρος/εργαστήρι για να μπορεί οποιοσδήποτε να εργάζεται στα αγαπημένα του open/source-hardware-ideas ή ακόμα καλύτερα, μπορείτε να συμμετέχετε στην δημιουργία της 1ης ελληνικής Free Beer!
Σας περιμένουμε με σουβλάκια/μπύρες κι άλλες λιχουδιές για να μας γνωρίσετε και να δείτε τον χώρο. Περιμένουμε τις προτάσεις σας για να κάνουμε τον χώρο ακόμα καλύτερο.
Όλη η βάση και διοργάνωση γίνεται σε εθελοντική βάση οπότε όλοι με τον τρόπο μας βοηθάμε στα έξοδα του χώρου.
Σήμερα λοιπόν τα εγκαίνια.
Πως να έρθετε: Getting_Here
ΥΓ: υπάρχει ανακοίνωση ότι δεν θα δουλεύει ο ηλεκτρικός σήμερα. Λάβετέ το υπόψιν σας, εάν έχετε αυτοκίνητο … αποφύγετέ το :D
Αυτό είναι το χρονικό διάστημα:
2011-05-25 19:48:54
2011-05-26 00:00:16
που έζησα από τις χειρότερες ώρες της ζωής μου.
Μα ας πάρουμε τα πράγματα από την αρχή.
Εδώ και μερικές μέρες χρησιμοποιώ το pamusb ως εναλλακτικό τρόπο για να κάνω login στο σύστημά μου. Διαθέτω μονάχα ένα laptop, στο οποίο πλέον έχω περάσει σχεδόν ότι χρειάζομαι καθημερινά τα τελευταία 5 χρόνια! Είναι το μοναδικό μου σύστημα και για λόγους ασφαλείας έχω το /home σε encrypted partition via luks (cryptsetup).
Το pamusb ακολουθεί μια λογική με την οποία σε κάθε επιτυχημένο login παράγονται δύο νέα μοναδικά κλειδιά. Ένα αποθηκεύεται στον δίσκο - ένα στο usb. Μαζί με τα στοιχεία του usb (label/serial) γίνεται η ταυτοποίηση μεταξύ του laptop και του usb για να κάνω το login χωρίς να δίνω κωδικό. Μάλιστα έχω τροποποιήσει λίγο το σύστημά μου, ώστε να γράψει στο /etc το κλειδί.
Μέχρι εδώ καλά.
Σκέφτηκα να δοκιμάσω να προσθέσω το κλειδί αυτό στο encryption.
έτσι κάθε φορά που θα κάνω login θα αλλάζει ταυτόχρονα και το κλειδί της κρυπτογράφησης του luks.
Ναι ε ?
Και ποιος είπε ότι το κλειδί αποθηκεύεται στον δίσκο ? Το κλειδί, αποθηκεύεται στα slots και δεν είναι δυναμικό - δεν είναι αρχείο - όπως νόμιζα! Πίστευα ότι το κλειδί αποθηκεύεται κι αυτό στο δίσκο κι ένα στο usb stick για να κάνει την ταυτοποίηση με βάση τα file paths που έχεις δώσει.
Παίζονται αρκετά κατάφερα να βάλω το κλειδί σε slot, αλλά εν τέλη φαίνεται να μην παίζει ο κωδικός που δίνω με το χέρι στο boot!
Κάνω reboot για να δω ότι παίζει και φυσικά δεν παίζει,
κάνω login με το usb και ταταταταμ ! αλλάζει το pamusb φυσικά τα κλειδιά που χρησιμοποιεί.
Εγώ στο cryptsetup έχω δώσει να διαβάζει το path του αρχείου από το usb, κι έχει επίσης αλλάξει (γίνει overwrite) το κλειδί στο δίσκο.
ΑΛΛΑ στο key-slot ΔΕΝ έχει αλλάξει.
Το κλειδί που πέρασα είναι random generate, πλέον έχει αλλάξει σε usb και δίσκο και δεν το έχω!
Επίσης όπως προανέφερα έχω αφαιρέσει (κατά λάθος) το κλειδί που δίνω χειροκίνητα για το cryptsetup.
Με λίγα λόγια, έχω δύο τυχαία και δυναμικά κλειδιά τα οποία δεν συμβιβάζουν με το τυχαίο κλειδί που βρίσκεται στο key slot του luks.
Κι εάν ακόμα δεν το πιάσατε, την γ@μ#σ@ (με το συμπάθιο).
5 χρόνια δουλειάς, φωτογραφίες - σχεδόν τα πάντα έχουν κρυπτογραφηθεί με τυχαίο κλειδί που φυσικά δεν υπάρχει κανένας τρόπος να παράγω.
Καταλαβαίνεται πως ήμουν; Σας έχει τύχει ποτέ να σας πει γκόμενα ότι έχει καθυστέρηση μια βδομάδα; Κάπως έτσι.
Τα πράγματα δεν φαινόντουσαν καλά, η ψυχολογία είχε φτάσει στο ναδίρ!
Κάπου εκεί έβαλα κι ένα διπλό ουίσκι, σκέτο και το κατέβασα χωρίς δεύτερη σκέψη.
Μία φωνή μου έλεγε: format - format - format
Πραγματικά ένιωσα πάρα πολύ άσχημα και πάρα πολύ χάλια.
Έχω στείλει και κάτι sms στην κοπελιά μου, του στυλ: το τέλος του κόσμου έχει έρθει και διάφορα τέτοια. Δεν ξέρω τι άλλο μπορώ να κάνω ή ποιον να πάρω τηλέφωνο ή σε ποιον να στείλω email.
Τα σκάτωσα.
Κοιτώντας τον δίσκο μου, είδα ότι έχω έναν κατάλογο backup, μα σε αυτόν ΔΕΝ παίρνω αντίγραφο το /home γιατί πολύ απλά δεν χωράει. Τα /boot /etc/ usr/etc /var/spool/cron παίρνω μονάχα και μάλιστα τα παίρνω ως snapshot. Κι εκεί ρε γμτ άτυχος. Το script είναι μια παραλαγή του abs4snap ώστε να κρατά τα τελευταία 100 και το τρέχω ανά ώρα cron.hourly και στο boot.
Τι να σου κάνει; Τίποτα.
ΤΙ ΤΙΠΟΤΑ ?
μα προηγουμένως δεν είπα ότι έχω τροποποιήσει το pamusb για να γράφει το κλειδί στον κατάλογο etc ? δεν είπα ότι το τρέχω στο boot και κάθε μια ώρα ?
Και ΝΑΙ, το abs4snap είχε ήδη πάρει αντίγραφο το αρχικό τυχαίο κλειδί !
το αντέγραψα κάτω από το /root κι έκανα την δοκιμή. Κάπου εκεί σταύρωσα τα δάχτυλα κι έκανα και μια σταυροκοπιά (μπας …) και τρέχω την εντολή.
Περιμένω να τελειώσει και …
έπαιξε !!!!
Ναι, ναι ναι σχεδόν 4 ώρες μετά κατάφερα να κάνω decrypt το /home μου.
Να βρω όλα τα αρχεία μου
Ναι ναι ναι ναι, αυτή η αίσθηση είναι απίστευτη!
Φυσικά ξεκινώ να πάρω full backup το /home στο root filesystem για να ξανα-στήσω το encryption από την αρχή, σωστά και χωρίς πειράματα.
Αυτό το απόγευμα δεν νομίζω να το ξεχάσω πολύ εύκολα.
Ηθικό δίδαγμα #1: Μην κάνετε πειράματα σε παραγωγικά μηχανήματα. Πρώτα όλα τα test κάπου που δεν σας νοιάζει.
Ηθικό δίδαγμα #2: Πάρτε backup, ότι μπορείτε. Μπορείτε να χρησιμοποιήσετε το script μου για να πάρετε μια ιδέα, ή βρείτε κάποιον άλλο τρόπο. Είχα ξεχάσει ότι το abs4snap έτρεχε! Μα με έσωσε με την λογική των snapshots βρήκα το συγκεκριμένο αρχείο/κλειδί πριν αλλάξει, πριν γίνει overwrite.