По старинке всегда отключаю логи, историю запросов в териминале, и т.п в VPS.
Но недавно хотел настроить парную работу 53 и 5353х портов (DNS+DNSCrypt) и вроде бы всё сделал правильно, отдельно оба сервиса работают, но совместно нет, что-то было неправильно, и нужны были логи.
А логи выключены, заданы такие права разным юзерам на VPS, что легче всё снести, и по новой запустить VPS, чем восстанавливать всё это.
Вот собственно после этого пришла такая идея, а что если, запустить крон, и написать bash скрипт, который будет скажем каждую минуту вычищать все логи, метаданные, и переписывать удаленные файлы помеченные инод?
Вот скрипт на обсуждение! По-моему, всё работает прекрасно!
Пользуйтесь на здоровье, а если есть что сказать, обязательно пишите, может что-то упустил...
Но недавно хотел настроить парную работу 53 и 5353х портов (DNS+DNSCrypt) и вроде бы всё сделал правильно, отдельно оба сервиса работают, но совместно нет, что-то было неправильно, и нужны были логи.
А логи выключены, заданы такие права разным юзерам на VPS, что легче всё снести, и по новой запустить VPS, чем восстанавливать всё это.
Вот собственно после этого пришла такая идея, а что если, запустить крон, и написать bash скрипт, который будет скажем каждую минуту вычищать все логи, метаданные, и переписывать удаленные файлы помеченные инод?
Вот скрипт на обсуждение! По-моему, всё работает прекрасно!
Пользуйтесь на здоровье, а если есть что сказать, обязательно пишите, может что-то упустил...
У вас должно быть более 10 реакций для просмотра скрытого контента.
#!/bin/bash
secure_delete() {
local file=$1
[[ -f "$file" ]] && sudo chattr -i "$file" && shred -uzn 3 "$file"
}
wipe_metadata() {
local device=$1
[[ -b "$device" ]] && wipefs -a "$device"
}
echo "Cleaning logs in /var/log"
cd /var/log || exit
for logfile in *; do
[[ -f "$logfile" ]] && secure_delete "$logfile"
[[ -d "$logfile" ]] && rm -rf "$logfile"
done
sudo chattr +i /var/log
if [[ -d /var/log/rsyslog ]]; then
echo "Cleaning logs in /var/log/rsyslog"
for logfile in /var/log/rsyslog/*; do
[[ -f "$logfile" ]] && secure_delete "$logfile"
done
rm -rf /var/log/rsyslog/*
else
echo "/var/log/rsyslog does not exist"
fi
echo "Rotating and vacuuming systemd journals"
journalctl --rotate
sudo journalctl --vacuum-time=1s
systemctl restart systemd-journald
rm -rf /run/log/journal/*
rm -rf /var/log/journal/*
echo "Cleaning bash history"
for history_file in ~/.bash_history /root/.bash_history; do
[[ -f "$history_file" ]] && secure_delete "$history_file"
done
cat /dev/null > ~/.bash_history
sudo cat /dev/null > /root/.bash_history
chattr +i ~/.bash_history
sudo chattr +i /root/.bash_history
history -c
history -w
echo "Wiping metadata from block devices"
for device in /dev/sd*; do
wipe_metadata "$device"
done
echo "Performing additional checks and cleaning"
find /var/log /var/log/rsyslog /run/log/journal /var/log/journal -type f -exec shred -uzn 3 {} + 2>/dev/null
echo "Checking /var/log directory"
[[ -d /var/log ]] && [[ -z "$(ls -A /var/log)" ]] && echo "/var/log is empty" || ls -la /var/log
echo "Checking /var/log/rsyslog directory"
[[ -d /var/log/rsyslog ]] && [[ -z "$(ls -A /var/log/rsyslog)" ]] && echo "/var/log/rsyslog is empty" || ls -la /var/log/rsyslog
echo "Checking /run/log/journal directory"
[[ -d /run/log/journal ]] && [[ -z "$(ls -A /run/log/journal)" ]] && echo "/run/log/journal is empty" || ls -la /run/log/journal
echo "Checking /var/log/journal directory"
[[ -d /var/log/journal ]] && [[ -z "$(ls -A /var/log/journal)" ]] && echo "/var/log/journal is empty" || ls -la /var/log/journal
echo "Script execution completed"
secure_delete() {
local file=$1
[[ -f "$file" ]] && sudo chattr -i "$file" && shred -uzn 3 "$file"
}
wipe_metadata() {
local device=$1
[[ -b "$device" ]] && wipefs -a "$device"
}
echo "Cleaning logs in /var/log"
cd /var/log || exit
for logfile in *; do
[[ -f "$logfile" ]] && secure_delete "$logfile"
[[ -d "$logfile" ]] && rm -rf "$logfile"
done
sudo chattr +i /var/log
if [[ -d /var/log/rsyslog ]]; then
echo "Cleaning logs in /var/log/rsyslog"
for logfile in /var/log/rsyslog/*; do
[[ -f "$logfile" ]] && secure_delete "$logfile"
done
rm -rf /var/log/rsyslog/*
else
echo "/var/log/rsyslog does not exist"
fi
echo "Rotating and vacuuming systemd journals"
journalctl --rotate
sudo journalctl --vacuum-time=1s
systemctl restart systemd-journald
rm -rf /run/log/journal/*
rm -rf /var/log/journal/*
echo "Cleaning bash history"
for history_file in ~/.bash_history /root/.bash_history; do
[[ -f "$history_file" ]] && secure_delete "$history_file"
done
cat /dev/null > ~/.bash_history
sudo cat /dev/null > /root/.bash_history
chattr +i ~/.bash_history
sudo chattr +i /root/.bash_history
history -c
history -w
echo "Wiping metadata from block devices"
for device in /dev/sd*; do
wipe_metadata "$device"
done
echo "Performing additional checks and cleaning"
find /var/log /var/log/rsyslog /run/log/journal /var/log/journal -type f -exec shred -uzn 3 {} + 2>/dev/null
echo "Checking /var/log directory"
[[ -d /var/log ]] && [[ -z "$(ls -A /var/log)" ]] && echo "/var/log is empty" || ls -la /var/log
echo "Checking /var/log/rsyslog directory"
[[ -d /var/log/rsyslog ]] && [[ -z "$(ls -A /var/log/rsyslog)" ]] && echo "/var/log/rsyslog is empty" || ls -la /var/log/rsyslog
echo "Checking /run/log/journal directory"
[[ -d /run/log/journal ]] && [[ -z "$(ls -A /run/log/journal)" ]] && echo "/run/log/journal is empty" || ls -la /run/log/journal
echo "Checking /var/log/journal directory"
[[ -d /var/log/journal ]] && [[ -z "$(ls -A /var/log/journal)" ]] && echo "/var/log/journal is empty" || ls -la /var/log/journal
echo "Script execution completed"
Последнее редактирование: