cron.daily rkhunter
: 27 kwietnia 2014, 18:43
Witam
anacron uruchamia cron.daily i cron.weekly
w cron.daily mam skrypt skanujący system w poszukiwaniu rootkitów , który w razie warningów ma powiadamiać mnie lokalnie poprzez email
w cron.weekly klolejny skrypt wykonujący aktualizację rootkithuntera i jego baz.
sam rkhunter skonfigurowany prawidłowo (jak sądzę), po konfiguracji rkhunter -C
Restart.
Mimo to nie otrzymałem żadnego powiadomienia o skanowaniu. Kiedy wykonywane są skrypty z cron.daily ? O jakichś określonych porach czy po pierwszym w danym dniu uruchomieniu maszyny ?
cat anacrontab
cat /etc/cron.daily/rkhunter
cat /etc/cron.weekly/rkhunter
cat /etc/default/rkhunter
cat /etc/rkhunter.conf ze względu na rozmiar wrzuciłem na pastebin
http://pastebin.com/raw.php?i=HkZ983Aj
Ręczne skanowanie działa, a dlaczego automatyczne nie?
Edycja:
Ok działa raport o skanowaniu doszedł 00:13 (nie wiedzieć dlaczego w dniu w którym to ustawiałem nic się nie wydarzyło). Teraz pytanie jak w końcu działa ten cron? Kiedy uruchamia zadania z daily? Co będzie gdy wyłączę komputer i włączę go np raz dziennie na 1h?
Edycja 2:
Znalazłem odpowiedzi na moje pytania tutaj:
http://manpages.debian.org/cgi-bin/man. ... &locale=pl
W skrócie. Jak zainstalowany jest anacron to nie działa cron. Anacron przeznaczony jest dla domowych PC, cron na serwery działające 24h/dobę przez 365dni/rok. podczas uruchomienia komputera anacron pobiera konfigurację z /etc/crontab sprawdza czy nie zostało już wykonane w ciągu ostatnich n-zaplanowanych dni, czeka określoną liczbę minut podaną jako parametr zwłoki, wykonuje zadania (defaultowo z cron.daily *weekly *monthly), a przy wyjściu zapisuje specjalne pliki do każdego zadania zawierające znaczniki czasowe (tylko data, bez godziny) ostatniego wykonania (zapisuje je tutaj /var/spool/anacron ) Sprawdza co jest jeszcze do zrobienia i kończy.
Czyli u mnie wyglądało to tak, dodałem zadanie do cron.daily i cron.weekly, ale w /var/spool/anacron w plikach cron.daily i cron.weekly były już zapisane znaczniki czasowe inforumjące anacrona że skrypty z tych katalogów zostały już w danym dniu (cron.daily) , tygodniu (cron.weekly) i miesiącu (cron.monthly) wykonane. Dlatego Anacron czekał na zmianę daty zanim ponownie wykonał zadania z cron.daily
Widzę tutaj dwie niedoskonałości. Po pierwsze może się zdarzyć że skrypty z daily zostaną wykonane tuż przed północą (jeżeli cały dzień nie włączaliśmy peceta) i tuż po północy (wystarczy zrestartować maszynę po północy, zostanie odczytany znacznik z datą z dnia poprzedniego i skrypty z cron.daily wykonaja się powtórnie). Po drugie po dodaniu nowego skryptu do cron.daily nie zostanie on wykonany w tym samym dniu, bo anacron już wykonał zaplanowane zadania. Można sobie pomóc usuwając lub edytując /var/spool/anacron/cron.daily
Solved
anacron uruchamia cron.daily i cron.weekly
w cron.daily mam skrypt skanujący system w poszukiwaniu rootkitów , który w razie warningów ma powiadamiać mnie lokalnie poprzez email
w cron.weekly klolejny skrypt wykonujący aktualizację rootkithuntera i jego baz.
sam rkhunter skonfigurowany prawidłowo (jak sądzę), po konfiguracji rkhunter -C
Restart.
Mimo to nie otrzymałem żadnego powiadomienia o skanowaniu. Kiedy wykonywane są skrypty z cron.daily ? O jakichś określonych porach czy po pierwszym w danym dniu uruchomieniu maszyny ?
cat anacrontab
Kod: Zaznacz cały
# /etc/anacrontab: configuration file for anacron
# See anacron(8) and anacrontab(5) for details.
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
HOME=/root
LOGNAME=root
# These replace cron's entries
1 5 cron.daily run-parts --report /etc/cron.daily
7 10 cron.weekly run-parts --report /etc/cron.weekly
@monthly 15 cron.monthly run-parts --report /etc/cron.monthly
Kod: Zaznacz cały
#!/bin/sh
RKHUNTER=/usr/bin/rkhunter
test -x $RKHUNTER || exit 0
# source our config
. /etc/default/rkhunter
if [ -z "$NICE" ]; then
NICE=0
fi
if [ -z "$RUN_CHECK_ON_BATTERY" ]; then
RUN_CHECK_ON_BATTERY="false"
fi
# Do not run daily check if running on battery except if explicitely allowed
if [ -x /usr/bin/on_ac_power >/dev/null 2>&1 ]; then
on_ac_power >/dev/null 2>&1
[ $? -eq 1 -a "$RUN_CHECK_ON_BATTERY" != "true" ] && exit 0
fi
case "$CRON_DAILY_RUN" in
[YyTt]*)
OUTFILE=`mktemp` || exit 1
/usr/bin/nice -n $NICE $RKHUNTER --cronjob --report-warnings-only --appendlog > $OUTFILE
if [ -s "$OUTFILE" -a -n "$REPORT_EMAIL" ]; then
(
echo "Subject: [rkhunter] $(hostname -f) - Daily report"
echo "To: $REPORT_EMAIL"
echo ""
cat $OUTFILE
) | /usr/sbin/sendmail $REPORT_EMAIL
fi
rm -f $OUTFILE
;;
*)
exit 0
;;
esac
cat /etc/cron.weekly/rkhunter
Kod: Zaznacz cały
#!/bin/sh
RKHUNTER=/usr/bin/rkhunter
test -x $RKHUNTER || exit 0
# source our config
. /etc/default/rkhunter
case "$CRON_DB_UPDATE" in
[YyTt]*)
if [ ! -x /usr/bin/wget ] && [ ! -x /usr/bin/curl ] && [ ! -x /usr/bin/links ] && \
[ ! -x /usr/bin/elinks ] && [ ! -x /usr/bin/lynx ]; then
echo "No tool with which to download rkhunter updates was found on your system. Please install wget, curl, (e)links or lynx"
exit 1
fi
OUTFILE=`mktemp` || exit 1
case "$DB_UPDATE_EMAIL" in
[YyTt]*)
(
echo "Subject: [rkhunter] $(hostname -f) - Weekly database update"
echo "To: $REPORT_EMAIL"
echo ""
$RKHUNTER --versioncheck --nocolors --appendlog
$RKHUNTER --update --nocolors --appendlog
) | /usr/sbin/sendmail $REPORT_EMAIL
;;
*)
$RKHUNTER --versioncheck --appendlog 1>/dev/null 2>$OUTFILE
$RKHUNTER --update --appendlog 1>/dev/null 2>>$OUTFILE
;;
esac
if [ -s "$OUTFILE" ]; then
(
echo "Subject: [rkhunter] $(hostname -f) - Weekly rkhunter database update"
echo "To: $REPORT_EMAIL"
echo ""
cat $OUTFILE
) | /usr/sbin/sendmail $REPORT_EMAIL
fi
rm -f $OUTFILE
;;
*)
exit 0
;;
esac
cat /etc/default/rkhunter
Kod: Zaznacz cały
# Defaults for rkhunter automatic tasks
# sourced by /etc/cron.*/rkhunter and /etc/apt/apt.conf.d/90rkhunter
#
# This is a POSIX shell fragment
#
# Set this to yes to enable rkhunter daily runs
# (default: true)
CRON_DAILY_RUN="true"
# Set this to yes to enable rkhunter weekly database updates
# (default: true)
CRON_DB_UPDATE="true"
# Set this to yes to enable reports of weekly database updates
# (default: false)
DB_UPDATE_EMAIL="true"
# Set this to the email address where reports and run output should be sent
# (default: root)
REPORT_EMAIL="hypnos@hypnos-deb"
# Set this to yes to enable automatic database updates
# (default: false)
APT_AUTOGEN="true"
# Nicenesses range from -20 (most favorable scheduling) to 19 (least favorable)
# (default: 0)
NICE="10"
# Should daily check be run when running on battery
# powermgmt-base is required to detect if running on battery or on AC power
# (default: false)
RUN_CHECK_ON_BATTERY="false"
http://pastebin.com/raw.php?i=HkZ983Aj
Ręczne skanowanie działa, a dlaczego automatyczne nie?
Edycja:
Ok działa raport o skanowaniu doszedł 00:13 (nie wiedzieć dlaczego w dniu w którym to ustawiałem nic się nie wydarzyło). Teraz pytanie jak w końcu działa ten cron? Kiedy uruchamia zadania z daily? Co będzie gdy wyłączę komputer i włączę go np raz dziennie na 1h?
Edycja 2:
Znalazłem odpowiedzi na moje pytania tutaj:
http://manpages.debian.org/cgi-bin/man. ... &locale=pl
W skrócie. Jak zainstalowany jest anacron to nie działa cron. Anacron przeznaczony jest dla domowych PC, cron na serwery działające 24h/dobę przez 365dni/rok. podczas uruchomienia komputera anacron pobiera konfigurację z /etc/crontab sprawdza czy nie zostało już wykonane w ciągu ostatnich n-zaplanowanych dni, czeka określoną liczbę minut podaną jako parametr zwłoki, wykonuje zadania (defaultowo z cron.daily *weekly *monthly), a przy wyjściu zapisuje specjalne pliki do każdego zadania zawierające znaczniki czasowe (tylko data, bez godziny) ostatniego wykonania (zapisuje je tutaj /var/spool/anacron ) Sprawdza co jest jeszcze do zrobienia i kończy.
Czyli u mnie wyglądało to tak, dodałem zadanie do cron.daily i cron.weekly, ale w /var/spool/anacron w plikach cron.daily i cron.weekly były już zapisane znaczniki czasowe inforumjące anacrona że skrypty z tych katalogów zostały już w danym dniu (cron.daily) , tygodniu (cron.weekly) i miesiącu (cron.monthly) wykonane. Dlatego Anacron czekał na zmianę daty zanim ponownie wykonał zadania z cron.daily
Widzę tutaj dwie niedoskonałości. Po pierwsze może się zdarzyć że skrypty z daily zostaną wykonane tuż przed północą (jeżeli cały dzień nie włączaliśmy peceta) i tuż po północy (wystarczy zrestartować maszynę po północy, zostanie odczytany znacznik z datą z dnia poprzedniego i skrypty z cron.daily wykonaja się powtórnie). Po drugie po dodaniu nowego skryptu do cron.daily nie zostanie on wykonany w tym samym dniu, bo anacron już wykonał zaplanowane zadania. Można sobie pomóc usuwając lub edytując /var/spool/anacron/cron.daily
Solved