Блок діапазонів IP-адрес


48

Мене обстрілюють спроби злому з Китаю, всі з подібними IP-адресами.

Як би я заблокував діапазон IP таким чином, як 116.10.191. * І т.д.

Я запускаю Ubuntu Server 13.10.

Поточний рядок, який я використовую:

sudo /sbin/iptables -A INPUT -s 116.10.191.207 -j DROP

Це дозволяє мені блокувати кожного по одному, але хакери змінюють IP-адреси при кожній спробі.


4
Ви можете подивитися на fail2ban, що дійсно добре динамічно забороняє неприємні IP-адреси.
user9517 підтримує GoFundMonica

Мені також подобається додати knockd, щоб усунути практично 100% невдалих спроб доступу з моїх журналів. help.ubuntu.com/community/PortKnocking
Бруно Броноскі

Тут може допомогти pam_shield. github.com/jtniehof/pam_shield
Даніель

Відповіді:


86

Щоб заблокувати 116.10.191. * Адреси:

$ sudo iptables -A INPUT -s 116.10.191.0/24 -j DROP

Для блокування адрес 116.10. *. *:

$ sudo iptables -A INPUT -s 116.10.0.0/16 -j DROP

Щоб заблокувати 116. *. *. * Адреси:

$ sudo iptables -A INPUT -s 116.0.0.0/8 -j DROP

Але будьте уважні, що ви блокуєте за допомогою цього методу. Ви не хочете, щоб легітимний трафік не потрапляв на хост.

редагувати : як зазначалося, iptables оцінює правила в послідовному порядку. Правила, вищі в наборі правил, застосовуються перед правилами, нижчими в наборі правил. Отже, якщо у наборі правил є правило, яке дозволяє вказаний трафік, то додавання ( iptables -A) правила DROP не призведе до наміченого результату блокування. У цьому випадку вставіть ( iptables -I) правило або:

  • як перше правило

sudo iptables -I ...

  • або перед правилом дозволу

sudo iptables --line-numbers -vnL

скажімо, що показує правило №3 дозволяє ssh-трафік, і ви хочете заблокувати ssh для ip-діапазону. -Iбере аргумент цілого числа, це місце у вашому наборі правил, яке ви хочете вставити нове правило

iptables -I 2 ...


Перевірте arin.net і заблокуйте весь діапазон діапазонів ip, що належать Амстердаму . Це місце є RIPE з зондуючими павуками - я сумніваюся, що звідти виходить якийсь законний трафік.
WEBjuju

зауважте, що це може не працювати залежно від порядку встановлення правил iptable , див. відповідь serverfault.com/a/507502/1
Jeff Atwood

2
o snap @JeffAtwood Я шаную за ваш коментар. відповідь оновлена;)
Крик

А як розблокувати певний діапазон?
bzero

11

sudo /sbin/iptables -A INPUT -s 116.10.191.0/24 -j DROP

Це блокує діапазон. Ви можете розширити підмережу за потребою в тому ж загальному форматі.


це буде працювати на цілому 4-му діапазоні? Як і 0/24 лише 0-24. Я спробував, наприклад, 500, але це не вийшло. Чи охоплюватиме 0/24 всі ті інші цифри у 100-х та 200-х роках
Стівен Чьоффі

3
@Stephen Це діапазон CIDR. Якщо вам потрібно обчислити його для іншого діапазону, скористайтеся цим: subnet-calculator.com/cidr.php
Nathan C

4

Як альтернативний підхід ви можете використовувати щось таке просто, як fail2ban. Він встановлює тайм-аут для послідовних невдалих спроб входу і робить грубе посилення нездійсненним, оскільки вони отримують лише кілька шансів за тайм-аут. Я встановив тривалість часу на 30 хвилин. До моменту, коли вони проходять годину чи дві, вони розуміють, що не зможуть просунутися і відмовитися.


Також блокування цілих країн може перешкоджати дозволеному використанню.
Еса Джокінен

Я усвідомлюю, що ця тема має більше року, але хотіла, щоб люди щось знали. У мене встановлено і працює запуск2, але я також регулярно перевіряю свої журнали сервера. Існує цей діапазон IP, 89.248.x.xякий продовжує пробувати різні входи електронною поштою приблизно через годину від останньої спроби протягом дня. Мабуть, утримати findtimeв fail2ban 30 хвилин вже не достатньо, щоб утримати кожного неприємного малюка сценарію.
Tanzeel Kazi
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.