Zabezpieczenie serwera przed usuwaniem logów .bash_history przez userów.
Część 1 – Zezwolenie na otwarcie zapisu do pliku .bash_history
tylko w trybie dopisywania danych na końcu.
(chattr +a)
* Dla partycji z systemem plików ext3 wystarczy wydać polecenie:
chattr +a /home/*/.bash_history
* Dla partycji z systemem plików reiserFS należy do pliku /etc/fstab
w sekcji /home dopisać opcję attrs.
(Przykład: /dev/hda4 /home reiserfs defaults,attrs 1 2)
teraz przemontować partycję (mount -o remount /home)
i powyższe chattr +a /home/*/.bash_history
* Modyfikacja pliku /usr/sbin/adduser.
Aby każdy nowo założony użytkownik serwera posiadał od razu
w swoim katalogu domowym plik .bash_history
z atrybutem chattr +a należy do w/w pliku dopisać:
if [ „$SHL” = „-s /bin/bash” ]; then
cd $HME
touch .bash_history
chown $LOGIN: .bash_history
$chmod 600 .bash_history
chattr +a .bash_history
fi
wpis ten najlepiej dodać na końcu pliku przed:
echo
echo
echo „Account setup complete.”
exit 0
Część 2 – Zapis historii do pliku.
Sam atrybut chattr +a nie da pełnego zabezpieczenia ponieważ działania
usera który przed wylogowaniem się z serwera wywoła polecenie unset HISTFILE
nie zostaną zapisane w pliku .bash_history. Aby temu zaradzić wystarczy do pliku
/etc/profile dopisać następujące linijki:
HISTIGNORE=””
HISTCONTROL=””
readonly HISTFILE
readonly HISTSIZE
readonly HISTFILESIZE
readonly HISTIGNORE
readonly HISTCONTROL
export HISTFILE HISTSIZE HISTFILESIZE HISTIGNORE HISTCONTROL
teraz po wydaniu polecenia unset HISTFILE oczom usera ukaże się
-bash: unset: HISTFILE: nie można anulować definicji: variable jest tylko do odczytu
Powyższy artykuł został pisany w oparciu o serwer z zainstalowanym systemem Slackware
(na innych systemach pliki mogą się różnić od wymienionych tutaj) i sprawdza się jeżeli
jedyna dostępna powłoka dla userów to bash.
Autor: Krzysztof Wnuk