X-Git-Url: http://git.ipfire.org/?p=ipfire-2.x.git;a=blobdiff_plain;f=src%2Fscripts%2Fxt_geoip_update;h=93884dcf5b67de12467c467b67a4af0f0cca32dd;hp=0ee774470a4f8ec2fe815e624452b1efd9d9cdda;hb=903052ddea715c66d15b18c9be4631bea8ab4bd5;hpb=364452506fcc7170c000d2ac7fe7ae67351a6241 diff --git a/src/scripts/xt_geoip_update b/src/scripts/xt_geoip_update index 0ee774470a..93884dcf5b 100644 --- a/src/scripts/xt_geoip_update +++ b/src/scripts/xt_geoip_update @@ -2,7 +2,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2014 IPFire Development Team # +# Copyright (C) 2019 IPFire Development Team # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -24,13 +24,10 @@ TMP_FILE=$(mktemp -p $TMP_PATH) SCRIPT_PATH=/usr/local/bin DEST_PATH=/usr/share/xt_geoip +DB_PATH=/var/lib/GeoIP -DL_URL=http://geolite.maxmind.com/download/geoip/database -DL_FILE=GeoIPCountryCSV.zip - -CSV_FILE=GeoIPCountryWhois.csv - -ARCH=LE +DL_URL=https://geolite.maxmind.com/download/geoip/database +DL_FILE=GeoLite2-Country-CSV.zip eval $(/usr/local/bin/readhash /var/ipfire/proxy/settings) @@ -43,7 +40,7 @@ function download() { # Proxy settings. # Check if a proxy should be used. if [[ $UPSTREAM_PROXY ]]; then - PROXYSETTINGS="-e http_proxy=http://" + PROXYSETTINGS="-e https_proxy=http://" # Check if authentication against the proxy is configured. if [[ $UPSTREAM_USER && $UPSTREAM_PASSWORD ]]; then @@ -57,42 +54,41 @@ function download() { # 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 @@ -113,23 +109,18 @@ function main() { # 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 }