SELinux dla opornych

Czyli jak rozwiązać problem z serii ‚coś nie działa’. 🙂

W środowiskach chronionych SELinuxem, często dochodzi się do sytuacji w której jest ok, ale ‚coś nie działa’. Dostajemy jakieś permission denied, czy inny nic nam nie mówiący komunikat. Gdzie szukać podpowiedzi?

Na Fedorze trzeba podejrzeć

/var/log/audit/audit.log

Jeżeli widzimy tam linie ze słówkiem ‚deny’, to jest duże prawdopodobieństwo, że znaleźliśmy winowajcę. Co dalej?

Przepuszczamy nasz plik loga przez skrypt tłumaczący co zrobić.

sealert -a audit.log > wynik.txt

W pliku wynik będziemy mieli łopatologicznie wytłumaczone co zrobić, żeby dane deny znikło. Czasami podpowiedzi może być kilka. Trzeba wybrać czy np. przełaczamy jakąś flagę globalnie, a może lepiej poprawić kontekst jednego pliku. Tutaj wybór należy już do nas.

Na koniec najważniejsze… SELinux jest skuteczny. Eliminuje sporo zagrożeń. Wyłączanie go to bardzo, ale to bardzo durny pomysł.

[Fedora] System76, Oryx Pro

Firma system76 jest jednym z niewielu „producentów” sprzętu, dla których Linux jest pierwszym i jedynym wspieranym systemem operacyjnym. Niestety wymyślili sobie, że będą wspierać Ubuntu i opartego o niego POP!a (własnej produkcji).
Osobiście wolę wynalazki RHEL’o podobne, także na laptopie/desktopie pracuję na Fedorze. Jak można się domyślać, na moim laptopie niektóre funkcjonalności nie działają out of box.
Żeby rozwiązać problem zarządzania wentylatorami, kolorkami klawiatury itp. przygotowałem repozytorium z paczkami dla Fedory dostępne na moim koprze: https://copr.fedorainfracloud.org/coprs/szydell/system76/

Dodanie repozytorium do Fedory:

sudo dnf install dnf-plugins-core
sudo dnf copr enable szydell/system76 

Instalacja i start:

sudo dnf install system76-dkms system76-power system76-firmware
sudo systemctl enable system76-power system76-power-wake system76-firmware-daemon
sudo systemctl start system76-power system76-firmware-daemon

Do pełni szczęścia brakuje jeszcze paczki system76-driver. Zaktualizuję posta jak będzie dostępny.

Go / Golang – instalacja na Centos 7

Red Hat Enterprise Edition, a co za tym idzie również Centos są znane z dość konserwatywnego podejścia do wersji dostępnych pakietów.
Kiedy piszę tę notatkę, w oficjalnym repozytorium CentOS dostępny Go dostępne jest w wersji 1.8.3, natomiast najnowszy stabilny release Go to wersja 1.10.
Oczywiście instalacja ze źródeł, czy też z tar.gz z binarkami to żaden problem, ale nie po to wymyślono pakiety, żeby wszystko robić na około. Są na szczęście ‚dobrzy ludzie’, którzy pomyśleli o zrobieniu repozytorium z aktualnymi paczkami, można je znaleźć pod adresem: https://go-repo.io/

Ściągawka do instalacji repo:

(root)

rpm --import https://mirror.go-repo.io/centos/RPM-GPG-KEY-GO-REPO
curl -s https://mirror.go-repo.io/centos/go-repo.repo | tee /etc/yum.repos.d/go-repo.repo
yum install golang

Ściągawka do konfiguracji środowiska:
(user do kodowania)

mkdir -p ~/go/{bin,pkg,src}
echo 'export GOPATH="$HOME/go"' >> ~/.bashrc
echo 'export PATH="$PATH:${GOPATH//://bin:}/bin"' >> ~/.bashrc

Centos 7 + apache httpd >=2.4 + mod_wsgi + Python 3 + falcon

Odpalałem ostatnio prostą aplikacyjkę napisaną w pythonie 3 z wykorzystaniem frameworka falcon. Troszkę było kombinowania.
Nie poruszam tutaj kompletnie kwestii uprawnień, selinuxa itd. Zakładam też działające apache httpd i skonfigurowanego vhosta.

  1. Dodaj repozytorium IUS do Centosa 7

    yum install https://centos7.iuscommunity.org/ius-release.rpm
  2. Zainstaluj Python 3.6, mod_wsgi i pip.

    yum install python36u-mod_wsgi python36u-pip
  3. Stwórz środowisko wirtualne ‚app1’ potrzebne do uruchomienia aplikacji. Ścieżka przykładowa.

    sudo mkdir -p /srv/pythonenvs
    cd /srv/pythonenvs
    python3.6 -m venv app1
  4. Aktywuj venv dla swojej sesji

    source app1/bin/activate
  5. Zainstaluj falcona i wszystkie inne zależności

    (app1)$ pip install falcon
  6. Zakładam, że aplikację masz w katalogu /srv/app1/www, a ‚entry point’ to main.py. Bardzo ważne! Aplikacja musi się przedstawiać serwerowi wsgi jako ‚application’. To znaczy, że w kodzie falcon musi być odpalony w następujący sposób:

    api = application = falcon.API()
  7. Dodaj do konfiguracji vhosta:

    WSGIDaemonProcess app1 python-path=/srv/app1/www/ python-home=/srv/pythonenvs/app1
    WSGIProcessGroup app1
    WSGIScriptAlias / /srv/app1/www/main.py
    <Directory /srv/app1/www/>
    Require all granted
    </Directory>
  8. Teraz tylko restart httpd:

    systemctl restart httpd

Zmiana UUID partycji

Dysk HDD na którym miałem system okazał się być zbyt wolny, także sklonowałem jego zawartość na SSD używając komendy ‚dd’. Teraz chciałbym, żeby UUIDy na nowym dysku były wygenerowane od nowa. Jak to zrobić?

Komendą ‚uuidgen’ generujemy nowy UUID:

[szydell@grabki ~]$ uuidgen
5e0b0314-fe0c-4db8-8908-c815d0b67e1f

Na CentOS/Red Hat 7 narzędzie to dostępne jest w pakiecie ‚linux-utils’. Na Debianie i Ubuntu trzeba doinstalować pakiet ‚uuid-runtime’.

Następnie zmieniamy UUID na wybranej przez nas partycji używając ‚tune2fs -U’

sudo tune2fs /dev/sda1 -U 5e0b0314-fe0c-4db8-8908-c815d0b67e1f

Ochłap zaginął, Fallout 4

Może trochę nie na temat, ale… takie drobne ułatwienie dla graczy.

  1. Odpal konsolę (~)
  2. Wpisz ‚prid 0001d162’, enter
  3. Wpisz ‚moveto player’, enter
  4. Wyjdź z konsoli (~)

Ochłap powinien stać tuż obok 😉

Lista pozostałych towarzyszy, których można odzyskać w ten sam sposób:

  1. Cait: Human, Trigger Rush, Combat Zone, ID: 00079305
  2. Codsworth: Mister Handy (Robot), Robot Sympathy, Sanctuary Hills, ID: 0001ca7d
  3. Curie: Miss Nanny/Synth, Combat Medic, Vault81, ID: 00102249
  4. Paladin Danse: Human, Know Your Enemy, Cambridge Police Station, ID: 0005de4d
  5. Deacon: Human, Cloak & Dagger, Old North Church, ID: 00045ac9
  6. Dogmeat: Dog, Attack Dog, Red Rocket Truck Stop, ID: 0001d162
  7. John Hancock: Ghoul, Isodoped, Goodneighbor, ID: 00022615
  8. Robert MacCready: Human, Killshot, Goodneighbor, ID: 0002a8a7
  9. Nick Valentine: Synth, Close to Metal, Valut 114, ID: 00002f25
  10. Piper: Human, Gift of Gab, Diamond City, ID: 0002f1f
  11. Preston Garvey: Human, United We Stand, Concord, ID: 0001a4d7
  12. Strong: Super Mutant, Berserk, Trinity Tower, ID: 0003f2bb
  13. X6-88: Synth, Shield Harmonics, The Institute, ID: 0002e210a

 

Skradzione stąd: https://www.gameskinny.com/03cw4/fallout-4-companion-list-perks-locations-ids/