Како работи заштитниот ѕид на Iptables


Вовед

Поставувањето заштитен ѕид е суштински чекор што треба да се преземе во обезбедувањето на секој модерен оперативен систем. Повеќето дистрибуции на Linux се испорачуваат со неколку различни алатки за заштитен ѕид што можете да ги користите за да конфигурирате заштитен ѕид. Во ова упатство, ќе го покриеме заштитниот ѕид iptables.

Iptables е стандарден заштитен ѕид вклучен во повеќето дистрибуции на Linux стандардно. Тоа е интерфејс од командната линија до мрежните куки за филтер на ниво на јадрото што може да манипулира со стекот на мрежата Линукс. Работи така што секој пакет што го преминува мрежниот интерфејс се совпаѓа со множество правила за да одлучи што да прави.

Во овој водич, ќе прегледате како функционира Iptables. За подлабок пристап, можете да прочитате „Длабоко нурне во Iptables и Netfilter Architecture“.

Како работи Iptables

Прво, да разгледаме некоја терминологија и да разговараме како функционира iptables.

Заштитниот ѕид iptables работи со споредување на мрежниот сообраќај со збир од правила. Правилата ги дефинираат карактеристиките што треба да ги има мрежниот пакет за да се совпадне и дејството што треба да се преземе за совпаѓање на пакетите.

Постојат многу опции за да се утврди кои пакети одговараат на одредено правило. Можете да го совпаднете типот на протоколот на пакетот, адресата или портата на изворот или дестинацијата, интерфејсот што се користи, неговата врска со претходните пакети итн.

Кога дефинираната шема се совпаѓа, дејството што се случува се нарекува цел. Целта може да биде конечна одлука за политика за пакетот, како што се ACCEPT или DROP. Исто така, може да го премести пакетот во различен синџир за обработка или да ја евидентира средбата. Постојат многу опции.

Овие правила се организирани во групи наречени синџири. Синџир е збир на правила со кои се проверува пакетот последователно. Кога пакетот се совпаѓа со едно од правилата, тој ја извршува поврзаната акција и ги прескокнува преостанатите правила во синџирот.

Корисникот може да креира синџири по потреба. Стандардно се дефинирани три синџири. Тие се:

  • INPUT: овој синџир ги обработува сите пакети кои се адресирани до вашиот сервер.
  • ИЗЛЕЗ: овој синџир содржи правила за сообраќај создадени од вашиот сервер.
  • Напред: овој синџир се користи за справување со сообраќајот наменет за други сервери кои не се креирани на вашиот сервер. Овој синџир е начин да го конфигурирате вашиот сервер да насочува барања до други машини.

Секој синџир може да содржи нула или повеќе правила и има стандардна политика. Политиката одредува што се случува кога пакетот ќе ги помине сите правила во синџирот и не одговара на ниту едно правило. Можете или да го фрлите пакетот или да го прифатите пакетот ако не се совпаѓаат правила.

Iptables исто така може да ги следи врските. Ова значи дека можете да креирате правила кои дефинираат што се случува со пакетот врз основа на неговата врска со претходните пакети. Способноста е „следење на состојбата“, „следење на конекција“ или конфигурирање на „државната машина“.

IPv4 наспроти IPv6

Заштитниот ѕид на нетофилтерот што е вклучен во кернелот на Linux го одржува сообраќајот IPv4 и IPv6 целосно одвоен. Различни се и алатките на Iptables што се користат за манипулирање со табелите што ги содржат правилата за заштитен ѕид. Ако имате вклучено IPv6 на вашиот сервер, ќе мора да ги конфигурирате двете табели за да го адресираат сообраќајот на вашиот сервер.

Забелешка: Nftables, наследник на Iptables, поблиску го интегрира ракувањето со IPv4 и IPv6. Командата iptables-translate може да се користи за мигрирање на правилата на Iptables во Nftables.

Редовната команда iptables се користи за манипулирање со табелата што содржи правила што го регулираат сообраќајот IPv4. За сообраќајот IPv6, се користи придружна команда наречена ip6tables. Сите правила што ќе ги поставите со iptables ќе влијаат само на пакетите што користат IPv4 адресирање, но синтаксата помеѓу овие команди е иста. Командата iptables ќе ги направи правилата што важат за сообраќајот IPv4, а командата ip6tables ќе ги направи правилата што важат за сообраќајот IPv6. Не заборавајте да ги користите IPv6 адресите на вашиот сервер за да ги креирате правилата ip6tables.

Работи што треба да ги имате на ум

Сега кога знаете како iptables ги насочува пакетите што доаѓаат преку неговиот интерфејс - насочете го пакетот до соодветниот синџир, проверете го со секое правило додека не се совпадне, издадете ја стандардната политика на ланецот ако не се најде совпаѓање - можете да започнете да создавате правила .

Прво, треба да бидете сигурни дека имате правила за да ги одржувате активните тековните врски ако имплементирате стандардна политика за отпуштање. Ова е особено важно ако сте поврзани со вашиот сервер преку SSH. Ако случајно имплементирате правило или политика што ја прекинува вашата тековна врска, можеби ќе треба да се најавите на вашиот сервер користејќи конзола за обновување базирана на прелистувач.

Друга работа што треба да се има на ум е дека редоследот на правилата во секој синџир е важен. Пакетот не смее да наиде на поопшто правило дека се совпаѓа ако е наменет да одговара на поконкретно правило.

Поради ова, правилата во близина на врвот на синџирот треба да имаат повисоко ниво на специфичност од правилата на дното. Прво треба да одговарате на конкретни случаи, а потоа да обезбедите поопшти правила за да одговараат на пошироките шеми. Ако пакетот падне низ целиот синџир (ако не одговара на ниту едно правило), ќе го следи најопштото правило, т.е. стандардната политика.

Поради оваа причина, стандардната политика на синџирот силно ги диктира типовите правила што ќе бидат вклучени во синџирот. Синџирот со стандардна политика на ACCEPT ќе содржи правила кои експлицитно ги испуштаат пакетите. Синџирот што стандардно е DROP ќе содржи исклучоци за пакети што треба конкретно да се прифатат.

Заклучок

Во овој момент, подготвени сте да го имплементирате вашиот сопствен заштитен ѕид. За ова, треба да го прочитате DigitalOcean's Cloud Firewalls.