Zapomniane hasło admina dla ipa server

FreeIPA Jeśli zapomnimy hasło dla super użytkownika admin w usłudze ipa server to zmiana hasła odbywa się wg poniższej procedury.

W konsoli wpisujemy:

# kadmin.local

kadmin.local:  cpw admin
Enter password for principal "admin@SATKAS.LOCAL":<nowe hasło>
Re-enter password for principal "admin@SATKAS.LOCAL":<nowe hasło>
Password for "admin@SATKAS.LOCAL" changed.

Centralny backup danych przy użyciu Burp

Strona projektu Burp backup

OS serwera: Linux Mint 19.1 (na podstawie Ubuntu 18.04). Klient (dla przykładu ten sam host co serwer). Każdy nowy klient tworzony jest analogicznie jak pierwszy na tym samym hoście. Trzeba tylko określić poprawny adres IP serwera.

Instalujemy aplikację na serwerze:

sudo apt install burp

Lokalizacja plików konfiguracyjnych to:

/etc/burp/burp-server.conf (plik konfiguracyjny serwera)

/etc/burp/burp.conf (plik konfiguracyjny klienta)

/etc/default/burp (dodatkowy plik umożliwoający start serwera - wystapuje on tylko w debianopochodnych)

Najpierw w pliku /etc/default/burp zmieniamy opcję:

RUN=no
na
RUN=yes

Idea pracy z aplikacją burp oparta jest na certyfikatach SSL. Przy starcie serwera aplikacja sama automatycznie wystawia certyfikat dla serwera. Domyślnie aplikacja ustawia nazwę CA na burpCA (będzie nam to potrzebne do wystawiania certyfikatów dla klientów)

W pliku konfiguracyjnym serwera zmieniamy:

address = 192.168.x.x (wpisz adres IP hosta serwera)

status_address = ten sam adres IP co pozycja address

Przeładowujemy aplikację:

systemctl restart burp.service

Przechodzimy do konfiguracji klienta. Najpierw wystawiamy certyfikat dla klienta (na serwerze):

 burp_ca --name Acer --ca burpCA --key --request --sign --batch

Opis istotnych przełączników:

--name Acer (dedykowana nazwa cname dla konkretnego klienta)

--ca burpCA (nazwa naszego CA - niezmienna)

Teraz kopiujemy 3 pliki do klienta

  • /etc/burp/CA/Acer.crt (certyfikat klienta)

  • /etc/burp/CA/Acer.key (klucz klienta)

  • /etc/burp/CA/CA_burpCA.crt (certyfikat naszego CA)

Na serwerze zakładamy plik o nazwie cn jaki nadaliśmy w generowaniu certyfikatu dla klienta (u mnie było to Acer):

  • /etc/burp/clientconfdir/Acer

W nim wypełniamy minimum jedną opcję (password = jakieś hasło). Takie samo hasło musi być w konfigu klienta.

Ważna jest też zmiana ścieżki do klucza, certyfikatu i CA w konfigu klienta. Po prostu wpisz ścieżkę (najlepiej w lokalizacji /etc/burp) do tych plików

ssl_cert_ca = /etc/burp/ssl_cert_ca.pem
ssl_cert = /etc/burp/CA/Acer.crt
ssl_key = /etc/burp/CA/Acer.key

Zmieniamy również scieżkę co chcemy "backupować" czyli zmieniamy opcję:

include = /etc

Można takich includów wpisać więcej. Teraz uruchamiamy pierwszy backup. Z pozycji klienta wykonujemy:

burp -ab

Sprawdzamy ile jest backupów:

burp -al

sprawdzamy co jest np w backupie nr 3:

burp -a l -b 3

Teraz chcemy odzyskać backup nr 3

burp -a r -b 3

Chcemy odzyskać pewien katalog z backupu nr 3

burp -a r -b 3 -r moj_katalog

Chcemy odzyskać mój_katalog do innej lokalizacji (domyślnie system próbuje nadpisać oryginalną lokalizację)

burp -a r -b 3 -r mój_katalog -d /tmp

Filtrowanie logów poczty

Postfix Potrzebowałem na szybko wyciągnąć wszystkie adresy IP z pliku /var/log/mail.log, które wylądowały w specjalnym folderze z niechcianą pocztą. IP-ki będą wprowadzone na czarną listę adresów.

Wchodzimy do określonego folderu z niechcianą pocztą i wykonujemy polecenie:

grep -h -o -E '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' *  |sort|uniq |grep -v ".0$" |grep -v "127.0.0.1"
Wyjaśnienie:

Narzędzie grep jest świetnym narzędziem w powłoce BASH na takie zabawy.

Fraza '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' określa adres IP do wyszukania.

Część grep -v ".0$" realizuje pomijanie całych podsieci (np. x.x.x.0/24)

Część grep -v "127.0.0.1" pomija adres loopback, który nie ma nic wspólnego z adresem serwera clienta.

Teraz dodajemy adresy do pliku (plik czarnej listy zdefiniowaliśmy w main.cf):

x.x.x.x REJECT

....

....

i klient dostaję zwrotkę na swoją pocztę (wiem, wiem spamerzy mają to głęboko :) )

Sep 15 09:12:42 rod postfix/smtpd[14454]: NOQUEUE: reject: RCPT from laconic.pauladowson.com[192.155.99.74]: 554 5.7.1 <laconic.pauladowson.com[192.155.99.74]>: Client host rejected: Access denied; from=<milenaxjjpgegbednarek@accvxz.com> to=<jakisnaszemail@jakasnaszadomena> proto=ESMTP helo=<laconic.accvxz.com>

Szyfrowane połączenie klientem ftp w konsoli

FTP

Musimy połączyć się do serwera ftp, który oferuje szyfrowanie. Wiadomo, domyślnie protokół ftp przesyła czystym tekstem wszystkie dane.

W aplikacjach graficznych typu FileZilla przy konfiguracji konta możemy sobie ustawić jakie ma być połączenie (szyfrowane lub zwykłe).

W konsoli narzędzie ftp nie ma zaimplementowanej opcji wyboru trybu szyfrowanego. W repozytoriach jest natomiast aplikacja ftp-ssl, która robi to samo co zwykły klient ftp dodatkowo szyfrując komunikację

Instalujemy aplikację:

sudo apt install ftp-ssl

i logujemy się do serwera:

ftp-ssl nasz.serwer.ftp

Connected to nasz.serwer.ftp.
220 (vsFTPd 3.0.3)
Name (nasz.serwer.ftp:user):jakis-zalozony-na-serwerze-ftp-user

234 Proceed with negotiation.
[SSL Cipher ECDHE-RSA-AES256-GCM-SHA384]
200 PBSZ set to 0.
200 PROT now Private.
[Encrypted data transfer.]
331 Please specify the password.
Password:

Teraz wpisujemy hasło i możemy cieszyć się szyfrowanym połączeniem ftp

Bash - wyodrębnianie danych IPTC XMP ze zdjęcia

Bash

Jeśli chcemy wydobyć jakąś pojedyńczą sekcję (fotografa, agencję lub opis) ze zdjęcia można użyć narzędzia exiv2.

Wyodrębnienie całości metadanych ze zdjęcia do pliku:

exiv2 -ea image.jpg

Ta komenda utworzy plik o tej samej nazwie co zdjęcie z rozszerzeniem .exv

Wstrzyknięcie tych samych danych z pliku .exv do zdjęcia:

exiv2 -kia image.jpg

Aby wyodrębnić konkretną sekcję np IPTC wydajemy komendę:

exiv2 -PI image.jpg

lub

exiv2 -pi image.jpg

Jeśli chcemy tylko wyodrębnić np. tytuł wydarzenia uwieńczonego na zdjęciu wydajemy komendę:

exiv2 -PIv -g Iptc.Application2.Headline

Oczywiście musimy być pewni, że fotograf, agencja foto podpisuje swoje zdjęcia w programie do edycji meta danych. Inaczej nic nie zobaczymy. Osoby prywatne raczej nie opisują zdjęć więc zobaczysz tylko metadane EXIF(metadane generowane przez aparat fotograficzny).

Jeśli chcemy dodać pojedyńcze rekordy w sekcji np IPTC wydajemy komendę:

exiv2 -kM"add Iptc.Application2.Headline Jakiś tytuł wydarzenia na zdjęciu" image.jpg

Usunięcie sekcji IPTC, XMP, EXIF wykonamy narzędziem jhead

jhead -dc -de -di -dx image.jpg

Oba narzędzia exiv2 i jhead zainstalujemy w ubuntu

sudo apt install exiv2 jhead

Bash - pojemność katalogu z filtrem na pliki

Bash

Zawartość skryptu. Skrypt posiada 2 zmienne. Zmienna $folder to obliczany folder. Zmienna $ext to rozszerzenie plików, które będą zliczane. Skrypt oblicza pojemność katalogu rekursywnie i ogranicza się tylko do plików jpg

#!/bin/bash
folder='/home/user/Obrazy'
ext='.jpg'

foldersize() {
    if [ -d $folder ]; then
        size=$(ls -alRF $folder/ | grep -i $ext | awk 'BEGIN {tot=0} { tot=tot+$5 } END { print tot }')
        countsize=${#size}
        echo "Znaków: $countsize"
        echo "Podliczanie plików $ext"
        if [ $countsize -lt 4 ];then
         echo -n "Zajętość katalogu `realpath $folder`"
         echo "${size}B"
        elif [ $countsize -ge 4 ] && [ $countsize -lt 7 ];then
         echo -n "Zajętość katalogu `realpath $folder` w KB: "
         echo "scale=2;$size/1024" |bc -l
        elif [ $countsize -ge 7 ] && [ $countsize -le 9 ];then
         echo -n "Zajętość katalogu `realpath $folder` w MB: "
         echo "scale=2;$size/1024/1024" |bc -l
        else
         echo -n "Zajętość katalogu `realpath $folder` w GB: "
         echo "scale=2;$size/1024/1024/1024" |bc -l
        fi
    else
        echo "$folder: folder does not exist"
    fi
}

foldersize

Nowy plik w Ubuntu files (nautilus)

Jak otworzymy manager plików w Ubuntu (środowisko Gnome) i chcemy założyć nowy plik np. plik tekstowy to próbójąc w danym katalogu kliknąć prawym przyciskiem myszy (PPM) nie zobaczymy możliwości utworzenia pliku. Jest możliwość założenia katalogu ale nie wiem dlaczego developerzy Gnome nie dali możliwości użytkownikowi zakładać na starcie nowych plików

Nautilius

Aby móc zakadać swobodnie nowe pliki przechodzimy do katalogu domowego użytkownika i wchodzimy do katalogu Szablony (Templates). W katalogu PPM wybieramy "Otwórz w terminalu". W wyświetlonym terminalu wpisujemy

touch Nowy-plik-tekstowy.txt

W menadżerze plików ponownie klikamy PPM i widzimy nową pozycję "Nowy dokument", który prowadzi do możliwości założenia nowego pliku.

U mnie wygląda to tak:

Nautilius

Wyłączenie protokołu ipv6 w Ubuntu/Mint

W konsoli sprawdzamy czy jest włączony ipv6

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: enp1s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000
    link/ether 88:ae:1d:7c:af:4c brd ff:ff:ff:ff:ff:ff
3: wlp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 5c:ac:4c:77:43:aa brd ff:ff:ff:ff:ff:ff
    inet 192.168.88.254/24 brd 192.168.88.255 scope global dynamic wlp2s0
       valid_lft 1185sec preferred_lft 1185sec
    inet6 fe80::8058:8160:b21a:b193/64 scope link
       valid_lft forever preferred_lft forever

Jak widać protokół ipv6 jest włączony (czerwona czcionka)

Przystępujemy do wyłączenia protokołu ipv6

Edytujemy plik /etc/sysctl.conf i dopisujemy odpowiednie wpisy na końcu pliku

net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1

Aby zmiany weszły w "życie" natychmiast, wykonujemy komendę w konsoli:

sudo sysctl -p

Sprawdzamy czy zmiany weszły w "życie".

$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
2: enp1s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000
    link/ether 88:ae:1d:7c:af:4c brd ff:ff:ff:ff:ff:ff
3: wlp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 5c:ac:4c:77:43:aa brd ff:ff:ff:ff:ff:ff
    inet 192.168.88.254/24 brd 192.168.88.255 scope global dynamic wlp2s0
       valid_lft 821sec preferred_lft 821sec