From d8ec051114890b0f5fe2acc84eb511e10dc31a51 Mon Sep 17 00:00:00 2001 From: Tom Eastep Date: Sun, 20 May 2012 08:59:59 -0700 Subject: [PATCH] Load the geoip cc's dynamically. Signed-off-by: Tom Eastep --- Shorewall/Perl/Shorewall/Chains.pm | 474 +--------- Shorewall/Perl/Shorewall/Config.pm | 1 + Shorewall/Samples/Universal/shorewall.conf | 2 + .../Samples/one-interface/shorewall.conf | 2 + .../Samples/three-interfaces/shorewall.conf | 2 + .../Samples/two-interfaces/shorewall.conf | 2 + Shorewall/configfiles/shorewall.conf | 2 + Shorewall/manpages/shorewall.conf.xml | 33 +- Shorewall6/Samples6/Universal/shorewall6.conf | 2 + .../Samples6/one-interface/shorewall6.conf | 2 + .../Samples6/three-interfaces/shorewall6.conf | 2 + .../Samples6/two-interfaces/shorewall6.conf | 2 + Shorewall6/configfiles/shorewall6.conf | 2 + Shorewall6/manpages/shorewall6.conf.xml | 31 +- docs/ISO-3661.xml | 887 +++++++++--------- 15 files changed, 541 insertions(+), 905 deletions(-) diff --git a/Shorewall/Perl/Shorewall/Chains.pm b/Shorewall/Perl/Shorewall/Chains.pm index cb86005cf..225beee92 100644 --- a/Shorewall/Perl/Shorewall/Chains.pm +++ b/Shorewall/Perl/Shorewall/Chains.pm @@ -29,6 +29,7 @@ require Exporter; use Scalar::Util 'reftype'; use Digest::SHA qw(sha1); +use File::Basename; use Shorewall::Config qw(:DEFAULT :internal); use Shorewall::Zones; use Shorewall::IPAddrs; @@ -565,7 +566,10 @@ my %aliases = ( protocol => 'p', my @unique_options = ( qw/p dport sport icmp-type icmpv6-type s d i o/ ); -our %isocodes; +my %isocodes; + +use constant { ISODIR => '/usr/share/xt_geoip/LE' }; + # # Rather than initializing globals in an INIT block or during declaration, # we initialize them in a function. This is done for two reasons: @@ -635,453 +639,7 @@ sub initialize( $$$ ) { snmp => UDP, tftp => UDP); - if ( $family == F_IPV4 ) { - %isocodes = ( - A1 => "Anonymous Proxy" , - A2 => "Satellite Provider" , - AD => "Andorra" , - AE => "United Arab Emirates" , - AF => "Afghanistan" , - AG => "Antigua and Barbuda" , - AI => "Anguilla" , - AL => "Albania" , - AM => "Armenia" , - AN => "Netherlands Antilles" , - AO => "Angola" , - AP => "Asia/Pacific Region" , - AQ => "Antarctica" , - AR => "Argentina" , - AS => "American Samoa" , - AT => "Austria" , - AU => "Australia" , - AW => "Aruba" , - AX => "Aland Islands" , - AZ => "Azerbaijan" , - BA => "Bosnia and Herzegovina" , - BB => "Barbados" , - BD => "Bangladesh" , - BE => "Belgium" , - BF => "Burkina Faso" , - BG => "Bulgaria" , - BH => "Bahrain" , - BI => "Burundi" , - BJ => "Benin" , - BM => "Bermuda" , - BN => "Brunei Darussalam" , - BO => "Bolivia" , - BR => "Brazil" , - BS => "Bahamas" , - BT => "Bhutan" , - BV => "Bouvet Island" , - BW => "Botswana" , - BY => "Belarus" , - BZ => "Belize" , - CA => "Canada" , - CC => "Cocos (Keeling) Islands" , - CD => "Congo, The Democratic Republic of the" , - CF => "Central African Republic" , - CG => "Congo" , - CH => "Switzerland" , - CI => "Cote D'Ivoire" , - CK => "Cook Islands" , - CL => "Chile" , - CM => "Cameroon" , - CN => "China" , - CO => "Colombia" , - CR => "Costa Rica" , - CU => "Cuba" , - CV => "Cape Verde" , - CX => "Christmas Island" , - CY => "Cyprus" , - CZ => "Czech Republic" , - DE => "Germany" , - DJ => "Djibouti" , - DK => "Denmark" , - DM => "Dominica" , - DO => "Dominican Republic" , - DZ => "Algeria" , - EC => "Ecuador" , - EE => "Estonia" , - EG => "Egypt" , - EH => "Western Sahara" , - ER => "Eritrea" , - ES => "Spain" , - ET => "Ethiopia" , - EU => "Europe" , - FI => "Finland" , - FJ => "Fiji" , - FK => "Falkland Islands (Malvinas)" , - FM => "Micronesia, Federated States of" , - FO => "Faroe Islands" , - FR => "France" , - GA => "Gabon" , - GB => "United Kingdom" , - GD => "Grenada" , - GE => "Georgia" , - GF => "French Guiana" , - GG => "Guernsey" , - GH => "Ghana" , - GI => "Gibraltar" , - GL => "Greenland" , - GM => "Gambia" , - GN => "Guinea" , - GP => "Guadeloupe" , - GQ => "Equatorial Guinea" , - GR => "Greece" , - GS => "South Georgia and the South Sandwich Islands" , - GT => "Guatemala" , - GU => "Guam" , - GW => "Guinea-Bissau" , - GY => "Guyana" , - HK => "Hong Kong" , - HN => "Honduras" , - HR => "Croatia" , - HT => "Haiti" , - HU => "Hungary" , - ID => "Indonesia" , - IE => "Ireland" , - IL => "Israel" , - IM => "Isle of Man" , - IN => "India" , - IO => "British Indian Ocean Territory" , - IQ => "Iraq" , - IR => "Iran, Islamic Republic of" , - IS => "Iceland" , - IT => "Italy" , - JE => "Jersey" , - JM => "Jamaica" , - JO => "Jordan" , - JP => "Japan" , - KE => "Kenya" , - KG => "Kyrgyzstan" , - KH => "Cambodia" , - KI => "Kiribati" , - KM => "Comoros" , - KN => "Saint Kitts and Nevis" , - KP => "Korea, Democratic People's Republic of" , - KR => "Korea, Republic of" , - KW => "Kuwait" , - KY => "Cayman Islands" , - KZ => "Kazakhstan" , - LA => "Lao People's Democratic Republic" , - LB => "Lebanon" , - LC => "Saint Lucia" , - LI => "Liechtenstein" , - LK => "Sri Lanka" , - LR => "Liberia" , - LS => "Lesotho" , - LT => "Lithuania" , - LU => "Luxembourg" , - LV => "Latvia" , - LY => "Libyan Arab Jamahiriya" , - MA => "Morocco" , - MC => "Monaco" , - MD => "Moldova, Republic of" , - ME => "Montenegro" , - MG => "Madagascar" , - MH => "Marshall Islands" , - MK => "Macedonia" , - ML => "Mali" , - MM => "Myanmar" , - MN => "Mongolia" , - MO => "Macau" , - MP => "Northern Mariana Islands" , - MQ => "Martinique" , - MR => "Mauritania" , - MS => "Montserrat" , - MT => "Malta" , - MU => "Mauritius" , - MV => "Maldives" , - MW => "Malawi" , - MX => "Mexico" , - MY => "Malaysia" , - MZ => "Mozambique" , - NA => "Namibia" , - NC => "New Caledonia" , - NE => "Niger" , - NF => "Norfolk Island" , - NG => "Nigeria" , - NI => "Nicaragua" , - NL => "Netherlands" , - NO => "Norway" , - NP => "Nepal" , - NR => "Nauru" , - NU => "Niue" , - NZ => "New Zealand" , - OM => "Oman" , - PA => "Panama" , - PE => "Peru" , - PF => "French Polynesia" , - PG => "Papua New Guinea" , - PH => "Philippines" , - PK => "Pakistan" , - PL => "Poland" , - PM => "Saint Pierre and Miquelon" , - PR => "Puerto Rico" , - PS => "Palestinian Territory, Occupied" , - PT => "Portugal" , - PW => "Palau" , - PY => "Paraguay" , - QA => "Qatar" , - RE => "Reunion" , - RO => "Romania" , - RS => "Serbia" , - RU => "Russian Federation" , - RW => "Rwanda" , - SA => "Saudi Arabia" , - SB => "Solomon Islands" , - SC => "Seychelles" , - SD => "Sudan" , - SE => "Sweden" , - SG => "Singapore" , - SH => "Saint Helena" , - SI => "Slovenia" , - SJ => "Svalbard and Jan Mayen" , - SK => "Slovakia" , - SL => "Sierra Leone" , - SM => "San Marino" , - SN => "Senegal" , - SO => "Somalia" , - SR => "Suriname" , - ST => "Sao Tome and Principe" , - SV => "El Salvador" , - SY => "Syrian Arab Republic" , - SZ => "Swaziland" , - TC => "Turks and Caicos Islands" , - TD => "Chad" , - TF => "French Southern Territories" , - TG => "Togo" , - TH => "Thailand" , - TJ => "Tajikistan" , - TK => "Tokelau" , - TL => "Timor-Leste" , - TM => "Turkmenistan" , - TN => "Tunisia" , - TO => "Tonga" , - TR => "Turkey" , - TT => "Trinidad and Tobago" , - TV => "Tuvalu" , - TW => "Taiwan" , - TZ => "Tanzania, United Republic of" , - UA => "Ukraine" , - UG => "Uganda" , - UM => "United States Minor Outlying Islands" , - US => "United States" , - UY => "Uruguay" , - UZ => "Uzbekistan" , - VA => "Holy See (Vatican City State)" , - VC => "Saint Vincent and the Grenadines" , - VE => "Venezuela" , - VG => "Virgin Islands, British" , - VI => "Virgin Islands, U.S." , - VN => "Vietnam" , - VU => "Vanuatu" , - WF => "Wallis and Futuna" , - WS => "Samoa" , - YE => "Yemen" , - YT => "Mayotte" , - ZA => "South Africa" , - ZM => "Zambia" , - ZW => "Zimbabwe" , - ) - } else { - %isocodes = ( - AD => "Andorra" , - AE => "United Arab Emirates" , - AF => "Afghanistan" , - AL => "Albania" , - AM => "Armenia" , - AO => "Angola" , - AP => "Asia/Pacific Region" , - AR => "Argentina" , - AS => "American Samoa" , - AT => "Austria" , - AU => "Australia" , - AW => "Aruba" , - AZ => "Azerbaijan" , - BA => "Bosnia and Herzegovina" , - BD => "Bangladesh" , - BE => "Belgium" , - BF => "Burkina Faso" , - BG => "Bulgaria" , - BH => "Bahrain" , - BI => "Burundi" , - BJ => "Benin" , - BM => "Bermuda" , - BN => "Brunei Darussalam" , - BO => "Bolivia" , - BR => "Brazil" , - BS => "Bahamas" , - BT => "Bhutan" , - BW => "Botswana" , - BY => "Belarus" , - BZ => "Belize" , - CA => "Canada" , - CD => "Congo, The Democratic Republic of the" , - CH => "Switzerland" , - CI => "Cote D'Ivoire" , - CK => "Cook Islands" , - CL => "Chile" , - CM => "Cameroon" , - CN => "China" , - CO => "Colombia" , - CR => "Costa Rica" , - CU => "Cuba" , - CW => "" , - CY => "Cyprus" , - CZ => "Czech Republic" , - DE => "Germany" , - DJ => "Djibouti" , - DK => "Denmark" , - DO => "Dominican Republic" , - DZ => "Algeria" , - EC => "Ecuador" , - EE => "Estonia" , - EG => "Egypt" , - ES => "Spain" , - EU => "Europe" , - FI => "Finland" , - FJ => "Fiji" , - FM => "Micronesia, Federated States of" , - FO => "Faroe Islands" , - FR => "France" , - GB => "United Kingdom" , - GD => "Grenada" , - GE => "Georgia" , - GG => "Guernsey" , - GH => "Ghana" , - GI => "Gibraltar" , - GL => "Greenland" , - GM => "Gambia" , - GP => "Guadeloupe" , - GR => "Greece" , - GT => "Guatemala" , - GU => "Guam" , - GY => "Guyana" , - HK => "Hong Kong" , - HN => "Honduras" , - HR => "Croatia" , - HT => "Haiti" , - HU => "Hungary" , - ID => "Indonesia" , - IE => "Ireland" , - IL => "Israel" , - IM => "Isle of Man" , - IN => "India" , - IQ => "Iraq" , - IR => "Iran, Islamic Republic of" , - IS => "Iceland" , - IT => "Italy" , - JE => "Jersey" , - JM => "Jamaica" , - JO => "Jordan" , - JP => "Japan" , - KE => "Kenya" , - KG => "Kyrgyzstan" , - KH => "Cambodia" , - KN => "Saint Kitts and Nevis" , - KR => "Korea, Republic of" , - KW => "Kuwait" , - KY => "Cayman Islands" , - KZ => "Kazakhstan" , - LA => "Lao People's Democratic Republic" , - LB => "Lebanon" , - LI => "Liechtenstein" , - LK => "Sri Lanka" , - LS => "Lesotho" , - LT => "Lithuania" , - LU => "Luxembourg" , - LV => "Latvia" , - LY => "Libyan Arab Jamahiriya" , - MA => "Morocco" , - MC => "Monaco" , - MD => "Moldova, Republic of" , - ME => "Montenegro" , - MG => "Madagascar" , - MH => "Marshall Islands" , - MK => "Macedonia" , - ML => "Mali" , - MM => "Myanmar" , - MN => "Mongolia" , - MO => "Macau" , - MT => "Malta" , - MU => "Mauritius" , - MV => "Maldives" , - MW => "Malawi" , - MX => "Mexico" , - MY => "Malaysia" , - MZ => "Mozambique" , - NA => "Namibia" , - NC => "New Caledonia" , - NF => "Norfolk Island" , - NG => "Nigeria" , - NI => "Nicaragua" , - NL => "Netherlands" , - NO => "Norway" , - NP => "Nepal" , - NR => "Nauru" , - NU => "Niue" , - NZ => "New Zealand" , - OM => "Oman" , - PA => "Panama" , - PE => "Peru" , - PF => "French Polynesia" , - PG => "Papua New Guinea" , - PH => "Philippines" , - PK => "Pakistan" , - PL => "Poland" , - PR => "Puerto Rico" , - PS => "Palestinian Territory" , - PT => "Portugal" , - PW => "Palau" , - PY => "Paraguay" , - QA => "Qatar" , - RO => "Romania" , - RS => "Serbia" , - RU => "Russian Federation" , - RW => "Rwanda" , - SA => "Saudi Arabia" , - SB => "Solomon Islands" , - SC => "Seychelles" , - SD => "Sudan" , - SE => "Sweden" , - SG => "Singapore" , - SI => "Slovenia" , - SK => "Slovakia" , - SL => "Sierra Leone" , - SM => "San Marino" , - SN => "Senegal" , - SO => "Somalia" , - ST => "Sao Tome and Principe" , - SV => "El Salvador" , - SY => "Syrian Arab Republic" , - SZ => "Swaziland" , - TH => "Thailand" , - TK => "Tokelau" , - TN => "Tunisia" , - TO => "Tonga" , - TR => "Turkey" , - TT => "Trinidad and Tobago" , - TV => "Tuvalu" , - TW => "Taiwan" , - TZ => "Tanzania, United Republic of" , - UA => "Ukraine" , - UG => "Uganda" , - US => "United States" , - UY => "Uruguay" , - UZ => "Uzbekistan" , - VA => "Holy See (Vatican City State)" , - VE => "Venezuela" , - VI => "Virgin Islands, U.S." , - VN => "Vietnam" , - VU => "Vanuatu" , - WS => "Samoa" , - YE => "Yemen" , - ZA => "South Africa" , - ZM => "Zambia" , - ZW => "Zimbabwe" , - ); - } + %isocodes = (); # # The chain table is initialized via a call to initialize_chain_table() after the configuration and capabilities have been determined. @@ -5130,6 +4688,18 @@ sub conditional_rule_end( $ ) { add_commands( $chainref , "fi\n" ); } +sub load_isocodes() { + my $isodir = $config{GEOIPDIR} || ISODIR; + + fatal_error "GEOIPDIR ($isodir) does not exist" unless -d $isodir; + + my @codes = `ls $isodir/*$family 2>/dev/null`; + + fatal_error "$isodir does not exist or is empty" unless @codes; + + $isocodes{substr(basename($_),0,2)} = 1 for @codes; +} + sub mysplit( $;$ ); # @@ -5177,6 +4747,8 @@ sub match_source_net( $;$\$ ) { require_capability 'GEOIP_MATCH', 'A country-code', ''; + load_isocodes unless %isocodes; + my @countries = split_list $2, 'cc'; fatal_error "Too many Country Codes ($2)" if @countries > 15; @@ -5247,6 +4819,8 @@ sub imatch_source_net( $;$\$ ) { require_capability 'GEOIP_MATCH', 'A country-code', ''; + load_isocodes unless %isocodes; + my @countries = split_list $2, 'cc'; fatal_error "Too many Country Codes ($2)" if @countries > 15; @@ -5314,6 +4888,8 @@ sub match_dest_net( $;$ ) { require_capability 'GEOIP_MATCH', 'A country-code', ''; + load_isocodes unless %isocodes; + my @countries = split_list $2, 'cc'; fatal_error "Too many Country Codes ($2)" if @countries > 15; @@ -5379,6 +4955,8 @@ sub imatch_dest_net( $;$ ) { require_capability 'GEOIP_MATCH', 'A country-code', ''; + load_isocodes unless %isocodes; + my @countries = split_list $2, 'cc'; fatal_error "Too many Country Codes ($2)" if @countries > 15; diff --git a/Shorewall/Perl/Shorewall/Config.pm b/Shorewall/Perl/Shorewall/Config.pm index 384d9ba6d..b0bf81323 100644 --- a/Shorewall/Perl/Shorewall/Config.pm +++ b/Shorewall/Perl/Shorewall/Config.pm @@ -559,6 +559,7 @@ sub initialize( $;$ ) { RESTOREFILE => undef, IPSECFILE => undef, LOCKFILE => undef, + GEOIPDIR => undef, # # Default Actions/Macros # diff --git a/Shorewall/Samples/Universal/shorewall.conf b/Shorewall/Samples/Universal/shorewall.conf index f15c5a074..6ac918148 100644 --- a/Shorewall/Samples/Universal/shorewall.conf +++ b/Shorewall/Samples/Universal/shorewall.conf @@ -55,6 +55,8 @@ TCP_FLAGS_LOG_LEVEL=info CONFIG_PATH=${CONFDIR}/shorewall:${SHAREDIR}/shorewall +GEOIPDIR="/usr/share/xt_geoip/LE" + IPTABLES= IP= diff --git a/Shorewall/Samples/one-interface/shorewall.conf b/Shorewall/Samples/one-interface/shorewall.conf index a89c1147f..75b749177 100644 --- a/Shorewall/Samples/one-interface/shorewall.conf +++ b/Shorewall/Samples/one-interface/shorewall.conf @@ -66,6 +66,8 @@ TCP_FLAGS_LOG_LEVEL=info CONFIG_PATH=${CONFDIR}/shorewall:${SHAREDIR}/shorewall +GEOIPDIR="/usr/share/xt_geoip/LE" + IPTABLES= IP= diff --git a/Shorewall/Samples/three-interfaces/shorewall.conf b/Shorewall/Samples/three-interfaces/shorewall.conf index 2c326a0de..565236e23 100644 --- a/Shorewall/Samples/three-interfaces/shorewall.conf +++ b/Shorewall/Samples/three-interfaces/shorewall.conf @@ -64,6 +64,8 @@ TCP_FLAGS_LOG_LEVEL=info CONFIG_PATH=${CONFDIR}/shorewall:${SHAREDIR}/shorewall +GEOIPDIR="/usr/share/xt_geoip/LE" + IPTABLES= IP= diff --git a/Shorewall/Samples/two-interfaces/shorewall.conf b/Shorewall/Samples/two-interfaces/shorewall.conf index c98944d59..9558b8bf7 100644 --- a/Shorewall/Samples/two-interfaces/shorewall.conf +++ b/Shorewall/Samples/two-interfaces/shorewall.conf @@ -67,6 +67,8 @@ TCP_FLAGS_LOG_LEVEL=info CONFIG_PATH=${CONFDIR}/shorewall:${SHAREDIR}/shorewall +GEOIPDIR="/usr/share/xt_geoip/LE" + IPTABLES= IP= diff --git a/Shorewall/configfiles/shorewall.conf b/Shorewall/configfiles/shorewall.conf index dc9af86ba..4a01620c6 100644 --- a/Shorewall/configfiles/shorewall.conf +++ b/Shorewall/configfiles/shorewall.conf @@ -55,6 +55,8 @@ TCP_FLAGS_LOG_LEVEL=info CONFIG_PATH="${CONFDIR}/shorewall:${SHAREDIR}/shorewall" +GEOIPDIR="/usr/share/xt_geoip/LE" + IPTABLES= IP= diff --git a/Shorewall/manpages/shorewall.conf.xml b/Shorewall/manpages/shorewall.conf.xml index 0dc3b55d5..b7aa1f963 100644 --- a/Shorewall/manpages/shorewall.conf.xml +++ b/Shorewall/manpages/shorewall.conf.xml @@ -96,7 +96,7 @@ role="bold">none} - + @@ -106,7 +106,7 @@ role="bold">none} - + @@ -116,7 +116,7 @@ role="bold">none} - + @@ -126,7 +126,7 @@ role="bold">none} - + @@ -482,7 +482,7 @@
- + If CONFIG_PATH is not given or if it is set to the empty value then the contents of /usr/share/shorewall/configpath are @@ -669,6 +669,21 @@ net all DROP infothen the chain name is 'net2all' + + GEOIPDIR=[pathname] + + + Added in Shorewall 4.5.4. Specifies the pathname of the + directory containing the GeoIP Match + database. See http://www.shorewall.net/ISOCODES.html. + If not specified, the default value is + /usr/share/xt_geoip/LE which is the default + location of the little-endian database. + + + HIGH_ROUTE_MARKS={Yes|No} @@ -814,7 +829,7 @@ net all DROP infothen the chain name is 'net2all' - +
If this variable is not set or is given an empty value @@ -1024,7 +1039,7 @@ net all DROP infothen the chain name is 'net2all' - +
For example, using the default LOGFORMAT, the log prefix for @@ -1041,7 +1056,7 @@ net all DROP infothen the chain name is 'net2all' control your firewall after you enable this option. - + Do not use this option if the resulting log messages will @@ -1694,7 +1709,7 @@ net all DROP infothen the chain name is 'net2all' role="bold">" - + diff --git a/Shorewall6/Samples6/Universal/shorewall6.conf b/Shorewall6/Samples6/Universal/shorewall6.conf index 5fe0e9853..ae9294c87 100644 --- a/Shorewall6/Samples6/Universal/shorewall6.conf +++ b/Shorewall6/Samples6/Universal/shorewall6.conf @@ -54,6 +54,8 @@ TCP_FLAGS_LOG_LEVEL=info CONFIG_PATH=${CONFDIR}/shorewall6:${SHAREDIR}/shorewall6:${SHAREDIR}/shorewall +GEOIPDIR="/usr/share/xt_geoip/LE" + IP6TABLES= IP= diff --git a/Shorewall6/Samples6/one-interface/shorewall6.conf b/Shorewall6/Samples6/one-interface/shorewall6.conf index f74c42f48..fc5183a81 100644 --- a/Shorewall6/Samples6/one-interface/shorewall6.conf +++ b/Shorewall6/Samples6/one-interface/shorewall6.conf @@ -54,6 +54,8 @@ TCP_FLAGS_LOG_LEVEL=info CONFIG_PATH=${CONFDIR}/shorewall6:${SHAREDIR}/shorewall6:${SHAREDIR}/shorewall +GEOIPDIR="/usr/share/xt_geoip/LE" + IP6TABLES= IP= diff --git a/Shorewall6/Samples6/three-interfaces/shorewall6.conf b/Shorewall6/Samples6/three-interfaces/shorewall6.conf index 7dc9701fc..21a7d58c5 100644 --- a/Shorewall6/Samples6/three-interfaces/shorewall6.conf +++ b/Shorewall6/Samples6/three-interfaces/shorewall6.conf @@ -54,6 +54,8 @@ TCP_FLAGS_LOG_LEVEL=info CONFIG_PATH=${CONFDIR}/shorewall6:${SHAREDIR}/shorewall6:${SHAREDIR}/shorewall +GEOIPDIR="/usr/share/xt_geoip/LE" + IP6TABLES= IP= diff --git a/Shorewall6/Samples6/two-interfaces/shorewall6.conf b/Shorewall6/Samples6/two-interfaces/shorewall6.conf index a8891f30e..d66a66828 100644 --- a/Shorewall6/Samples6/two-interfaces/shorewall6.conf +++ b/Shorewall6/Samples6/two-interfaces/shorewall6.conf @@ -54,6 +54,8 @@ TCP_FLAGS_LOG_LEVEL=info CONFIG_PATH=${CONFDIR}/shorewall6:${SHAREDIR}/shorewall6:${SHAREDIR}/shorewall +GEOIPDIR="/usr/share/xt_geoip/LE" + IP6TABLES= IP= diff --git a/Shorewall6/configfiles/shorewall6.conf b/Shorewall6/configfiles/shorewall6.conf index 26a61aabe..58d345ec3 100644 --- a/Shorewall6/configfiles/shorewall6.conf +++ b/Shorewall6/configfiles/shorewall6.conf @@ -54,6 +54,8 @@ TCP_FLAGS_LOG_LEVEL=info CONFIG_PATH="${CONFDIR}/shorewall6:/usr/share/shorewall6:${SHAREDIR}/shorewall" +GEOIPDIR="/usr/share/xt_geoip/LE" + IP6TABLES= IP= diff --git a/Shorewall6/manpages/shorewall6.conf.xml b/Shorewall6/manpages/shorewall6.conf.xml index 0c8859834..d374f3dac 100644 --- a/Shorewall6/manpages/shorewall6.conf.xml +++ b/Shorewall6/manpages/shorewall6.conf.xml @@ -82,7 +82,7 @@ role="bold">none} - + @@ -92,7 +92,7 @@ role="bold">none} - + @@ -102,7 +102,7 @@ role="bold">none} - + @@ -112,7 +112,7 @@ role="bold">none} - + @@ -578,6 +578,21 @@ net all DROP infothen the chain name is 'net2all' + + GEOIPDIR=[pathname] + + + Added in Shorewall 4.5.4. Specifies the pathname of the + directory containing the GeoIP Match + database. See http://www.shorewall.net/ISOCODES.html. + If not specified, the default value is + /usr/share/xt_geoip/LE which is the default + location of the little-endian database. + + + HIGH_ROUTE_MARKS={Yes|No} @@ -887,7 +902,7 @@ net all DROP infothen the chain name is 'net2all' - +
For example, using the default LOGFORMAT, the log prefix for @@ -904,7 +919,7 @@ net all DROP infothen the chain name is 'net2all' control your firewall after you enable this option. - + Do not use this option if the resulting log messages will @@ -1340,7 +1355,7 @@ net all DROP infothen the chain name is 'net2all' An additional optimization was added in Shorewall 4.5.4. If the last rule in a chain is an unqualified jump to a simple target, then all immediately preceding rules with the same - simple target are omitted. + simple target are omitted. For example, consider this chain: @@ -1492,7 +1507,7 @@ net all DROP infothen the chain name is 'net2all' role="bold">" - + diff --git a/docs/ISO-3661.xml b/docs/ISO-3661.xml index d0f580e76..bc172765a 100644 --- a/docs/ISO-3661.xml +++ b/docs/ISO-3661.xml @@ -54,6 +54,13 @@ DROP:info net:^[A1,A2] dmz tcp 25 + Using this feature requires the GeoIP Match + capability in your iptables and kernel. As of this writing, that + capability requires installing xtables-addons and + building a + country-code database. + The country codes recognized by Shorewall as of Shorewall 4.5.4 are shown in the following two sections. @@ -61,452 +68,452 @@
IPv4 - A1 => "Anonymous Proxy" , - A2 => "Satellite Provider" , - AD => "Andorra" , - AE => "United Arab Emirates" , - AF => "Afghanistan" , - AG => "Antigua and Barbuda" , - AI => "Anguilla" , - AL => "Albania" , - AM => "Armenia" , - AN => "Netherlands Antilles" , - AO => "Angola" , - AP => "Asia/Pacific Region" , - AQ => "Antarctica" , - AR => "Argentina" , - AS => "American Samoa" , - AT => "Austria" , - AU => "Australia" , - AW => "Aruba" , - AX => "Aland Islands" , - AZ => "Azerbaijan" , - BA => "Bosnia and Herzegovina" , - BB => "Barbados" , - BD => "Bangladesh" , - BE => "Belgium" , - BF => "Burkina Faso" , - BG => "Bulgaria" , - BH => "Bahrain" , - BI => "Burundi" , - BJ => "Benin" , - BM => "Bermuda" , - BN => "Brunei Darussalam" , - BO => "Bolivia" , - BR => "Brazil" , - BS => "Bahamas" , - BT => "Bhutan" , - BV => "Bouvet Island" , - BW => "Botswana" , - BY => "Belarus" , - BZ => "Belize" , - CA => "Canada" , - CC => "Cocos (Keeling) Islands" , - CD => "Congo, The Democratic Republic of the" , - CF => "Central African Republic" , - CG => "Congo" , - CH => "Switzerland" , - CI => "Cote D'Ivoire" , - CK => "Cook Islands" , - CL => "Chile" , - CM => "Cameroon" , - CN => "China" , - CO => "Colombia" , - CR => "Costa Rica" , - CU => "Cuba" , - CV => "Cape Verde" , - CX => "Christmas Island" , - CY => "Cyprus" , - CZ => "Czech Republic" , - DE => "Germany" , - DJ => "Djibouti" , - DK => "Denmark" , - DM => "Dominica" , - DO => "Dominican Republic" , - DZ => "Algeria" , - EC => "Ecuador" , - EE => "Estonia" , - EG => "Egypt" , - EH => "Western Sahara" , - ER => "Eritrea" , - ES => "Spain" , - ET => "Ethiopia" , - EU => "Europe" , - FI => "Finland" , - FJ => "Fiji" , - FK => "Falkland Islands (Malvinas)" , - FM => "Micronesia, Federated States of" , - FO => "Faroe Islands" , - FR => "France" , - GA => "Gabon" , - GB => "United Kingdom" , - GD => "Grenada" , - GE => "Georgia" , - GF => "French Guiana" , - GG => "Guernsey" , - GH => "Ghana" , - GI => "Gibraltar" , - GL => "Greenland" , - GM => "Gambia" , - GN => "Guinea" , - GP => "Guadeloupe" , - GQ => "Equatorial Guinea" , - GR => "Greece" , - GS => "South Georgia and the South Sandwich Islands" , - GT => "Guatemala" , - GU => "Guam" , - GW => "Guinea-Bissau" , - GY => "Guyana" , - HK => "Hong Kong" , - HN => "Honduras" , - HR => "Croatia" , - HT => "Haiti" , - HU => "Hungary" , - ID => "Indonesia" , - IE => "Ireland" , - IL => "Israel" , - IM => "Isle of Man" , - IN => "India" , - IO => "British Indian Ocean Territory" , - IQ => "Iraq" , - IR => "Iran, Islamic Republic of" , - IS => "Iceland" , - IT => "Italy" , - JE => "Jersey" , - JM => "Jamaica" , - JO => "Jordan" , - JP => "Japan" , - KE => "Kenya" , - KG => "Kyrgyzstan" , - KH => "Cambodia" , - KI => "Kiribati" , - KM => "Comoros" , - KN => "Saint Kitts and Nevis" , - KP => "Korea, Democratic People's Republic of" , - KR => "Korea, Republic of" , - KW => "Kuwait" , - KY => "Cayman Islands" , - KZ => "Kazakhstan" , - LA => "Lao People's Democratic Republic" , - LB => "Lebanon" , - LC => "Saint Lucia" , - LI => "Liechtenstein" , - LK => "Sri Lanka" , - LR => "Liberia" , - LS => "Lesotho" , - LT => "Lithuania" , - LU => "Luxembourg" , - LV => "Latvia" , - LY => "Libyan Arab Jamahiriya" , - MA => "Morocco" , - MC => "Monaco" , - MD => "Moldova, Republic of" , - ME => "Montenegro" , - MG => "Madagascar" , - MH => "Marshall Islands" , - MK => "Macedonia" , - ML => "Mali" , - MM => "Myanmar" , - MN => "Mongolia" , - MO => "Macau" , - MP => "Northern Mariana Islands" , - MQ => "Martinique" , - MR => "Mauritania" , - MS => "Montserrat" , - MT => "Malta" , - MU => "Mauritius" , - MV => "Maldives" , - MW => "Malawi" , - MX => "Mexico" , - MY => "Malaysia" , - MZ => "Mozambique" , - NA => "Namibia" , - NC => "New Caledonia" , - NE => "Niger" , - NF => "Norfolk Island" , - NG => "Nigeria" , - NI => "Nicaragua" , - NL => "Netherlands" , - NO => "Norway" , - NP => "Nepal" , - NR => "Nauru" , - NU => "Niue" , - NZ => "New Zealand" , - OM => "Oman" , - PA => "Panama" , - PE => "Peru" , - PF => "French Polynesia" , - PG => "Papua New Guinea" , - PH => "Philippines" , - PK => "Pakistan" , - PL => "Poland" , - PM => "Saint Pierre and Miquelon" , - PR => "Puerto Rico" , - PS => "Palestinian Territory, Occupied" , - PT => "Portugal" , - PW => "Palau" , - PY => "Paraguay" , - QA => "Qatar" , - RE => "Reunion" , - RO => "Romania" , - RS => "Serbia" , - RU => "Russian Federation" , - RW => "Rwanda" , - SA => "Saudi Arabia" , - SB => "Solomon Islands" , - SC => "Seychelles" , - SD => "Sudan" , - SE => "Sweden" , - SG => "Singapore" , - SH => "Saint Helena" , - SI => "Slovenia" , - SJ => "Svalbard and Jan Mayen" , - SK => "Slovakia" , - SL => "Sierra Leone" , - SM => "San Marino" , - SN => "Senegal" , - SO => "Somalia" , - SR => "Suriname" , - ST => "Sao Tome and Principe" , - SV => "El Salvador" , - SY => "Syrian Arab Republic" , - SZ => "Swaziland" , - TC => "Turks and Caicos Islands" , - TD => "Chad" , - TF => "French Southern Territories" , - TG => "Togo" , - TH => "Thailand" , - TJ => "Tajikistan" , - TK => "Tokelau" , - TL => "Timor-Leste" , - TM => "Turkmenistan" , - TN => "Tunisia" , - TO => "Tonga" , - TR => "Turkey" , - TT => "Trinidad and Tobago" , - TV => "Tuvalu" , - TW => "Taiwan" , - TZ => "Tanzania, United Republic of" , - UA => "Ukraine" , - UG => "Uganda" , - UM => "United States Minor Outlying Islands" , - US => "United States" , - UY => "Uruguay" , - UZ => "Uzbekistan" , - VA => "Holy See (Vatican City State)" , - VC => "Saint Vincent and the Grenadines" , - VE => "Venezuela" , - VG => "Virgin Islands, British" , - VI => "Virgin Islands, U.S." , - VN => "Vietnam" , - VU => "Vanuatu" , - WF => "Wallis and Futuna" , - WS => "Samoa" , - YE => "Yemen" , - YT => "Mayotte" , - ZA => "South Africa" , - ZM => "Zambia" , - ZW => "Zimbabwe" , + A1 => "Anonymous Proxy" , + A2 => "Satellite Provider" , + AD => "Andorra" , + AE => "United Arab Emirates" , + AF => "Afghanistan" , + AG => "Antigua and Barbuda" , + AI => "Anguilla" , + AL => "Albania" , + AM => "Armenia" , + AN => "Netherlands Antilles" , + AO => "Angola" , + AP => "Asia/Pacific Region" , + AQ => "Antarctica" , + AR => "Argentina" , + AS => "American Samoa" , + AT => "Austria" , + AU => "Australia" , + AW => "Aruba" , + AX => "Aland Islands" , + AZ => "Azerbaijan" , + BA => "Bosnia and Herzegovina" , + BB => "Barbados" , + BD => "Bangladesh" , + BE => "Belgium" , + BF => "Burkina Faso" , + BG => "Bulgaria" , + BH => "Bahrain" , + BI => "Burundi" , + BJ => "Benin" , + BM => "Bermuda" , + BN => "Brunei Darussalam" , + BO => "Bolivia" , + BR => "Brazil" , + BS => "Bahamas" , + BT => "Bhutan" , + BV => "Bouvet Island" , + BW => "Botswana" , + BY => "Belarus" , + BZ => "Belize" , + CA => "Canada" , + CC => "Cocos (Keeling) Islands" , + CD => "Congo, The Democratic Republic of the" , + CF => "Central African Republic" , + CG => "Congo" , + CH => "Switzerland" , + CI => "Cote D'Ivoire" , + CK => "Cook Islands" , + CL => "Chile" , + CM => "Cameroon" , + CN => "China" , + CO => "Colombia" , + CR => "Costa Rica" , + CU => "Cuba" , + CV => "Cape Verde" , + CX => "Christmas Island" , + CY => "Cyprus" , + CZ => "Czech Republic" , + DE => "Germany" , + DJ => "Djibouti" , + DK => "Denmark" , + DM => "Dominica" , + DO => "Dominican Republic" , + DZ => "Algeria" , + EC => "Ecuador" , + EE => "Estonia" , + EG => "Egypt" , + EH => "Western Sahara" , + ER => "Eritrea" , + ES => "Spain" , + ET => "Ethiopia" , + EU => "Europe" , + FI => "Finland" , + FJ => "Fiji" , + FK => "Falkland Islands (Malvinas)" , + FM => "Micronesia, Federated States of" , + FO => "Faroe Islands" , + FR => "France" , + GA => "Gabon" , + GB => "United Kingdom" , + GD => "Grenada" , + GE => "Georgia" , + GF => "French Guiana" , + GG => "Guernsey" , + GH => "Ghana" , + GI => "Gibraltar" , + GL => "Greenland" , + GM => "Gambia" , + GN => "Guinea" , + GP => "Guadeloupe" , + GQ => "Equatorial Guinea" , + GR => "Greece" , + GS => "South Georgia and the South Sandwich Islands" , + GT => "Guatemala" , + GU => "Guam" , + GW => "Guinea-Bissau" , + GY => "Guyana" , + HK => "Hong Kong" , + HN => "Honduras" , + HR => "Croatia" , + HT => "Haiti" , + HU => "Hungary" , + ID => "Indonesia" , + IE => "Ireland" , + IL => "Israel" , + IM => "Isle of Man" , + IN => "India" , + IO => "British Indian Ocean Territory" , + IQ => "Iraq" , + IR => "Iran, Islamic Republic of" , + IS => "Iceland" , + IT => "Italy" , + JE => "Jersey" , + JM => "Jamaica" , + JO => "Jordan" , + JP => "Japan" , + KE => "Kenya" , + KG => "Kyrgyzstan" , + KH => "Cambodia" , + KI => "Kiribati" , + KM => "Comoros" , + KN => "Saint Kitts and Nevis" , + KP => "Korea, Democratic People's Republic of" , + KR => "Korea, Republic of" , + KW => "Kuwait" , + KY => "Cayman Islands" , + KZ => "Kazakhstan" , + LA => "Lao People's Democratic Republic" , + LB => "Lebanon" , + LC => "Saint Lucia" , + LI => "Liechtenstein" , + LK => "Sri Lanka" , + LR => "Liberia" , + LS => "Lesotho" , + LT => "Lithuania" , + LU => "Luxembourg" , + LV => "Latvia" , + LY => "Libyan Arab Jamahiriya" , + MA => "Morocco" , + MC => "Monaco" , + MD => "Moldova, Republic of" , + ME => "Montenegro" , + MG => "Madagascar" , + MH => "Marshall Islands" , + MK => "Macedonia" , + ML => "Mali" , + MM => "Myanmar" , + MN => "Mongolia" , + MO => "Macau" , + MP => "Northern Mariana Islands" , + MQ => "Martinique" , + MR => "Mauritania" , + MS => "Montserrat" , + MT => "Malta" , + MU => "Mauritius" , + MV => "Maldives" , + MW => "Malawi" , + MX => "Mexico" , + MY => "Malaysia" , + MZ => "Mozambique" , + NA => "Namibia" , + NC => "New Caledonia" , + NE => "Niger" , + NF => "Norfolk Island" , + NG => "Nigeria" , + NI => "Nicaragua" , + NL => "Netherlands" , + NO => "Norway" , + NP => "Nepal" , + NR => "Nauru" , + NU => "Niue" , + NZ => "New Zealand" , + OM => "Oman" , + PA => "Panama" , + PE => "Peru" , + PF => "French Polynesia" , + PG => "Papua New Guinea" , + PH => "Philippines" , + PK => "Pakistan" , + PL => "Poland" , + PM => "Saint Pierre and Miquelon" , + PR => "Puerto Rico" , + PS => "Palestinian Territory, Occupied" , + PT => "Portugal" , + PW => "Palau" , + PY => "Paraguay" , + QA => "Qatar" , + RE => "Reunion" , + RO => "Romania" , + RS => "Serbia" , + RU => "Russian Federation" , + RW => "Rwanda" , + SA => "Saudi Arabia" , + SB => "Solomon Islands" , + SC => "Seychelles" , + SD => "Sudan" , + SE => "Sweden" , + SG => "Singapore" , + SH => "Saint Helena" , + SI => "Slovenia" , + SJ => "Svalbard and Jan Mayen" , + SK => "Slovakia" , + SL => "Sierra Leone" , + SM => "San Marino" , + SN => "Senegal" , + SO => "Somalia" , + SR => "Suriname" , + ST => "Sao Tome and Principe" , + SV => "El Salvador" , + SY => "Syrian Arab Republic" , + SZ => "Swaziland" , + TC => "Turks and Caicos Islands" , + TD => "Chad" , + TF => "French Southern Territories" , + TG => "Togo" , + TH => "Thailand" , + TJ => "Tajikistan" , + TK => "Tokelau" , + TL => "Timor-Leste" , + TM => "Turkmenistan" , + TN => "Tunisia" , + TO => "Tonga" , + TR => "Turkey" , + TT => "Trinidad and Tobago" , + TV => "Tuvalu" , + TW => "Taiwan" , + TZ => "Tanzania, United Republic of" , + UA => "Ukraine" , + UG => "Uganda" , + UM => "United States Minor Outlying Islands" , + US => "United States" , + UY => "Uruguay" , + UZ => "Uzbekistan" , + VA => "Holy See (Vatican City State)" , + VC => "Saint Vincent and the Grenadines" , + VE => "Venezuela" , + VG => "Virgin Islands, British" , + VI => "Virgin Islands, U.S." , + VN => "Vietnam" , + VU => "Vanuatu" , + WF => "Wallis and Futuna" , + WS => "Samoa" , + YE => "Yemen" , + YT => "Mayotte" , + ZA => "South Africa" , + ZM => "Zambia" , + ZW => "Zimbabwe" ,
IPv6 - AD => "Andorra" , - AE => "United Arab Emirates" , - AF => "Afghanistan" , - AL => "Albania" , - AM => "Armenia" , - AO => "Angola" , - AP => "Asia/Pacific Region" , - AR => "Argentina" , - AS => "American Samoa" , - AT => "Austria" , - AU => "Australia" , - AW => "Aruba" , - AZ => "Azerbaijan" , - BA => "Bosnia and Herzegovina" , - BD => "Bangladesh" , - BE => "Belgium" , - BF => "Burkina Faso" , - BG => "Bulgaria" , - BH => "Bahrain" , - BI => "Burundi" , - BJ => "Benin" , - BM => "Bermuda" , - BN => "Brunei Darussalam" , - BO => "Bolivia" , - BR => "Brazil" , - BS => "Bahamas" , - BT => "Bhutan" , - BW => "Botswana" , - BY => "Belarus" , - BZ => "Belize" , - CA => "Canada" , - CD => "Congo, The Democratic Republic of the" , - CH => "Switzerland" , - CI => "Cote D'Ivoire" , - CK => "Cook Islands" , - CL => "Chile" , - CM => "Cameroon" , - CN => "China" , - CO => "Colombia" , - CR => "Costa Rica" , - CU => "Cuba" , - CW => "" , - CY => "Cyprus" , - CZ => "Czech Republic" , - DE => "Germany" , - DJ => "Djibouti" , - DK => "Denmark" , - DO => "Dominican Republic" , - DZ => "Algeria" , - EC => "Ecuador" , - EE => "Estonia" , - EG => "Egypt" , - ES => "Spain" , - EU => "Europe" , - FI => "Finland" , - FJ => "Fiji" , - FM => "Micronesia, Federated States of" , - FO => "Faroe Islands" , - FR => "France" , - GB => "United Kingdom" , - GD => "Grenada" , - GE => "Georgia" , - GG => "Guernsey" , - GH => "Ghana" , - GI => "Gibraltar" , - GL => "Greenland" , - GM => "Gambia" , - GP => "Guadeloupe" , - GR => "Greece" , - GT => "Guatemala" , - GU => "Guam" , - GY => "Guyana" , - HK => "Hong Kong" , - HN => "Honduras" , - HR => "Croatia" , - HT => "Haiti" , - HU => "Hungary" , - ID => "Indonesia" , - IE => "Ireland" , - IL => "Israel" , - IM => "Isle of Man" , - IN => "India" , - IQ => "Iraq" , - IR => "Iran, Islamic Republic of" , - IS => "Iceland" , - IT => "Italy" , - JE => "Jersey" , - JM => "Jamaica" , - JO => "Jordan" , - JP => "Japan" , - KE => "Kenya" , - KG => "Kyrgyzstan" , - KH => "Cambodia" , - KN => "Saint Kitts and Nevis" , - KR => "Korea, Republic of" , - KW => "Kuwait" , - KY => "Cayman Islands" , - KZ => "Kazakhstan" , - LA => "Lao People's Democratic Republic" , - LB => "Lebanon" , - LI => "Liechtenstein" , - LK => "Sri Lanka" , - LS => "Lesotho" , - LT => "Lithuania" , - LU => "Luxembourg" , - LV => "Latvia" , - LY => "Libyan Arab Jamahiriya" , - MA => "Morocco" , - MC => "Monaco" , - MD => "Moldova, Republic of" , - ME => "Montenegro" , - MG => "Madagascar" , - MH => "Marshall Islands" , - MK => "Macedonia" , - ML => "Mali" , - MM => "Myanmar" , - MN => "Mongolia" , - MO => "Macau" , - MT => "Malta" , - MU => "Mauritius" , - MV => "Maldives" , - MW => "Malawi" , - MX => "Mexico" , - MY => "Malaysia" , - MZ => "Mozambique" , - NA => "Namibia" , - NC => "New Caledonia" , - NF => "Norfolk Island" , - NG => "Nigeria" , - NI => "Nicaragua" , - NL => "Netherlands" , - NO => "Norway" , - NP => "Nepal" , - NR => "Nauru" , - NU => "Niue" , - NZ => "New Zealand" , - OM => "Oman" , - PA => "Panama" , - PE => "Peru" , - PF => "French Polynesia" , - PG => "Papua New Guinea" , - PH => "Philippines" , - PK => "Pakistan" , - PL => "Poland" , - PR => "Puerto Rico" , - PS => "Palestinian Territory" , - PT => "Portugal" , - PW => "Palau" , - PY => "Paraguay" , - QA => "Qatar" , - RO => "Romania" , - RS => "Serbia" , - RU => "Russian Federation" , - RW => "Rwanda" , - SA => "Saudi Arabia" , - SB => "Solomon Islands" , - SC => "Seychelles" , - SD => "Sudan" , - SE => "Sweden" , - SG => "Singapore" , - SI => "Slovenia" , - SK => "Slovakia" , - SL => "Sierra Leone" , - SM => "San Marino" , - SN => "Senegal" , - SO => "Somalia" , - ST => "Sao Tome and Principe" , - SV => "El Salvador" , - SY => "Syrian Arab Republic" , - SZ => "Swaziland" , - TH => "Thailand" , - TK => "Tokelau" , - TN => "Tunisia" , - TO => "Tonga" , - TR => "Turkey" , - TT => "Trinidad and Tobago" , - TV => "Tuvalu" , - TW => "Taiwan" , - TZ => "Tanzania, United Republic of" , - UA => "Ukraine" , - UG => "Uganda" , - US => "United States" , - UY => "Uruguay" , - UZ => "Uzbekistan" , - VA => "Holy See (Vatican City State)" , - VE => "Venezuela" , - VI => "Virgin Islands, U.S." , - VN => "Vietnam" , - VU => "Vanuatu" , - WS => "Samoa" , - YE => "Yemen" , - ZA => "South Africa" , - ZM => "Zambia" , - ZW => "Zimbabwe" , + AD => "Andorra" , + AE => "United Arab Emirates" , + AF => "Afghanistan" , + AL => "Albania" , + AM => "Armenia" , + AO => "Angola" , + AP => "Asia/Pacific Region" , + AR => "Argentina" , + AS => "American Samoa" , + AT => "Austria" , + AU => "Australia" , + AW => "Aruba" , + AZ => "Azerbaijan" , + BA => "Bosnia and Herzegovina" , + BD => "Bangladesh" , + BE => "Belgium" , + BF => "Burkina Faso" , + BG => "Bulgaria" , + BH => "Bahrain" , + BI => "Burundi" , + BJ => "Benin" , + BM => "Bermuda" , + BN => "Brunei Darussalam" , + BO => "Bolivia" , + BR => "Brazil" , + BS => "Bahamas" , + BT => "Bhutan" , + BW => "Botswana" , + BY => "Belarus" , + BZ => "Belize" , + CA => "Canada" , + CD => "Congo, The Democratic Republic of the" , + CH => "Switzerland" , + CI => "Cote D'Ivoire" , + CK => "Cook Islands" , + CL => "Chile" , + CM => "Cameroon" , + CN => "China" , + CO => "Colombia" , + CR => "Costa Rica" , + CU => "Cuba" , + CW => "" , + CY => "Cyprus" , + CZ => "Czech Republic" , + DE => "Germany" , + DJ => "Djibouti" , + DK => "Denmark" , + DO => "Dominican Republic" , + DZ => "Algeria" , + EC => "Ecuador" , + EE => "Estonia" , + EG => "Egypt" , + ES => "Spain" , + EU => "Europe" , + FI => "Finland" , + FJ => "Fiji" , + FM => "Micronesia, Federated States of" , + FO => "Faroe Islands" , + FR => "France" , + GB => "United Kingdom" , + GD => "Grenada" , + GE => "Georgia" , + GG => "Guernsey" , + GH => "Ghana" , + GI => "Gibraltar" , + GL => "Greenland" , + GM => "Gambia" , + GP => "Guadeloupe" , + GR => "Greece" , + GT => "Guatemala" , + GU => "Guam" , + GY => "Guyana" , + HK => "Hong Kong" , + HN => "Honduras" , + HR => "Croatia" , + HT => "Haiti" , + HU => "Hungary" , + ID => "Indonesia" , + IE => "Ireland" , + IL => "Israel" , + IM => "Isle of Man" , + IN => "India" , + IQ => "Iraq" , + IR => "Iran, Islamic Republic of" , + IS => "Iceland" , + IT => "Italy" , + JE => "Jersey" , + JM => "Jamaica" , + JO => "Jordan" , + JP => "Japan" , + KE => "Kenya" , + KG => "Kyrgyzstan" , + KH => "Cambodia" , + KN => "Saint Kitts and Nevis" , + KR => "Korea, Republic of" , + KW => "Kuwait" , + KY => "Cayman Islands" , + KZ => "Kazakhstan" , + LA => "Lao People's Democratic Republic" , + LB => "Lebanon" , + LI => "Liechtenstein" , + LK => "Sri Lanka" , + LS => "Lesotho" , + LT => "Lithuania" , + LU => "Luxembourg" , + LV => "Latvia" , + LY => "Libyan Arab Jamahiriya" , + MA => "Morocco" , + MC => "Monaco" , + MD => "Moldova, Republic of" , + ME => "Montenegro" , + MG => "Madagascar" , + MH => "Marshall Islands" , + MK => "Macedonia" , + ML => "Mali" , + MM => "Myanmar" , + MN => "Mongolia" , + MO => "Macau" , + MT => "Malta" , + MU => "Mauritius" , + MV => "Maldives" , + MW => "Malawi" , + MX => "Mexico" , + MY => "Malaysia" , + MZ => "Mozambique" , + NA => "Namibia" , + NC => "New Caledonia" , + NF => "Norfolk Island" , + NG => "Nigeria" , + NI => "Nicaragua" , + NL => "Netherlands" , + NO => "Norway" , + NP => "Nepal" , + NR => "Nauru" , + NU => "Niue" , + NZ => "New Zealand" , + OM => "Oman" , + PA => "Panama" , + PE => "Peru" , + PF => "French Polynesia" , + PG => "Papua New Guinea" , + PH => "Philippines" , + PK => "Pakistan" , + PL => "Poland" , + PR => "Puerto Rico" , + PS => "Palestinian Territory" , + PT => "Portugal" , + PW => "Palau" , + PY => "Paraguay" , + QA => "Qatar" , + RO => "Romania" , + RS => "Serbia" , + RU => "Russian Federation" , + RW => "Rwanda" , + SA => "Saudi Arabia" , + SB => "Solomon Islands" , + SC => "Seychelles" , + SD => "Sudan" , + SE => "Sweden" , + SG => "Singapore" , + SI => "Slovenia" , + SK => "Slovakia" , + SL => "Sierra Leone" , + SM => "San Marino" , + SN => "Senegal" , + SO => "Somalia" , + ST => "Sao Tome and Principe" , + SV => "El Salvador" , + SY => "Syrian Arab Republic" , + SZ => "Swaziland" , + TH => "Thailand" , + TK => "Tokelau" , + TN => "Tunisia" , + TO => "Tonga" , + TR => "Turkey" , + TT => "Trinidad and Tobago" , + TV => "Tuvalu" , + TW => "Taiwan" , + TZ => "Tanzania, United Republic of" , + UA => "Ukraine" , + UG => "Uganda" , + US => "United States" , + UY => "Uruguay" , + UZ => "Uzbekistan" , + VA => "Holy See (Vatican City State)" , + VE => "Venezuela" , + VI => "Virgin Islands, U.S." , + VN => "Vietnam" , + VU => "Vanuatu" , + WS => "Samoa" , + YE => "Yemen" , + ZA => "South Africa" , + ZM => "Zambia" , + ZW => "Zimbabwe" ,