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