Skip to Content

trikovi

OpenSSL za priručnu enkripciju

Brzo i jednostavno enkriptovanje fajlova (ukoliko pri ruci nije GPG ili nešto slično) se može postići pomoću OpenSSL paketa koji je instaliran podrazumevano na skoro svim mogućim računarima sa GNU/Linuxom.

Enkriptovanje fajla fajl.txt se vrši na sledeći način:

openssl enc -aes-256-cbc -salt -in fajl.txt -out fajl.enc

Fajl kasnije možete vratiti u normalno stanje sledećom komandom:

openssl enc -d -aes-256-cbc -in fajl.enc

U ovim gore primerima smo koristili AES algoritam za enkripciju, ukoliko želite neki drugi pomoću sledeće komande možete videti koje OpenSSL podržava:

openssl -h

I to je to.

Geografska dužina i širina na Google Maps

Google Maps servis ne pruža odmah vidljive informaciji o geografskoj dužini i širini mesta koje vas interesuje. No, ukoliko je tačka koja vas interesuje u centru mape, dovoljno je da iskopirate ovaj JavaScript u polje za adresu browsera i pritisnete enter:

javascript:void(prompt('',gApplication.getMap().getCenter()));

Iskočiće dijalog prozorčić u kome će se nalaziti potrebne informacije.

Tar i ja

Aha! Suočen s velikim direktorijumom sa velikim brojem malih fajlova, odlučio sam ga iskopirati na drugi mašinu. Prvo što mi je palo na pamet je da iskopiram pomoću OpenSSH alata za kopiranje: scp. I to je super, ali ogroman broj fajlova znači da bi se dosta vremena i bandwidtha potrošilo bez potrebe. Treba to nekako streamovati, a kao rešenje se nametnuo tar. Evo komande:

tar -cf - /neki/direktorijum | ssh udaljeni.host tar -xf - -C /odredišni/direktorijum

Način funkcionisanja ove linije je prilično jednostavan. Parametrom -c kažemo taru da počne praviti arhivu (bez bespotrebne kompresije), a -f - govori da arhivu izbacuje na stdout (standardni izlaz). S druge strane, na udaljenom računaru, isto pokrećem tar ali sa obrnutim parametrima: -x znači raspakuj arhivu, a -f - govori taru da je čeka na stdin. I ide. Nažalost, nema nikakvog statusa ili predviđenog vremena za završetak, i rsync bi ovaj posao mnogo lepše odradio, pogotovo ukoliko se isto stablo nalazi i sa druge strane, ali ovaj način je brz, jednostavan i radi posao.

Synergy - kratko uputstvo

Synergy logoSynergy je zgodan program pomoću kojeg je moguće deliti jednog miša i jednu tastaturu između više računara, od kojih svako ima svoj monitor. Nije potreban nikakav dodatni hardver (tipa KVM uređaja), namenjen je onim korisnicima koji imaju više računara na svom stolu od kojih svaki ima svoj monitor. A ja sam takav :) Dalje, Synergy podržava Unix, GNU/Linux, Windows 95/NT familiju i OS X operativne sisteme. Što znači da je skoro sve pokriveno :)

Prebacivanje na drugi ekran se postiže jednostavnim pomeranjem miša preko ivice ekrana. Synergy takođe spaja clipboard-e svih sistema u jedan, tako da je copy/paste između sistema moguće. Ali to nije sve - sinhronizuju se i screensaver-i tako da svi staju i kreću kao jedan, a ako je uključeno zaključavanje ekrana (ne znam da li je ovo podržano u Windows operativnim sistemima), u samo jedan ekran treba uneti lozinku da bi se svi otključali.

To je kao neki opis. Lično, meni je počela smetati dodatna tastatura i miš na stolu, pa sam instalirao Synergy i produktivnost mi je povećana iz jednostavnog razloga što više ne pomeram ruke na drugu tastaturu kada želim nešto da uradim na drugom računaru. Ovde ću opisati koliko je jednostavno instalirati i početi koristiti Synergy na setupu od dva računara (jedan Debian Sid, drugi Ubuntu server).

Prvo sam instalirao Synergy na oba računara identičnom komandom:

apt-get install synergy

Vrlo jednostavno. Zatim je potrebno odlučiti koji će računar biti server, a koji klijent. S tim da je server onaj računar na kojem se nalaze tastatura i miš koji će se koristiti. Onda je potrebno podesiti server računar tako što će se napraviti jednostavan konfiguracioni fajl u $HOME direktorijumu pod imenom .synergy.conf. Evo kako taj fajl izgleda kod mene:

section: screens
        amiga:
        exitserver:
end
section: links
        amiga:
                right = exitserver
        exitserver:
                left = amiga

end

Dakle, amiga je server, a exitserver je klijent računar. Kada smo napravili konfiguracioni fajl za server, startovaćemo server sledećom komandom:

synergys -f

Parametar -f sprečava synergy da ode u pozadinu, već ga primorava da ostane u terminalu i da ispisuje šta mu se dešava. To će pomoći kod prvog podešavanja, da bi se uklonili problemi. Nakon što je sve podešeno, može se izbaciti ovaj parametar da bi se oslobodila konzola.

Zatim, treba startovati synergy na klijentskom računaru, što je vrlo jednostavno pošto nema potrebe za ikakvih konfiguracionim fajlovima. Startuje se sa:

synergyc -f ADRESA_SERVER_RAČUNARA

Dakle, potrebno je samo navesti adresu server računara.

Nakon svega ovoga probati da li jedan miš i tastatura kontrolišu oba desktopa, i ako je sve u redu, dalje se može koristiti bez -f parametra. Za načine da se Synergy pokrene pri startovanju računara pogledajte uputstva na sajtu projekta ili na ovom zgodnom Ubuntu wikiju. Što se tiče sigurnosti, Synergy ne implementira nikakav sistem zaštite informacija koje se razmenjuju niti bilo kakav način autentifikacije, stoga oprez. Na sajtu projekta možete pronaći i način kako da načinite vezu sigurnom, pa možete koristiti Synergy i na nesigurnim mrežama.

U svakom slučaju, posetite sajt, ima dosta zanimljivih informacija i ideja za implementaciju.

Adios ;)

Curlftpfs - FTP više nije ograničenje

Mnogo web hosting firmi ne pruža klasični shell pristup svojim korisnicima. Najčešće se radi o tzv. shared hosting rešenju, gde više sajtova deli isti server, no u ovom dobu virtualizacije, uglavnom se odbijanje shell pristupa pravda sigurnošću.

A šta ako ja moram da uradim nešto što je nemoguće izvesti preko FTP naloga? Na primer, šta ako moram da obrišem fajlove iz određenog direktorijuma ukoliko su stariji od 10 dana? Ili ako moram da promenim veličinu svih slika u svim podirektorijumima? Takve, a i mnoge druge, stvari koje su relativno česte u administratorskim vodama je apsolutno nemoguće izvesti preko FTP naloga.

GNU/Linux ne bi bio ono što jeste da ne postoji rešenje za ovaj problem. Upoznajte Curlftpfs! Ne baš sexy stranica ovog programa vas može zavarati, ali nemojte dopustiti da odelo sudi - radi se o veoma moćnom alatu.

Instaliranje u modernim distribucijama je više nego lako. U Debijanu:

apt-get install curlftpfs

Sada je sve spremno. Curlftpfs koristi FUSE podsistem Linux kernela, pa ćemo jednostavno montirati FTP server. Sve što je potrebno da znate jesu: adresa FTP servera i korisničko ime i lozinka ukoliko su potrebni. Dakle, prvo montiramo FTP server:

curlftpfs ftp://korisnik:loznika@ftp.mojsajt.com $HOME/sajt

Sada se ceo sadržaj kojem biste pristupali preko FTP klijenta praktično nalazi na vašem fajl sistemu, spreman za korišćenje. Da se vratim svojim pitanjima s početka ovog pisanja.

Brisanje starih fajlova? Nije problem:

cd $HOME/sajt/cache
find . -mtime +10 -exec rm -f '{}' \;

A kako promeniti veličinu gomile slika u svim poddirektorijumima? Veoma lako:

cd $HOME/sajt/cache
find . -name \*.png -exec convert '{}' -resize 800x600! '{}' \;

Ta-da!

Kada je sve završeno, veza sa serverom se prekida preko fusermount programa:

fusermount -u $HOME/sajt

Curlftpfs je, kao što vidite, malo i moćno programče. Toliko je savršen da će ponovo uspostaviti vezu sa serverom, ukoliko istekne timeout (većina host kompanija prekidaju FTP konekcije nakon 15-ak minuta neaktivnosti). Jednostavno montirate, i ne mislite više o tome - kao da je vaš sajt na vašem računaru.

Jedna mala napomena: curlftpfs zavisi od biblioteke pod imenom libcurl, a usled određenih bagova u verzijama 7.15.5 i 7.16.0 te biblioteke može se desiti da odbija da napravi konekciju. Tako da proverite verziju libcurl biblioteke ukoliko primetite neki problem. Kod mene sve radi besprekorno a verzije su:

libcurl: 7.18.0
curlftpfs: 0.9.1

Tsocks, za restriktivne slučajeve

Sigurno vam se desilo da se nalazite na mreži sa koje imate ograničen izlaz. Na primer, mnogobrojne javne wireless mreže blokiraju sve osim standardnog Web sadržaja. Ili, na mom poslu, administrator nam ne dozvoljava da slušamo online radio stanice :)

S druge strane, možete se nalaziti na nesigurnoj mreži (kao što su gore pomenute wireless mreže), pa ne biste vrlo rado odavali svoje lozinke nepoznatim administratorima i radoznalim hakerima. Ovo rešenje važi i za te slučajeve.

Sve što vam treba je program pod imenom tsocks i jedna mašina na Internetu kojoj imate pristup (vaš kućni računar, itd.).

Prvo instalirajte tsocks:

apt-get install tsocks

Zatim otvorite fajl /etc/tsocks i podesite default server stavku da izgleda ovako:

server = 127.0.0.1
server_type = 5
server_port = 1080

Sledeće otvorite SSH konekciju sa SOCKS tunelom prema vašoj mašini na Internetu:

ssh -D 1080 korisnik@mašina.com

Za ovu poslednju komandu ćete verovatno morati preći u root nalog, a to možete izbeći tako što izaberete viši port.

I sada ćemo ostaviti SSH konekciju u terminalu, a za svaku aplikaciju koju želimo koristiti tako da izbegava ograničenja lokalne mreže koristićemo sledeći način startovanja:

tsocks amarok &

Ili, ako želite na siguran način da proverite svoju poštu (sav saobraćaj će biti šifrovan preko SSH):

tsocks thunderbird &

Uostalom, shvatate poentu...

Odakle je ovaj fajl?

Mali Debian savet, za slučaj da trebate pronaći kojem tačno paketu pripada određeni fajl:

$ dpkg -S /bin/ls
coreutils: /bin/ls

SSH savet

Kopiranje SSH javnog ključa na novi, udaljeni, sistem je kratak, ponavljajući i dosadan zadatak. Šteta što ranije nisam saznao sa ssh-copy-id komandu, koja dolazi u paketu sa OpenSSH.

Sve što je potrebno da biste iskopirali svoj javni ključ je sledeće:

ssh-copy-id korisnik@mašina.com

Svaki sledeći login će ići preko ključeva. Podrazumevani javni ključ je uvek ~/.ssh/id_rsa.pub, a drugi ključ možete navesti preko -i parametra. Uostalom, pogledajte man stranicu.

Syndicate content