forked from ckujau/scripts
-
Notifications
You must be signed in to change notification settings - Fork 0
/
sec.sh
executable file
·86 lines (73 loc) · 1.74 KB
/
sec.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
#!/bin/sh
#
# (c) 2010 lists@nerdbynature.de
#
# Execute a few security checks, keep state across runs.
# rkhunter: http://www.rootkit.nl/projects/rootkit_hunter.html
# lynis: http://www.rootkit.nl/projects/lynis.html
# chkrootkit: http://www.chkrootkit.org/
#
STATE=/var/run/sec.state
MAXAGE=7
# unset me!
# DEBUG=echo
# BTS# 231267
if [ -f "$STATE" -a ! -L "$STATE" ]; then
:
else
$DEBUG rm -f "$STATE"
$DEBUG touch "$STATE"
fi
check() {
C="$1"
AGE=`echo \( $(date +%s) - $(stat -c %Y "$STATE"."$C") \) / 604800 | bc`
diff -u "$STATE"."$C" "$STATE"."$C".$$ > "$STATE"."$C".diff
# If something changed, display the differences
if [ -s "$STATE"."$C".diff ]; then
cat "$STATE"."$C".diff
mv "$STATE"."$C".$$ "$STATE"."$C"
# If nothing changed, display statefile anyway (every MAXAGE days)
elif [ "$AGE" -ge $MAXAGE ]; then
cat "$STATE"."$C"
rm "$STATE"."$C".$$
# If nothing changed, clean up
else
rm "$STATE"."$C".$$
fi
}
case $1 in chkrootkit)
$DEBUG touch "$STATE".chkrootkit
cd /opt/chkrootkit/sbin
$DEBUG ./chkrootkit > "$STATE".chkrootkit.$$
check chkrootkit
;;
rkhunter)
$DEBUG touch "$STATE".rkhunter
$DEBUG /opt/rkhunter/bin/rkhunter --pkgmgr DPKG --nocolors --logfile /var/log/rkhunter.log \
--skip-keypress --report-warnings-only --check > "$STATE".rkhunter.$$
check rkhunter
;;
lynis)
$DEBUG touch "$STATE".lynis
cd /opt/lynis
yes | $DEBUG ./lynis --checkall --no-colors > "$STATE".lynis.$$
check lynis
;;
show)
for c in chkrootkit rkhunter lynis; do
echo "======= $c ======="
cat "$STATE"."$c"
done
;;
RESET)
for c in chkrootkit rkhunter lynis; do
echo > "$STATE"."$c"
done
;;
*)
echo "Usage: `basename $0` [chkrootkit|rkhunter|lynis]"
echo " [show]"
echo " [RESET]"
exit 1
;;
esac