1

Suppose, I want to allow access to my project for the IP falling between 192.168.1.1 and 192.168.1.40.

Nginx example:

  stream {
        #...
        server {
            listen 12345;
            deny   192.168.1.2;
            allow  192.168.1.1/24;
            allow  2001:0db8::/32;
            deny   all;
        }
    }

I have to allow each and every IP separately or is there any technique that will allow access to the ip falling in the given range?

Atom Store
  • 113
  • 5

1 Answers1

1

The allow and deny statements are evaluated in order, until a match is found, so you could impose a strict range of 192.168.1.1 to 192.168.1.40 inclusive, with five consecutive statements.

For example:

deny  192.168.1.0;
allow 192.168.1.0/27;
allow 192.168.1.32/29;
allow 192.168.1.40;
deny  all;

192.168.1.0/27 represents 192.168.1.0 to 192.168.1.31 inclusive, with the first address explicitly denied by the previous statement.

192.168.1.32/29 represents 192.168.1.32 to 192.168.1.39 inclusive.


For the range 192.168.1.130 to 192.168.1.190, start by looking at the binary representation of the last byte:

130 = 10000010
190 = 10111110

So this can be represented by allowing 10xxxxxx but first denying 1000000x and 10111111.

For example:

deny  192.168.1.128/31;
deny  192.168.1.191;
allow 192.168.1.128/26;
deny  all;
Richard Smith
  • 12,834
  • 2
  • 21
  • 29