Professional Documents
Culture Documents
Broj 51
Broj 51
ЈOŠ IZDVAJAMO
Аnsibl - kontrola na vrhovim vaših prstiju
Programski jezik R i njegova primena u nauci o podacimа
1
Creative Commons Autorstvo-Nekomercijalno-Deliti pod istim uslovima
Li B R E ! ČASOPIS O SLOBODNOM SOFTVERU Oktobar 2019.
Reč urednika
U više navrata smo se trudili da kroz članke u Časopisu istaknemo značaj upotrebe
slobodnog softvera u školama. U prethodnom broju smo objavili članak o primeru
upotrebe na fakultetu u Novom Sadu, a za ovaj broj smo našli odličan primer upotrebe u
osnovoj školi u Zenici. Članak pod nazivom „Softver otvorenog koda u nastavi - osvrt iz
ličnog iskustva na prije i poslije” je pored konkretnih argumenata za upotrebu naveo i
koje su sve pozitivne promene zapažene u toj školi.
Takođe bi želeli da spomenemo da je pre nastanka časopisa GNU-Linuks centar ostvario
projekat instalacije slobodnog softvera u pet srednjih škola u Srbiji. Ukoliko neka osoba
ima informaciju koje su to škole i da li se u njima još uvek koristi slobodan softver,
zamolili bismo je da nam javi.
U ovom broju ćete imati priliku da se upoznate sa programskim jezikom R i naukom o
podacima, ova tema će biti obrađivana u par narednih brojeva i u ovom ćete saznati i
malo o upotrebi ovog jezika na Elektrotehničkom fakultetu u Beogradu. Još jedan serijal
započet u ovom broju je posvećen pisanju skripti u Bešu. Beš je interpreter i programski
jezik u obliku komandne linije koji može naprednim korisnicima u velikoj meri da olakša
upotrebu linuks operativnih sistema.
Rubrika „Predstavljamo” u ovom broju sadrži dva operativna sistema vredna pažnje.
Jedna od predstavljenih distribucija namenjena testiranju veb aplikacija i koja polako
postaje popularna u široj zajednici - jeste Perot OS. O drugoj distribuciji, Alpajn linuksu,
tek smo započeli u ovom broju i imaćete priliku da kroz serijal u narendih nekoliko
brojeva upoznate detaljno ovaj operativni sistem.
Poznavanje Beša je nešto što se podrazumeva za sistemske administratore, a alat koji
2
Broj 51
Reč urednika
im može biti od koristi je Ansibl - alat za sistemske administratore kreiran od strane
sistemskih administratora. Na kraju, pored nastavaka ranije započetih serijala, u ovom
broju se možete upoznati sa Flejmšotom - moćnim softverom za slikanje ekrana.
Do sledećeg broja,
LiBRE! tim
3
Li B R E ! ČASOPIS O SLOBODNOM SOFTVERU Oktobar 2019.
Sadržaj
Vesti str. 6
Distrovoč str. 11
Puls slobode
Softver otvorenog koda u nastavi
osvrt na prije i poslije str. 12
Lugons manifest str. 17
Predstavljamо
Šareni svet papagaja - PerotOS str. 19
Аlpajn linuks (1. dео) str. 23
Oslobađanje
Kripto-anarhija (2. deo)
Коnačna vizija svijeta kriptoanarhista str. 28
Кako da...?
Flejmšot - moćni softver za slikanje ekrana str. 33
Uvod u funkcionalno programiranje (3. deo) str. 37
Slobodni profesionalac
Ansibl - kontrola na vrhovima vaših prstiju str. 42
Programski jezik R i njegova primena u nauci o podacima
(1. deo) str. 46
Sam svој majstor
Pisanje skripti u Bešu (1. deo) - Uvod str. 49
Moć slobodnog
softvera
4
Broj 51
LiBRE! prijatelji
Tilda
H KLB G D cryptoparty
Broj: 51
49 Autori u ovom broju:
Izvršni urednik: Nikola Todorović Marjan Bugarinović Liora
Marjan Đuran Omer Ramić
Главниlektor:
Glavni лектор: Marko Jovanović Nadica Miljković
АдмирHalilkanović
Admir Халилкановић Nikola Todorović Stefan Nožinić
Лектура:
Lektura: Počasni članovi redakcije:
ЈеленаMunćan
Jelena Мунћан Saška
СашкаSpišjak
Спишјак Dejan Maglov Mihajlo Bogdanović
АлександарBožinović
Aleksandar Божиновић Vladimir Popadaić Željko Šarić
БраниславаIlićИлић
Branislava Аleksandar Stanisavljević
Маја Cvetković
Maja Цветковић Željko Popivoda
Grafička obrada:
Графичка обрада: Е-pošta: libre@lugons.org
Зоран Lazarević
Zoran Лазаревић Veb: http:/libre.lugons.org
Дизајн:WhiteWhite
Dizajn: CircleCircle
Creative
Creative
TeamTeam Kontakt:
IRC: #floss-magazin на irc.freenod
5
Li B R E ! ČASOPIS O SLOBODNOM SOFTVERU Oktobar 2019.
Vesti
12. mart 2019.
6
Broj 51
Vesti
posvetiti više pažnje razvoju jedne distribucije
umesto dve.
Korisni link: https://zd.net/2F87Hj1
https://bit.ly/2Pw0P38
2. maj 2019.
7
Li B R E ! ČASOPIS O SLOBODNOM SOFTVERU Oktobar 2019.
Vesti
zameniti nekim linuks operativnim sistemom.
Trenutno, ministarstvo unutrašnjih poslova radi
na testiranju linuks distribucije koja bi trebala da
bude zamena.
Korisni link: https://tek.io/2kFh0Qu
1. jun 2019.
Pajser konferencija
U Novom Sadu se 1. juna održala druga po redu
Pajser konferencija posvećena Pajton
programskom jeziku i projektima pisanim u istom.
Snimci predavanja su dostupni za gledanje putem
linka ispod, a na nekim predavanjima možete čuti
i o projektima Tilda centra.
Korisni link: https://bit.ly/2mHYIyM
24. jun 2019.
Raspberry Pi 4 u prodaji
Raspberry Pi fondacija je pustila u prodaju novu
verziju popularnog malog računara. Po fizičkom
izgledu se ne razlikuje puno od svog prethodnika,
ali što se tiče hardverskih specifikacija, u odnosu
na stariji, novi model ima moćniji procesor,
verziju koja dolazi sa 4 GB ram memorije i dva
mikro HDMI porta.
Korisni link: https://tcrn.ch/2x8DdsH
8
Broj 51
Vesti
1. jul 2019.
Francuska doprinosi
projektima otvorenog koda
Zabeležen je povećan doprinos projektima
otvorenog koda od strane Francuskih javnih
institucija. Programeri koji su zaposleni na
projektima Francuske vlade koji se hostuju na
Githabu, poslednjih godina sve više doprinose tim
projektima, ali i tuđim projektima otvorenog
koda, poput OpenDNSSec i Mozilin TheHive
projekat.
Korisni link: https://bit.ly/2kfjyop
13. septembar 2019.
9
Li B R E ! ČASOPIS O SLOBODNOM SOFTVERU Oktobar 2019.
Vesti
vode, održan je od 13. do 15. septembra u
Novom Sadu. Pored naprednih predavanja na
koje smo navikli, ove godine je Balkon imao dosta
radionica i predavanja koji su bili za početnike
zainteresovane sa bezbednost u računarstvu.
Korisni link: https://bit.ly/2mc1egz
16. septembar 2019.
10
Broj 51
Distrovoč
Pregled popularnosti Gnu-Linuks i BSD distribucija u
poslednjih šest meseci
1 MX Linux 4873>
2 Manjaro 2663<
3 Mint 2043=
4 Debian 1513>
5 Ubuntu 1397<
6 elementary 1327<
7 Solus 1077<
8 Fedora 1018>
9 deepin 835>
10 Zorin 829<
11 openSUSE 794<
12 antiX 716-
13 CentOS 670>
14 KDE neon 649-
15 PCLinuxOS 603>
16 ArcoLinux 601>
17 Arch 591-
18 Pop!_OS 548>
19 ReactOS 527-
20 Mageia 481-
21 Parrot 451>
Pad <
22 Kali 447-
Porast > 23 Lite 434-
Isti rejting = 24 Puppy 399<
(Korišćeni podaci sa Distrovoča)
25 FreeBSD 383>
11
Li B R E ! ČASOPIS O SLOBODNOM SOFTVERU Oktobar 2019.
Puls slobode
12
Broj 51
13
Li B R E ! ČASOPIS O SLOBODNOM SOFTVERU Oktobar 2019.
Puls slobode
14
Broj 51
15
Li B R E ! ČASOPIS O SLOBODNOM SOFTVERU Oktobar 2019.
Puls slobode
Dodatni razlozi ličnog preferiranja OSS-a u
nastavi i nauci
Već u 7. razredu osnovne škole, kada se rade praktični radovi u obliku prezentacija,
učenicima se predstavlja pojam intelektualne svojine i standarda Creative
Commons licence.
Standard otvorenog koda svakako se nadopunjava na ove licence tako što
omogućava učenicima da slobodno kopiraju, dijele i koriste tehnologiju besplatno.
Veliki broj ljudi koristi softver otvorenog koda zbog toga što imaju daleko veću
kontrolu nad određenom vrstom softvera, jer mogu da pregledaju kod i da se
uvjere da ne radi nešto opasno ili nešto što narušava privatnost. A mogu slobodno
mijenjati i ono što im nije po volji. S obzirom na to da je kod ove vrste softvera sav
kod javno dostupan, studenti mogu dosta lakše da nauče kako da stvaraju bolji
softver. Taj svoj rad mogu dijeliti sa drugima, pozivati na komentarisanje i kritiku
da bi razvili svoje sposobnosti. Kada ljudi pogriješe, mogu dijeliti i te svoje greške,
tako da drugi mogu da izbjegnu iste te greške. Ova sloboda ljudima pruža
mogućnost da postanu mnogo kreativniji u svom radu.
Bitan temelj ideje OSS-a je svakako i prihvatanje i razvoj otvorenih standarda u
svim IT sferama . Nadam se da će u skorijoj budućnosti ove nove generacije koje
koje se ne boje da koriste drugo i drugačije biti uzrok da se izbaci ustaljeno
mišljenje da se isključivo sve mora pisati i slati u vord formatu.
Zaključak
Ali kada se uistinu stvari mijenjaju? Ljudi mrze i boje se promjena iako ih
priželjkuju, žele da se sve mijenja, ali da se za njih same ništa ne promjeni kada se
radi o ličnim navikama. Uzet ću primjer sebe i kolega koji se vrlo često svim silama
opiru promjenama da ne bi morali da mijenjaju svoj način rada, razmišljanja, jer
nemaju vremena da se nose sa promjenama kojima bi morali da se prilagode.
Želim da kažem da promjene nastaju od nas samih, ukoliko se mi mijenjamo,
mijenja se i okolina sa nama. Budimo promjena koju želimo da vidimo.
16
Broj 51
Lugons manifest
Lugons manifest
17
Li B R E ! ČASOPIS O SLOBODNOM SOFTVERU Oktobar 2019.
Predstavljamo
- Pristup računarima i svemu što može da pokaže kako ovaj svet funkcioniše, treba da
bude neograničen i potpun.
- Informacije treba da budu slobodne.
- Sudi o hakerima na osnovu njihovoga rada, a ne na osnovu kriterijuma kao što su
izgled, starost, poreklo, pol ili društveno opredeljenje.
- Ne preturaj po podacima drugih.
- Koristi javne informacije, privatne štiti.
- Računari mogu da poboljšaju i unaprede kvalitet života.
- Pomoću računara, misao i ideja mogu da se pretvore u kreativnu umetnost.
“Svaka je revolucija na početku bila samo misao u glavi jednog čoveka, a kada se
ta ista misao pojavila i u drugom čoveku, dobili smo ključ za novo doba.” - Ralf
Valdo Emerson
18
Broj 51
Autor: Liora
Svet operativnih sistema predstavlja svet novih otkrića, radosti, frustracija i
znatiželje, kako krajnjeg korisnika/ice, tako i profesionalaca i hobista unutar
informacijsko-komunikacijskog sveta. Nakon popularizovanja serijala Mister Robot i
predstavljanja Kali distribucije, svet pentesterskih distroa kao da se promenio.
Nove generacije klinaca su prigrlile automatizaciju sigurnosti i penetracijskog
testiranja, dok su starije generacije profesionalaca i hobista bile komforne sa
olakšavanjem dnevnog posla.
19
Li B R E ! ČASOPIS O SLOBODNOM SOFTVERU Oktobar 2019.
Predstavljamo
Jedna od distribucija koja polako prerasta Kali i postaje popularnau široj zajednici
jeste Perot OS (eng. Perrot OS). Distribucija koja je usmerena ka složenim
prohtjevima zajednica sigurnosnih stručnjaka i penetracijskih testera, sa posebnim
fokusom na stvaranje okruženja u kojem mogu vrlo lako i brzo postići profesionalne
i druge rezultate. Perot OS nastaje 2013. godine od strane FrozenBokѕ tima, te se
danas razvija uz pomoć svih zainteresiranih kontributora/ica. Osim primarne
verzije sigurnosnog operativnog sistema, Perot OS se još može naći i kao
„Homestation”, te Studio verzija.
20
Broj 51
A za programere?
Sa papagajem poput Perot OS-a, programiranje nikada nije bilo lakše! Parrot OS
dolazi sa nizom integrisanih IDE-a i tekst editora, koji su tu na dohvat klika. Sve
ostale editore je lako instalirati kroz Snap ili starim, dobrim „sudo apt-get install”.
Osim što možete da pentestirate dok igrate šah ili pišete ultra-kul naučno-
fantastičnu novelu na poslu, možete i da dokono istražujete najdublje kutove
interneta sigurni u svoju anonimnost.
21
Li B R E ! ČASOPIS O SLOBODNOM SOFTVERU Oktobar 2019.
Predstavljamo
Zaključak
Kali, kao penetracijsko-testerska distribucija, i dalje ostaje na tronu zbog ogromne
dokumentacije, prijateljske zajednice i potpore od strane Ofensiv sekjuritija. Ako na to
dodamo i armiju novih ljubitelja koji su svoje prve korake u svijetu informacijskih
tehnologija načinili sa Kali distribucijom nakonВ рpopularne
е м е и мserije,
е с т Kali
о je dobra,
provjerena distribucija. Perot OS će doživjeti svojevrsnu ekspanziju korisnika jer - on je
švicarski nožić distribucija koje se bave penetracijskim testiranjem. Zajednica koja
svojim prijateljskim, stručnim i prijatnim savetima dočekuje nove članove, te je
konstantno otvorena za različite diskusije je ono što staru frazu „Budimo odlični jedni
prema drugima!“ oživljava.
22
Broj 51
Аlpajn linuks
Al pa j n Li n u ks ( 1 . d eo)
Autor: Marjan Đuran
Uvod
Razvoj Alpajn Linuksa (eng. Alpine Linux) počeo je pre više od decenije. Tvorci su
inicijalno zamislili da se pokreće samo iz RAM memorije. Takođe, jedna od ideja je
bila da služi kao operativni sistem za rutere i slične projekte gde je potrebno
portovati linuks operativni sistem (eng. embeded systems), za primer možemo
uzeti Open VRT (eng. Open WRT) sistem namenjen ruterima. Uglavnom su u
pitanju projekti koji nemaju snažne hardverske resurse, a kojima je bitna
bezbednost. Tim koji radi na razvoju sistema, kao vodilju za svoj rad koristi tri
smernice koje karakterišu ovu distribuciju: mali, jednostavan, bezbedan (eng.
Small. Simple. Secure. ). Sistem nikada ne pokreće nijedan servis koji nije
eksplicitno naveden, dakle od trenutka instalacije pokreću se samo najneophodniji
procesi, nakon podešavanja, samo oni koje administrator, to jest korisnik sistema
želi.
Arhitektura
Kako sam idejni tvorac voli da naglasi, Alpajn Linuks je „sagrađen oko” musl libc
biblioteke i BiziBoks (eng. BusyBox) paketa korisničkih aplikacija. Pri tome se misli
na aplikacije više na sistemskom nivou, a ne na aplikacije kao što su pregledač veb
stranica ili aplikacije za razmenu poruka. Ono što je posebno kod musl libc
biblioteke jeste što je značajno manja u odnosu na široko rasprostranjenu glibc
biblioteku ( GNU C Library), ali i dalje obezbeđuje osnovne C/POSIKS (eng. C/POSIX)
biblioteke i dodatke za funkcionisanje sistema (eng. Core system libraries) – C
biblioteke nalaze se na sloju iznad kernela i obezbeđuju funkcionisanje takozvanog
korisničkog dela (eng. userspace) i kako na zvaničnom vebsajtu piše – namenjena
23
Li B R E ! ČASOPIS O SLOBODNOM SOFTVERU Oktobar 2019.
Predstavljamo
je novim generacijama na linuksu baziranih uređaja. Posebno se izdvaja po
čitljivosti i urednost kôda (stoga je lakše prekontrolisati i ispratiti sam kôd). Uz
kombinaciju sa izuzetno manjim obimom, smanjuje se mogućnost greške i
pravljenja propusta, što se u praksi i dokazalo. Zbog toga se musl libc smatra i
bezbednijim što dokazuje statistika da je od 2010. do 2017. godine u glibc
biblioteci pronađeno preko 80 propusta (zavedenih pod zvaničnim CVE brojevima -
Common Vulnerabilities and Exposures) dok je u musl libc gotovo deset puta
manje. Najznačajnija stavka koja nedostaje musl libc biblioteci u odnosu na glibc
su Name Service Switch (NSS) – koji omogućava dodavanje određenih mrežnih
servisa van glibc biblioteke i Network Service Library (libnsl) – osnovna biblioteka
za mrežnu komunikaciju na transportnom sloju u okviru glibc biblioteke. Osim toga
nedostaju podaci za lokalizaciju koji se mogu naknadno instalirati a u glibc-u
zauzimaju mnogo prostora.
24
Broj 51
Аlpajn linuks
Za proveru dostupnih aplikacija trenutne verzije na zvaničnom vebsajtu, osim
dokumentacije postoji veoma zanimljiva javaskript PC emulator aplikacija u kojoj
se učitava linuks konzola sa BiziBoks paketom. Tu se komandom busybox može
dobiti spisak aplikacija i testirati direktno na vebu bez instalacije ijednog
programa. Ceo paket teži oko 800KB uključujući i šel (eng. shell) i sve alate.
Poređenja radi, samo beš ljuska (eng. bash ) ima 668KB, te Alpajn Linuks dolazi sa
“skraćenom” ali funkcionalnom verzijom – ash.
Kernel – Takozvani Hardened Kernel koji koristi Alpajn Linuks je još jedan razlog
zašto se kaže da ima malu površinu za napad (eng. attack surface). Naime, radi se
o Vanilla kernelu, tj. osnovnoj verziji koja je doslovno „očvrsnuta” raznim
zakrpama, ali iz koje su izbačeni „suvišni” moduli čime se dodatno smanjuje
napadna površina. Tvorci Alpajn linuksa su bili inspirisani Džentu distribucijom, te
su preuzeli nezvaničnu verziju nastalu iz poznatijeg grsecurity ( grsecyrity fork).
Veoma sličan kernel koristi i OpenWall distribucija, namenjena rutiranju i mrežnim
operacijama.
OpenRC – još jednom, po uzoru na Džentu distribuciju, Alpajn Linuks koristi
OpenRC init sistem (razvijan za Džentu distribuciju) koji se zasniva na zavisnosti
(eng. dependency-based). Pri tome se misli na procese i utičnice (eng. socket).
Dakle, ne radi se o modernom SystemD init sistemu koji je danas najšire
rasprostranjen i zastupljen. Od kako je ušao u široku upotrebu, česte su rasprave u
linuks zajednici da li je dobijena brzina na uštrb bezbednosti uvođenjem SystemD
init sistema, te iako postoje osnovane sumnje, ovde ih nema jer je Sistem-D
izostavljen. Šta to govori iz ugla administracije jednog sitema? Komande za
upravljanje novim servisima izgledaju ovako:
rc-update add imeservisa nivopokretanja
rc-update del imeservisa nivopokretanja
rc-update imeservisa start/stop/restart
25
Li B R E ! ČASOPIS O SLOBODNOM SOFTVERU Oktobar 2019.
Predstavljamo
sistemima kao što su Debian i njegovi derivati kao što su, Ubuntu, Mint, pa i ostali -
Fedora, Arč… U početku, Alpajn Linuks nije imao nikakav menadžer paketa, već je
sve moralo da se kompajlira. Kako je sam sistem dobijao sve širu primenu, tvorci
su shvatili da se to mora promeniti ako žele da sistem uđe u opštiju upotrebu, ali
im se nije svideo nijedan od već postojećih koje koriste ostali sistemi ( yum, dnf,
apt, pacman, emerge). Na prvom mestu jer su svi suviše spori, te su odlučili da
napišu novi. U početku je paket menadžer bio (b)ash skripta, ali je 2008. godine
prepisan u programskom jeziku C. To je otvorilo dosta mogućnosti da se dese
propusti i greške (eng. bug), odnosno otvore mogući vektori napada, što se kasnije
pokazalo kao tačno. APK je dosta brži iz razloga što je projektovan da radi
drugačije od ostalih, naime tradicionalni paket menadžeri uglavnom imaju tri
čitanja i dva upisa/pisanja prilikom instalacije novog paketa, dok APK ima jedno
čitanje i jedno pisanje. Tradicionalni paket menadžeri prvo preuzimaju paket,
odnosno čitaju sa mreže, zatim ih upisuju u lokalni keš, zatim vrše proveru paketa,
odnosno potpisa (checksum signature verification), i ukoliko provera pokaže da je
paket u redu – vrši se ekstraktovanje odnosno instalacija. APK čita sa mreže i
ujedno vrši proveru dok čeka na I/O odziv, zatim novi paket upisuje direktno na fajl
sistem ali pod nazivom imepaketa.apk-new a zatim vrši verifikaciju potpisa. Ukoliko
je sve u redu, promeniće ime paketa, ukoliko nije, paket će biti obrisan. Kako je
Alpajn Linuks isprva pravljen da se pokreće iz RAM memorije, menadžer paketa se
sastoji iz dve celine odnosno iz dve zasebne aplikacije, jedna je apk menadžer koji
služi za instalacije, ažuriranja, deinstalacije odnosno brisanja sa sistema, dok je
druga celina program lbu koji služi da sačuva sve podatke i konfiguracije
neophodne za brzo vraćanje i setovanje instaliranih programa nakon restarta
sistema. Programski paketi za Alpajn Linuks su digitalno potpisane .tar.gz arhive
koje sadrže programe, konfiguracione datoteke, kao i meta podatke zavisnih
paketa (eng. dependencies). Njima je data ekstenzija .apk i često se nazivaju „a-
paketi”. APK može da instalira pakete sa više različitih repozitorijuma sa interneta
ili lokalnih, npr. sa lokalnog medija kao što je lokalni direktorijum, disk ili USB
memorija koji sadrže .apk datoteke. Takođe, da bi se bilo koji medij ili direktorijum
smatrao ispravnim repozitorijumom, mora da sadrži repozitorijumski indeks,
odnosno datoteku koja se zove APKINDEX.tar.gz. Svi repozitorijumi se dostižu wget
komandom, odnosno programom koji dolazi u sastavu busybox paketa, a koristi
http, https ili ftp protokol. Spisak repozitorijuma nalazi se u datoteci
/etc/apk/repositories, gde se ujedno može i dodati putanja do nekog repozitorijuma
ili izmeniti protokol. Po osnovnim podešavanjima apk će koristiti sistemski
definisane repozitorijume za sve operacije (pretrage, instalacije, ažuriranje), ali se
po potrebi to može promeniti bez izmene konfiguracione datoteke već „u letu”
26
Broj 51
Аlpajn linuks
odnosno u toku operacije nekom od navedenih komandi. Sledi opis samo nekih apk
komandi.
pretraga paketa:
apk search imepaketa
Veliki propust koji su tvorci napravili jeste u protokolu koji apk koristi za
preuzimanje paketa sa nekog od zvaničnih repozitorijuma. Naime, podrazumevano,
kada se instalira Alpajn Linuks, preuzimanje paketa ide preko nezaštićenog HTTP
protokola bez SSL enkripcije (HTTPS). Iako ne znači da je ranjiv takav način
prenosa podataka (jer postoji mogućnost potpisivanja, što i radi) to je dalje ostavilo
otvorena vrata potencijalnim napadačima za MITM (eng. Man In The Midle Attack)
napad koji je Ariel Zelivanski (eng. Ariel Zelivansky) tokom svog istraživanja
iskoristio. Uspeo je u pokušaju da Alpajn Linuksu podmetne drugačiji paket od onog
koji je korisnik želeo da instalira, odnosno da paket „dopuni” neželjenim kodom
kojim je omogućio izvršavanje koda sa udaljene lokacije (eng. remote code
execution attack) i to sve je predstavio na konferenciji B-Sajds DC 2017. godine.
Ovo je do sada i jedini (poznati) propust u Alpajn Linuks distribuciji, a da nije
zavistan od biblioteka koje su korišćene u pravljenju distribucije.
27
Li B R E ! ČASOPIS O SLOBODNOM SOFTVERU Oktobar 2019.
Oslobađanje
Autor: Liora
Pitanje koje je često dio debata, posebno u dobu senzacionalizma i populariziranja
kriptoanarhijske misli kroz kripto-ekonomiju i kripto-valute jeste: kakva je to
konačna vizija svijeta kriptoanarhijskih sljedbenika i samog temeljnog manifesta?
U srcu Delničke ulice u Pragu, crna zgrada se znatno ističe od drugih - Paralelni
Polis.
28
Broj 51
Kriptoanarhija(2. deo)
sverastuće promjene u svijetu koje se tiču digitalnog svijeta i decentralizirane
ekonomije. Iza ideje stoji Vlaclav Benda, poznati čehoslovački matematičar,
političar i revolucionar koji je ujedno sa Vlaclavom Havelom kreirao neviolentnu
revoluciju i ideju disolucije Češke i Slovačke uz oslobađanje od socijalističkog
režima, poznatiju kao Purpurna revolucija ili „Nježna revolucija”.
Realizacija ideje se desila prije nekoliko godina, kada je nekolicina mladih hakera i
digitalnih entuzijasta, odlučila da kombiniraju ideju Vlaclava Bende sa
kriptoanarhijom, digitalnom ekonomijom i anarho-kapitalizmom. Paralelni Polis nije
samo još jedan hakerski prostor. On je prvi centar kriptoanarhije sa Institutom za
kriptoanarhiju koji iz dana u dan dobija sve više sljedbenika. U Paralelnom Polisu
možete jesti, kupiti piće, odmoriti uz kafu, raditi ili kreirati nove stvari sa kripto-
valutama. Prvi Bitkoin kafić u Evropi koji se bazira na decentraliziranoj ekonomiji
pruža nevjerovatan uvid u malu, ali dinamičnu zajednicu kriptoanarhista. Osim što
možete vidjeti ekstremiste privatnosti sa maskom na licu, te ljude koji sa
mikročipiranim digitalnim novčanicima plaćaju svoja pića unutar Bitkoin kafea.
29
Li B R E ! ČASOPIS O SLOBODNOM SOFTVERU Oktobar 2019.
Oslobađanje
početak ilegalnosti kripto-valuta u svijetu i masovni nadzor u digitalnom prostoru.
No, za kriptoanarhiju danas nisu problem samo državne centralizovane službe, već
i mnogi novi korisnici decentraliziranog sistema koji su ušli u proces „kopanja”
kriptovaluta zbog sve većeg profita iz istih. Pavol u jednoj rečenici govori da
„Mnogi ljudi neće preći u kriptoanarhijski svijet zbog privatnosti ili slobode, već
zbog toga što će stvari biti jeftinije i pristupačnije na slobodnom marketu”.
Sama tranzicija koja se dešava kriptoanarhijskom dijelu ekonomske
decentralizacije sa prisvajanjem profita od strane ljudi doprinosi njenom
osnaživanju, ali da li to znači da će se ideja kriptoanarhije izgubiti vremenom?
Naravno, na takvo razmišljanje se direktno nadovezala sintaksa da je
kriptoanarhija „samo korak do anarho-kapitalizma i da ona u suštini predstavlja
realnu simulaciju anarho-kapitalističkog društva” što je Pavolova osnovna misao,
ali i mnogih drugih kriptoanarhista.
U razgovoru sa Pavolom, spomenula sam Infokalipsu, sveopšti metež i maliciozne
pojave interneta. Od toga da se vladine strukture pozivaju na veću sigurnost
uzimanjem osnovnih digitalnih prava ljudima pakujući to u zaštitu djece ili borbu
protiv terorizma.
Da li kriptoanarhiju čeka sudbina Infokaliptičnog proroka?
30
Broj 51
Kriptoanarhija(2. deo)
Pavol i drugi su preplašeni ovakvog scenarija i smatraju da će u budućnosti biti još
mnogo više pooštravanja kazni za sajber aktivnosti, bile one legalne ili ne.
Razmišljanje o tome da li će kriptografija, kriptovalute i slobodni internet marketi
biti zabranjeni u narednom periodu, dovodi nas do zaključka da sami zakoni u
kojima se povlastice i prednosti daju serijskim ubojicama ili različitim realnim
malicioznim pojavama pri suđenjima, dok se sajber napadi podvode pod direktnu
prijetnju nacionalnoj sigurnosti.
Posjedovanjem enkriptovanih dokumenata ili podataka, postajete sumnjivi ili kao
što je rekao Denis Riči: „Kriptografija je samo još jedan od načina da budete
sumnjivi vlastima Sjedinjenih Američkih Država”.
I ne samo Sjedinjenih Američkih Aržava, iako Evropska unija ima pogodnije zakone
u digitalnim pravima i slobodama, ona se sve više bliži prema principu
individualnog zakonodavstva, jednom vidu opisa Orvelovske države u kojoj veliki
brat ne štedi građanstvo, ali radnje vlasti ostaju prikrivene i zatamnjene. Ostaje
nam da u narednom periodu sagledamo perspektive i u kojem će se obliku nalaziti
digitalna prava i slobode. Digitalna dimenzija je često percipirana kao dimenzija
koja je drugačija od realnog svijeta, ali kada sklonimo pseudonime i korisničke
nazive, ostaje čovjek od krvi i mesa. Da li kriptoanarhisti smatraju da će linija
između digitalnog i realnog svijeta biti jače izražena i da će voditi ka
prepoznavanju prve autonomne zone interneta? Kriptoanarhija ne može biti
centralizovana u vidu digitalne države ili digitalne autonomne zone, ali da će
polarizacija između vlade i kriptoanarhijskog svijeta postojati i postajati sve
izraženija, to je neminovnost borbe za decentralizirani svijet.
Decentralizacija je ništa drugo do neutaživa žeđ za slobodom.
A kriptoanarhija je postala njena paradigma modernog svijeta, svijeta slobode u
kojem će individua imati prava, slobodu, privatnost i dovoljno resursa da može da
preživi i učestvuje u društvenom životu sa svojom doprinosom.
Paralelni Polis je bez sumnje jedan od najboljih predstavnika kriptoanarhijske
zajednice, njene dinamike, promišljanja i borbe. Članovi Paralelnog Polisa su
mahom etički hakeri ili entuzijasti različitih univerzitetskih usmjerenja koji
organiziraju, pored hakerskog kongresa, i niz besplatnih edukacija o digitalnom
prostoru i onome što oni rade.
31
Li B R E ! ČASOPIS O SLOBODNOM SOFTVERU Oktobar 2019.
Како da...?
32
Broj 51
Flejmšot
Moćni softver za slikanje ekrana
Autor: Marko Jovanović
Dešava se ponekad da ste se zaglavili na nekom problemu i želite da to podelite
na nekom forumu ili slično, ili od drugih želite da vam pošalju trenutni izgled
njihovog ekrana ili njegovog dela. U većini distribucija postoji default-no pozivanje
aplikacije koja slika ceo ekran. Često slučaj nalaže da je potrebno samo naglasiti
određeni deo ekrana, ili u moru podataka ne ekranu označiti onaj koji se vama čini
bitnim. U tom slučaju pozivanje paketa koji je verovatno već implementiran u
distribuciji je samo jedan od koraka (bilo da je pozivanje putem tastature PrtSc ili
kombinacijom Alt + PrtSc ili drugih u zavisnosti od grafičkog
okruženja/distribucije, a zatim obrada sačuvane slike preko nekog od grafičkog
editora poput Gimpa. Ubrzavanje ovog postupka je moguće preko softvera
Flejmšot ( Flameshot).
33
Li B R E ! ČASOPIS O SLOBODNOM SOFTVERU Oktobar 2019.
Како da...?
Program Flejmšot ima svoju prezentaciju na githabu odakle možete da skinete kod
kao i da vidite spisak svih dosadašnjih commit-a i razvoja ove aplikacije, kao i
zvanični sajt (https://flameshot.js.org). U zavisnosti o kojim je reč, pakete možete
skinuti za skoro sve distribucije qt5 .
Korisnicima Arča program je dostupan preko AUR flameshot-git, Debijan 10+ preko
komande apt install flameshot, Ubuntu 18.04+: apt install flameshot, Fedora: dnf
install flameshot, openSUSE preko zvanične stranice, Void Linux: xbps-install
flameshot ili pomoću Dokera.
Treba voditi računa da Ubuntu 18.04 LTS izdanja mogu imati nešto starije pakete
koje mogu imati neke još nedostatke u funkcionisanju ili stabilnosti u radu. Jedini
problem koji se nama pojavio u verziji 0.5.1-2 je da se posle instalacije iz system
tray izgubila opcija take screenshot u Ubuntu Mejt 18.04.
34
Broj 51
Sama aplikacija ima još dodatnih opcija da se putem desnog dugmeta miša odredi
boja markiranja teksta, srednjim tasterom miša odredi gustina obeliživača,
smanjenja slike ili drugih opcija koji se mogu odrediti u konfiguraciji aplikacije. Tu
su opcije i za način čuvanja samih slika definisanih naziva datuma ili numerički.
35
Li B R E ! ČASOPIS O SLOBODNOM SOFTVERU Oktobar 2019.
Како da...?
36
Broj 51
Dakle ovde imamo uniju tagova 0, 1, …. ali skup prirodnih brojeva možemo
definisati i ovako:
data Nat = 0 | Succ Nat
Dakle prirodni broj može biti ili nula ili naredni element od nekog prirodnog broja.
Na primer:
1 = Succ 0
2 = Succ 1 = Succ (Succ 0)
...
pa je onda:
1 = Succ 0
-1 = Pred 0
...
37
Li B R E ! ČASOPIS O SLOBODNOM SOFTVERU Oktobar 2019.
Како da...?
Motivacija za uvođenjem tipova:let ... in ... izraz
Motivacija za uvođenje tipova se javlja na sledećem primeru. Uvodimo let … in …
izraz na sledeći način:
let x = E1 in E2 <=> (λx. E2) E1
Ovo možemo napisati i bez lambda izraza kako bismo lakše razumeli notaciju:
let f :: Bool -> Int
f x = if x then 5 else 2
in f True
Ovde smo definisali funkciju f koja preslikava Bool u Int, ovo znači da je izraz “ f x”
validan ako je x tipa Bool i da je tip ovog izraza Int.
Drugi primer gde su tipovi ključni jeste sledeći: da li sledeći izraz može da se
izračuna?
38
Broj 51
Polimorfizam
Polimorfizam je svojstvo sistema tipova da se data operacija može generalizovati
na više različitih tipova bez potrebe da se data operacija implementira za svaki tip
zasebno.
Za ilustraciju ovog svojstva uzećemo listu. Lista može biti lista brojeva, ali isto tako
može biti lista slova. Ovo znači da tip lista ima dodatni parametar koji određuje tip
koji sadrži lista. Mnogi jezici, na ovaj ili onaj način, ovo podržavaju. Na primer C++
ima svoj templejting sistem, a Java ima generičke klase. Za svrhu ovog članka, i
kasnije za svrhu rada u Haskelu, mi ćemo reći da lista prima parametar koji
određuje tip objekta koji lista sadrži:
data List a = Empty | Cons a (List a)
Ovde smo definisali listu kao tip koji prima parametar, a koji određuje tip objekta
koji lista sadrži. Lista je unija dva moguća skupa podataka: prazna lista ( Empty) ili
uređenog para objekta tipa a (glava liste) i liste objekata tipa a (telo liste, ostatak
liste).
Određivanje tipova
Za lakše objašnjavanje tipova uzmimo sledeći primer:
twice f x = f (f x)
39
Li B R E ! ČASOPIS O SLOBODNOM SOFTVERU Oktobar 2019.
Како da...?
f (f x) :: t3
Hajde sada da odredimo tip sledeće funkcije i vidimo kako se na isti način može
40
Broj 51
Onda se dobija:
t0 = String = t1 = t2
f :: String -> String
Kasnije tokom ovog serijala ćemo direktno implementirati sistem tipova u Haskelu,
a u narednom delu ćemo uvesti Haskel kao jezik i objasniti njegovu sintaksu.
41
Li B R E ! ČASOPIS O SLOBODNOM SOFTVERU Oktobar 2019.
Slobodni profesionalac
Ansibl
Kontrola na vrhovima vaših
prstiju
Šta je Ansibl?
Šta je ukratko Ansibl? Ansibl je, kako ga opisuju - alat za sistem administratore
kreiran od strane sistem administratora! I to je istina. Kreirao ga je Majkl De Han,
osoba koja je kreirala Kobler (eng. Cobbler), alat koji se bavi udaljenom (eng.
remote) instalacijom operativnih sistema na virtuelne ili fizičke mašine i sve to na
Linuksu. Zamislite da radite za ogromnu kompaniju i da vam je potrebno da na 100
mašina instalirate neki Linuks operativni sistem, relativno brzo i lako. To možete
uraditi uz Kobler.
Sve je to super, ali gde je tu Ansibl? Zamislite da su tih 100 mašina kojih ste
maločas instalirali i osposobili zapravo Linuks serveri i da svaki od njih mora da
ima odgovarajuće pakete i da prođe kroz odgovarajući bezbednosni proces
42
Broj 51
Šta dalje?
Nastavimo dalje sa našim zamislima. Imamo onih 100 servera koje smo instalirali
ranije i sad moramo da im nešto uradimo. Šta bi to moglo da bude? Za početak,
pošto ste svesni dobrih bezbednosnih praksi i želite da ih primenite na svoje stado,
uz pomoć Ansibla možete da na svakom od tih servera ograničite ko sve može
imati prava sudoera (eng. sudoers - korisnici sa apsolutnim pravima na Linuks
mašinama) i ograničiti pristup po IP adresama.
43
Li B R E ! ČASOPIS O SLOBODNOM SOFTVERU Oktobar 2019.
Slobodni profesionalac
fajlove, pretvarajući ih u dinamičke. Šta to znači? Recimo da je potrebno da u svaki
od ovih sudoers fajlova koji bi ste smestili u /etc/sudoers.d/ direktorijum upišete IP
adresu mašine na kojoj se nalazite. Nećete ići od servera do servera i ručno
menjati fajl i možda negde pogrešiti, već ćete u fajlu sa ekstenzijom .j2
(preporučena praksa u Ansiblu, kako bi znali da je u pitanju džindža) napisati kome
je sve potrebno dati prava sudoera, a u delu koji se odnosi na IP adresu servera na
kome se primenjuje sudoers fajl, jednostavno navesti varijablu -
ansible_default_ipv4.address, poznatu kao činjenicu (eng. fact) koju je Ansibl
prikupio onako usput i upotrebiće je baš onako kako je vama potrebno!
Pošto smo obezbedili naše stado, vreme je da ga ažuriramo, iliti pokrenemo dobro
nam poznati jam apdejt (eng. yum update) ili apt-get apdejt (eng. apt-get update) i
ažurirati sve pakete na sistemima. I to ćemo uraditi uz pomoć Ansibla i njegovih
modula za jam (eng. yum ) i apt. Šta su sad moduli? Pa, moduli su nešto nalik na
komande koje Ansibl šalje udaljenim mašinama. Samih modula je mnogo, od
modula za šeme (eng. template) čije smo korišćenje već spomenuli, preko modula
za instalaciju paketa (jam i apt) do modula za manipulisanje fajervolom.
44
Broj 51
45
Li B R E ! ČASOPIS O SLOBODNOM SOFTVERU Oktobar 2019.
Slobodni profesionalac
46
Broj 51
47
Li B R E ! ČASOPIS O SLOBODNOM SOFTVERU Oktobar 2019.
48
Broj 51
U nastavku ćemo komandom ls izlistati fajlove, ali ono što vam je možda novo
jeste dodatak *.txt koji komandi ls govori da izlista sve fajlove koji se završavaju
sa “.txt” . Sledeća komanda, stat, će nam dati osnovne podatke o fajlu kao što su
veličina fajla, prava pristupa, kada je poslednji put izmenjen i slično.
ls *.txt
49
Li B R E ! ČASOPIS O SLOBODNOM SOFTVERU Oktobar 2019.
Komanda wc (skr. Word count) uz dodat parametar -l će ispisati broj linija unutar
fajla. Ova komanda ima mogućnost da ispiše broj linija, karaktera, bajtova ili reči,
kako bismo znali koje su oznake za flegove koji se prosleđuju ovoj komandi. Bitno
je da se dobro snalazite u dokumentaciji koja dolazi uz Beš komande, odnosno da
znate da koristite ime_komande –help za osnovnu dokumentaciju i man
ime_komande za opširniju dokumentaciju.
Dobili smo zadatak da prosledimo kolegi u jednom fajlu poslove koje ćemo danas
obaviti i želimo da mu pošaljemo prvih pet poslova sa liste poslova. Umesto da
otvorimo fajl, iskopiramo prvih pet redova, pa onda kreiramo novi fajl u koji ćemo
ubaciti prvih pet poslova, sav ovaj posao može se obaviti u jednoj liniji. Komandom
head (glava) ćemo uzeti prvih nekoliko linija, a dodatkom -n5 ćemo naznačiti
komandi da uzme prvih pet iz fajla lista_poslova.txt i onda uz pomoć operatora
>, ono što nam vraća komanda head ćemo proslediti u fajl danasnji_poslovi.txt,
i tom prilikom nije potrebno da kreiramo taj fajl već se to automatski odradi ukoliko
je fajl prosleđen operatoru > ne postoji u radnom direktorijumu. Nakon toga ćemo
komandom cat samo prikazati sadržaj nove liste.
Head -n5 lista_poslova.txt > danasnji_poslovi.txt
cat danasnji_poslovi.txt
Tail -n1 lista_poslova.txt >> danasnji_poslovi.txt
cat danasnji_poslovi.txt
Nasuprot komandi head , imamo komandu tail (Rep), kojom možemo uzeti
poslednjih nekoliko linija iz fajla, samo ovaj put umesto da prebacimo u novi fajl,
znakovima », mi ćemo nadovezati poslednju liniju na već postojeći fajl. U slučaju
da smo sad koristili znak >, prethodni sadržaj fajla bi bio obrisan i u njega smešten
novi.
Ukoliko bi postojala potreba da se svakog dana pošalju obavljeni poslovi, bilo bi
dobro da se ceo proces učini malo efikasnijim, pa da se umesto unošenjem 4
komande sve obavi unošenjem jedne. Iako bi veštijim čitaocima odmah bilo
uočljivo da se prethodnih nekoliko komandi može obaviti jednom malo
kompleksnijom komandom, to ćemo ostaviti za neki od narednih delova serijala, a
u nastavku ovog ćemo prethodno napisane komande pretvoriti u skriptu. Ono što
50
Broj 51
Iznad se nalazi ceo izgled naše prve male skripte. Komandu cat koju smo dva puta
izvršavali prvi put, sada smo stavili da se izvršava samo jednom jer sa sigurnošću
znamo šta će uraditi komande pa nema potrebe za prikazivanjem međurezultata.
Nakon što otkucamo skriptu , potrebno ju je sačuvati i dodeliti odgovarajući naziv.
Iako je u ovom slučaju prva stvar koja nam pada na pamet kod imenovanja skripte
naziv prva_skripta.sh , predlog je da budemo malo praktičniji i damo skripti naziv
koji će nas asocirati na to šta zapravo skripta radi, tako da bi u ovom slučaju bilo
dobro da skriptu nazovemo obavljeni_poslovi.sh .
Kada se završi deo sastavljanja skripte, u direktorijumu u kom se nalazi skripta
potrebno je dodeliti joj mogućnost izvršavanja, a to se postiže komandom:
chmod +x obavljeni_poslovi.sh
U ovom uvodnom delu prošli smo kroz nekoliko komandi, koje su možda bile nove
za neke čitaoce, i na kraju sastavili prvu skriptu. Ohrabrujemo čitaoce da po istom
principu kao što smo sastavili ovu skriptu, naprave svoju skirptu kao niz nekoliko
komandi koje već znaju i čije zajedničko izvršavanje im može biti od neke koristi. U
narednom delu ćete imati priliku da naučite mnogo više novih stvari.
51