Evaggelos Balaskas - System Engineer

The sky above the port was the color of television, tuned to a dead channel

Blog
Posts
Wiki
About
Contact
rss.png twitter linkedin github gitlab profile for ebal on Stack Exchange

Next Page »
  -  
« Previous Page
Aug
28
2014
dnsmasq with custom hosts file
Posted by ebal at 18:14:20 in planet_ellak, planet_Sysadmin

Title: dnsmasq with custom hosts file - aka ban sites with dnsmasq

I ‘ve already said it too many times, but dnsmasq is a beautiful project for SOHO (small office/home office) environment.

I am using it as DNS caching server, DHCP server & tftpd (PXE) server and it’s amazing.

One thing i do with the dns section is that i “BAN” urls i dont like. Think something like AdBlock on firefox.
Two configuration changes:

A.

as root


wget http://winhelp2002.mvps.org/hosts.txt -O /etc/hosts.txt && 

and

B.

in /etc/dnsmasq.conf


addn-hosts=/etc/hosts.txt

You can also put the wget cmd in your crontab with the @monthly scheduler but you need to restart the dnsmasq every month!

Another amazing thing is that you can add your one entries:


echo 0.0.0.0 www.facebook.com >> /etc/hosts.txt

restart your dnsmasq service and check it:


# dig www.facebook.com @localhost +short
0.0.0.0
Tag(s): dnsmasq
    Tag: dnsmasq
Aug
26
2014
[old] GPG key
Posted by ebal at 10:10:56 in blog, planet_ellak, planet_Sysadmin

I have decided to expire my current PGP key:

EF6DC21A

0×5882be3def6dc21a is the long version !

in 30 days from now, on 25 Sep 2014.

You can still use it to send me encrypted msg and i will use it to digital sign emails (and other staff) till that day.

After the 25th of Sep you may assume that this key is no longer valid.

I haven’t decided yet if i want to upload or advertise my new GPG key.

Aug
13
2014
virtual disks
Posted by ebal at 07:34:02 in blog, wiki, planet_ellak, planet_Sysadmin

I use dd frequently. Especially when i need a backup disk image to restore it to a disk with the same geometry. Most of the case this disk image has partitions. Mounting those partitions to my system is really easy with losetup. So i gathered some basic examples here: losetup examples .

Tag(s): losetup
    Tag: losetup
May
18
2014
fluxbox simple tiling function
Posted by ebal at 22:21:52 in blog, planet_ellak, planet_Sysadmin

reading

man 5 fluxbox-keys

i found that there is

ArrangeWindows pattern / ArrangeWindowsVertical pattern / ArrangeWindowsHorizontal pattern

so i edited my


~/.fluxbox/keys

to auto-tile (vertical/horintal) with my super (window) key as shortcut

Mod4 h :arrangewindowshorizontal
Mod4 v :arrangewindowsvertical

Tag(s): fluxbox
    Tag: fluxbox
  • 2 comments
Sep
17
2013
systemd 101
Posted by ebal at 07:39:27 in planet_ellak

Wed 18 Sep 2013 19:00 @ http://hackerspace.gr

Intro Workshop for systemd !

systemd is a system and service manager for Linux, compatible with SysV and LSB init scripts

Systemd 101

Tag(s): systemd
    Tag: systemd
Sep
05
2013
Listening rtmp streams on linux
Posted by ebal at 07:10:07 in planet_ellak, planet_Sysadmin

You need to install rtmpdump.

The rtmp stream has three parts:

  • rtmp url
  • target app on server
  • playpath

eg.

streamer: ‘rtmp://cp126783.live.edgefcs.net/live’, file: ‘Alfaradiofwno@86944?.mp3′

  • rtmp url : rtmp://cp126783.live.edgefcs.net
  • target app on server : live
  • playpath : ‘Alfaradiofwno@86944?.mp3′

then pipe the stream through vlc:


rtmpdump -V --live -r rtmp://cp126783.live.edgefcs.net -a live -y 'Alfaradiofwno@86944?.mp3' | cvlc -
Tag(s): rtmp, stream, vlc
    Tag: rtmp, stream, vlc
  • 4 comments
Sep
01
2013
linux enviroment search engine. Are we there yet?
Posted by ebal at 19:50:17 in blog, planet_ellak, planet_Sysadmin

[this blog post is just a shatter idea]

Is it time to change the way we are searching? Till this moment, we were searching through the browser’s default search engine but Gnome has changed all that for everyone (even me, who doesnt use gnome!).

What we all need from a search engine: To locate our files or info. If it is not there, search the internet, privately and anonymously.

A lot of you, are going to tell (correctly) that what we are searching define us and not the search engine itself. Privacy isnt something we can measure from or within a search engine. But most people dont understand or (even worse) dont care about all that.

I use mlocate for my local file searching and sometimes find. After that is searching through my emails and then through my browser’s search engine.

Using a different browser means that i have to use a different search engine. And what if i am using gnome? It feels like Gnome is fighting firefox. And chromium/midori etc are fighting each other. I use a lot of different browsers (mostly for testing things) but at some point i just gave up and now i use three or four different web search engines!

Why all that? Why Gnome is fighting with my browser settings? Why i have to change a search engine when browsing through different browsers?

What i would like to have (as a linux user): A dead simply interface - just one text line. My “environment default search engine” would search my local files first, my emails after, wikipedia next and the internet in the end. I want to have the ability to sort, re-search through the results, tagging info (as i would do in the real life) and store all that for offline reading. As a bonus i would like to search through my social media - if i have already authorized my “environment search engine” to do that.

A modular search engine that would store (cache) locally my searches and results. Letting me figure it out - what i need from all of that. And i want to use the same engine to all of my browsers and changing it global. My “personality” would be stored on a local db inside my computer. I would like to have the ability to sync it with my laptop or work PC (secure sync - it can be done).

There is a big difference between anonymity and privacy. I am hoping everybody already understand that.

Tag(s): search
    Tag: search
Aug
19
2013
android tablet: not for me
Posted by ebal at 22:01:01 in blog, planet_ellak

It seems that android 4.x - and every fork - has a very nice feature: Multi-user external storage. It is awesome! Every app can use a namespace, a mount point that cant share with any other app. It is very useful cause if your kernel mount a storage (network/local) nobody can access it !

More info here

That said, on android you cant use a nfs/cifs mount point. You can mount it as root - but you cant use it. Useful, right ?

And thats why i shall pass the opportunity to buy an android tablet. I prefer to wait for a proper OS - one that i can use.

Extra points: in nexus7 tablet, you cant insmod modules, there is no support for cifs but nfs is working. You cant use the nfs mount point, but it doesnt matter.

Tag(s): android, nexus7
    Tag: android, nexus7
Aug
10
2013
bind: dump named db and split it into zone files
Posted by ebal at 00:08:10 in blog, planet_ellak, planet_Sysadmin

bind has a nice command to dump all the records (cache, views and zones) of a bind dns server to a single file.


> rndc --help

  dumpdb [-all|-cache|-zones] [view ...]
                Dump cache(s) to the dump file (named_dump.db).

Our named_dump.db file has 3.5m lines.

I was looking for a simple way to parse this entire formatted file and split the content of the zones to bind formatted zone files (for another project). So i was looking to implement the exactly opposite from: rndc dump --zones

i came with this:


grep 'IN' named_dump.db | awk -F[\'\/] '/Zone dump of/ {out=$2;}{print > out;}'

PS: The reason i am doing that, is that we dont have the 41435 zones to strict formatted bind zone files.
Some of them have “A” against “IN A”, some of them dont have TTL on RR (so the master TTL is in place), some of them use ‘@’ for origin etc etc etc. This is acceptable from bind, not really hard to parse when you are programming a custom provisioning mechanism.

Tag(s): bind, awk
    Tag: bind, awk
Jul
19
2013
Imitate TCP Wrapper
Posted by ebal at 23:52:21 in planet_ellak, archlinux, planet_Sysadmin

archlinux has chosen to remove TCP wrappers from it’s core packages a couple of years now.

You can read this all about here.

This is how to imitate the tcp wrapper (by the way Wietse Venema rocks! ) functionality with iptables and source range.


iptables -A INPUT -p tcp --dport 22 -m iprange --src-range 158.255.214.14-158.255.214.15 -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j DROP
Tag(s): archlinux, iptables
    Tag: archlinux, iptables
  • 1 comment
Oct
03
2012
vim wrapper for dns zone files
Posted by ebal at 09:01:08 in blog, planet_ellak, planet_Sysadmin

This blog post is based on Sotiris Tsimbonis’s work.

You should always checkzone the dns zone file you have just edited.

But you can also automate this, with a vim wrapper.

small changes @ Thu, 04 Oct 2012 14:03:15 +0300


#!/bin/sh
# ebal, Thu, 04 Oct 2012 14:03:15 +0300

/usr/sbin/named-checkconf 
RES=$?

if [ ${RES} -gt 0 ]; then
    echo ""
    echo "Fix the above errors before editing your zone file"
    echo ""
    exit ${RES}
fi

ZONE=$1
PREFIX="/var/named/"
CHECKSUM=`/usr/bin/sha1sum ${PREFIX}/${ZONE}`

/usr/bin/vim ${PREFIX}/${ZONE}

echo ""
echo "Checking ${ZONE} for errors..."
echo ""

/usr/sbin/named-checkzone -i local ${ZONE} ${PREFIX}/${ZONE}
RES=$?

if [ ${RES} -gt 0 ]; then
         echo ""
        echo "You need to fix the errors and try again."
        echo ""
        exit ${RES}
fi

SHA1SUM=`/usr/bin/sha1sum ${PREFIX}/${ZONE}`
if [[ "$CHECKSUM" != "$SHA1SUM" ]]; then
    echo "reloading zone ..."
    /usr/sbin/rndc reload  ${ZONE} 
fi

Tag(s): vim, wrapper, dns
    Tag: vim, wrapper, dns
Aug
05
2012
Install Archlinux with media 2012.08.04
Posted by ebal at 13:11:04 in planet_ellak, planet_Sysadmin

New installation guide, with screenshots,

for Arch Linux based on installation media 2012.08.04

Archlinux NetInstall based on media 2012.08.04

This guide doesnt use any automate script or menu installer.

Tag(s): archlinux
    Tag: archlinux
Jul
25
2012
Install Archlinux with media 2012.07.15
Posted by ebal at 13:46:15 in planet_ellak, planet_Sysadmin

a basic net-installation, without a menu installer or any automate script

Archlinux Installation HowTo

Tag(s): archlinux
    Tag: archlinux
Jul
06
2012
ebalaskas: #TinyCore Linux – Remaster…
Posted by ebal at 07:51:15 in planet_ellak, planet_Sysadmin, microblogging

identica.png#TinyCore Linux – Remaster http://ur1.ca/9qgcb

from Updates from ebalaskas on Identi.ca!

Tag(s): TinyCore
    Tag: TinyCore
Jul
03
2012
Snapshot the backup/clone virtual machine
Posted by ebal at 13:57:14 in planet_ellak, planet_Sysadmin

I’ve found that the best way to test something in virtualization is through snapshots.

But why snapshot the running/active virtual machine and not the backup/clone virtual machine ?


# virsh list --all
 Id    Name                           State
----------------------------------------------------
 -     winxp                          running
 -     winxpclone                 shut off

Check the clone disk format:


# qemu-img info winxpclone.disk 
image: winxpclone.disk
file format: raw
virtual size: 5.0G (5368709120 bytes)
disk size: 3.1G

And remember to convert the raw disk to qcow2 first:


# qemu-img convert -f raw winxpclone.disk  -O qcow2 winxpclone.qcow2

And then edit your clone:


# virsh edit winxpclone

to use the qcow2 disk

and finally:


# virsh snapshot-create winxpclone
Domain snapshot 1341315833 created

List the snapshots:


# virsh snapshot-list winxpclone
 Name                 Creation Time             State
------------------------------------------------------------
 1341315833           2012-07-03 14:43:53 +0300 shutoff
Tag(s): libvirt, snapshot
    Tag: libvirt, snapshot
Jul
03
2012
Clone a virtual machine
Posted by ebal at 11:09:11 in planet_ellak, planet_Sysadmin

I needed to clone a virtual win2003 machine to a nas storage.
My storage is a lvm partition.

A. Suspend the virtual machine:


# virsh suspend win2003

B. Clone the virtual machine:


# virt-clone -d -o win2003 -n win2003clone -f /nas/storage/win2003clone.raw

This command will change the name, UUID, mac address and of course storage source.

C. Resume the virtual machine:


# virsh resume win2003

Remember that you have to change the IP of the clone, so that will not conflict with the original.

Some extra tips:

If you need to change something before the clone procedure, dump the xml from the virtual machine:

  1. Dump xml

# virsh dumpxml win2003 > win2003clone.xml
  1. Edit xml

# vim win2003clone.xml
  1. Clone the virtual machine

# virt-clone -d --original-xml=/home/ebal/win2003.clone.xml -n win2003clone -f /nas/storage/win2003clone.raw --force
Tag(s): libvirt, virt-clone
    Tag: libvirt, virt-clone
Jul
02
2012
eurocrisis Vs eurocustomer
Posted by ebal at 11:12:45 in blog, planet_ellak

Μέρος Α. : eurocrisis

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

Όταν οι τράπεζες σε έπαιρναν τηλέφωνο και σε παρακάλαγαν να πάρεις καταναλωτικά δάνεια, ήταν τότε οι καλοί μας φίλοι.
Τώρα που ζητάνε τα λεφτά τους πίσω, είναι οι χειρότεροι εχθροί μας.

Σίγουρα δεν θα μπορούσαμε να αποφύγουμε το σημερινό αποτέλεσμα, πιθανά όμως να μπορούσαμε να αλλάξουμε ελαφρώς το τελικό αποτέλεσμα.

Αναφέρθηκα πιο πάνω στην αλαζονεία των ανθρώπων και θέλω να το αποσαφηνίσω κάπου εδώ. Αναφέρομαι στο λεφτά υπάρχουν. Δεν είναι απλά μια ατάκα ενός πρωθυπουργού, αλλά η αντίληψη σχεδόν της μάζας τα προηγούμενα χρόνια. Να παίξουμε στο χρηματιστήριο με δανεικά λεφτά, να αγοράσω τέσσερις τηλεοράσεις και τρία αυτοκίνητα γιατί έχω λεφτά. Μου τα δίνει η τράπεζα κι εγώ με τον κατώτατο μισθό μου σε 13468 χρόνια μπορώ να τα αποπληρώσω. Μάλιστα υπάρχουν τράπεζες που σου δανείζουν για να πληρώσεις τα δάνεια κι αυτό φυσικά με μεγαλύτερο τόκο!

Οι τράπεζες ποτέ δεν χάρισαν χρήματα και ποτέ δεν έβαλαν τον μαχαίρι στο λαιμό κανενός. Δυστυχώς όμως η αλαζονεία των ανθρώπων να αποκτήσουν αυτό που δεν έχουν (ανάγκη) έφερε πολλά νοικοκυριά, επιχειρήσεις και κράτη στον δανεισμό και στην μη πληρωμή του κεφαλαίου, πόσο μάλλον των υπέρογκων τόκων.

Μέρος Β. : eurocustomer

Να διανθίσω αυτό το post με μία ιστορία:

Την παρασκευή είχα ένα ραντεβού σε μία τεχνική/μελετητική εταιρεία. Γνώριζα ήδη ότι οι εμπλεκόμενες στον κατασκευαστικό χώρο εταιρείες, τα τελευταία τρία χρόνια έχουν περάσει άσχημα. Βρέθηκα στην εταιρεία η οποία διαθέτει: μεγάλο ισόγειο χώρο, ευρύχωρο πατάρι με αρκετά γραφείο και αντίστοιχο με το ισόγειο, υπόγειο χώρο. Γραφεία παντού!

Ο πελάτης είχε δύο προβλήματα:

α. Έχασε ένα 24port switch.
b. Έχασε τον διαχειριστή του (έφυγε).

Έμεινα στην εταιρεία για περίπου μιάμιση ώρα, αρκετή για να σχηματίσω γνώμη κι άποψη για τον χώρο, την δομημένη, τους ανθρώπους, την υποδομή και τα οικονομικά της εταιρείας.

Διαπίστωσα ότι πρέπει να περάσω αρκετές βδομάδες μέσα στον χώρο για να πάρω την εταιρεία από το σημείο μηδέν, σε μια πολύ καλή εικόνα. Τα switches από τα λαμπιόνια τους φαινόταν ότι τα Χριστούγεννα έχουν έρθει λίγο νωρίτερα και γενικά η εικόνα των συστημάτων (γεμάτοι δίσκοι, απαρχαιωμένος εξοπλισμός) έδειχναν ότι οδεύουν προς τον αδη.

και κάπου εδώ ξεκινά το γαμώτο:

1.

- (εγώ) Καλύτερα να μην αγοράσετε ένα 24port switch (50€) αλλά ένα 48port (100€) για να αντικαταστήσουμε τα μικρά (έως 12port) switches και να μπουν στην άκρη για μια ώρα ανάγκης
- (πελάτης) Δεν γίνεται αυτό που λες, ξέχασέ το.
- Ορίστε;
- Δεν μπορεί να γίνει αυτό που ζητάς. Δεν υπάρχουν τα 50€ για την αγορά του 48port, θα πρέπει να αρκεστούμε σε αυτά που έχουμε κι ίσως να αγοράσουμε από βδομάδα (να αλλάξει ο μήνας) το 24port των 50€

κάπου εκεί ψιλοστράβωσα το στόμα:

- Μια διευκρίνηση, δεν έχετε τα 50€ να αγοράσετε το 24port ή δεν έχετε τα 100€ να αγοράσετε το 48port.
- Αυτή την στιγμή δυσκολευόμαστε πάρα πολύ, ξέρεις καλά ότι οι καιροί είναι δύσκολοι και μπλα μπλα μπλα μπλα μπλα

Συγνώμη καλέ μου άνθρωπε, από την στιγμή που ΔΕΝ έχεις ούτε 50€ να αγοράσεις ένα switch, ΤΙ ΣΚΑΤΑ με έχεις μιάμιση ώρα εδώ να κοιτάζω και να καταγράφω τι χρειάζεσαι; Πως στο διάολο θα με πληρώσεις εμένα; Με κουπόνια;

2.

Μια απλή ματιά στο patch panel μου δείχνει να καταλάβω ότι υπάρχουν περίπου 100 θέσεις εργασίας.
Κοιτώντας όμως τα switches, καταλαβαίνω ότι είτε υπάρχουν κενές θέσεις ή χαλασμένα μπριζάκια.

- (εγώ) Πρέπει να γίνει εκτενής έλεγχος σε όλη την δομημένη, patch panel και switches για να βρεθούν οι θέσεις εργασίας που δεν λειτουργούν.
- (πελάτης) Δεν είναι πολλά, πέντε νομίζω θέσεις εργασίας είναι.
- Μα εγώ διαπιστώνω ότι είναι πολύ περισσότερα, να ορίστε αυτό σημαίνει ότι είτε είναι κλειστές, είτε χαλασμένες. Έχετε υποδομή 100 θέσεων.
- Μα εμείς δεν είμαστε ούτε 40 άτομα, κάποτε ήμασταν παραπάνω, αλλά τώρα ούτε 40 δεν είμαστε.
- Τότε τι το θέλεις το 24port switch; Γιατί δεν ξηλώνεις αυτά που δεν παίζουν;
- Ε αφού υπάρχουν, ας είναι περασμένα κι εδώ!

3.

Ανεβαίνει μια στιγμή στο γραφείο του, καθώς τον ενημέρωσαν για ένα σημαντικό τηλεφώνημα και μένω στον χώρο με ένα παλικαράκι γενικών καθηκόντων.

- (παλικαράκι) Εκεί που δουλεύεις, είναι καλά;
- (εγώ) Καλά είναι, έχουμε κι εμείς προβλήματα βέβαια.
- α μάλιστα, δεν πληρώνεστε κι εσείς ε ;
- μας έχουν μειώσει τον μισθό, αλλά ναι πληρωνόμαστε.
- εμείς εδώ έχουμε να πληρωθούμε 7 μήνες!

4.

Γρήγορα γρήγορα ανεβαίνω στο γραφείο του για να μιλήσουμε λίγο για την υποδομή.

- (εγώ) ξέρετε, οι δίσκοι των servers έχουν γεμίσει και πιθανά στα επόμενα λεπτά να μην μπορείτε να αποθηκεύεται τα αρχεία σας στους fileservers
- Αποκλείεται, εάν είχαν γεμίσει θα το είχαμε καταλάβει.
- Μπορείτε απλά να το δείτε από τον υπολογιστή σας, αυτός ο map drive είναι.
- Πως;;;;; 628kb ελεύθερα. Μα πως; Πότε; Γιατί ;

Θεώρησα καλύτερο να τον λυπηθώ αντί να τον βρίσω (όπως του άξιζε). Του πρότεινα να βρει κανα φοιτητή που θέλει να βγάλει ένα μικρό χαρτζιλίκι, να πάρει ότι θέλει - θα έχει εγγύηση για ένα χρόνο - κι έφυγα.

  • 1 comment
Jun
26
2012
libvirt attach virtual hard disk
Posted by ebal at 08:40:19 in planet_ellak, planet_Sysadmin

Dynamic allocation of a virtual hard disk to a virtual machine:


# lvcreate -L 80G -n vg01/data

# virsh attach-disk win2008 /dev/vg_telekvm/profiles vdb
Tag(s): libvirt
    Tag: libvirt
Jun
22
2012
libvirt hotplug usb device
Posted by ebal at 14:01:34 in planet_ellak, planet_Sysadmin

You need to attach a usb device to a libvirt domain without rebooting the virtual machine.

Lets figure this together:

  1. Locate the usb device:

# lsusb -v

  idVendor           0x0781 SanDisk Corp.
  idProduct          0x5567 Cruzer Blade

  1. Build the below XML:

usb_device.xml


    <hostdev mode='subsystem' type='usb' managed='yes'>
      <source>
        <vendor id='0x0781'/>
        <product id='0x5567'/>
      </source>
    </hostdev>
  1. Attach device

# virsh attach-device VIRTUAL_MACHINE usb_device.xml

and if you want to de-attach:

  1. De-attache device

# virsh detach-device VIRTUAL_MACHINE usb_device.xml
Tag(s): libvirt
    Tag: libvirt
  • 1 comment
Jun
13
2012
Make Strong Passwords
Posted by ebal at 11:02:19 in blog, planet_ellak

Πριν από λίγες μέρες αναρτήθηκαν στο διαδίκτυο τα “ανάλατα” hashed συνθηματικά των χρηστών από κάποια δημοφιλή site (linkedin, last.fm, eharmony).

Διάβασα αρκετά άρθρα γύρω από το θέμα, την ασφάλεια των διαδικτυακών ιστοτόπων, την προστασία των χρηστών και διάφορες τεχνικές που χρησιμοποιούνται ευρέως. Δυστυχώς εάν και τεχνικά άρθρα τα περισσότερα ΔΕΝ εξηγούσαν με απλό τρόπο τι έχει γίνει, πως μας επηρεάζει (ως χρήστες του διαδικτύου), τι επιπτώσεις έχει πάνω μας και πως μπορούμε να προστατευτούμε από παρόμοιες περιπτώσεις.

Θα προσπαθήσω μέσα από αυτό το άρθρο, μη μιλώντας πολύ τεχνικά, να εξηγήσω κάποια πράγματα και να διορθώσω τις λανθασμένες απόψεις μερικών “ειδικών” που όπως φαίνεται δεν γνωρίζουν από απλά μαθηματικά! Ο σκοπός αυτού του άρθρου είναι καθαρά ενημερωτικός κι όχι εκπαιδευτικός

The Story

Θα ξεκινήσουμε από το τι ακριβώς έγινε.

Τι ειπώθηκε: “Δημοσιεύτηκαν οι κρυπτογραφημένοι κωδικοί”
Τι εν τέλη έγινε και γιατί αυτό που ακούσαμε/διαβάσαμε είναι λάθος.

Εάν και υπάρχει πολύ μεγάλη (και θεωρητική) συζήτηση πίσω από αυτό το θέμα, θα αρκεστούμε ότι κρυπτογραφία σημαίνει ότι μπορώ και να κρυπτογραφήσω και να αποκρυπτογραφήσω το περιεχόμενο/αποτέλεσμα ενός αρχείου.

Τα συνθηματικά ΔΕΝ αποθηκεύονται κρυπτογραφημένα, δλδ δεν μπορούν να αποκρυπτογραφηθούν.
Αποθηκεύονται μετασχηματισμένα με βάση κρυπτογραφικών αλγόριθμων.
Οι δύο πιο γνωστοί είναι ο md5 και ο sha1 (και φυσικά οι παραλλαγές τους).
Οι μαθητικοί αλγόριθμοι hash (md5/sha1) έχουν την ιδιότητα ότι για οποιοδήποτε είσοδο (ανεξαρτήτως μέγεθος) παράγουν ένα αποτέλεσμα 32 χαρακτήρων (md5) και 40 χαρακτήρων (sha1) αντίστοιχα.

Από το αποτέλεσμα δεν μπορείς να βρεις την αρχική είσοδο.

Ας κάνουμε ένα παράδειγμα:


$ echo -n test | md5sum 
098f6bcd4621d373cade4e832627b4f6

$ echo -n test | sha1sum
a94a8fe5ccb19ba61c4c0873d391e987982fbbd3

Αυτά που κυκλοφόρησαν είναι τα παραπάνω hashed των κωδικών.
Λόγω του περιορισμού των χαρακτήρων (32/40 αντίστοιχα) προκύπτει ότι μπορεί να παραχθεί το ίδιο hash από δύο διαφορετικά συνθηματικά (αδυναμία αλγόριθμου).

Hashes

  • Οπότε αφού δεν αποθηκεύεται clear text το συνθηματικό μου, είμαι ασφαλής;
  • Όχι!

Οι hackers τι κάνουν;

Χρησιμοποιούν λεξικά (όχι μόνο το english.dic αλλά γενικά λεξικά με latin based characters) και με την χρήση των σύγχρονων υπολογιστικών συστημάτων, παράγουν hashes με βάση τα λεξικά. Συγκρίνουν τα hashes με βάση την λέξη εισόδου κι έτσι ανακαλύπτουν τον αρχικό κωδικό. Πλέον αυτά τα προγράμματα έχουν προσαρμοστεί ώστε να παράγουν και τις παραλλαγές των κωδικών αυτών.

Για παράδειγμα, αντικαθιστούν το λατινικό γράμμα l (L) με 1 ή !, ομοίως και το i, κι ούτω καθεξής.
Έτσι για την λέξη: lemon δοκιμάζει και τις παρακάτω παραλλαγές:

lemon
1emon
!emon
l3mon
l#mon
lem0n
lemOn
lem)n

Δυστυχώς δεν έχουμε ακόμα εκπαιδεύσει σωστά τους χρήστες μας, οπότε πιθανά στο site: example.com
τα πιο συνήθη συνθηματικά θα είναι της εξής μορφής:

3x@mpl#

παραλλαγή δλδ του ίδιου domain!

Εμείς θεωρούμε ότι έχουμε ένα δύσκολο (για να θυμόμαστε) κωδικό ενώ αντιθέτως οι hackers έχουν ήδη τον κωδικό στο λεξικό τους! Συγκρίνοντας τα unsalted hashed μπορούν να βρουν τους κωδικούς μας.

Salted Hashes

Αφού διευκρινίσαμε ότι δεν υπάρχει μεγάλη ασφάλεια με τα unsalted hashed (εάν φυσικά διαρρεύσουν), ας προχωρήσουμε με το τι είναι τα salted hashes.

Τα salted hashes είναι τα αλφαριθμητικά που προκύπτουν από την προσθήκη τυχαίων χαρακτήρων στο αρχικό συνθηματικό. Η προσθήκη γίνεται όμως πάντα με τον ίδιο τρόπο (αρχή ή τέλος). Κάθε προγραμματιστής που σέβεται τους χρήστες του, θα πρέπει να ακολουθεί το παραπάνω μηχανισμό. Από την στιγμή που αλλάζει δυναμικά το συνθηματικό, στην βάση αποθηκεύεται πλέον το salted hash κι αυτό δεν έχει καμία σχέση με το αρχικό μας συνθηματικό.

Να το δούμε λίγο πρακτικά με ένα πολύ απλό παράδειγμα.

Εμείς δίνουμε τον κωδικό: test
Προστίθεται το “αλάτι” : “f0c8454f070d1a”

Γίνεται δυναμικά : “test + f0c8454f070d1a”

Τώρα συγκρίνουμε τα hashes:


$ echo -n test | sha256sum -
9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08  -

$ echo -n testf0c8454f070d1a | sha256sum -
fdcbbbbf0081199f46fa0629c0faa06a6a99cf22a5ff63f17b0ebb88e355c6e5  -

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

Security

Άρα είμαστε πλέον ασφαλής.

  • Όχι.

Τα salted hashes μας προστατεύουν μονάχα εάν διαρρεύσει η βάση με τους κωδικούς.
Δεν μας προστατεύει από την αδυναμία του ίδιου μας του κωδικού. Δλδ το πόσο εύκολα μπορεί να βρεθεί.

Όπως φαίνεται οι hackers διαθέτουν (τουλάχιστον) μια βάση με 6 εκατομμύρια unsalted hashed κωδικούς. Κι όλα αυτά μονάχα από ένα site! Είναι αυτονόητο, ότι όσο πιο πολλές βάσεις hack-εύουν τόσο πιο εύκολο γίνεται για αυτούς να “μαντέψουν” το δικό μας αρχικό κωδικό.

  • Τι επίπτωση έχει σε εμάς, εάν διαρρεύσει ο κωδικός από ένα από τα παραπάνω sites;

Εάν έχω τον λογαριασμό ebal σε ένα site με κωδικό test, τότε σε ένα άλλο site θα έχω (πιθανά) test1 ή όνομα χρήστη: ebal1 κι ούτω καθεξής.

Ορίστε πως περίπου είναι οι περισσότεροι χρήστες:

site: username: password
site1: ebal : test
site2: ebal: test1
site3: ebal: test!
site4: Evaggelos: test!
site5: EvaggelosBalaskas: test1!
site6: ebalaskas _at_ ebalaskas _gr_: t3st1!

Με λίγα λόγια, εάν μας “φάνε” τον κωδικό από ένα site, είναι πολύ εύκολο εν δυνάμει να μας “φάνε” τους λογαριασμούς μας κι από τρίτα sites. Αφού έχουν “εκπαιδεύσει” τα προγράμματά τους με τις νέες παραλλαγές κωδικών.

Strong Passwords

Οι άνθρωποι που ασχολούνται επαγγελματικά με το “σπάσιμο” κωδικών, στις μέρες μας είναι εξοπλισμένοι με την τελευταία τεχνολογικά υπολογιστική δύναμη που κάνει την δουλειά τους αρκετά εύκολη. Ενώ πριν μερικά χρόνια ήθελαν μερικούς μήνες, τώρα αρκούν μερικές ώρες. Κατά μέσο όρο, σε περίπου 6 ώρες ένα unsalted md5 hash σπάει, σε λιγότερο από 3 ώρες εάν είναι βασισμένο σε λεξικό, σε λιγότερο από μια ώρα εάν είναι κάτω από 8 χαρακτήρες, σε 15 λεπτά εάν είναι 6 χαρακτήρες. Σε 1 κλάσμα εάν είναι το 123456.

Επίσης με τόσους κωδικούς, μπορούν να παράγουν κι όλες τις δυνατές παραλλαγές. Οπότε το strong>3x@mpl#</strong θέλει περίπου 1.5λεπτό!

Κατ’ εμέ το βασικότερο πρόβλημα στην παραγωγή κωδικών είναι η δημιουργία μικρών αλλά δύσκολων κωδικών.
Εάν πιστεύεται ότι ο κωδικός σας, είναι δύσκολος, έχει γράμματα, έχει κεφαλαία, έχει αριθμούς, έχει σύμβολα και τον θυμάστε δύσκολα, αλλά είναι 8 με 10 χαρακτήρες, τότε κάνετε ένα μεγάλο ΛΑΘΟΣ!

Έχετε δημιουργήσει έναν πολύ δύσκολο κωδικό για ανθρώπους, αλλά έναν πολύ εύκολο για να σπάσει από κάποιο πρόγραμμα!!!

Η πρόταση μου:

Οι κωδικοί πρέπει να είναι αρκετά μεγάλοι (τουλάχιστον 16χαρακτήρες) και να μην βασίζονται σε λεξικά. Εάν θέλω να φτιάξω έναν κωδικό για το email μου τότε το: ” ένας κωδικός για το email μου ” είναι κάτι που μπορώ να θυμάμαι και το αποτέλεσμα με λατινικούς χαρακτήρες είναι το: “enaskwdikosgiatoemailmou” το οποίο θέλει περίπου: 30.11 trillion centuries

Είναι τόσο απλό, οι πολλοί χαρακτήρες αυξάνουν γεωμετρικά την δυσκολία σε ένα κωδικό.
Το “strong>kWdik0sem@il1</strong” ( παραλλαγή του “κωδικός email 1”) είναι πιο εύκολο να σπάσει από το “enaskwdikosgiatoemailmou” !!!

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

Conclusion

Πολύ μεγάλη προσοχή, ακόμα κι εάν δεν είχατε λογαριασμό στα παραπάνω sites.
Ξεκινήστε να αλλάζετε όλους τους κωδικούς σας, σε όλα τα sites που έχετε.
Δημιουργήστε εύκολους κωδικούς που να μπορείτε να τους θυμάστε, αλλά μεγάλους.

ΜΗΝ χρησιμοποιείτε μέρος του site,
ΜΗΝ χρησιμοποιείτε λέξεις από λεξικό,
ΜΗΝ χρησιμοποιείτε λιγότερο από 16 χαρακτήρες

και
ΚΑΛΗ ΤΥΧΗ

ρίξτε μια ματιά στα εξής sites:

Password Haystacks
Strong Password Generator
Password Strength

Tag(s): password
    Tag: password
  • 2 comments
Next Page »
  -  
« Previous Page

Search

Admin area

  • Login

Categories

  • blog
  • wiki
  • pirsynd
  • midori
  • books
  • archlinux
  • movies
  • xfce
  • code
  • beer
  • planet_ellak
  • planet_Sysadmin
  • microblogging
  • UH572
  • KoboGlo
  • planet_fsfe

Archives

  • 2025
    • April
    • March
    • February
  • 2024
    • November
    • October
    • August
    • April
    • March
  • 2023
    • May
    • April
  • 2022
    • November
    • October
    • August
    • February
  • 2021
    • November
    • July
    • June
    • May
    • April
    • March
    • February
  • 2020
    • December
    • November
    • September
    • August
    • June
    • May
    • April
    • March
    • January
  • 2019
    • December
    • October
    • September
    • August
    • July
    • June
    • May
    • April
    • March
    • February
    • January
  • 2018
    • December
    • November
    • October
    • September
    • August
    • June
    • May
    • April
    • March
    • February
    • January
  • 2017
    • December
    • October
    • September
    • August
    • July
    • June
    • May
    • April
    • March
    • February
    • January
  • 2016
    • December
    • November
    • October
    • August
    • July
    • June
    • May
    • April
    • March
    • February
    • January
  • 2015
    • December
    • November
    • October
    • September
    • August
    • July
    • June
    • May
    • April
    • March
    • January
  • 2014
    • December
    • November
    • October
    • September
    • August
    • July
    • June
    • May
    • April
    • March
    • February
    • January
  • 2013
    • December
    • November
    • October
    • September
    • August
    • July
    • June
    • May
    • April
    • March
    • February
    • January
  • 2012
    • December
    • November
    • October
    • September
    • August
    • July
    • June
    • May
    • April
    • March
    • February
    • January
  • 2011
    • December
    • November
    • October
    • September
    • August
    • July
    • June
    • May
    • April
    • March
    • February
    • January
  • 2010
    • December
    • November
    • October
    • September
    • August
    • July
    • June
    • May
    • April
    • March
    • February
    • January
  • 2009
    • December
    • November
    • October
    • September
    • August
    • July
    • June
    • May
    • April
    • March
    • February
    • January
Ευάγγελος.Μπαλάσκας.gr

License GNU FDL 1.3 - CC BY-SA 3.0