Samba v4 jako serwer AD bardzo dobrze sprawdza się w pracy. Jednakże czasami występują problemy, takie jak poniżej:

Problem:

Podczas wywołania komendy: samba-tool gpo listall dostajemy komunikat jak poniżej:

ERROR(runtime): uncaught exception – (’Could not find a DC for domain’, NTSTATUSError(3221225524, 'The object name is not found.’))

Rozwiązanie:

W /etc/resolv.conf ustawiamy jak poniżej:

search mojadomena.lan

nameserver 127.0.0.1

Po zainstalowaniu Ubuntu Server jako kontener chciałem mieć do niego dostęp poprzez ZeroTier. Niestety otrzymywałem taki komunikat na serwerze Ubuntu:

zerotier-one[147]: ERROR: unable to configure virtual network port: could not open TUN/TAP device: No such file or directory

Rozwiązaniem okazało się:

na Proxmox:

cd /etc/pve/lxc/ nano 10x.conf

i tam dodajemy następujący wpis:

lxc.cgroup.devices.allow: c 10:200 rwm

lxc.hook.autodev: sh -c „modprobe tun; cd ${LXC_ROOTFS_MOUNT}/dev; mkdir net; mknod net/tun c 10 200; chmod 0666 net/tun”

lub

lxc.cgroup2.devices.allow: c 10:200 rwm

lxc.mount.entry: /dev/net/tun dev/net/tun none bind,create=file

na Ubuntu server:

cd /dev

mkdir net

mknod net/tun c 10 200

chmod0666 net/tun

i restartujemy nasz Ubuntu Server

Poniższe komendy pozwolą na aktualizację PHP 7.0 do wersji 7.4 dla Debian 9:

apt-get update && apt-get upgrade

apt-get -y install ca-certificates apt-transport-https

wget -q https://packages.sury.org/php/apt.gpg -O- | apt-key add -

echo "deb https://packages.sury.org/php/ stretch main" | tee /etc/apt/sources.list.d/php.list

apt-get update

apt-get -y install php7.4 php7.4-cli php7.4-common php7.4-curl php7.4-mbstring php7.4-mysql php7.4-xml

php -v 


W systemie linux jeśli znamy adres ip danego urządzenia, możemy również poznać jego mac adres wykonując poniższą komendę:

arping 192.168.x.x -c 1

Dostajemy odpowiedź jak poniżej:

ARPING 192.168.x.x from 192.168.x.x eth0
Unicast reply from 192.168.x.x [xx:xx:xx:xx:84:2F] 1.368ms
Sent 1 probes (1 broadcast(s))
Received 1 response(s)

PHPmyadmin działał bez problemu na Debian 8. Jednakże, wsparcie dla Debian 8 zakończyło się, dlatego zaktualizowałem do Debian 9. Wszystko poprawnie działa, jednakże problem pojawił się z PHPmyadmin, gdzie pokazywała się biała strona.

W logach /var/log/apache2/error.log można było odczytać następującą frazę:

[Fri Jul 31 09:39:02.096786 2020] [:error] [pid 31386] [client 192.168.x.1:43198] PHP Warning: require_once(/usr/share/php/php-php-gettext/gettext.inc): failed to open stream: Operation not permitted in /usr/share/phpmyadmin/libraries/common.inc.php on line 77

Rozwiązaniem okazało się stworzenie symlinku:

  • Przechodzimy do folderu /usr/share/php
  • mv php-gettext php-gettext.orig
  • ln -s php-php-gettext php-gettext

W systemie Ubuntu w połączeniu z Google Authenticator możemy w prosty sposób stworzyć sobie autoryzację dwuskładnikową. Poniżej przedstawiam kroki:

sudo apt-get update && apt-get upgrade
sudo apt-get install libpam-google-authenticator

Dalej z poziomu danego użytkownika, wpisujemy komendę:

google-authenticator

Odpowiadamy na pytania, które pojawią się po wpisaniu powyższej komendy.

W dalszym kroku uzyskamy QR kod oraz tzw. kody ratunkowe. Kod QR skanujemy w aplikacji mobilnej Google Authenticator, którą ściągamy ze sklepu Google Play.

Dalej edytujemy linijkę w naszym systemie Ubuntu:

sudo nano /etc/pam.d/common-auth

#end of pam-auth-update config
auth required pam_google_authenticator.so nullok

Wykonujemy restart systemu i możemy się cieszyć dwustopniową autoryzacją.

Jeżeli chcielibyśmy aby docker współpracował z naszą maszyną wirtualną na Proxmox`ie, musimy wykonać następujące kroki:

  1. Instalujemy maszynę/kontener na Proxmox`ie
  2. Ustawiamy na naszej maszynie w ustawieniach Opcje -> Features na nesting=1
  3. Instalujemy docker komendą apk add docker
  4. Zmieniamy wpisy dla cgroups w Alpine Linux i po wpisach restarujemy maszynę/dockera:
# remove dirs for failed mounts 
rmdir /sys/fs/cgroup/cpu && rmdir /sys/fs/cgroup/cpuacct && rmdir /sys/fs/cgroup/net_cls && rmdir /sys/fs/cgroup/net_prio 
# mount missing cgroups (Ubuntu style) 
mkdir "/sys/fs/cgroup/cpu,cpuacct" 
mount -n -t cgroup -o "nodev,noexec,nosuid,cpu,cpuacct" "cpu,cpuacct" "/sys/fs/cgroup/cpu,cpuacct" 
ln -s "cpu,cpuacct" /sys/fs/cgroup/cpu 
ln -s "cpu,cpuacct" /sys/fs/cgroup/cpuacct 
mkdir "/sys/fs/cgroup/net_cls,net_prio"
mount -n -t cgroup -o nodev,noexec,nosuid,net_cls,net_prio" "net_cls,net_prio" "/sys/fs/cgroup/net_cls,net_prio" 
ln -s "net_cls,net_prio" /sys/fs/cgroup/net_cls
ln -s "net_cls,net_prio" /sys/fs/cgroup/net_prio
# mount systemd cgroup (Alpine mounts openrc, but Docker requires systemd...) # (based on hint at https://k9s.hatenablog.jp/entry/2019/06/16/075741) 
mkdir /sys/fs/cgroup/systemd 
mount -n -t cgroup -o none,name=systemd cgroup /sys/fs/cgroup/systemd