Atviras kodas bei jo svarba nūdienos visuomenėje

Video: Atviras kodas bei jo svarba nūdienos visuomenėje

Prezentacija: Atviras kodas bei jo svarba nūdienos visuomenėje

Prezentacija (Atviras kodas bei jo svarba nūdienos visuomenėje) su public RW teisėmis

Creative Commons Licence
Atviras kodas bei jo svarba nudienos visuomeneje by Ruslanas Gžibovskis is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.
Based on a work at lpic.lt.
Permissions beyond the scope of this license may be available at http://lpic.lt/2012/03/10/atviras-kodas-bei-jo-svarba-nudienos-visuomeneje/.

LVM resize xfs and ext3

Pridedam prie LVM particijos 1GigaBaita!:
lvextend -L +1G /dev/DiskuGrupe/Particija
Tada padidinam ext3:
resize2fs /dev/DiskuGrupe/Particija
Arba xfs:
xfs_growfs /dev/DiskuGrupe/Particija

cyberciti.biz OpenSSH Root user account restriction – revisited – Lietuviškai

Original

– čia pateikiamas tik vertimas!

Jei norite leisti prisijungti root naudotojui per SSH tik iš vieno IP, o kitiems naudotojams iš betkur kitur. Tokį sprendimą galime realizuoti per PAM autentifikacijos modulius. Naudosime pam_access PAM modulį, kuris naudojamas prieigos valdymui. Šis suteikia galimybę kontroliuoti prisijungimus atsižvelgiant į:

  • Naudotojo prisijungimo vardą (Login names)
  • Kompą ar domeną (Host or domain names)
  • IP ar IP tinklas (Internet addresses or network IP numbers)
  • Terminal line names etc

Kam naudojam pam_access?

Prie serverio gali reikėti prisijungti iš betkurio tinkle esančio kompiuterio. taigi turime pasirūpinti gera prieigos kontrole, naudojant OpenSSH servisą.

Kaip susikonfiguruoti pam_access?

Reikės keisti šiuos failiukus:

  1. /etc/pam.d/sshd
  2. Linux PAM konfiguracinis failas.

  3. /etc/security/access.conf
  4. Taisyklių paėmimui pagal nutylėjimą yra naudojamas šis failas.

Kai kasnors jungiasi, perbėgama per 2 bylos turinį ir jei yra sutapimas įvykdoma taisyklė. Mes galime nurodyti, ar priimti tokį prisijungimą ar atmesti. sintaksė: permission : username: origins kur:
permission : Teisių laukelis “+” (prieiga suteikiama) ar “-” (prieiga atšaukiama)
username : Linux sisteminis naudotojas (username)/login‘as (root ir kiti). Galima nurodyti ir grupės vardą. Arba galima nurodyti specialų trumpinį: ALL (Jei norime, kad tai būtų skirta visiems).
origins : Čia pateikiamas sąrašas terminalo langų, kompo vardų, IP adresų, domenų, kurie prasideda . ar specialų trumpinį ALL ar LOCAL

Visų pirma, kad tolesni pakeitimai veiktų reikia įjungti pam_access palaikymą byloje /etc/pam.d/sshd:


# vi /etc/pam.d/sshd
# Papildome eilute:
account required pam_access.so


Išsaugome ir uždarome.

Tarkime norime leisti naudotojam root ir lpic prisijungti tik iš IP adreso 1.1.1.1.

Atidarome bylą: /etc/security/access.conf su root’o teisėmis:


# vi /etc/security/access.conf
# Papildome eilute:
-: ALL EXCEPT root lpic:1.1.1.1


Išsaugome bylą.

Dabar SSH leis prisijungimus naudotojų root ir lpic tik iš 1.1.1.1 IP adreso. Jei naudotojas root ir lpic bandys jungtis iš kito IP adreso, jiems parašys: ‘Connection closed by xxx.xxx.xxx.xxx’ ir error pranešimu turėtų būti papildytas Jūsų žurnaliukas (log’as):


# tailf /var/log/message
Feb 20 19:02:39 hostname pam_access[2091]: access denied for user `lpic' from `xxx.xxx.xxx.xxx'


Kur, jau kaip ir minėjau xxx.xxx.xxx.xxx1.1.1.1.
Beje, jei įrašėte savo naudotojo vardą ir išsaugojote… VISOS TAISYKLĖS taikomos IŠKART po IŠSAUGOJIMO /etc/security/access.conf bylos! Būkite atsargūs!

Daugiau pavyzdukų:

a) Kartais reiktų sukurti taisykles, kurios leistų prisijungti visiems išskyrus rootbetkur, o root tik iš localhost:


-:root:ALL EXCEPT LOCAL
# ar
-:root:ALL EXCEPT localhost


b) Deny network and local login to all users except for user root and vivek:

-:ALL EXCEPT root vivek:ALL

c) Tik iš 192.168.1.0/24 leisti prisijungti root naudotoju:


+ : root : 192.168.1.0/24


Pastebėjimas: taip galime leisti ir drausti jungtis visoms tarnyboms, kurios naudoja PAM, pvz.: ftpd, telnet ir t.t.

P.S. + : root : yyy.yyy.yyy.yyy
- : root : ALL

GnuPG ar OpenGPG ar tiesiog GPG2 ar PGP + email

Sveiki, kaip besiseka?

Mano bendradarbis, Ignas Kazlauskas, man pasiūlė pasirašyti savo elektroninius laiškus. Kad niekas, nepastebėtai, negalėtų pakeisti laiško turinio. Tokia mintis man visai patiko. Taigi jis man atsiuntė laiškutį, kaip pasirašyti savo laišką, kuriame buvo pateiktos instrukcijos. Tomis instrukcijomis, aš nusprendžiau pasidalinti su Jumis!

Instrukcijos

Rakto kurimas ir naudojimas susideda iš kelių etapų.

  1. Mes turime susikurti PGP raktą.
  2. Jei norime jį galime patalpinti į viešą raktų serverį (Jie tarpusavyje susisinchronizuoja)
  3. Susikonfigūruoti klientą
  4. Pasirašyti draugų raktus

Tam mes naudosime:

  • gnupg2
  • gnupg-agent
  • kmail arba evolution

Susidiekime programikes:


$ aptitude install gnupg2 gnupg-agent kmail


Dar šiektiek, apie PGP ir GnuPG:
PGP (Pretty Good Privacy) yra duomenų šifravimo ir dešifravimo technologija, kuri suteikia kriptografinį privatumą ir autentiškumą duomenų perdavimo metu. PGP yra dažnai naudojama pasirašyti, užšifruoti ir iššifruoti tekstus, elektroninius laiškus, failus, katalogus ir visą diską. Phil Zimmermann šią technologiją sukūrė 1991 m.
GPG – GNU Privacy Guard (GnuPG arba GPG), yra nemokama licencija (GPL) licenzijuota alternatyva PGP kriptografinei programinei įrangai. GnuPG yra suderinamas su RFC 4880, kuriuo šiuo metu yra vystoma OpenPGP specifikacija IETF‘o. Dabartinės versijos PGP (ir Veridis’ Filecrypt) yra suderinamos su GnuPG ir kitų OpenPGP-suderinamų sistemų

Rekto generavimas


gpg2 --gen-key


generuojamas raktas, Jūsų pasiteiraus:

  • Rakto tipas: Siūlome, RSA and RSA (1)
  • Rakto dydis: 4096
  • Rakto galiojimas: Aš pasirinkau, 0, rakto galiojimas, nesibaigia, patvirtinkime, kad rakto galiojimas nesibaigia.
  • Naudotojo Vardas: El. pašto, naudotojo tikrieji vardas ir pavardė
  • Rakto el. pašto adresas: Įrašome el. pašto adresą
  • Rakto komentaras: Komentaras nebūtinas
  • Rakto patvirtinimas: patikriname ar viską gera isuvedėme ir jei kas blogai ištaisome, ištaisė mygiame O ir Enter
  • Slaptažodžio įvedimas: pasirenkame ir įrašome slaptažodį, slaptažodis reikalingas, jei norite, kad niekas be Jūsų žinios prisėdęs prie Jūsų pašto programos, negalėtų išsiųsti el. pašto. Jei paliksite tusčią laukelį, pinentry programos pagalba turėsite įvesti pin kodą
  • Rakto generavimas: šio žingsnio metu rekomenduotina kuo labiau išnaudoti procesorių ir kietąjį diską, galima paleisti, kokio DVDRip kodavimą ar bentjau su -c "strings /dev/sda bei judinti pelytę bei paleisti katiną palakstyti per klavietūrą!

Peržiūrėkime ar pasidarė mūsų raktas: gpg2 --list-keys. Tokia komanda grąžina:


$ gpg2 --list-keys
/home/$LOGNAME/.gnupg/pubring.gpg
---------------------------------
pub 4096R/81582DBB 2012-02-18
uid Tikras Vardas
sub 4096R/E8FEC9DA 2012-02-18


Tuomet, karts nuo karto, mums reikės pasidalinti Mūsų viešu raktu, tai galime padaryti komanda:


gpg2 --armor --export 81582DBB > MusuViesasRaktas.pub.key


Jei pastebėjote, aš pariebinau vieną rakto vietą, tai yra rakto ID (IDentification), kiek suprantu.

  • –armor
  • nurodo, kad tai bus tekstas, o ne duomenų bazė

  • –export
  • išveda raktą į ekraną

  • > MusuViesasRaktas.pub.key
  • nurodo, kad visą komandos išvedimą į ekraną nukreipia į bylą vardu: MusuViesasRaktas.pub.key

Na ir jei norėsime, kad mūsų Certifikatas nebegaliotų, turėsime susigeneruoti revoke-key:


gpg2 --output Atsaukti-Certifikata.asc --gen-revoke D8B179FA


Vėliau, jei kažkas sukompromituos (nulauš) Jūsų raktą, galėsite savo raktą panaikinti. patalpinę šį raktą į vieną iš internetinių raktų serverių.

Rakto viešinimas

Visų pirma mums reikia susikonfigūruoti savo gnupg programą, tam mes paleiskime programą:


$ gpgconf
# Ji mum išveda kažką panašaus į:
gpg:GPG for OpenPGP:/usr/bin/gpg2
gpg-agent:GPG Agent:/usr/bin/gpg-agent
scdaemon:Smartcard Daemon:/usr/bin/scdaemon
gpgsm:GPG for S/MIME:/usr/bin/gpgsm
dirmngr:Directory Manager:/usr/bin/dirmngr


ir tuomet atidarome gpg.conf failą:


$ vi ~/gnupg/gpg.conf
# Šio failo apačioje prirašome:
keyserver hkp://pgp.mit.edu


Dabar beliko išsiųsti raktą į serverį:


gpg2 --send-keys D8B179FA


Kliento konfigūracija

Kadangi, mano pašto dėžutėje yra laiškai nuo 2004 🙂 ir Visi jie guli 1 kataloge, Thunderbird, su tokiu kiekiu laiškų, prastai susitvarko 🙂 Prasianalizavus kodėl, paaiškėjo, Thunderbird, laiškų saugojimui naudoja mbox laiškų saugojimo formatą, o KMail – palaiko kelis formatus, tarp jų yra maildir… KMail programoje, pasirinkus maildir formatą galima vienu metu ir trinti laiškus iš katalogo ir gauti, tvarkyti laiškus… Ir labai paprastas ir lengvas migravimas visų mano laiškų į KMail… 🙂 vat,

KMail nustatymas su PGP. Nueikite į Settings -> Configure KMail, ten pasirenkame Identities ir pasirinkę savo tapatybę spauskime Modify atsidariusiame lange, pasirinkite kertelę Cryptogaphy tuomet paspaudę Sign ir Encrypt (ar kažką panašaus) Change pasirenkame raktą, kurį norime naudoti 😉 ir viskas, mes jau galėsime pasirašyti ir užšifruoti pranešimą… 🙂 kai rašysime naują laišką, įrankių juostos gale turi būti Sign ir Encrypt mygtukai 😉
Beje, aš nuėjęs į Settings -> Configure KMail dar pasirinkau Security -> Composing uždėjau visas varneles

  • Automatically sign messages
  • When encrypting emails, always also encrypt to the certificate of my own identity
  • Always show encryption keys for approval

O jei norite Susikonfiguruoti Thunderbird, Jum reik atsisiusti atskirą įskiepį enigmail, kuris nežinia, kaip ar suėtins Jūsų programos darbą ar ne ir ar tiks Jūsų versijai 🙁 :/

Tuo tarpu kitas pašto klientas Linux’e gali Palaikyti PGP taip pat paprastai kaip ir KMail, taigi toks klientas vadinas Evolution. Čia reikia nueiti į Edit -> Preferences čia pasirinkti Sąskaitą (account) ir paspausti Edit bei nueiti į Security kertelę ir ten įrašykime savo rakto ID ir galbūt uždėkite varnlę ant Always sign outgoing messages when using this account. Vat, atrodo tiek, nežinau, nenaudojau…

Patikimų draugų pridėjimas

Dabar išsiuntę, kažkam laišką, jį atidarę per programą, kuri palaiko PGP pagal nutylėjimą (didžiam džiaugsmui Thunderbird to nesugeba ir tenka naudoti papildinį) mes matysime, kad laiškas yra nepatvirtintas… Taigi mums reikia atsisiųsti draugo raktą ir jį patvirtinti, nes kai Jūs pasirašote laišką, parašas bus validus, tik žmogui kuris, Jus patvirtino.
Taigi, kaip Jums pasitvirtinti savo draugą, o jam Jus?
Jums tereikia surasti Jūsų draugo raktą


gpg2 --search-keys ruslanas@lpic.lt
gpg: searching for "ruslanas@lpic.lt" from hkp server pgp.mit.edu
(1) Ruslanas Gžibovskis (lpic.lt he he)
4096 bit RSA key D8B179FA, created: 2012-02-17
Keys 1-1 of 1 for "ruslanas@lpic.lt". Enter number(s), N)ext, or Q)uit > 1


. Pasirinkite Jūsų draugo raktą, mano atveju tai pirmas variantas taigi mygiam Vienetuką.
Raktas atsiųstas! Dabar jį reikia pasirašyti, tam mes turime patikrinti rakto žymes (Fingerprint), pasirašyti ir išsaugoti:


gpg2 --edit-key D8B179FA
Command> fpr
pub 4096R/D8B179FA 2012-02-17 Ruslanas Gžibovskis (lpic.lt he he)
Primary key fingerprint: 25D1 6402 C415 C145 2748 CDB1 761D E8AA D8B1 79FA
Command> sign
Command> save


Pabrauktoji dalis (25D1 6402 C415 C145 2748 CDB1 761D E8AA D8B1 79FA), tai ir būtų mano rakto unikalioji žymė (tie išraitymai, jei lygintume su tikrais raktais)… 🙂

Sėkmingo saugaus rašinėjimosi!
Dabar niekas lengvai neturėtų gebėti, pakeisti Jūsų siųsto laiško…

mdb Solaris Debuging mini HowTo

Sveiki,

norėdami įdiegti Solaris 10u9 mdb programėlę susidiekime SUNWmdb ir SUNWmdbr paketus. Visų pirma prijunkime CD.ISO, kas gali būti atlikta tik iš globalios zonos (Jei nenaudojate konteinerių, tai galėjote pabraukto teksto ir neskaityti :)):
lofiadm -a /tmp/software.iso /dev/lofi/1
mount -F hsfs -o ro /dev/lofi/1 /mnt

Pereikim į mum reikiamą aplanką
cd /mnt/Solaris_10/Product
Susimeskim visą tai:
pkgadd -d . SUNWmdb
pkgadd -d . SUNWmdbr

Toliau beliko arba prisijungti (ir sustabdyti) procesą: mdb -p ĖPID arba atidaryti core/dump failą: mdb core_dump
Na va o daba mdb komandos:

Control Commands
$< or $<< Replace input with a macro or source a macro.
$>filename or
::log filename
Log session to a file. If no filename, use default.
| Pipe. Allows simple commands to be joined.
! Shell escape. Acts as a pipe to a shell command. (Not available in kmdb.)
// Comment. Following words on the same line are ignored.
$M Show built-in macros (Kernel debugger only).
$Pstring Set prompt to string.
$Q
::quit
Quit. (From kmdb, use -u option to avoid exiting to ok> prompt.)
$W Re-open target in writable mode.
$p Change target context.
$w Control output page width.
:A Attach to a process or core file.
:R Release attachment.
:k Kill and release targets.
$v Print non-zero variables.
>
::typeset
Assign a variable.
::dcmds Print available commands.
::nm Print symbol table. (-P specifies a private symbol table. Manipulated with ::nmaddand ::nmdelete
::help dcmd Provide usage notes on a dcmd.
::typeset Manipulate variable.
::walk Walk data structure.
::walkers List available walkers.

 

 

Input & Output Commands
$< 
$<<
Replace input with a macro or source a macro.
$>filename Log session to a file. If no filename, use default.
address/format-spec
/format-spec
Read the value in a memory addressformatted as format-spec. If no address is provided, use dot.
address/W value Write the value in the four bytes starting with address. If no address is provided, usedotvw or Z may also be used instead of Wto write 1, 2 or 8 bytes, respectively.
address=format-spec
=format-spec
Format immediate value of address or dot.
? Read/write primary object file.
@format-spec Read/write physical address as format-spec.
\format-spec Read/write physical address as format-spec.

The difference between / and = is subtle. For example, to find the address holding the value of the maxphys symbol in decimal, we would run:
maxphys=D
To find the value inside the above address, we would use / like:
maxphys/D

 

 

Format Specification
Note that the ::formats dcmd prints out a full list of supported formats.
D Display in signed decimal.
i Display as a disassembled instruction.
U Display in unsigned decimal.
X Display in signed hexidecimal.
0txyz Specifies xyz as a decimal value.

 

 

System Examination
cpu$<cpus Display cpu0.
cpun$<cpu Display cpu #n.
$<msgbuf Display message buffer, including all console messages up to panic.
<sp$<stacktrace Use the stack pointer address (sp) to display a detailed stack trace.
$r
::regs
Display general registers, including program counter and stack pointer.
::callout Print callout table.
::cpuinfo -v Information about activities of CPUs, including runqueue inhabitants.
::cpuregs
::cpuregs -c cpuid
Print CPU registers. kmdb only. Can specify a cpu.
::cpustack
::cpustack -ccpuid
Print CPU stack. kmdb only. Can specify a cpu.
::dnlc Print DNLC contents.
::ipcs Print SVR4 IPC information.
::kmalog Display kernel memory log and stack traces.
::kmastat Print current kernel memory allocations
::memstat Print current memory usage.
::nm Print symbol table. (-P specifies a private symbol table. Manipulated with ::nmaddand ::nmdelete
::ps List processes with associated threads and lwps
::ptree Print process tree.

 

 

Target Examination
$? Print status and registers.
$C Show call trace and arguments, saved frame pointer and saved program counter for each stack frame.
$X$Y$x$y and::fpregs Display floating point registers.
$c Display stack backtrace.
$e Print list of global symbols.
$f Print list of source files.
$l Print representative thread’s lwp ID.
$m Print address space mappings.
$r
::regs
Display general registers, including program counter and stack pointer.
as::as2proc Convert as pointer to a proc_t pointer.
::devbindings devinfo nodes bound to device-name ormajor-num.
::devinfo Detailed devinfo of node.
::devinfo2driver Driver name for this node.
::devnames Print devnames array.
::devt Display dev_t‘s major & minor numbers.
::did2thread Kernel thread for this ID.
::dumpaddress Dump memory from address.
::findfalse Find potentially falsely shared structures.
::findleaks Search for potential kernel memory leaks.
::findlocks Find locks held by specified thread.
threadp::findstack Find kernel thread stack for associated thread.
::inode Display summary of inode_t.
::kmsqid Display message queue structure (kmsqid).
::ksemid Display a semaphore structure (ksemid).
::kshmid Display a shared memory structure (kshmid).
::pgrep pattern Find proc_t pointers matching the pattern.
0tPID::pid2proc Convert decimal PID to a proc_t pointer.
procp::ps Process information matching the associated proc_t.
::status Print summary of target status.
sobj::walk blocked Walk threads blocked on a particular synchronization object (sobj).
procp::walk thread Walk threads of associated process.
sobj::wchaninfo -v Blocked on condition variables for a particular synchronization object (sobj).
address::whatis Attempts to identify address contents.
vnode::whereopen Processes with vnode open.

 

 

Tracing, Watchpoints and Breakpoints
(Breakpoints for kernel debugger only.)
$b Show all breakpoints.
$i Print list of ignored signals.
:a Set a watchpoint.
:b Set a breakpoint.
:c or ::cont Continue target execution.
:d Delete a breakpoint.
:e Step over next instruction.
:i Step over next instruction.
:k Kill and release targets.
:p Set execute access watchpoints.
:r Run new target process.
:s Step target to next instruction.
:t Stop on delivery of specified signals.
:u Step out of current function.
:w Set write access watchpoint.
:z Delete all breakpoints.

 

 

General Debugging
$G Toggle C++ demangling.
$V Toggle disassembly mode.
$g Toggle C++ demangling.
address::dis Disassemble text starting at address.

 

 

Comparison Operators
== Logical equality.
!= Logical inequality.
& Bitwise AND.
| Bitwise OR.
^ Bitwise XOR.