SCRIPT_PATH=/usr/local/bin
DEST_PATH=/usr/share/xt_geoip
+DB_PATH=/var/lib/GeoIP
-DL_URL=https://geolite.maxmind.com/download/geoip/database
-DL_FILE=GeoIPCountryCSV.zip
-
-CSV_FILE=GeoIPCountryWhois.csv
-
-ARCH=LE
+DL_URL=http://geolite.maxmind.com/download/geoip/database/
+DL_FILE=GeoLite2-Country-CSV.zip
eval $(/usr/local/bin/readhash /var/ipfire/proxy/settings)
# Get the latest GeoIP database from server.
wget $DL_URL/$DL_FILE $PROXYSETTINGS -O $TMP_FILE
- # Extract files.
+ # Extract files to database path.
unzip $TMP_FILE -d $TMP_PATH
return 0
}
-function build() {
- echo "Convert database..."
+function install() {
+ echo "Install CSV database..."
- # Check if the csv file exists.
- if [ ! -e $TMP_PATH/$CSV_FILE ]; then
- echo "$TMP_PATH/$CSV_FILE not found. Exiting."
- return 1
+ # Check if the database dir exists.
+ if [ ! -e "$DB_PATH" ]; then
+ mkdir -p $DB_PATH &>/dev/null
fi
- # Run script to convert the CSV file into several xtables
- # compatible binary files.
- if ! $SCRIPT_PATH/xt_geoip_build $TMP_PATH/$CSV_FILE -D $TMP_PATH; then
- echo "Could not convert ruleset. Aborting." >&2
+ # Check if the directory for binary databases exists.
+ if [ ! -e "$DEST_PATH" ]; then
+ mkdir -p $DEST_PATH &>/dev/null
+ fi
+
+ # Install CSV databases.
+ if ! cp -af $TMP_PATH/*/* $DB_PATH &>/dev/null; then
+ echo "Could not copy files. Aborting." >&2
return 1
fi
return 0
}
-function install() {
- echo "Install databases..."
-
- # Check if our destination exist.
- if [ ! -e "$DEST_PATH" ]; then
- mkdir -p $DEST_PATH &>/dev/null
- fi
+function build() {
+ echo "Convert database..."
- # Install databases.
- if ! cp -af $TMP_PATH/$ARCH $DEST_PATH &>/dev/null; then
- echo "Could not copy files. Aborting." >&2
+ # Run script to convert the CSV file into several xtables
+ # compatible binary files.
+ if ! $SCRIPT_PATH/xt_geoip_build -S $DB_PATH -D $DEST_PATH; then
+ echo "Could not convert ruleset. Aborting." >&2
return 1
fi
# Download ruleset.
download || exit $?
- # Convert the ruleset.
- if ! build; then
- # Do cleanup.
- cleanup || exit $?
- exit 1
- fi
-
- # Install the converted ruleset.
if ! install; then
# Do cleanup.
cleanup || exit $?
exit 1
fi
- # Finaly remove temporary files.
+ # Remove temporary files.
cleanup || exit $?
+ # Convert the ruleset.
+ build || exit $?
+
return 0
}