Monday, October 12, 2009

SELinux

Trocha Teorie

SELinux má tři základní typy (POLICIES)
  • Strict - vše zkázáno, pouze se povoluje
  • MLS(Multi Level Security) - RHEL 5 se speciální licencí
  • Targeted - pouze některé procesy(systémové) jsou omezeny
Standardně se používá targeted.

SELinux může být ve třech stavech
  • disable
  • permissive - pouze zaznamenává případné konflikty
  • enforcing - vynucuje pravidla
SELinux Labeling
SELinux přidává ke všemu(souborům, procesům, porty, pakety ....) toto:

user_u:role_r:types_t:MLS

např:
system_u:object_r:httpd_exec_t:s0

Jediné co se v targeted používá je types_t(Type Enforcement) a user_u(velice omezeně)

user_u práva
/usr/sbin/semanage login -l
Ukáže mapování uživatelů na SELinux

  • unconfined_u .. nevztahuje se na něj SELinux (takto spuštěné procesy se chovají stejně jako bez SELinuxu)
  • system_u .. standardní systémový uživatel (řídí se dle SELinux pravidel)
type_t práva
Vše co končí na _t patří do Type. Práva se dědí dle adresáře.

  • httpd_t .. základní jméno
  • httpd_sys_content_t .. static web
  • httpd_sys_script_exec_t .. skripty, které může Apache spouštět
  • httpd_sys_content_rw_t .. soubory do, kterých může zapisovat pouze httpd_sys_script_exec_t
  • httpd_sys_content_ra_t .. pouze přidávat
Nastavení se dají zjistit například nainstalováním SELinux devel

yum install selinux-policy-devel.noarch

A průzkumem jednotlivých konfiguráků v

/usr/share/selinux/devel/include

Pro jednotlivé adresáře jsou práva zadaná v

/etc/selinux/targeted/contexts/files/

SELinux transition
Některá pravidla slouží k tomu, aby měnila type_t spouštěných aplikací.

Například toto initrc_t, named_exec_t, named_t nám říká, pokud proces initrc_t spouští soubor named_exec_t mají přejít práva z initrc_t na named_t.
Normálně to co spustí proces initrc_t běží s právy initrc_t.

Příklad předávání práv:


Změna policy za běhu

Výpis všech nestavení, které se dají měnit za běhu
getsebool -a

Nastavení požadované hodnoty
setsebool ­-P virt_use_nfs [1|0]

Konfiguráky
/etc/selinux

Logy
/var/log/audit/audit.log

Zapnutí SELinuxu
Pro změnu z disable na permissive nebo enforcing je potřeba restartovat počítač.
Změna z permissive na enforcing a obráceně je možná za chodu.

Změnu lze provést zde
/etc/selinux/config

Změna za chodu (trvá pouze do restartu jinak se musí zapsat do konfiguráku)

Permissive na Enforcing
echo "1" > /selinux/enforce nebo setenforce 0

Enforcig na Permissive
echo "0" > /selinux/enforce nebo setenforce 1

Ověření stavu SELinuxu
sestatus

SELinux změněné příkazy
ls -Z, id -Z, ps auxZ, lsof -Z, find / -context

Moduly SELinuxu
Vypsání všech modulů
semodule -l

Změna SELinux práv na souborech
Krátkodobá (do restartu)
chcon -t type file-name

Trvalá (zapíše do souboru /etc/selinux/targeted/contexts/files/file_contexts.local)
Soubor
/usr/sbin/semanage fcontext -a -t samba_share_t /etc/file1
Adresář
/usr/sbin/semanage fcontext -a -t httpd_sys_content_t "/web(/.*)?"

Obnovení práv podle souborů v /etc/selinux/targeted/contexts/files/
/sbin/restorecon -R -v /adresar/

Práce se soubory
Kopírování
Zachování práv
cp -Z co kam
Přesun
Vždy si zachovává práva co měl.
Kontrola práv
Udělá kontrolu zda jsou nastavena práva dle definic.
/usr/sbin/matchpathcon -V Cesta

LinkFedora SELinux
http://fedoraproject.org/wiki/SELinux
Ceska Dokumentace
http://www.root.cz/knihy/ceska-dokumentace-pro-selinux/
Clanky Root
http://www.root.cz/serialy/jak-spravne-na-selinux/

Oprofile

Instalace
yum install oprofile

Pokud chceme profilovat i kernel musime nejdriv naistalovat kernel-debuginfo

yum install --enablerepo=rhel-debuginfo kernel-debuginfo

Zjistime kde ho mame
rpm -ql kernel-debuginfo | grep vmlinux

Nastaveni opcontrol pro profilovani s kernelem
opcontrol --vmlinux=`rpm -ql kernel-debuginfo | grep vmlinux`

Pokud nechceme profilovat kernel vystacime si s

opcontrol --no-vmlinux

Inicializace
opcontrol --init

Virtualni stroje

opcontrol --deinit
modprobe oprofile timer=1


Start demona a start profilovani
opcontrol --start

Vyresetovani dosud sebranych hodnot

opcontrol --reset

Zastaveni profilovani
opcontrol --stop

Zabiti demona

opcontrol --shutdown

Zapsani vsech vysledku do souboru

opcontrol --dump

Ulozeni stavajicich dat
opcontrol --save "jmeno"

Vysledky jsou ulezeny v
/var/lib/oprofile/samples/oprofiled.log

Pri novem spusteni se data pridavaji.

Reporty
Vše
opreport

Pouze binarky
opreport --exclude-dependent

Detailní profiling programu
Instalce debug verze programu
yum install --enablerepo=rhel-debuginfo balicek-debuginfo
Report
opreport -l cesta_k_binarce

Tuesday, September 22, 2009

Proklety cifs

Jak spravne pripojit samba share.

mount -t cifs //IP/Storage/C /mnt/disk/ -o iocharset=utf8,file_mode=0777,dir_mode=0777,noperm

Sakra kdo si ma tohle porad pamatovat.

Tuesday, September 8, 2009

VMware(winXp) do VirtualBoxu

Predelani vmware winXp do VirtualBoxu.

  1. Vytvoreni pouze jednoho vmdk souboru: vmware-vdiskmanager -r Windows\ XP\ Pro\ SP2.vmdk -t 2 singleXP.vmdk
  2. Konverze vmdk na raw: qemu-img convert -O raw singleXP-flat.vmdk winXP.raw
  3. Konverze raw na vdi: VBoxManage convertfromraw winXP.raw winXP.vdi
  4. Nastaveni ACPI tak jak bylo ve VMware (Enable IO APIC)
  5. Nastavani IDE na PII4
  6. Disable agp440.sys v recovery konsoli (disable agp440)
  7. Mozne problemy s activaci
Vytvoreni raw z realne masiny:
dd if=/dev/hda bs=15M conv=sync,noerror | ssh -o TCPKeepAlive=yes root@vmware_host_ip

Odkazy:
http://www.kleinfelter.com/node/135

Zenity Budik

Snaha o vytvoreni jedoducheho vyskakovaciho okna (na vareni uplne idalni vec :)) ). Uz jsem si to musel zapsat. Zjistovani jak to funguje mi zase sezralo hodinu :(.
echo 'export DISPLAY=":0.0";/usr/bin/zenity --info --text "Nejaky Vtipny Text"' | at now+1min

echo 'mpq321 /cesta/k/songu' | at now+1min

Saturday, April 11, 2009

Prilis komplikovana mys

Koupil jsem si prilis komplikovanou mys. 11 tlacitek celkem. Bohuzel funkcnost v linuxu je takova zvlastni. Novy evdev driver vsechna tlacitka pozna a umozni vyuzivat, ale s ostatnimi palikacemi je to trosku slozitejsi (naprosto nechapu kde je zakopany pes).K vyreseni tohoto problemu tu mame xev, xbindkeys, xmacroplay.

xev..ukaze po zmacknuti kod klavesy a vsechny veci s tim souvesijici (napriklad zda je klavesa detekovana)
xbindkeys..umozni po stisknuti urcite kombinace klaves spustit libovolny program
xmacroplay..umoznuje poslat klavesu nebo kombinaci klaves xservru

Spusteni xbindkeys v povidacim modu
xbindkeys -n -v

Muj .xbindkeysrc zatim spis prvni pokus.

# Control + mouse button 1 starts an xterm
# "xterm"
# Control + b:13

# Mappings for keys for MX Revo
# b:1 - left mouse button
# b:2 - left and right mouse button together
# b:3 - right mouse button
# b:4 - mouse wheel up
# b:5 - mouse wheel down
# b:6 - mouse wheel left
# b:7 - mouse wheel right
# b:8 - back button
# b:9 - forward button
# b:10 - -none-
# b:11 - -none-
# b:12 - -none-
# b:13 - media wheel up
# b:14 - -none-
# b:15 - media wheel down
# b:16 - media wheel press
# b:17 - -none-


"echo 'KeyStrPress KP_1 KeyStrRelease KP_1'| xmacroplay :0"
b:6
"echo 'KeyStrPress KP_2 KeyStrRelease KP_2' | xmacroplay :0"
b:7
"echo 'KeyStrPress KP_3 KeyStrRelease KP_3'| xmacroplay :0"
b:8
"echo 'KeyStrPress KP_4 KeyStrRelease KP_4' | xmacroplay :0"
b:9
"echo 'KeyStrPress KP_5 KeyStrRelease KP_5'| xmacroplay :0"
b:13
"echo 'KeyStrPress KP_6 KeyStrRelease KP_6' | xmacroplay :0"
b:15
"echo 'KeyStrPress KP_7 KeyStrRelease KP_7'| xmacroplay :0"
b:16
# "echo 'KeyStrPress KP_8 KeyStrRelease KP_8'| xmacroplay :0"
# c:0x1008ff1b

# Mapping for mousewheel right
#"echo 'KeyStrPress Control_L KeyStrPress Shift_L KeyStrPress Tab KeyStrRelease Tab KeyStrRelease Shift_L KeyStrRelease Control_L'| xmacroplay :0"
#b:6
#“echo 'KeyStrPress Control_L KeyStrPress Tab KeyStrRelease Tab KeyStrRelease Control_L' | xmacroplay :0″
#b:7

# Mappings for media wheel
#“echo 'KeyStrPress Control_L KeyStrPress t KeyStrRelease t KeyStrRelease Control_L' | xmacroplay :0″
#b:13
#“echo 'KeyStrPress Control_L KeyStrPress w KeyStrRelease w KeyStrRelease Control_L' | xmacroplay :0″
#b:15
#“echo 'KeyStrPress Alt_L KeyStrPress F9 KeyStrRelease F9 KeyStrRelease Alt_L' | xmacroplay :0″
#b:17

# Mappings for middle button
#“echo 'ButtonPress 2 ButtonRelease 2' | xmacroplay :0″
#c:0xE1

Sunday, March 29, 2009

qemu-kvm pres vnc na pozadi

qemu-kvm
-m 1024
-hdb /home/slune/Images/disk1.img
-vnc 127.0.0.1:1
-usbdevice tablet
-cdrom /home/slune/Images/F10-i686-Live.iso
-daemonize
/home/slune/Images/fedora.img

Pro paranoiky
ssh -L 5901:127.0.0.1:5901 w.x.y.z