-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcsf.sh
120 lines (106 loc) · 2.65 KB
/
csf.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
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
#/usr/bin/bash
ips_link='https://raw.githubusercontent.com/khalequzzaman17/anon_ips/main/ipv4.txt'
csf_deny_file='/etc/csf/csf.deny'
csf_deny_bak_file='/etc/csf/csf.deny_bak'
exit_flag=0
csf_reload=0
is_csf_deny_bak_file_exists=0
EPACE=' '
check_input(){
if [ -z "${1}" ]
then
help_message
exit 1
fi
}
check_environment(){
if [ ! -f "$csf_deny_file" ]
then
echo "$csf_deny_file does not exists"
exit_flag=1;
elif [ ! -f "$csf_deny_bak_file" ]
then
echo "Backup $csf_deny_file to $csf_deny_bak_file"
cp -f $csf_deny_file $csf_deny_bak_file
fi
if [ "$EUID" -ne 0 ]
then
echo "Please run as root user!"
exit_flag=1;
fi
curl -m 5 -s https://raw.githubusercontent.com/khalequzzaman17/anon_ips/main/ipv4.txt >/dev/null 2>&1
if [ ${?} != 0 ]
then
echo "${ips_link} not working, please check!"
exit_flag=1;
fi
if [ $exit_flag = "0" ]
then
echo "[Success] Environment checked!!"
else
echo "[ERROR] Failed Verificaion!!"
exit 1;
fi
}
echow(){
FLAG=${1}
shift
echo -e "\033[1m${EPACE}${FLAG}\033[0m${@}"
}
help_message(){
echo -e "\033[1mOPTIONS\033[0m"
echow '-u, --update'
echo "${EPACE}${EPACE}Backup csf.deny to csf.deny_bak"
echow '-r, --restore'
echo "${EPACE}${EPACE}Restore csf.deny from csf.deny_bak"
echow '-h, --help'
echo "${EPACE}${EPACE}Display help."
}
resotre_csf_setting(){
echo 'Restore csf'
for line in `curl -ks https://raw.githubusercontent.com/khalequzzaman17/anon_ips/main/ipv4.txt`;
do
sed -i "/$line/d" $csf_deny_file
done
echo 'Restart csf'
csf -ra >/dev/null 2>&1
}
update_csf_setting(){
echo 'Update CSF csf.deny'
for line in `curl -ks https://raw.githubusercontent.com/khalequzzaman17/anon_ips/main/ipv4.txt`;
do
if grep -q $line $csf_deny_file
then
echo "$line is in $csf_deny_file"
else
echo "Append $line to $csf_deny_file"
echo "$line # Anon IPs" >> $csf_deny_file
csf_reload=1
fi
done
if [ $csf_reload = 1 ]
then
echo 'Restart csf'
csf -ra >/dev/null 2>&1
fi
}
check_input ${1}
if [ ! -z "${1}" ]
then
case ${1} in
-[hH] | -help | --help)
help_message
;;
-[uU] | -update | --update)
check_environment "-u"
update_csf_setting
;;
-[rR] | -restore | --restore)
check_environment "-r"
resotre_csf_setting
;;
*)
help_message
;;
esac
fi