использование «ipset» для блокировки IP-адресов из одной страны

Thank you for reading this post, don't forget to subscribe!

IPset, это ути­ли­та на осно­ве команд­ной стро­ки, кото­рая исполь­зу­ет­ся для адми­ни­стри­ро­ва­ния базы под назва­ни­ем IP и нахо­дить­ся внут­ри ядра Linux. Набор IP может хра­нить IP-адрес, номе­ра пор­тов сети (TCP / UDP), MAC – адрес, име­на интер­фей­сов или их ком­би­на­ции в пути, что обес­пе­чи­ва­ет ско­рость мол­нии при сов­ме­ще­нии запи­си про­тив набо­ра. Это ассо­ци­а­тив­ное при­ло­же­ние Iptables для бранд­мау­э­ра в Linux, кото­рый поз­во­ля­ет нам с пра­ви­ла­ми уста­но­вок быст­ро и лег­ко забло­ки­ро­вать набор IP-адре­са. Здесь мы уви­дим, как мы можем исполь­зо­вать ipset модуль с IPTables и как бло­ки­ро­вать боль­шие диа­па­зо­ны IP – адре­сов на нашей машине в базе Linux.

Обновление нашей системы

Преж­де все­го, мы долж­ны модер­ни­зи­ро­вать паке­ты на нашей машине Linux, так что­бы у нас были про­грамм­ные паке­ты в акту­аль­ном состо­я­нии. Для того, что­бы обно­вить нашу систе­му, мы долж­ны убе­дить­ся, что мы зашли под sudo или как супер­поль­зо­ва­тель. Для того, что­бы зай­ти под sudo, мы выпол­ним сле­ду­ю­щую команду:

 

После того, как мы зашли, перей­дем к обнов­ле­нию и модер­ни­за­ции нашей системы.

Систе­ма на осно­ве Debian

 

Систе­ма на осно­ве Redhat

 

Установка IPset

Боль­шин­ство дис­три­бу­ти­вов Linux, такие как Ubuntu, Debian постав­ля­ют­ся с пред­уста­нов­лен­ным ipset. Но неко­то­рые дис­три­бу­ти­вы, как Centos не пред­уста­нов­ле­ны, и мы долж­ны уста­но­вить на них. Мы можем уста­но­вить ipset, выпол­нив сле­ду­ю­щую коман­ду в зави­си­мо­сти от дис­три­бу­ти­ва, кото­рый вы используете.

Систе­ма на осно­ве Debian

 

систе­ма на осно­ве Redhat

 

Создание наборов IP

Теперь, когда мы уста­но­ви­ли ipset на нашей машине, мы будем дви­гать­ся впе­ред для созда­ния IP-набо­ров. Здесь мы долж­ны создать ipset, кото­рый содер­жит сете­вые под­се­ти, кото­рые мы гото­вы забло­ки­ро­вать или огра­ни­чить. Итак, сна­ча­ла мы долж­ны полу­чить спи­сок под­се­тей, кото­рые мы гото­вы доба­вить в набо­ры IP. Для того, что­бы полу­чить послед­ние под­се­ти мы будем исполь­зо­вать один из самых попу­ляр­ных сай­тов  https://www.countryipblocks.net. где мы можем полу­чить спис­ки под­се­тей на стра­ни­це https://www.countryipblocks.net/country_selection.php. Здесь мы выбра­ли несколь­ко сете­вых под­се­тей Китая для тести­ро­ва­ния цели.

 

Вот при­мер из под­се­тей, кото­рые мы будем бло­ки­ру­ю­щи­ми в этой ста­тье, но в реаль­ном мире, мы будем иметь огром­ное коли­че­ство под­се­тей. Таким обра­зом, мы будем исполь­зо­вать любой скрипт/язык про­грам­ми­ро­ва­ния и созда­дим спи­сок команд сле­ду­ю­щим образом.

 

Как использовать «ipset» для блокировки IP-адресов из одной страны

Применение набора IP

Теперь, когда наши IP-набо­ры будут гото­вы, мы при­ме­ним эти набо­ры IP, что­бы забло­ки­ро­ван­ные с помо­щью моду­ля  ipset в IPTables.

 

При­ве­ден­ная выше коман­да бло­ки­ру­ет тра­фи­ки, про­ис­хо­дя­щие из диа­па­зо­нов, опре­де­лен­ных IP-под­се­тей в при­ве­ден­ном выше сге­не­ри­ро­ван­ном набо­ре под назва­ни­ем countryblock. Таким обра­зом, все IP-адре­са, пере­чис­лен­ные в нем будут заблокированы.

Таким обра­зом, мы можем забло­ки­ро­вать опре­де­лен­ные бло­ки с помо­щью моду­ля ipset в IPTables. Мы можем создать IP-набо­ры раз­ных стран, так что мы можем при­ме­нять их по мере необ­хо­ди­мо­сти. Это сво­е­го рода метод весь­ма эффек­ти­вен, когда нам нуж­но бло­ки­ро­вать опре­де­лен­ный тра­фик, исхо­дя­щий из кон­крет­ной стра­ны или реги­о­на, но и поз­во­ля­ет IP диа­па­зо­ны, как нам нуж­но. Есть мно­же­ство моду­лей бранд­мау­э­ра и Iptables для них, но этот доволь­но прост, быстр и его удоб­но исполь­зо­вать. И так, если у вас есть какие-либо вопро­сы, пред­ло­же­ния, обрат­ная связь, пожа­луй­ста, напи­ши­те их в поле для ком­мен­та­ри­ев ниже.