UFW - разрешить диапазон IP-адресов?

UFW - разрешить диапазон IP-адресов?

Я могу добавить правило с помощью брандмауэра UFW, чтобы разрешить одному известному IP-адресу 192.168.1.32доступ к моему тестовому веб-серверу ( 192.168.1.48в локальной, в основном доверенной сети) на Ubuntu 14.04, используя:

sudo ufw allow proto tcp from 192.168.1.23 to 192.168.1.48 port 80

Есть ли способ добавить диапазон адресатов?(например, 192.168.1.30-192.168.1.50чтобы разрешить больше машин в моей текущей сети)? Использование 192.168.1.30-192.168.1.50и 192.168.1.30-192.168.1.50не работает и приводит к ERROR: Bad source address.

решение1

Вам необходимо использовать двоичное число (2,4,8,16, 32), поэтому вы используете либо больший, либо меньший диапазон.Точно20 хостов просто невозможно с битовой маской в ​​одном правиле:

  • 16 хостов (192.168.1.16 – 192.168.1.31):

    sudo ufw allow proto tcp from  192.168.1.16/28 to 192.168.1.48 port 80
    

    Подробности

    Address:   192.168.1.16          11000000.10101000.00000001.0001 0000
    Rule Mask: 255.255.255.240 = 28  11111111.11111111.11111111.1111 0000
    Wildcard:  0.0.0.15              00000000.00000000.00000000.0000 1111
    
    HostMin:   192.168.1.16          11000000.10101000.00000001.0001 0000
    HostMax:   192.168.1.31          11000000.10101000.00000001.0000 1111
    
  • 32 хоста (192.168.1.0 - 192.168.1.31)

    sudo ufw allow proto tcp from 192.168.1.0/27 to 192.168.1.48 port 80
    

    Подробности

    Address:   192.168.1.0           11000000.10101000.00000001.000 00000
    Rule Mask: 255.255.255.224 = 27  11111111.11111111.11111111.111 00000
    Wildcard:  0.0.0.31              00000000.00000000.00000000.000 11111
    
    HostMin:   192.168.1.0           11000000.10101000.00000001.000 00000
    HostMax:   192.168.1.31          11000000.10101000.00000001.000 11111
    
  • 64 хоста (192.168.1.0 - 192.168.1.63)

    sudo ufw allow proto tcp from 192.168.1.0/26 to 192.168.1.48 port 80
    

    Подробности

    Address:   192.168.1.0           11000000.10101000.00000001.00 000000
    Rule Mask: 255.255.255.192 = 26  11111111.11111111.11111111.11 000000
    Wildcard:  0.0.0.63              00000000.00000000.00000000.00 111111
    
    HostMin:   192.168.1.0           11000000.10101000.00000001.00 000000
    HostMax:   192.168.1.63          11000000.10101000.00000001.00 111111
    

Объяснение

Я не могу дать лучшего объяснения, чемвикипедия

решение2

Разрешить входящие с определенного IP-адреса или подсети Чтобы разрешить входящие соединения с определенного IP-адреса или подсети, укажите источник. Например, выполните эту команду:

sudo ufw allow from 192.168.1.0/24 to any port 22

ИЛИ

sudo ufw allow from 192.168.1.0/24 to 192.168.1.48 port 80

решение3

Мне это нравится

sudo ufw allow from 192.168.1.0/24 to any port 22

Я постоянно использую UFW, мне также нравится схема нумерации, которая помогает мне отслеживать поток пакетов:

sudo ufw insert 1 allow in proto tcp from 192.168.1.0/24 to any port
22 comment "SSH Network Connection"

решение4

довольно старый вопрос, однако, если кто-то все еще задается этим вопросом, вот способ, который я нашел

cat geolocationIpList.txt | awk '/^[^#]/ { print $1 }' | sudo xargs -I {} ufw deny from {} to any

он считывает каждую строку из текста и обновляет правила брандмауэра

Вы можете изменить его на «разрешить», если захотите вернуть его обратно...

Связанный контент