Как Заблокировать диапазон IP-адреса с UFW

Я пытаюсь заблокировать диапазон IP-адреса на моем сервере Ubuntu 16.04LTS из определенной страны, т.е. Китая, Ирана, и т.д.

Я надеялся найти сценарий или что-то, что я мог выполнить для легкого вхождения в динамично обновляющий список. Как в я просто вставил коды страны, и это автоматический заполняет текущий список от где-нибудь затем добавленного мой диапазон блока. Помощь обновлениям для списка адреса, когда они изменяются. Но запускаться с я использовал блоки IP страны для нахождения списка адресов для Китая и сохранил их к текстовому файлу, названному "chinaiprange.txt"

После некоторого поиска я нашел, что следующая команда ввела их всех в сразу от этого примера

while read line; do sudo ufw insert 1 deny from $line to any; done < chinaiprange.txt

Однако, когда я выполняю его, я получаю следующий вывод:ERROR: Bad source address

Адреса сохраняются в следующем формате:

1.0.1.0/24 
1.0.2.0/23
1.0.8.0/21
...

Если бы существует лучший способ сделать это, которое было бы большим, но сообщило бы мне, что я делаю, неправильно было бы столь же потрясающим.Заранее спасибо!

3
задан 10 June 2016 в 02:40

2 ответа

Перечитать man ufw. Существуют два, подобны, ufw вызовы, что Вы сбиваете с толку:

   ufw [--dry-run] [delete] [insert NUM] allow|deny|reject|limit [in|out] [log|log-all] PORT[/PROTOCOL]

   ufw [--dry-run] [rule] [delete] [insert NUM] allow|deny|reject|limit [in|out [on INTERFACE]] [log|log-all] [proto PROTOCOL] [from ADDRESS [port PORT]] [to ADDRESS [port PORT]]

Вы, вероятно, хотите

sudo ufw insert 1 deny on eth0 from $line 
0
ответ дан 1 December 2019 в 17:33

Я не думаю, что существует что-то не так с синтаксисом Вашей команды (любой из ufw сама команда или цикл удара - хотя это была бы хорошая практика для заключения в кавычки $line переменная т.е. ... from "$line" to any ...).

ERROR: Bad source address ошибка указывает на проблему с самой строкой адреса, и мы можем предположить, что это могло бы произойти из-за стиля DOS CR-LF окончания строки - который Вы смогли подтвердить путем открытия chinaiprange.txt файл в nano

Решение состоит в том, чтобы зафиксировать окончания строки, с помощью любого из известных методов, таких как:

  • прокручивание файла dos2unix команда
  • использование tr или sed - например, sed -i 's/\r$//' chinaiprange.txt
  • открытие файла в vi и выполнение :set ff=unix сопровождаемый :wq повторно сохранить
1
ответ дан 1 December 2019 в 17:33

Другие вопросы по тегам:

Похожие вопросы: