Защита узла на беларусском языке
June 30, 2024

Кіраванне ўваходзячымі злучэннямі з дапамогай iptables на прыкладзе RPC вузла Autonity

У свеце сеткавай бяспекі і кіравання трафікам, iptables з'яўляецца магутным і адносна простым інструментам для Linux-сістэм. Давайце падрабязна разгледзім, як выкарыстоўваць iptables для абмежавання ўваходных злучэнняў, што асабліва важна пры наладзе сервераў з высокай нагрузкай або пры абароне ад DDoS-нападаў.

Што такое iptables?

iptables-гэта ўтыліта каманднага радка, якая з'яўляецца стандартным інтэрфейсам для кіравання правіламі фільтрацыі пакетаў у ядры Linux. Яна дазваляе сістэмным адміністратарам наладжваць правілы для ўваходнага і выходнага сеткавага трафіку.

Уключэнне iptables

Перш за ўсё, пераканайцеся, што ў вас усталяваны і ўключаны iptables. У большасці дыстрыбутываў Linux, iptables пастаўляецца прадусталяваным. Аднак, калі ён у вас не ўсталяваны, можна ўсталяваць яго з дапамогай наступнай каманды:

sudo apt-get install iptables

Пасля ўстаноўкі iptables неабходна ўключыць яго і праверыць статус. Для гэтага можна выкарыстоўваць наступныя каманды:

sudo systemctl enable iptables
sudo systemctl start iptables
sudo systemctl status iptables

Прагляд бягучых правілаў

Для прагляду бягучых правілаў iptables, вы можаце выкарыстоўваць каманду:

sudo iptables -L

Гэта пакажа вам спіс бягучых правілаў iptables.

Асновы працы з iptables

Перш чым пагрузіцца ў канкрэтныя прыклады, давайце разгледзім базавую структуру каманды iptables:

iptables -A CHAIN -p PROTOCOL --dport PORT -m module -j ACTION

дзе:

- A CHAIN: дадае новае правіла ў паказаную ланцужок (напрыклад, INPUT для ўваходнага трафіку)
- p PROTOCOL: паказвае пратакол (напрыклад, tcp)
- dport PORT: паказвае порт прызначэння
- m модуль: загружае дадатковы модуль iptables
- j ACTION: паказвае дзеянне, якое трэба выканаць (напрыклад, ACCEPT, DROP, QUEUE)

Абмежаванне ўсіх тыпаў ўваходзяць злучэнняў на RPC вузел Autonity

Каманды для ўстаноўкі правілаў iptables для партоў 8545 (http) і 8546 (ws):

Першая каманда iptables дазваляе TCP трафік на партах 8545 і 8546 з абмежаваннем у 100 пакетаў у хвіліну для новых, устаноўленых і звязаных злучэнняў. Другая каманда забараняе ўвесь астатні TCP трафік на тых жа партах.

iptables -A INPUT -p tcp --match multiport --dports 8545,8546 -m state --state NEW,ESTABLISHED,RELATED -m limit --limit 100/minute -j ACCEPT
iptables -A INPUT -p tcp --match multiport --dports 8545,8546 -j DROP

Захаванне змяненняў

Пасля таго як вы наладзілі правілы iptables, важна захаваць іх, каб яны ўжываліся пасля перазагрузкі. У большасці выпадкаў, гэта можна зрабіць з дапамогай каманды iptables-save, якая захоўвае бягучыя правілы iptables ў файл. Напрыклад:

sudo iptables-save > /etc/iptables/rules.v4

Гэта захоўвае правілы ў файл rules.v4, які будзе аўтаматычна загружаны пры запуску iptables.

Чаму гэта важна?

Такі падыход да кіравання ўваходзяць злучэннямі мае некалькі пераваг:

- абарона ад перагрузкі: абмяжоўваючы колькасць ўваходных злучэнняў, вы абараняеце свой сервер ад празмернай нагрузкі.

- прадухіленне DDoS-нападаў: гэта дапамагае змякчыць наступствы DDoS-нападаў, абмяжоўваючы колькасць адначасовых злучэнняў.

- кіраванне рэсурсамі: дазваляе больш эфектыўна размяркоўваць рэсурсы сервера, прадухіляючы іх знясіленне з-за вялікай колькасці злучэнняў.

- гнуткасць: выкарыстанне опцыі QUEUE замест DROP дазваляе апрацоўваць перавышаюць ліміт злучэння, а не проста адкідаць іх.

Настройка iptables для працы з HTTP і WebSocket патрабуе разумення асаблівасцяў абодвух пратаколаў. Правільная канфігурацыя дазваляе эфектыўна кіраваць ўваходзяць злучэннямі, забяспечваючы пры гэтым нармальную працу як кароткачасовых HTTP-запытаў, так і доўгажывучых WebSocket злучэнняў. Не забывайце рэгулярна маніторыць і пры неабходнасці карэктаваць налады ў залежнасці ад нагрузкі і спецыфікі вашага прыкладання.