
Я могу добавить правило с помощью брандмауэра 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
он считывает каждую строку из текста и обновляет правила брандмауэра
Вы можете изменить его на «разрешить», если захотите вернуть его обратно...