[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"page-ru-/guides/linux/iptables-basics":3,"mdc-t2iq2-key":607,"mdc--sdwf6w-key":632,"mdc-empbmz-key":662,"mdc-76kilu-key":679,"mdc--weu3rg-key":695,"mdc-9ydmg8-key":703,"mdc-90l1c2-key":711,"mdc-fy402m-key":719,"related-/guides/linux/ufw-basics,/guides/linux/nftables-migration,/guides/linux/ssh-hardening":736},{"id":4,"title":5,"appliesTo":6,"author":11,"body":12,"canonical":543,"code":543,"createdAt":544,"description":545,"difficulty":546,"draft":547,"estimatedTime":548,"extension":549,"faq":550,"howToSteps":560,"howToTotalTime":576,"image":543,"keywords":577,"locale":586,"meta":587,"navigation":588,"path":589,"platform":590,"related":591,"section":595,"seo":596,"severity":543,"stem":597,"summary":598,"tags":599,"twitterCreator":543,"twitterSite":543,"type":605,"updatedAt":544,"__hash__":606},"content_ru/guides/linux/iptables-basics.md","Основы iptables: настройка файрвола Linux для защиты сервера",[7,8,9,10],"Ubuntu 22.04/24.04 LTS","Debian 12+","RHEL 9 / AlmaLinux 9","openSUSE Leap 15.5+","FixPedia Team",{"type":13,"value":14,"toc":533},"minimark",[15,20,32,36,47,68,79,83,86,127,146,150,153,200,210,213,217,220,279,290,294,297,368,383,387,390,410,431,435,460,478,490,518,529],[16,17,19],"h2",{"id":18},"введение-зачем-это-нужно","Введение / Зачем это нужно",[21,22,23,27,28,31],"p",{},[24,25,26],"code",{},"iptables"," — это стандартный инструмент фильтрации сетевого трафика в ядре Linux. Несмотря на постепенный переход экосистемы на ",[24,29,30],{},"nftables",", он остаётся рабочим стандартом для управления пакетами на серверах и рабочих станциях. Правильная настройка файрвола блокирует несанкционированный доступ, скрывает неиспользуемые сервисы и снижает нагрузку на сеть. После выполнения этого руководства вы сможете вручную управлять цепочками правил, открывать нужные порты и применять политику «запрещено всё, кроме разрешённого».",[16,33,35],{"id":34},"требования-подготовка","Требования / Подготовка",[21,37,38,39,42,43,46],{},"Перед началом убедитесь, что у вас есть ",[24,40,41],{},"root","-доступ или привилегии ",[24,44,45],{},"sudo",". Все команды выполняются в терминале. Рекомендуется подключиться через SSH и проверить наличие утилиты:",[48,49,54],"pre",{"className":50,"code":51,"language":52,"meta":53,"style":53},"language-bash shiki shiki-themes github-light github-dark","iptables --version\n","bash","",[24,55,56],{"__ignoreMap":53},[57,58,61,64],"span",{"class":59,"line":60},"line",1,[57,62,26],{"class":63},"sScJk",[57,65,67],{"class":66},"sj4cs"," --version\n",[21,69,70,71,74,75,78],{},"Если команда не найдена, установите пакет через менеджер пакетов вашего дистрибутива (например, ",[24,72,73],{},"sudo apt install iptables"," или ",[24,76,77],{},"sudo dnf install iptables","). Убедитесь, что вы не блокируете себя: держите под рукой доступ к веб-консоли хостинг-провайдера на случай потери соединения.",[16,80,82],{"id":81},"шаг-1-очистка-текущей-конфигурации","Шаг 1: Очистка текущей конфигурации",[21,84,85],{},"Начните с чистого состояния, чтобы старые правила не конфликтовали с новой политикой. Выполните команду для удаления всех правил из всех цепочек:",[48,87,89],{"className":50,"code":88,"language":52,"meta":53,"style":53},"sudo iptables -F\nsudo iptables -X\nsudo iptables -t nat -F\n",[24,90,91,102,112],{"__ignoreMap":53},[57,92,93,95,99],{"class":59,"line":60},[57,94,45],{"class":63},[57,96,98],{"class":97},"sZZnC"," iptables",[57,100,101],{"class":66}," -F\n",[57,103,105,107,109],{"class":59,"line":104},2,[57,106,45],{"class":63},[57,108,98],{"class":97},[57,110,111],{"class":66}," -X\n",[57,113,115,117,119,122,125],{"class":59,"line":114},3,[57,116,45],{"class":63},[57,118,98],{"class":97},[57,120,121],{"class":66}," -t",[57,123,124],{"class":97}," nat",[57,126,101],{"class":66},[21,128,129,130,133,134,137,138,141,142,145],{},"Опция ",[24,131,132],{},"-F"," очищает правила, а ",[24,135,136],{},"-X"," удаляет пользовательские цепочки. Команда с ",[24,139,140],{},"-t nat"," сбрасывает правила трансляции адресов. Это безопасный этап, так как по умолчанию политика обычно установлена в ",[24,143,144],{},"ACCEPT",", и активные сессии не разорвутся.",[16,147,149],{"id":148},"шаг-2-установка-политик-по-умолчанию","Шаг 2: Установка политик по умолчанию",[21,151,152],{},"Задайте строгие правила для всего входящего трафика. Сервер будет отклонять пакеты, если для них нет явного разрешения.",[48,154,156],{"className":50,"code":155,"language":52,"meta":53,"style":53},"sudo iptables -P INPUT DROP\nsudo iptables -P FORWARD DROP\nsudo iptables -P OUTPUT ACCEPT\n",[24,157,158,173,186],{"__ignoreMap":53},[57,159,160,162,164,167,170],{"class":59,"line":60},[57,161,45],{"class":63},[57,163,98],{"class":97},[57,165,166],{"class":66}," -P",[57,168,169],{"class":97}," INPUT",[57,171,172],{"class":97}," DROP\n",[57,174,175,177,179,181,184],{"class":59,"line":104},[57,176,45],{"class":63},[57,178,98],{"class":97},[57,180,166],{"class":66},[57,182,183],{"class":97}," FORWARD",[57,185,172],{"class":97},[57,187,188,190,192,194,197],{"class":59,"line":114},[57,189,45],{"class":63},[57,191,98],{"class":97},[57,193,166],{"class":66},[57,195,196],{"class":97}," OUTPUT",[57,198,199],{"class":97}," ACCEPT\n",[21,201,202,203,206,207,209],{},"Здесь ",[24,204,205],{},"DROP"," означает молчаливое отбрасывание пакетов, что усложняет сканирование портов злоумышленниками. ",[24,208,144],{}," для исходящего трафика позволяет серверу скачивать обновления и обращаться к внешним API без дополнительных правил.",[211,212],"in-article-ad",{},[16,214,216],{"id":215},"шаг-3-разрешение-установленных-и-ssh-подключений","Шаг 3: Разрешение установленных и SSH-подключений",[21,218,219],{},"Чтобы текущая SSH-сессия не прервалась, разрешите трафик для уже установленных соединений и явно откройте порт удалённого доступа.",[48,221,223],{"className":50,"code":222,"language":52,"meta":53,"style":53},"sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT\nsudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT\n",[24,224,225,253],{"__ignoreMap":53},[57,226,227,229,231,234,236,239,242,245,248,251],{"class":59,"line":60},[57,228,45],{"class":63},[57,230,98],{"class":97},[57,232,233],{"class":66}," -A",[57,235,169],{"class":97},[57,237,238],{"class":66}," -m",[57,240,241],{"class":97}," conntrack",[57,243,244],{"class":66}," --ctstate",[57,246,247],{"class":97}," ESTABLISHED,RELATED",[57,249,250],{"class":66}," -j",[57,252,199],{"class":97},[57,254,255,257,259,261,263,266,269,272,275,277],{"class":59,"line":104},[57,256,45],{"class":63},[57,258,98],{"class":97},[57,260,233],{"class":66},[57,262,169],{"class":97},[57,264,265],{"class":66}," -p",[57,267,268],{"class":97}," tcp",[57,270,271],{"class":66}," --dport",[57,273,274],{"class":66}," 22",[57,276,250],{"class":66},[57,278,199],{"class":97},[21,280,281,282,285,286,289],{},"Параметр ",[24,283,284],{},"-m conntrack"," отслеживает состояние пакетов. Если соединение уже инициировано, оно пропустится. Вторая команда разрешает входящие TCP-запросы на порт 22. Если вы используете нестандартный порт SSH, замените ",[24,287,288],{},"22"," на ваш номер.",[16,291,293],{"id":292},"шаг-4-открытие-веб-портов-и-локального-доступа","Шаг 4: Открытие веб-портов и локального доступа",[21,295,296],{},"Если на сервере работает веб-сервер или базу данных, добавьте соответствующие правила. Также важно разрешить трафик на локальном интерфейсе, чтобы системные утилиты могли взаимодействовать друг с другом.",[48,298,300],{"className":50,"code":299,"language":52,"meta":53,"style":53},"sudo iptables -A INPUT -i lo -j ACCEPT\nsudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT\nsudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT\n",[24,301,302,322,345],{"__ignoreMap":53},[57,303,304,306,308,310,312,315,318,320],{"class":59,"line":60},[57,305,45],{"class":63},[57,307,98],{"class":97},[57,309,233],{"class":66},[57,311,169],{"class":97},[57,313,314],{"class":66}," -i",[57,316,317],{"class":97}," lo",[57,319,250],{"class":66},[57,321,199],{"class":97},[57,323,324,326,328,330,332,334,336,338,341,343],{"class":59,"line":104},[57,325,45],{"class":63},[57,327,98],{"class":97},[57,329,233],{"class":66},[57,331,169],{"class":97},[57,333,265],{"class":66},[57,335,268],{"class":97},[57,337,271],{"class":66},[57,339,340],{"class":66}," 80",[57,342,250],{"class":66},[57,344,199],{"class":97},[57,346,347,349,351,353,355,357,359,361,364,366],{"class":59,"line":114},[57,348,45],{"class":63},[57,350,98],{"class":97},[57,352,233],{"class":66},[57,354,169],{"class":97},[57,356,265],{"class":66},[57,358,268],{"class":97},[57,360,271],{"class":66},[57,362,363],{"class":66}," 443",[57,365,250],{"class":66},[57,367,199],{"class":97},[21,369,370,371,374,375,378,379,382],{},"Флаг ",[24,372,373],{},"-i lo"," разрешает весь трафик на интерфейсе ",[24,376,377],{},"127.0.0.1",". Правила для 80 и 443 портов делают сайты доступными для посетителей. Для других сервисов (например, MySQL на порту 3306) используйте аналогичный синтаксис, но ограничьте доступ доверенными IP через ",[24,380,381],{},"-s 192.168.1.0/24",".",[16,384,386],{"id":385},"проверка-результата","Проверка результата",[21,388,389],{},"Убедитесь, что правила применились корректно, выведя текущую конфигурацию с номерами пакетов и объёмом трафика:",[48,391,393],{"className":50,"code":392,"language":52,"meta":53,"style":53},"sudo iptables -L -n -v\n",[24,394,395],{"__ignoreMap":53},[57,396,397,399,401,404,407],{"class":59,"line":60},[57,398,45],{"class":63},[57,400,98],{"class":97},[57,402,403],{"class":66}," -L",[57,405,406],{"class":66}," -n",[57,408,409],{"class":66}," -v\n",[21,411,412,413,416,417,420,421,424,425,427,428,430],{},"Ключ ",[24,414,415],{},"-n"," ускоряет вывод, отключая обратное DNS-резолвинг, а ",[24,418,419],{},"-v"," показывает статистику прохождения пакетов. Вы должны увидеть цепочку ",[24,422,423],{},"INPUT"," с политикой ",[24,426,205],{}," и строки ",[24,429,144],{}," для SSH, loopback и веб-портов. Попробуйте открыть сайт на сервере из браузера и подключиться по SSH с другого устройства. Оба действия должны пройти без задержек.",[16,432,434],{"id":433},"возможные-проблемы","Возможные проблемы",[21,436,437,445,446,448,449,74,452,455,456,459],{},[438,439,440,441,444],"strong",{},"Ошибка ",[24,442,443],{},"iptables v1.8.x: command not found"," или конфликты версий","\nВ современных дистрибутивах ",[24,447,26],{}," может быть симлинком на ",[24,450,451],{},"iptables-nft",[24,453,454],{},"iptables-legacy",". Используйте ",[24,457,458],{},"sudo update-alternatives --config iptables"," для выбора нужной реализации, если сталкиваетесь с ошибками совместимости.",[21,461,462,465,466,469,470,473,474,477],{},[438,463,464],{},"Потеря доступа после применения политик","\nЕсли политика ",[24,467,468],{},"INPUT DROP"," активирована до разрешения SSH, вы окажетесь вне сессии. Восстановите доступ через VNC-консоль и выполните ",[24,471,472],{},"sudo iptables -F",". В будущем используйте утилиту ",[24,475,476],{},"iptables-apply"," с автоматическим таймаутом, которая откатит изменения при потере соединения.",[21,479,480,483,485,486,489],{},[438,481,482],{},"Правила исчезают после перезагрузки",[24,484,26],{}," хранит правила только в оперативной памяти. Для сохранения установите ",[24,487,488],{},"iptables-persistent",":",[48,491,493],{"className":50,"code":492,"language":52,"meta":53,"style":53},"sudo apt install iptables-persistent\nsudo netfilter-persistent save\n",[24,494,495,508],{"__ignoreMap":53},[57,496,497,499,502,505],{"class":59,"line":60},[57,498,45],{"class":63},[57,500,501],{"class":97}," apt",[57,503,504],{"class":97}," install",[57,506,507],{"class":97}," iptables-persistent\n",[57,509,510,512,515],{"class":59,"line":104},[57,511,45],{"class":63},[57,513,514],{"class":97}," netfilter-persistent",[57,516,517],{"class":97}," save\n",[21,519,520,521,524,525,528],{},"На системах с ",[24,522,523],{},"systemd"," сервис автоматически загружает правила из ",[24,526,527],{},"/etc/iptables/rules.v4"," при старте операционной системы. Регулярно обновляйте этот файл после внесения изменений в работу сети.",[530,531,532],"style",{},"html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}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 .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}",{"title":53,"searchDepth":104,"depth":104,"links":534},[535,536,537,538,539,540,541,542],{"id":18,"depth":104,"text":19},{"id":34,"depth":104,"text":35},{"id":81,"depth":104,"text":82},{"id":148,"depth":104,"text":149},{"id":215,"depth":104,"text":216},{"id":292,"depth":104,"text":293},{"id":385,"depth":104,"text":386},{"id":433,"depth":104,"text":434},null,"2026-04-04 23:17:57","Гайд по настройке iptables в Linux. Научитесь создавать правила фильтрации, открывать порты и защищать сервер. Освойте базовую защиту файрвола за 15 минут.","medium",false,"15-20 мин","md",[551,554,557],{"question":552,"answer":553},"Сохраняются ли правила iptables после перезагрузки сервера?","По умолчанию нет. Чтобы правила применялись автоматически, установите пакет `iptables-persistent` (Debian/Ubuntu) или настройте сервис `netfilter-persistent`.",{"question":555,"answer":556},"Можно ли использовать iptables на современных дистрибутивах?","Да. Многие системы переходят на `nftables`, однако `iptables` остаётся полностью рабочим. В современных ядрах команды автоматически транслируются в `nftables` через слой обратной совместимости.",{"question":558,"answer":559},"Что делать, если я случайно заблокировал себе доступ по SSH?","Воспользуйтесь консолью восстановления (VNC/Serial) из панели хостинг-провайдера. В ней выполните `iptables -F` для мгновенного сброса всех правил.",[561,564,567,570,573],{"name":562,"text":563},"Проверка статуса и очистка старых правил","Убедитесь, что утилита установлена, и сбросьте текущие правила командой `iptables -F`, чтобы начать настройку с чистого листа.",{"name":565,"text":566},"Настройка политик по умолчанию","Установите политику DROP для входящего трафика и ACCEPT для исходящего, чтобы сервер отклонял всё, что явно не разрешено.",{"name":568,"text":569},"Разрешение установленных и SSH-подключений","Откройте порт 22 для TCP-трафика и разрешите уже установленные соединения, чтобы не потерять доступ к серверу.",{"name":571,"text":572},"Разрешение HTTP/HTTPS и локального трафика","Добавьте правила для портов 80 и 443, а также для loopback-интерфейса, чтобы веб-сервер и системные службы работали корректно.",{"name":574,"text":575},"Сохранение конфигурации","Запишите текущие правила в постоянный конфигурационный файл с помощью `iptables-save` или специализированного сервиса.","PT20M",[578,579,580,581,582,583,584,585],"iptables основы","настройка iptables linux","правила файрвола в linux","открыть порт iptables","iptables команда","защита сервера linux","базовая настройка iptables","iptables tutorial ru","ru_RU",{},true,"/guides/linux/iptables-basics","linux",[592,593,594],"/guides/linux/ufw-basics","/guides/linux/nftables-migration","/guides/linux/ssh-hardening","Гайды по Linux",{"title":5,"description":545},"guides/linux/iptables-basics","В этом руководстве вы освоите базовые принципы работы с iptables, научитесь создавать правила фильтрации трафика и безопасно настраивать сетевой доступ. К концу статьи ваш сервер будет защищён от нежелательных подключений.",[600,601,26,602,603,604],"Linux","Сетевая безопасность","firewall","Системное администрирование","netfilter","guide","QyJneCqt109jcAlUw0dCQpuIvdxYoRATyJX2oQqt7GM",{"data":608,"body":609},{},{"type":41,"children":610},[611],{"type":612,"tag":21,"props":613,"children":614},"element",{},[615,618,623,625,631],{"type":616,"value":617},"text","По умолчанию нет. Чтобы правила применялись автоматически, установите пакет ",{"type":612,"tag":24,"props":619,"children":621},{"className":620},[],[622],{"type":616,"value":488},{"type":616,"value":624}," (Debian/Ubuntu) или настройте сервис ",{"type":612,"tag":24,"props":626,"children":628},{"className":627},[],[629],{"type":616,"value":630},"netfilter-persistent",{"type":616,"value":382},{"data":633,"body":634},{},{"type":41,"children":635},[636],{"type":612,"tag":21,"props":637,"children":638},{},[639,641,646,648,653,655,660],{"type":616,"value":640},"Да. Многие системы переходят на ",{"type":612,"tag":24,"props":642,"children":644},{"className":643},[],[645],{"type":616,"value":30},{"type":616,"value":647},", однако ",{"type":612,"tag":24,"props":649,"children":651},{"className":650},[],[652],{"type":616,"value":26},{"type":616,"value":654}," остаётся полностью рабочим. В современных ядрах команды автоматически транслируются в ",{"type":612,"tag":24,"props":656,"children":658},{"className":657},[],[659],{"type":616,"value":30},{"type":616,"value":661}," через слой обратной совместимости.",{"data":663,"body":664},{},{"type":41,"children":665},[666],{"type":612,"tag":21,"props":667,"children":668},{},[669,671,677],{"type":616,"value":670},"Воспользуйтесь консолью восстановления (VNC/Serial) из панели хостинг-провайдера. В ней выполните ",{"type":612,"tag":24,"props":672,"children":674},{"className":673},[],[675],{"type":616,"value":676},"iptables -F",{"type":616,"value":678}," для мгновенного сброса всех правил.",{"data":680,"body":681},{},{"type":41,"children":682},[683],{"type":612,"tag":21,"props":684,"children":685},{},[686,688,693],{"type":616,"value":687},"Убедитесь, что утилита установлена, и сбросьте текущие правила командой ",{"type":612,"tag":24,"props":689,"children":691},{"className":690},[],[692],{"type":616,"value":676},{"type":616,"value":694},", чтобы начать настройку с чистого листа.",{"data":696,"body":697},{},{"type":41,"children":698},[699],{"type":612,"tag":21,"props":700,"children":701},{},[702],{"type":616,"value":566},{"data":704,"body":705},{},{"type":41,"children":706},[707],{"type":612,"tag":21,"props":708,"children":709},{},[710],{"type":616,"value":569},{"data":712,"body":713},{},{"type":41,"children":714},[715],{"type":612,"tag":21,"props":716,"children":717},{},[718],{"type":616,"value":572},{"data":720,"body":721},{},{"type":41,"children":722},[723],{"type":612,"tag":21,"props":724,"children":725},{},[726,728,734],{"type":616,"value":727},"Запишите текущие правила в постоянный конфигурационный файл с помощью ",{"type":612,"tag":24,"props":729,"children":731},{"className":730},[],[732],{"type":616,"value":733},"iptables-save",{"type":616,"value":735}," или специализированного сервиса.",[]]