Great that should make it very easy then to create both blacklists and 
whitelists.
Just need a way to get access to all the country lists.

Thanks

Regards
Michael Knill

On 21/8/19, 11:40 am, "Lonnie Abelbeck" <li...@lonnie.abelbeck.com> wrote:

    Just to help document iprange ...
    
    Below was an example where a.netset is manually created:
    
    pbx4 ~ # iprange -v a.netset --exclude-next test.netset > 
block-all-except.netset
    
    This is an alternate way to use stdin and a - (minus) as an placeholder
    
    pbx4 ~ # echo "0.0.0.0/0" | iprange -v - --exclude-next test.netset > 
block-all-except.netset
    --
    iprange: Loading from stdin
    iprange: Loaded optimized stdin
    iprange: Loading from test.netset
    iprange: Loaded optimized test.netset
    iprange: Removing IPs in test.netset from stdin
    iprange: Printing stdin with 5 ranges, 4294967292 unique IPs
    --
    
    and you can have multiple "--exclude-next fileN.netset" to subtract 
additional netsets.
    
    A very powerful tool.
    
    So, when the final result is used as a block-all-except.netset blocklist, 
the subtracted IP's will be not blocked, all the rest will be blocked.
    
    Lonnie
    
    
    > On Aug 20, 2019, at 3:57 PM, Lonnie Abelbeck <li...@lonnie.abelbeck.com> 
wrote:
    > 
    > On Aug 20, 2019, at 2:57 PM, Michael Knill 
<michael.kn...@ipcsolutions.com.au> wrote:
    >> 
    >> Thanks Lonnie. I'm learning __
    >> 
    >> I noticed in the doco that you can 'match incoming and/or outgoing' 
traffic but I couldn't see where you actually specify this e.g. I just want 
incoming for instance
    >> Just wondering if I am missing something?
    > 
    > I don't think we have a web interface toggle for that, in your user.conf 
you can set:
    > --
    > BLOCK_HOSTS_BIDIRECTIONAL=0
    > --
    > and the AIF block hosts (Block All Traffic by Host/CIDR:) will only block 
on incoming.  (be sure to test)
    > 
    > But be careful, you then eliminate all outbound (Block All Traffic by 
Host/CIDR:) AIF block hosts filtering.  If you can block one ransomware URL in 
an email, that is a feature best not turned off.
    > 
    > And before you ask, no, there is no separate set of .netset files for 
outgoing and incoming :-)
    > 
    > 
    > BTW, I have been playing with the "iprange" command, it is only 40 KB ... 
I'm thinking it is AstLinux worthy.  I know Michael Keuter has suggested 
looking into it some time ago.  So I now have...
    > 
    > pbx4 ~ # cat > dns-in
    > www.astlinux-project.org
    > 
    > ==> The input is very flexible, here DNS is used to obtain the IPs... 
(using pthreads for parallel lookups 5x by default).
    > 
    > pbx4 ~ # iprange dns-in > test.netset
    > pbx4 ~ # cat test.netset
    > 185.199.108.153
    > 185.199.109.153
    > 185.199.110.153
    > 185.199.111.153
    > 
    > ==> I manually created this file...
    > 
    > pbx4 ~ # cat a.netset 
    > 0.0.0.0/1
    > 128.0.0.0/1
    > 
    > ==> just checking...
    > 
    > pbx4 ~ # iprange a.netset 
    > 0.0.0.0/0
    > 
    > ==> Like the original question, generate a blocklist which is test.netset 
subtracted from a.netset
    > ==> In other words, the result will be a .netset blocking all except 
"www.astlinux-project.org"... 
    > 
    > pbx4 ~ # iprange -v a.netset --exclude-next test.netset > 
block-all-except.netset
    > iprange: Loading from a.netset
    > iprange: Loaded optimized a.netset
    > iprange: Loading from test.netset
    > iprange: Loaded optimized test.netset
    > iprange: Removing IPs in test.netset from a.netset
    > iprange: Printing a.netset with 5 ranges, 4294967292 unique IPs
    > 
    > 54 printed CIDRs, break down by prefix:
    >   - prefix /1 counts 1 entries
    >   - prefix /2 counts 1 entries
    >   - prefix /3 counts 1 entries
    >   - prefix /4 counts 1 entries
    >   - prefix /5 counts 1 entries
    >   - prefix /6 counts 1 entries
    >   - prefix /7 counts 1 entries
    >   - prefix /8 counts 1 entries
    >   - prefix /9 counts 1 entries
    >   - prefix /10 counts 1 entries
    >   - prefix /11 counts 1 entries
    >   - prefix /12 counts 1 entries
    >   - prefix /13 counts 1 entries
    >   - prefix /14 counts 1 entries
    >   - prefix /15 counts 1 entries
    >   - prefix /16 counts 1 entries
    >   - prefix /17 counts 1 entries
    >   - prefix /18 counts 1 entries
    >   - prefix /19 counts 1 entries
    >   - prefix /20 counts 1 entries
    >   - prefix /21 counts 1 entries
    >   - prefix /22 counts 1 entries
    >   - prefix /25 counts 4 entries
    >   - prefix /26 counts 4 entries
    >   - prefix /27 counts 4 entries
    >   - prefix /28 counts 4 entries
    >   - prefix /29 counts 4 entries
    >   - prefix /30 counts 4 entries
    >   - prefix /31 counts 4 entries
    >   - prefix /32 counts 4 entries
    > 
    > totals: 6 lines read, 5 distinct IP ranges found, 30 CIDR prefixes, 54 
CIDRs printed, 4294967292 unique IPs
    > completed in 0.00189 seconds (read 0.00075 + think 0.00004 + speak 
0.00111)
    > 
    > pbx4 ~ # cat block-all-except.netset 
    > 0.0.0.0/1
    > 128.0.0.0/3
    > 160.0.0.0/4
    > 176.0.0.0/5
    > 184.0.0.0/8
    > 185.0.0.0/9
    > 185.128.0.0/10
    > 185.192.0.0/14
    > 185.196.0.0/15
    > 185.198.0.0/16
    > 185.199.0.0/18
    > 185.199.64.0/19
    > 185.199.96.0/21
    > 185.199.104.0/22
    > 185.199.108.0/25
    > 185.199.108.128/28
    > 185.199.108.144/29
    > 185.199.108.152
    > 185.199.108.154/31
    > 185.199.108.156/30
    > 185.199.108.160/27
    > 185.199.108.192/26
    > 185.199.109.0/25
    > 185.199.109.128/28
    > 185.199.109.144/29
    > 185.199.109.152
    > 185.199.109.154/31
    > 185.199.109.156/30
    > 185.199.109.160/27
    > 185.199.109.192/26
    > 185.199.110.0/25
    > 185.199.110.128/28
    > 185.199.110.144/29
    > 185.199.110.152
    > 185.199.110.154/31
    > 185.199.110.156/30
    > 185.199.110.160/27
    > 185.199.110.192/26
    > 185.199.111.0/25
    > 185.199.111.128/28
    > 185.199.111.144/29
    > 185.199.111.152
    > 185.199.111.154/31
    > 185.199.111.156/30
    > 185.199.111.160/27
    > 185.199.111.192/26
    > 185.199.112.0/20
    > 185.199.128.0/17
    > 185.200.0.0/13
    > 185.208.0.0/12
    > 185.224.0.0/11
    > 186.0.0.0/7
    > 188.0.0.0/6
    > 192.0.0.0/2
    > 
    > ==> Try doing that by hand :-)
    > 
    > ==> When iptables matches ipsets, each different prefix must be matched 
for every packet, so you can reduce the number of prefixes at the expense of 
more entries per prefix.
    > 
    > pbx4 ~ # iprange -v --ipset-reduce 20 block-all-except.netset 
>block-all-except20.netset
    > iprange: Loading from block-all-except.netset
    > iprange: Loaded optimized block-all-except.netset
    > 
    > Counting prefixes in combined ipset
    > ...
    > 
    > Eliminated 26 out of 30 prefixes (4 remain in the final set).
    > 
    > iprange: Printing combined ipset with 5 ranges, 4294967292 unique IPs
    > 
    > 1593 printed CIDRs, break down by prefix:
    >   - prefix /8 counts 255 entries
    >   - prefix /16 counts 255 entries
    >   - prefix /22 counts 63 entries
    >   - prefix /32 counts 1020 entries
    > 
    > totals: 54 lines read, 5 distinct IP ranges found, 4 CIDR prefixes, 1593 
CIDRs printed, 4294967292 unique IPs
    > completed in 0.01835 seconds (read 0.00068 + think 0.01419 + speak 
0.00347)
    > 
    > 
    > ==> Note the "4294967292 unique IPs" remains the same in both cases.
    > 
    > ==> For AxtLinux the "--ipset-reduce 20" step may not be worth it, but is 
optional.
    > 
    > 
    > iprange is quite cool, a lot of cool mathematics in it.  Though currently 
IPv4-only.
    > 
    > 
    > Lonnie
    > 
    > 
    >> 
    >> On 21/8/19, 2:10 am, "Lonnie Abelbeck" <li...@lonnie.abelbeck.com> wrote:
    >> 
    >>   Michael,
    >> 
    >>   As your original question asked, you wanted to block all countries 
except one or two.
    >> 
    >>   I suppose you could be clever and block all by default in 
/mnt/kd/blocklists/blocked-hosts.netset
    >>   --
    >>   0.0.0.0/1
    >>   128.0.0.0/1
    >>   --
    >>   and then use the whitelist to add your allowed countries .netset's 
    >> 
    >>   BTW, I have not tried this !
    >> 
    >>   But a more elegant method would be to generate a custom 
block-all-except-xx-yy.netset on an external host for your custom use.
    >> 
    >>   The FireHol project uses a handy script "iprange" (should be on Debian)
    >>   https://github.com/firehol/iprange/wiki
    >> 
    >>   The "exclude" mode does a compliment of the added file, so in theory 
(not tested) you could start with this file:
    >>   --
    >>   0.0.0.0/1
    >>   128.0.0.0/1
    >>   --
    >>   and then "exclude" what countries you want to allow to generate a 
block-all-except-xx-yy.netset file.
    >> 
    >>   The iprange command has a bunch of other unique and useful features.  
Though I'm not sure if it applies to AstLinux enough to be included ?
    >> 
    >>   Lonnie
    > 
    > 
    > 
    > _______________________________________________
    > Astlinux-users mailing list
    > Astlinux-users@lists.sourceforge.net
    > https://lists.sourceforge.net/lists/listinfo/astlinux-users
    > 
    > Donations to support AstLinux are graciously accepted via PayPal to 
pay...@krisk.org.
    
    
    
    _______________________________________________
    Astlinux-users mailing list
    Astlinux-users@lists.sourceforge.net
    https://lists.sourceforge.net/lists/listinfo/astlinux-users
    
    Donations to support AstLinux are graciously accepted via PayPal to 
pay...@krisk.org.


_______________________________________________
Astlinux-users mailing list
Astlinux-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/astlinux-users

Donations to support AstLinux are graciously accepted via PayPal to 
pay...@krisk.org.

Reply via email to