[{"data":1,"prerenderedAt":819},["ShallowReactive",2],{"wiki-/wiki/linux/firewall":3},{"id":4,"title":5,"body":6,"description":806,"extension":807,"meta":808,"navigation":809,"path":810,"section":811,"seo":812,"stem":817,"__hash__":818},"wiki/wiki/linux/firewall.md","[object Object]",{"type":7,"value":8,"toc":789},"minimark",[9,21,27,30,35,43,47,60,64,72,76,81,88,116,119,189,196,204,208,214,232,234,297,307,311,320,364,367,427,430,445,447,458,462,504,507,511,514,519,533,538,561,566,593,597,602,613,634,639,642,665,670,682,686,691,694,699,705,710,723,726,732,736,761,765,785],[10,11,12,16,17,20],"p",{},[13,14,15],"strong",{},"Время:"," 5 мин · ",[13,18,19],{},"Сложность:"," ★☆☆☆☆",[10,22,23,26],{},[13,24,25],{},"Подходит:"," ✓ Ubuntu 22.04 · ✓ Debian 12 · ✓ AlmaLinux 9",[28,29],"hr",{},[31,32,34],"h2",{"id":33},"краткое-описание","Краткое описание",[10,36,37,38,42],{},"В Linux файрвол реализован на уровне ядра через ",[39,40,41],"code",{},"netfilter",". Поверх него существует несколько инструментов управления — с разным синтаксисом и моделью работы. Выбор зависит от дистрибутива и задачи.",[31,44,46],{"id":45},"когда-пригодится","Когда пригодится",[48,49,50,54,57],"ul",{},[51,52,53],"li",{},"Вы выбираете инструмент для управления правилами сети",[51,55,56],{},"Вы переходите с одного дистрибутива на другой и хотите разобраться в отличиях",[51,58,59],{},"Вам нужно открыть или закрыть порт на сервере",[31,61,63],{"id":62},"что-понадобится","Что понадобится",[48,65,66,69],{},[51,67,68],{},"Сервер с Ubuntu 22.04, Debian 12 или AlmaLinux 9",[51,70,71],{},"Доступ под root или пользователь с sudo",[31,73,75],{"id":74},"обзор-инструментов","Обзор инструментов",[77,78,80],"h3",{"id":79},"ufw-ubuntu-и-debian","UFW — Ubuntu и Debian",[10,82,83,84,87],{},"UFW (Uncomplicated Firewall) — упрощённый интерфейс над ",[39,85,86],{},"iptables",". Подходит для большинства задач на серверах Ubuntu и Debian.",[89,90,95],"pre",{"className":91,"code":92,"language":93,"meta":94,"style":94},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","apt install -y ufw\n","bash","",[39,96,97],{"__ignoreMap":94},[98,99,102,106,110,113],"span",{"class":100,"line":101},"line",1,[98,103,105],{"class":104},"sBMFI","apt",[98,107,109],{"class":108},"sfazB"," install",[98,111,112],{"class":108}," -y",[98,114,115],{"class":108}," ufw\n",[10,117,118],{},"Основные команды:",[89,120,122],{"className":91,"code":121,"language":93,"meta":94,"style":94},"ufw allow ssh          # открыть порт 22\nufw allow 80/tcp       # открыть порт 80 по TCP\nufw deny 3306          # закрыть порт MySQL\nufw status             # посмотреть правила\nufw enable             # включить файрвол\n",[39,123,124,139,152,167,178],{"__ignoreMap":94},[98,125,126,129,132,135],{"class":100,"line":101},[98,127,128],{"class":104},"ufw",[98,130,131],{"class":108}," allow",[98,133,134],{"class":108}," ssh",[98,136,138],{"class":137},"sHwdD","          # открыть порт 22\n",[98,140,142,144,146,149],{"class":100,"line":141},2,[98,143,128],{"class":104},[98,145,131],{"class":108},[98,147,148],{"class":108}," 80/tcp",[98,150,151],{"class":137},"       # открыть порт 80 по TCP\n",[98,153,155,157,160,164],{"class":100,"line":154},3,[98,156,128],{"class":104},[98,158,159],{"class":108}," deny",[98,161,163],{"class":162},"sbssI"," 3306",[98,165,166],{"class":137},"          # закрыть порт MySQL\n",[98,168,170,172,175],{"class":100,"line":169},4,[98,171,128],{"class":104},[98,173,174],{"class":108}," status",[98,176,177],{"class":137},"             # посмотреть правила\n",[98,179,181,183,186],{"class":100,"line":180},5,[98,182,128],{"class":104},[98,184,185],{"class":108}," enable",[98,187,188],{"class":137},"             # включить файрвол\n",[10,190,191,192,195],{},"Вывод ",[39,193,194],{},"ufw status",":",[89,197,202],{"className":198,"code":200,"language":201},[199],"language-text","Status: active\n\nTo                         Action      From\n--                         ------      ----\n22/tcp                     ALLOW       Anywhere\n80/tcp                     ALLOW       Anywhere\n","text",[39,203,200],{"__ignoreMap":94},[77,205,207],{"id":206},"firewalld-almalinux-и-rhel","firewalld — AlmaLinux и RHEL",[10,209,210,213],{},[39,211,212],{},"firewalld"," использует зональную модель: сетевые интерфейсы назначаются зонам (public, trusted, internal и др.), каждая зона имеет свой набор правил. По умолчанию включён в AlmaLinux 9.",[89,215,217],{"className":91,"code":216,"language":93,"meta":94,"style":94},"systemctl enable --now firewalld\n",[39,218,219],{"__ignoreMap":94},[98,220,221,224,226,229],{"class":100,"line":101},[98,222,223],{"class":104},"systemctl",[98,225,185],{"class":108},[98,227,228],{"class":108}," --now",[98,230,231],{"class":108}," firewalld\n",[10,233,118],{},[89,235,237],{"className":91,"code":236,"language":93,"meta":94,"style":94},"firewall-cmd --permanent --add-service=ssh     # открыть SSH\nfirewall-cmd --permanent --add-port=80/tcp     # открыть порт 80\nfirewall-cmd --permanent --remove-port=3306/tcp # закрыть порт\nfirewall-cmd --reload                           # применить изменения\nfirewall-cmd --list-all                         # посмотреть правила\n",[39,238,239,253,265,277,287],{"__ignoreMap":94},[98,240,241,244,247,250],{"class":100,"line":101},[98,242,243],{"class":104},"firewall-cmd",[98,245,246],{"class":108}," --permanent",[98,248,249],{"class":108}," --add-service=ssh",[98,251,252],{"class":137},"     # открыть SSH\n",[98,254,255,257,259,262],{"class":100,"line":141},[98,256,243],{"class":104},[98,258,246],{"class":108},[98,260,261],{"class":108}," --add-port=80/tcp",[98,263,264],{"class":137},"     # открыть порт 80\n",[98,266,267,269,271,274],{"class":100,"line":154},[98,268,243],{"class":104},[98,270,246],{"class":108},[98,272,273],{"class":108}," --remove-port=3306/tcp",[98,275,276],{"class":137}," # закрыть порт\n",[98,278,279,281,284],{"class":100,"line":169},[98,280,243],{"class":104},[98,282,283],{"class":108}," --reload",[98,285,286],{"class":137},"                           # применить изменения\n",[98,288,289,291,294],{"class":100,"line":180},[98,290,243],{"class":104},[98,292,293],{"class":108}," --list-all",[98,295,296],{"class":137},"                         # посмотреть правила\n",[10,298,299,300,303,304,306],{},"Флаг ",[39,301,302],{},"--permanent"," сохраняет правило после перезагрузки. Без него правило действует только до перезапуска ",[39,305,212],{},".",[77,308,310],{"id":309},"nftables-для-сложных-правил","nftables — для сложных правил",[10,312,313,316,317,319],{},[39,314,315],{},"nftables"," — низкоуровневый инструмент, заменяющий ",[39,318,86],{},". Подходит для сложных сетевых конфигураций: NAT, маршрутизация, rate limiting.",[89,321,323],{"className":91,"code":322,"language":93,"meta":94,"style":94},"apt install -y nftables    # Ubuntu/Debian\ndnf install -y nftables    # AlmaLinux\nsystemctl enable --now nftables\n",[39,324,325,339,353],{"__ignoreMap":94},[98,326,327,329,331,333,336],{"class":100,"line":101},[98,328,105],{"class":104},[98,330,109],{"class":108},[98,332,112],{"class":108},[98,334,335],{"class":108}," nftables",[98,337,338],{"class":137},"    # Ubuntu/Debian\n",[98,340,341,344,346,348,350],{"class":100,"line":141},[98,342,343],{"class":104},"dnf",[98,345,109],{"class":108},[98,347,112],{"class":108},[98,349,335],{"class":108},[98,351,352],{"class":137},"    # AlmaLinux\n",[98,354,355,357,359,361],{"class":100,"line":154},[98,356,223],{"class":104},[98,358,185],{"class":108},[98,360,228],{"class":108},[98,362,363],{"class":108}," nftables\n",[10,365,366],{},"Пример правила:",[89,368,370],{"className":91,"code":369,"language":93,"meta":94,"style":94},"nft add rule inet filter input tcp dport 80 accept\nnft add rule inet filter input tcp dport 443 accept\n",[39,371,372,404],{"__ignoreMap":94},[98,373,374,377,380,383,386,389,392,395,398,401],{"class":100,"line":101},[98,375,376],{"class":104},"nft",[98,378,379],{"class":108}," add",[98,381,382],{"class":108}," rule",[98,384,385],{"class":108}," inet",[98,387,388],{"class":108}," filter",[98,390,391],{"class":108}," input",[98,393,394],{"class":108}," tcp",[98,396,397],{"class":108}," dport",[98,399,400],{"class":162}," 80",[98,402,403],{"class":108}," accept\n",[98,405,406,408,410,412,414,416,418,420,422,425],{"class":100,"line":141},[98,407,376],{"class":104},[98,409,379],{"class":108},[98,411,382],{"class":108},[98,413,385],{"class":108},[98,415,388],{"class":108},[98,417,391],{"class":108},[98,419,394],{"class":108},[98,421,397],{"class":108},[98,423,424],{"class":162}," 443",[98,426,403],{"class":108},[10,428,429],{},"Просмотр текущих правил:",[89,431,433],{"className":91,"code":432,"language":93,"meta":94,"style":94},"nft list ruleset\n",[39,434,435],{"__ignoreMap":94},[98,436,437,439,442],{"class":100,"line":101},[98,438,376],{"class":104},[98,440,441],{"class":108}," list",[98,443,444],{"class":108}," ruleset\n",[77,446,86],{"id":86},[10,448,449,450,452,453,455,456,306],{},"Старый стандарт, который сегодня работает как бэкенд для UFW и частично для ",[39,451,212],{},". Прямое использование ",[39,454,86],{}," для новых конфигураций не рекомендуется — используйте ",[39,457,315],{},[31,459,461],{"id":460},"что-выбрать","Что выбрать",[463,464,465,478],"table",{},[466,467,468],"thead",{},[469,470,471,475],"tr",{},[472,473,474],"th",{},"Ситуация",[472,476,477],{},"Инструмент",[479,480,481,490,497],"tbody",{},[469,482,483,487],{},[484,485,486],"td",{},"Ubuntu или Debian, типичный сервер",[484,488,489],{},"UFW",[469,491,492,495],{},[484,493,494],{},"AlmaLinux или RHEL",[484,496,212],{},[469,498,499,502],{},[484,500,501],{},"Сложные сетевые правила, NAT",[484,503,315],{},[10,505,506],{},"Не используйте несколько инструментов одновременно — они будут конфликтовать.",[31,508,510],{"id":509},"базовые-примеры","Базовые примеры",[10,512,513],{},"Открыть порт 80 на каждом инструменте:",[10,515,516],{},[13,517,518],{},"UFW:",[89,520,522],{"className":91,"code":521,"language":93,"meta":94,"style":94},"ufw allow 80/tcp\n",[39,523,524],{"__ignoreMap":94},[98,525,526,528,530],{"class":100,"line":101},[98,527,128],{"class":104},[98,529,131],{"class":108},[98,531,532],{"class":108}," 80/tcp\n",[10,534,535],{},[13,536,537],{},"firewalld:",[89,539,541],{"className":91,"code":540,"language":93,"meta":94,"style":94},"firewall-cmd --permanent --add-port=80/tcp && firewall-cmd --reload\n",[39,542,543],{"__ignoreMap":94},[98,544,545,547,549,551,555,558],{"class":100,"line":101},[98,546,243],{"class":104},[98,548,246],{"class":108},[98,550,261],{"class":108},[98,552,554],{"class":553},"sMK4o"," &&",[98,556,557],{"class":104}," firewall-cmd",[98,559,560],{"class":108}," --reload\n",[10,562,563],{},[13,564,565],{},"nftables:",[89,567,569],{"className":91,"code":568,"language":93,"meta":94,"style":94},"nft add rule inet filter input tcp dport 80 accept\n",[39,570,571],{"__ignoreMap":94},[98,572,573,575,577,579,581,583,585,587,589,591],{"class":100,"line":101},[98,574,376],{"class":104},[98,576,379],{"class":108},[98,578,382],{"class":108},[98,580,385],{"class":108},[98,582,388],{"class":108},[98,584,391],{"class":108},[98,586,394],{"class":108},[98,588,397],{"class":108},[98,590,400],{"class":162},[98,592,403],{"class":108},[31,594,596],{"id":595},"возможные-ошибки","Возможные ошибки",[10,598,599],{},[13,600,601],{},"UFW заблокировал SSH",[10,603,604,605,608,609,612],{},"Если вы включили ",[39,606,607],{},"ufw enable"," без ",[39,610,611],{},"ufw allow ssh"," — потеряете доступ. Восстановить можно через VNC-консоль в панели управления Cheesecake Cloud:",[89,614,616],{"className":91,"code":615,"language":93,"meta":94,"style":94},"ufw allow ssh\nufw reload\n",[39,617,618,627],{"__ignoreMap":94},[98,619,620,622,624],{"class":100,"line":101},[98,621,128],{"class":104},[98,623,131],{"class":108},[98,625,626],{"class":108}," ssh\n",[98,628,629,631],{"class":100,"line":141},[98,630,128],{"class":104},[98,632,633],{"class":108}," reload\n",[10,635,636],{},[13,637,638],{},"firewalld и UFW запущены одновременно",[10,640,641],{},"Это создаёт непредсказуемое поведение. Оставьте только один инструмент:",[89,643,645],{"className":91,"code":644,"language":93,"meta":94,"style":94},"systemctl stop ufw\nsystemctl disable ufw\n",[39,646,647,656],{"__ignoreMap":94},[98,648,649,651,654],{"class":100,"line":101},[98,650,223],{"class":104},[98,652,653],{"class":108}," stop",[98,655,115],{"class":108},[98,657,658,660,663],{"class":100,"line":141},[98,659,223],{"class":104},[98,661,662],{"class":108}," disable",[98,664,115],{"class":108},[10,666,667],{},[13,668,669],{},"Правила firewalld не сохраняются после перезагрузки",[10,671,672,673,675,676,678,679,306],{},"Вы забыли флаг ",[39,674,302],{},". Добавьте правило снова с ",[39,677,302],{}," и выполните ",[39,680,681],{},"firewall-cmd --reload",[31,683,685],{"id":684},"faq","FAQ",[10,687,688],{},[13,689,690],{},"Нужен ли файрвол, если я не открываю лишних портов?",[10,692,693],{},"Да. Файрвол — это явное разрешение только нужного трафика, а не надежда, что ничего лишнего не запущено. Если какой-то сервис случайно запустится на 0.0.0.0, файрвол не даст ему быть доступным снаружи.",[10,695,696],{},[13,697,698],{},"Можно ли использовать UFW на AlmaLinux?",[10,700,701,702,704],{},"Технически да, но это нестандартно. ",[39,703,212],{}," лучше интегрирован с экосистемой RHEL и SELinux.",[10,706,707],{},[13,708,709],{},"Как посмотреть, какие порты сейчас открыты?",[89,711,713],{"className":91,"code":712,"language":93,"meta":94,"style":94},"ss -tlnp\n",[39,714,715],{"__ignoreMap":94},[98,716,717,720],{"class":100,"line":101},[98,718,719],{"class":104},"ss",[98,721,722],{"class":108}," -tlnp\n",[10,724,725],{},"Пример вывода:",[89,727,730],{"className":728,"code":729,"language":201},[199],"State  Recv-Q  Send-Q  Local Address:Port  Peer Address:Port\nLISTEN 0       128     0.0.0.0:22          0.0.0.0:*      users:((\"sshd\",pid=1234))\nLISTEN 0       511     0.0.0.0:80          0.0.0.0:*      users:((\"nginx\",pid=5678))\n",[39,731,729],{"__ignoreMap":94},[31,733,735],{"id":734},"полезные-ссылки","Полезные ссылки",[48,737,738,747,754],{},[51,739,740],{},[741,742,746],"a",{"href":743,"rel":744},"https://help.ubuntu.com/community/UFW",[745],"nofollow","UFW документация",[51,748,749],{},[741,750,753],{"href":751,"rel":752},"https://firewalld.org/documentation/",[745],"firewalld документация",[51,755,756],{},[741,757,760],{"href":758,"rel":759},"https://wiki.nftables.org/",[745],"nftables wiki",[31,762,764],{"id":763},"следующие-статьи","Следующие статьи",[48,766,767,773,779],{},[51,768,769],{},[741,770,772],{"href":771},"/wiki/linux/ubuntu","Первые шаги на Ubuntu 22.04",[51,774,775],{},[741,776,778],{"href":777},"/wiki/linux/almalinux","Первые шаги на AlmaLinux 9",[51,780,781],{},[741,782,784],{"href":783},"/wiki/linux/ssh","Настройка SSH-ключей",[786,787,788],"style",{},"html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}",{"title":94,"searchDepth":141,"depth":141,"links":790},[791,792,793,794,800,801,802,803,804,805],{"id":33,"depth":141,"text":34},{"id":45,"depth":141,"text":46},{"id":62,"depth":141,"text":63},{"id":74,"depth":141,"text":75,"children":795},[796,797,798,799],{"id":79,"depth":154,"text":80},{"id":206,"depth":154,"text":207},{"id":309,"depth":154,"text":310},{"id":86,"depth":154,"text":86},{"id":460,"depth":141,"text":461},{"id":509,"depth":141,"text":510},{"id":595,"depth":141,"text":596},{"id":684,"depth":141,"text":685},{"id":734,"depth":141,"text":735},{"id":763,"depth":141,"text":764},"Время: 5 мин · Сложность: ★☆☆☆☆","md",{},true,"/wiki/linux/firewall",null,{"title":813,"description":806},{"Файрвол на Linux":814,"description":815,"section":816},"обзор","Какой инструмент управления файрволом выбрать на Ubuntu, Debian и AlmaLinux.","Linux","wiki/linux/firewall","qTyeEOGXZ1euNRawMh9VYC36XoPWQT6h6c4ty7jBMaI",1788285515688]