Firewall otvorený port centos 7. Predvolené pravidlá

Počnúc CentoOS 7 sa objavil nový nástroj na konfiguráciu pravidiel filtrovania návštevnosti firewalld. Odporúča sa používať ho na správu pravidiel iptables. V CentOS 8 sa namiesto štandardného filtrovacieho balíka iptables teraz používa rámec nftables a keď konfigurujete pravidlá brány firewall cez firewalld, v skutočnosti konfigurujete nftables. V tomto článku sa pozrieme na inštaláciu, základné koncepty a konfiguráciu brány firewall na serveri so systémom CentOS 8 (CentOS 7 je rovnaký).


FirewallD– firewall na ochranu servera pred nechcenou prevádzkou s podporou dynamickej správy pravidiel (bez reštartovania) a implementáciou trvalých pravidiel brány firewall. Funguje ako rozhranie pre a nftables. FirewallD je možné použiť na takmer všetkých distribúciách Linuxu.

Základné firewallové koncepty, zóny a pravidlá

Pred začatím inštalácie a konfigurácie firewalld, predstavíme si koncept zón, ktoré sa používajú na definovanie úrovne dôvery pre rôzne spojenia. Pre rôzne zóny firewalld Môžete použiť rôzne pravidlá filtrovania, špecifikovať aktívne možnosti firewallu vo forme preddefinovaných služieb, protokolov a portov, presmerovania portov a bohatých pravidiel.

Firewall filtruje prichádzajúcu komunikáciu podľa zóny v závislosti od pravidiel aplikovaných na zónu. Ak IP- adresa odosielateľa požiadavky zodpovedá pravidlám určitej zóny, potom bude paket odoslaný cez túto zónu. Ak adresa nezodpovedá žiadnej zo zón nakonfigurovaných na serveri, paket spracuje predvolená zóna. Pri inštalácii firewalld volá sa predvolená zóna verejnosti.

Firewalld má zóny, ktoré sú vopred nakonfigurované s povoleniami pre rôzne služby. Môžete použiť tieto nastavenia alebo si vytvoriť vlastné zóny. Zoznam predvolených zón, ktoré sa vytvoria pri inštalácii firewalld (uložené v adresári /usr/lib/firewalld/zones/):

pokles minimálna úroveň dôvery. Všetky prichádzajúce spojenia sú blokované bez odozvy, povolené sú iba odchádzajúce spojenia;
blokovať zóna je podobná predchádzajúcej, ale pri odmietnutí prichádzajúcich požiadaviek sa odošle správa icmp-host-prohibited pre Ipv4 alebo icmp6-adm-prohibited pre Ipv6;
verejnosti predstavuje verejné, nedôveryhodné siete. Vybrané prichádzajúce spojenia môžete povoliť individuálne;
externé externých sietí pri použití brány firewall ako brány. Je nakonfigurovaný na maskovanie NAT, takže vaša interná sieť zostáva súkromná, ale prístupná;
interné antonymum vonkajšej zóny. Hostiteľ má dostatočnú úroveň dôvery, k dispozícii je množstvo doplnkových služieb;
dmz používa sa pre počítače umiestnené v DMZ (izolované počítače bez prístupu k zvyšku siete). Povolené sú len určité prichádzajúce spojenia;
práca zóna pre pracovné stroje (väčšina počítačov v sieti je dôveryhodná);
Domov zónu domácej siete. Väčšine počítačov možno dôverovať, ale sú podporované iba niektoré prichádzajúce pripojenia;
dôveryhodný dôverujte všetkým počítačom v sieti. Najotvorenejšia zo všetkých dostupných možností, vyžaduje si vedomé používanie.

IN firewalld používajú sa dva súbory pravidiel – trvalé a dočasné. Dočasné pravidlá fungujú, kým sa server nereštartuje. V predvolenom nastavení pri pridávaní pravidiel do firewalld, pravidlá sa považujú za dočasné ( beh programu). Ak chcete pridať pravidlo natrvalo, musíte použiť príznak - trvalý. Takéto pravidlá sa použijú po reštarte servera.

Inštalácia a aktivácia brány firewall na CentOS

V CentOS 7/8 je firewalld štandardne nainštalovaný s OS. Ak ste ho odstránili a chcete nainštalovať firewalld, môžete použiť štandardného správcu /dnf:

# yum install firewalld -y - pre Centos 7
# dnf install firewalld -y - pre Centos 8

K démonovi firewalld spustil automaticky pri spustení servera, musíte ho pridať do:

# systemctl povoliť firewall

A bež:

# systemctl spustite firewalld

Skontrolujte stav služby:

# systemctl stav firewalld

● firewalld.service - firewalld - dynamický démon brány firewall Načítané: načítané (/usr/lib/systemd/system/firewalld.service; povolené; prednastavené výrobcom: povolené) Aktívne: aktívne (spustené) od Po 2019-10-14 14:54 :40 +06; Pred 22s Dokumenty: man:firewalld(1) Hlavné PID: 13646 (firewalld) CGroup: /system.slice/firewalld.service └─13646 /usr/bin/python2 -Es /usr/sbin/firewalld --nofork --nopid 14. októbra 14:54:40 server.vpn.ru systemd: Spúšťa sa firewalld – démon dynamického firewallu... 14. októbra 14:54:40 server.vpn.ru systemd: Spustený firewalld – démon dynamického firewallu.

Alebo príkazom:

# firewall-cmd --state

Príkaz firewall-cmd je firewalld frontend pre nftables/iptables.

# firewall-cmd --state

Práca s pravidlami brány firewall

Predvolené pravidlá:

Pred nastavením pravidiel brány firewall musíte skontrolovať, ktorá zóna sa používa predvolene:

# firewall-cmd --get-default-zone

Keďže sme práve nainštalovali firewall a ešte sme ho nenakonfigurovali, máme predvolenú zónu verejnosti.

Skontrolujeme aktívnu zónu. Existuje aj jeden - verejný:

# firewall-cmd --get-active-zones

Verejné rozhrania: eth0

Ako vidíte, sieťové rozhranie eth0 je riadené zónou verejnosti.

Ak chcete zobraziť základné pravidlá, zadajte:

# firewall-cmd --list-all

Verejný (aktívny) cieľ: predvolený icmp-block-inversion: žiadne rozhrania: eth0 zdroje: služby: dhcpv6-client ssh porty: protokoly: maškaráda: žiadne forwardové porty: zdrojové porty: icmp-bloky: bohaté pravidlá:

Z výpisu môžete vidieť, že do tejto zóny boli pridané obvyklé operácie súvisiace s DHCP klientom a ssh.

Dostupné zóny

Ak chcete zobraziť zoznam všetkých zón, musíte spustiť príkaz:

# firewall-cmd --get-zones

Dostal som nasledujúci zoznam:

Blokovať dmz drop externé domáce interné verejné dôveryhodné dielo

Ak chcete skontrolovať pravidlá konkrétnej zóny, musíte pridať vlajku - zónu.

# firewall-cmd --zone=home --list-all

Domovský cieľ: predvolená icmp-block-inversion: žiadne rozhrania: zdroje: služby: dhcpv6-client mdns samba-client ssh porty: protokoly: maškaráda: žiadne forwardové porty: zdrojové-porty: icmp-bloky: bohaté pravidlá:

Pravidlá všetkých zón je možné zobraziť príkazom:

# firewall-cmd --list-all-zones

Zoznam bude pomerne veľký, pretože môže existovať veľa zón.

Zmeňte predvolenú zónu.

Štandardne sú všetky sieťové rozhrania umiestnené v zóne verejnosti, ale môžu byť prenesené do ktorejkoľvek zo zón príkazom:

# firewall-cmd --zone=home -change-interface=eth0

Po parametri --zóna= označte požadovanú zónu.

Ak chcete zmeniť predvolenú zónu, musíte použiť príkaz:

# firewall-cmd --set-default-zone=home

Pridanie pravidiel aplikácie

Ak chcete otvoriť port pre aplikáciu, môžete do výnimiek pridať službu. Zobraziť zoznam dostupných služieb:

Výstup bude obsahovať veľké množstvo služieb. Podrobné informácie o službe sú obsiahnuté v jej xml súbor. Tieto súbory sa nachádzajú v adresári /usr/lib/firewalld/services.

Napríklad:

# cd /usr/lib/firewalld/services

Mail (SMTP) Táto možnosť umožňuje doručovanie prichádzajúcej pošty SMTP. Ak potrebujete povoliť vzdialeným hostiteľom pripojiť sa priamo k vášmu zariadeniu na doručovanie pošty, povoľte túto možnosť. Nemusíte to povoliť, ak zhromažďujete poštu zo servera vášho poskytovateľa internetových služieb prostredníctvom protokolu POP3 alebo IMAP, alebo ak používate nástroj, ako je napríklad fetchmail. Upozorňujeme, že nesprávne nakonfigurovaný server SMTP môže vzdialeným počítačom umožniť používať váš server na odosielanie nevyžiadaná pošta.

Súbor XML obsahuje popis služby, protokolu a čísla portu, ktorý sa otvorí vo firewalle.

Pri pridávaní pravidiel môžete použiť parameter --add-service na otvorenie prístupu ku konkrétnej službe:

# firewall-cmd --zone=public --add-service=http

# firewall-cmd --zone=public --add-service=https

Po pridaní pravidiel môžete skontrolovať, či boli do zadanej zóny pridané služby:

# firewall-cmd --zone=public --list-services

Dhcpv6-client http https ssh

Ak chcete, aby tieto pravidlá boli trvalé, musíte pri pridávaní pridať parameter — trvalé.

Odstránenie služby zo zóny:

# firewall-cmd --permanent --zone=public --remove-service=http

Test https ssh klienta Dhcpv6

Ak chcete pridať svoju službu do výnimiek, môžete vytvoriť súbor xml sami a vyplňte ho. Môžete kopírovať údaje z ľubovoľnej služby, zmeniť názov, popis a číslo portu.

Skopírujeme súbor smtp.xml do adresára pre prácu s užívateľskými službami:

# cp /usr/lib/firewalld/services/smtp.xml /etc/firewalld/services

Zmeňte popis služby v súbore.

Samotný xml súbor je tiež potrebné premenovať podľa názvu vašej služby. Potom musíte reštartovať bránu firewall a skontrolovať, či je naša služba v zozname:

Volal som do servisu test a objavilo sa v zozname:

Syslog-tls telnet test tftp

Teraz môžete pridať vytvorenú službu do ľubovoľnej zóny:

# firewall-cmd --zone=public --add-service=test --permanent

# firewall-cmd --zone=public --permanent --list-services

Dhcpv6-client http https test ssh

Ak ste v zozname nenašli službu, ktorú potrebujete, môžete požadovaný port otvoriť na firewalle príkazom:

# firewall-cmd --zone=public -add-port=77/tcp - otvorený port 77 TCP
# firewall-cmd --zone=public -add-port=77/udp - otvorený port 77 udp
# firewall-cmd --zone=public -add-port=77-88/udp - rozsah otvorených portov 77-88 udp
# firewall-cmd --zone=public -list-ports - skontrolujte zoznam povolených portov

Blokovať/povoliť odpovede ICMP:

# firewall-cmd --zone=public --add-icmp-block=echo-reply
# firewall-cmd --zone= public --remove-icmp-block=echo-reply

Odstrániť pridaný port:

# firewall-cmd --zone=public -remove-port=77/udp - odstrániť dočasné pravidlo 77 udp

# firewall-cmd --permanent --zone=public -remove-port=77/udp - odstrániť trvalé pravidlo

Pridanie vlastných zón

Môžete si vytvoriť vlastnú zónu (nazvem to náš):

# firewall-cmd --permanent --new-zone=náš

Po vytvorení novej zóny, ako aj po vytvorení služby je potrebný reštart firewalld:

# firewall-cmd --reload

# firewall-cmd --get-zones

Blokovať dmz drop externé domáce interné naše verejné dôveryhodné dielo

Zóna náš k dispozícii. Môžete doň pridať služby alebo otvoriť konkrétne porty.

Firewall: blokovanie IP adries, vytváranie výnimiek

Do výnimiek brány firewall môžete pridať dôveryhodné adresy IP alebo blokovať nechcené.

Ak chcete pridať konkrétnu IP adresu (napríklad 8.8.8.8) na váš server cez firewalld, použite príkaz:

# firewall-cmd --zone=public --add-rich-rule="rule family="ipv4" source address="8.8.8.8" accept"

Skontrolujte oblasť a uistite sa IP pridané k výnimkám v bohatých pravidlách:

Verejný (aktívny) cieľ: predvolená icmp-block-inversion: žiadne rozhrania: eth0 zdroje: služby: dhcpv6-client http https ssh testovacie porty: protokoly: maškaráda: žiadne forwardové porty: zdrojové-porty: icmp-bloky: bohaté pravidlá: pravidlo family="ipv4" source address="8.8.8.8" prijať

Blokovať IP, treba vymeniť súhlasiť na odmietnuť:

# firewall-cmd --zone=public --add-rich-rule="rule family="ipv4" source address="8.8.4.4" odmietať"

# firewall-cmd --zone=public --list-all

Verejný (aktívny) cieľ: predvolená icmp-block-inversion: žiadne rozhrania: eth0 zdroje: služby: dhcpv6-client http https ssh testovacie porty: protokoly: maškaráda: žiadne forwardové porty: zdrojové-porty: icmp-bloky: bohaté pravidlá: pravidlo family="ipv4" source address="8.8.8.8" prijať pravidlo family="ipv4" source address="8.8.4.4" odmietnuť

Konkrétnu službu môžete povoliť iba pre požiadavky z konkrétnej adresy IP:

#firewall-cmd --permanent --add-rich-rule "rule family="ipv4" source address="10.10.1.0/24" service name="https" accept"

Ak potrebujete súrne zablokovať všetky požiadavky na server, použite príkaz panika:

# firewall-cmd --panic-on

Panický režim môžete vypnúť buď príkazom:

# firewall-cmd --panic-off

Alebo reštartovaním servera.

Môžete zablokovať konfiguráciu brány firewall tak, aby lokálne služby s root práva nepodarilo sa zmeniť pravidlá brány firewall, ktoré ste vytvorili:

# firewall-cmd --lockdown-on

Zakázať režim blokovania:

# firewall-cmd --lockdown-off

Presmerovanie portov vo firewalle

Vo firewalle môžete vytvoriť pravidlo presmerovania portov. Preposlanie portu 443 na 9090:

# firewall-cmd --zone=public --add-forward-port=port=443:proto=tcp:toport=9090 --permanent

Ak chcete odstrániť pravidlo presmerovania portov:

# firewall-cmd --zone=public --remove-forward-port=port=443:proto=tcp:toport=9090

FirewallD je nástroj na správu brány firewall, ktorý je štandardne k dispozícii na serveroch CentOS 7. Ide v podstate o obal okolo IPTables a dodáva sa s grafickým konfiguračným nástrojom firewall-config a nástrojom príkazového riadka, firewall-cmd. So službou IPtables si každá zmena vyžaduje vymazanie starých pravidiel a vytvorenie nových pravidiel v súbore ` /etc/sysconfig/iptables` a pri firewalld sa použijú iba rozdiely.

FirewallD zóny

FirewallD používa služby a zóny namiesto pravidiel a reťazcov v Iptables. V predvolenom nastavení sú k dispozícii nasledujúce zóny:

  • pokles– Zahodiť všetky prichádzajúce sieťové pakety bez odpovede, iba tie odchádzajúce sieťové pripojenia k dispozícii.
  • blokovať– Odmietnuť všetky prichádzajúce sieťové pakety so správou icmp-host-prohibited, povolené sú iba odchádzajúce sieťové pripojenia.
  • verejnosti– akceptované sú iba vybrané prichádzajúce spojenia na použitie vo verejných priestoroch
  • externé– Pre externé siete s maskovaním sú akceptované iba vybrané prichádzajúce spojenia.
  • dmz– demilitarizovaná zóna DMZ, verejne prístupná s obmedzeným prístupom do vnútornej siete, akceptované sú len vybrané prichádzajúce spojenia.
  • práca
  • Domov– Pre počítače v domácej zóne sú akceptované iba vybrané prichádzajúce pripojenia.
  • interné– Pre počítače vo vašej internej sieti sú akceptované iba vybrané prichádzajúce pripojenia.
  • dôveryhodný– Všetky sieťové pripojenia sú akceptované.

Ak chcete získať zoznam všetkých dostupných zón:

# firewall-cmd --get-zones work drop interný externý dôveryhodný domáci dmz verejný blok

Ak chcete zobraziť zoznam predvolených zón:

# firewall-cmd --get-default-zone public

Ak chcete zmeniť predvolenú zónu:

Služby brány firewall

Služby FirewallD sú konfiguračné súbory XML obsahujúce informácie o položke služby pre firewalld. Ak chcete získať zoznam všetkých dostupných služieb:

# firewall-cmd --get-services amanda-client amanda-k5-client bacula bacula-client ceph ceph-mon dhcp dhcpv6 dhcpv6-client dns docker-registry dropbox-lansync freeipa-ldap freeipa-ldapsftp freeipa-replication http https imap imaps ipp ipp-client ipsec iscsi-target kadmin kerberos kpasswd ldap ldaps libvirt libvirt-tls mdns mosh mountd ms-wbt mysql nfs ntp openvpn proxy pmcd pmproxy pmwebapi pulseq post popgress puppetmaster rádius rpc-bind rsyncd samba samba-client sane smtp smtps snmp snmptrap squid ssh synergy syslog syslog-tls telnet tftp tftp-client tinc tor-socks prenos-klient vdsm vnc-server wbem-https xmpp-bosh xmpp-server xmpp

Konfigurácia XML súbory uložené v adresároch /usr/lib/firewalld/services/ A /etc/firewalld/services/.

Nastavenie brány firewall pomocou brány FirewallD

Ako príklad uvádzame, ako môžete nakonfigurovať bránu firewall pomocou brány FirewallD, ak máte spustený webový server, SSH na porte 7022 a poštový server.

Najprv nastavíme predvolenú zónu pre DMZ.

# firewall-cmd --set-default-zone=dmz # firewall-cmd --get-default-zone dmz

Ak chcete pridať trvalé pravidlá služby pre HTTP a HTTPS do DMZ, spustite nasledujúci príkaz:

# firewall-cmd --zone=dmz --add-service=http --permanent # firewall-cmd --zone=dmz --add-service=https --permanent

Otvorte port 25 (SMTP) a port 465 (SMTPS):

Firewall-cmd --zone=dmz --add-service=smtp --permanent firewall-cmd --zone=dmz --add-service=smtps --permanent

Otvorené, IMAP, IMAPS, POP3 a POP3S porty:

Firewall-cmd --zone=dmz --add-service=imap --trvalý firewall-cmd --zone=dmz --add-service=imaps --trvalý firewall-cmd --zone=dmz --add-service= pop3 --permanent firewall-cmd --zone=dmz --add-service=pop3s --permanent

Keďže port SSH sa zmenil na 7022, odstránime službu SSH (port 22) a otvoríme port 7022

Firewall-cmd --remove-service=ssh --permanent firewall-cmd --add-port=7022/tcp --permanent

Na implementáciu zmien musíme reštartovať firewall:

Firewall-cmd --reload

Nakoniec môžete uviesť pravidlá.

Ukážeme vám to nastavenie krok za krokom Firewall firewall v CentOS 7

Čo je Firewalld? Ide o plnohodnotný firewall, ktorý je štandardne dostupný v CentOS 7. Ukážeme vám, ako ho nakonfigurovať na serveri a predstavíme aj nástroj firewall-cmd.

1. Aké sú základné pojmy brány firewall?

Zóny

Firewalld dokáže spravovať skupiny pravidiel cez zóny. Ide o súbor inštrukcií na riadenie prevádzky na základe dôvery v siete. Zóna môže byť priradená k sieťovému rozhraniu na riadenie správania firewallu. Môže to byť potrebné, pretože prenosné počítače sa často môžu pripojiť k rôznym sieťam. Počítače môžu použiť zóny na zmenu svojej sady pravidiel v závislosti od prostredia. Ak sa napríklad pripájate k sieti Wi-Fi v kaviarni, možno budete musieť uplatniť prísnejšie pravidlá. Ale doma môžu byť pravidlá lojálnejšie.

Firewall má nasledujúce zóny:

Drop má najnižší stupeň dôveryhodnosti v sieti. V tomto prípade sú podporované iba odchádzajúce pripojenia a prichádzajúca prevádzka je zrušená bez odozvy;

Block sa líši od dropu v tom, že keď sa zruší prichádzajúca požiadavka, vydá sa správa icmp-host-prohibited alebo icmp6-adm-prohibited;

Verejná zóna je verejná sieť, ktorá podporuje prichádzajúce požiadavky na individuálnej báze. Nedá sa jej však dôverovať;

Externá je vonkajšia sieťová zóna, ktorá podporuje maskovanie NAT, aby bola interná sieť súkromná. Dá sa však k nemu dostať;

Odvrátená strana vonkajšej strany je vnútorná. Počítačom v tejto zóne možno dôverovať, takže budú k dispozícii ďalšie služby;

Zóna dmz je žiadaná pre izolované počítače, ktoré nemajú prístup k zvyšku siete. V tomto prípade budete môcť nakonfigurovať vybrané prichádzajúce pripojenia;

Pracovná sieťová zóna je práca. V ňom môžete dôverovať prostrediu, ale nie sú podporované všetky prichádzajúce pripojenia, ale iba tie, ktoré definuje používateľ;

V dôveryhodnej zóne môžete dôverovať všetkým počítačom v sieti.

Pravidlá ukladania

Vo Firewallde sú dočasné alebo trvalé. Stáva sa, že sa v sade zmení alebo objaví pravidlo, ktoré ovplyvňuje správanie firewallu. Zmeny sa po reštarte stratia, takže ich musíte uložiť. Príkazy firewall-cmd používajú na zachovanie pravidiel príznak -permanent. Potom ich budete môcť používať priebežne.

2. Ako povoliť bránu firewall?

Mali by ste začať spustením démonického programu na pozadí. Súbor systemd unit sa nazýva firewalld.service. ak chcete povoliť démonický program, ktorý potrebujete príkazový riadok vytočiť:

Sudo systemctl spustí firewalld.service

Musíme sa uistiť, že služba bola spustená. Na to budete potrebovať:

Firewall-cmd -- spustený stav

Firewall sa spustil a funguje podľa predvolených pokynov. Majte na pamäti, že služba je povolená, ale nespustí sa automaticky so serverom. Ak to chcete urobiť, musíte nakonfigurovať automatické spustenie. Okrem toho si vytvorte súbor pravidiel, aby ste neboli zablokovaní na svojom vlastnom serveri.

3. Predvolené pravidlá brány firewall

Ako ich môžem zobraziť?

Ak chcete zobraziť predvolenú zónu, zadajte:

Firewall-cmd --get-default-zone public

Vidíme, že Firewalld nedostal pokyny týkajúce sa iných zón. Verejné sa štandardne používa a je jedinou aktívnou zónou, pretože žiadne rozhranie nebolo viazané na ostatné. Ak chcete zobraziť zoznam všetkých dostupných doménových zón, zadajte do konzoly:

Firewall-cmd --get-active-zones verejné rozhrania: eth0 eth1

Vidíme dve sieťové rozhrania viazané na verejnú zónu. Pracujú podľa pravidiel určených pre túto zónu. Predvolené pravidlá si môžete pozrieť takto:

Firewall-cmd --list-all verejné (predvolené, aktívne) rozhrania: eth0 eth1 zdroje: služby: dhcpv6-client ssh porty: maskovanie: žiadne forwardové porty: icmp-bloky: bohaté pravidlá:

Poďme si to zhrnúť:

Predvolená a jediná aktívna zóna je verejná;

Tejto zóne sú priradené dve rozhrania: eth0 a eth1;

Verejné podporuje vzdialenú správu SSH, ako aj prideľovanie IP adries DHSP.

Ďalšie zóny brány firewall

Pozrime sa, aké ďalšie zóny má firewall. Ak chcete zobraziť zoznam všetkých dostupných, zadajte do konzoly:

Parametre pre každú konkrétnu zónu môžete získať aj pridaním príznaku -zone=:

Firewall-cmd --zone=home --list-all home interfaces: sources: services: dhcpv6-client ipp-client mdns samba-client ssh ports: masquerade: no forward-ports: icmp-blocks: bohaté pravidlá:

Ak potrebujete vypísať definície všetkých dostupných zón, použite možnosť --list-all-zones. Pošlime výstup na pager, aby sme uľahčili zobrazenie výstupu:

Firewall-cmd --list-all-zones | menej

4. Ako nakonfigurovať zóny rozhrania?

Všetky sieťové rozhrania sú spočiatku viazané na predvolenú zónu.

Zmena zóny rozhrania iba pre jednu reláciu

Na tento účel budeme potrebovať dve možnosti: --change-interface= a --zone=. Ak chcete prejsť do domácej zóny eth0, vytočte:

Sudo firewall-cmd --zone=home --change-interface=eth0 úspech

Upozorňujeme, že to môže ovplyvniť funkčnosť určitých služieb. Napríklad SSH je podporované v domácej zóne, t.j. pripojenia nebudú resetované. To sa však môže stať v iných zónach, čo povedie k zablokovaniu prístupu na váš vlastný server. Musíme sa uistiť, že rozhranie je naviazané na novú zónu. Napíšte do príkazového riadku:

Keď sa firewall reštartuje, rozhranie sa znova naviaže na predvolenú zónu.

Sudo systemctl reštart firewalld.service firewall-cmd --get-active-zones verejné rozhrania: eth0 eth1

Trvalá zmena zóny rozhrania

Po reštarte brány firewall sa rozhranie znova priradí k predvolenej zóne, ak v nastaveniach rozhrania nie je špecifikovaná žiadna iná zóna. Konfigurácie v CentOS sa nachádzajú v súboroch formátu ifcfg-interface v adresári /etc/sysconfig/network-scripts. Ak chcete definovať zónu rozhrania, musíte otvoriť jej konfiguračný súbor:

Sudo nano /etc/sysconfig/network-scripts/ifcfg-eth0

Na koniec súboru pridáme premennú ZONE=. Nastavme inú zónu ako hodnotu:

DNS1=2001:4860:4860::8844 DNS2=2001:4860:4860::8888 DNS3=8.8.8.8 ZONE=home

Teraz uložíme zmeny, po ktorých je možné súbor zatvoriť. Ak chcete aktualizovať nastavenia, budete musieť reštartovať sieťovú službu, ako aj bránu firewall:

Sudo systemctl reštart network.service sudo systemctl reštart firewalld.service

Potom bude rozhranie eth0 priradené k domácej zóne.

Firewall-cmd --get-active-zones domáce rozhrania: eth0 verejné rozhrania: eth1

Nastavenie predvolených zón

Je možné nastaviť aj inú predvolenú zónu. Pomôže nám s tým voľba --set-default-zone=, ktorá viaže všetky sieťové rozhrania na inú zónu.

Sudo firewall-cmd --set-default-zone=rozhrania domácej domácnosti: eth0 eth1

5. Ako vytvoriť pravidlá pre aplikácie?

Pridanie do oblasti pokrytia

Najjednoduchšie je to urobiť na porte používanom bránou firewall. Ak chcete zobraziť všetky dostupné služby, zadajte do príkazového riadka:

Firewall-cmd --get-services RH-Satellite-6 amanda-client bacula bacula-client dhcp dhcpv6 dhcpv6-client dns ftp vysoká dostupnosť http https imaps ipp ipp-klient ipsec kerberos kpasswd libmdnstd ldaps wbt mysql nfs ntp openvpn pmcd pmproxy pmwebapi pmwebapis pop3s postgresql proxy-dhcp polomer rpc-bind samba samba-client smtp ssh telnet tftp tftp-client prenos-klient vnc-server wbem-https

Pamätajte, že súbory .xml v adresári /usr/lib/firewalld/services ukladajú všetky informácie o každej službe. Informácie o SSH nájdete v /usr/lib/firewalld/services/ssh.xml. Vyzerajú takto:

Ak chcete povoliť podporu pre služby v zónach, potrebujete príznak -add-service=, ale voľba -zone je užitočná na určenie cieľovej zóny. Pamätajte, že takéto zmeny budú platné iba pre jednu reláciu. Ak potrebujete uložiť zmeny pre neskoršie použitie, použite príznak -permanent. Pozrime sa, ako to funguje. Spustíme webový server, aby mohol obsluhovať HTTP prevádzku. Povoľme podporu pre jednu reláciu vo verejnej zóne. Zadajte do konzoly:

Sudo firewall-cmd --zone=public --add-service=http

Ak pridávate službu do predvolenej zóny, nepoužívajte voľbu -zone=. Skontrolujeme, či všetko fungovalo:

Firewall-cmd --zone=public --list-services dhcpv6-client http ssh

Teraz musíme otestovať firewall a samotnú službu. Ak vidíte, že je všetko v poriadku, môžete pokojne zmeniť stály súbor pravidiel. Ak chcete pridať pravidlo podpory pre novú službu, musíte v konzole zadať:

Sudo firewall-cmd --zone=public --permanent --add-service=http

Ak potrebujete zobraziť celý zoznam pravidiel, ktoré sú v platnosti priebežne, potom:

Sudo firewall-cmd --zone=public --permanent --list-services dhcpv6-client http ssh

Výsledkom je, že verejná zóna bude podporovať port 80 a HTTP. Ak je váš server schopný obsluhovať prenos SSL/TLS, môžete pridať službu HTTPS:

Sudo firewall-cmd --zone=public --add-service=https sudo firewall-cmd --zone=public --permanent --add-service=https

6. Čo ak je služba nedostupná?

Firewalld štandardne obsahuje mnoho populárnych služieb. Stáva sa však, že programy potrebujú ďalšie služby, ktoré nie sú súčasťou brány firewall. Tento problém možno vyriešiť niekoľkými spôsobmi.

Metóda č. 1: Definovanie služby

Pridanie portu do zóny je pomerne jednoduché. Ak však existuje pomerne veľa aplikácií, bude ťažké pochopiť, ktorý port čo používa. V takejto situácii dobré riešenie namiesto portov bude definícia služieb. Služba je v podstate skupina portov, ktoré dostali názov a popis. S ich pomocou bude správa nastavení jednoduchšia. Služba je však o niečo komplikovanejšia ako prístav.

Začnime skopírovaním existujúceho skriptu z priečinka /usr/lib/firewalld/services, z ktorého firewall preberá neštandardné nastavenia v /etc/firewalld/services. Skopírujme definíciu služby SSH, aby sme ju použili ako príklad definície podmienenej služby. Nezabudnite, že názov skriptu sa musí zhodovať s názvom služby a tiež musí mať príponu súboru .xml. Zadajte do konzoly:

Sudo cp /usr/lib/firewalld/services/service.xml /etc/firewalld/services/example.xml

Teraz musíte vykonať zmeny v kompilovanom súbore:

Sudo nano /etc/firewalld/services/example.xml

Vnútri je definícia SSH:

SSH Secure Shell (SSH) je protokol na prihlasovanie a vykonávanie príkazov na vzdialených počítačoch. Poskytuje bezpečnú šifrovanú komunikáciu. Ak plánujete vzdialený prístup k vášmu počítaču cez SSH cez firewallované rozhranie, povoľte túto možnosť. Aby bola táto možnosť užitočná, musíte mať nainštalovaný balík openssh-server.

Teraz uložíme zmeny a zatvoríme súbor. Potom budete musieť reštartovať bránu firewall pomocou:

Sudo firewall-cmd --reload

Naša sa zobrazí v zozname dostupných služieb:

Firewall-cmd --get-services RH-Satellite-6 amanda-client bacula bacula-client dhcp dhcpv6 dhcpv6-client dns príklad ftp s vysokou dostupnosťou http https imaps ipp ipp-client ipsec kerberos kpasswd msdns-mount lda -wbt mysql nfs ntp openvpn pmcd pmproxy pmwebapi pmwebapis pop3s postgresql proxy-dhcp polomer rpc-bind samba samba-client smtp ssh telnet tftp tftp-client prenos-klient vnc-server wbem-https

Metóda č. 2: Vytvorenie portu

Otvorme port aplikácie v požadovanej zóne brány firewall a určme ho, ako aj protokol. Predstavme si situáciu, že do verejnej zóny potrebujete pridať program využívajúci protokol TCP a port 5000. Na aktiváciu podpory aplikácií pre jednu reláciu budete potrebovať voľbu -add-port=. Okrem toho musíte uviesť tcp protokol alebo udp:

Sudo firewall-cmd --zone=public --add-port=5000/tcp

Uistite sa, že všetko funguje:

Firewall-cmd --zoznam-portov 5000/tcp

Okrem toho je možné určiť rozsah portov pomocou pomlčky. Napríklad, ak program používa porty 4990-4999, potom ich môžete pridať do verejnej zóny takto:

Sudo firewall-cmd --zone=public --add-port=4990-4999/udp

Ak všetko funguje správne, pridajte pokyny do nastavení brány firewall:

Sudo firewall-cmd --zone=public --permanent --add-port=5000/tcp sudo firewall-cmd --zone=public --permanent --add-port=4990-4999/udp sudo firewall-cmd -- zone=public --permanent --list-ports success success 4990-4999/udp 5000/tcp

7. Ako vytvoriť zónu?

Firewall je schopný poskytnúť rôzne preddefinované zóny, ktoré zvyčajne stačia na prácu, ale niekedy je potrebné vytvoriť si vlastnú zónu. Napríklad server DNS potrebuje súkromnú zónu DNS a webový server potrebuje zónu publicweb. Po vytvorení zóny ju musíte pridať do nastavení brány firewall. Vytvorme zóny publicweb a privateDNS zadaním do konzoly:

Sudo firewall-cmd --permanent --new-zone=publicweb sudo firewall-cmd --permanent --new-zone=privateDNS

Skontrolujeme, či všetko fungovalo:

Sudo firewall-cmd --permanent --get-zones block dmz drop externá domáca interná privateDNS public publicweb dôveryhodná práca

Firewall-cmd --get-zones block dmz drop externá domáca interná verejná dôveryhodná práca

V aktuálnej relácii však nebudú dostupné nové zóny:

Firewall-cmd --get-zones block dmz drop externá domáca interná verejná dôveryhodná práca

Reštartujme firewall, aby sme získali prístup k novým zónam:

Sudo firewall-cmd --reload firewall-cmd --get-zones block dmz drop externá domáca interná privateDNS public publicweb dôveryhodná práca

Teraz bude možné pre nové zóny definovať porty a služby. Povedzme, že je potrebné pridať SSH, HTTP a HTTPS do zóny publicweb:

Sudo firewall-cmd --zone=publicweb --add-service=ssh sudo firewall-cmd --zone=publicweb --add-service=http sudo firewall-cmd --zone=publicweb --add-service=https firewall- cmd --zone=publicweb --list-all publicweb interfaces: sources: services: http https ssh ports: masquerade: no forward-ports: icmp-blocks: rich rules:

Okrem toho môžete pridať DNS do zóny privateDNS pomocou:

Sudo firewall-cmd --zone=privateDNS --add-service=dns firewall-cmd --zone=privateDNS --zoznam-všetky privateDNS rozhrania: zdroje: služby: dns porty: maškaráda: žiadne dopredné-porty: icmp-bloky: bohaté pravidlá:

Potom môžete bezpečne priradiť sieťové rozhrania novým zónam:

Sudo firewall-cmd --zone=publicweb --change-interface=eth0 sudo firewall-cmd --zone=privateDNS --change-interface=eth1

Skontrolujte, či nastavenia fungujú. Ak je všetko v poriadku, pridajte ich k trvalým pravidlám:

Sudo firewall-cmd --zone=publicweb --permanent --add-service=ssh sudo firewall-cmd --zone=publicweb --permanent --add-service=http sudo firewall-cmd --zone=publicweb --permanent --add-service=https sudo firewall-cmd --zone=privateDNS --permanent --add-service=dns

Teraz prejdime k nastaveniu sieťových rozhraní. Toto je potrebné na vykonanie automatické pripojenie do požadovanej zóny. Povedzme, že sa potrebujete viazať na publicweb eth0, potom:

Sudo nano /etc/sysconfig/network-scripts/ifcfg-eth0 . . . IPV6_AUTOCONF=no DNS1=2001:4860:4860::8844 DNS2=2001:4860:4860::8888 DNS3=8.8.8.8 ZONE=publicweb

Poďme tiež naviazať eht1 na privateDNS pomocou:

Sudo nano /etc/sysconfig/network-scripts/ifcfg-eth1 . . . NETMASK=255.255.0.0 DEFROUTE="nie" NM_CONTROLLED="áno" ZONE=privateDNS

Aby sa zmeny prejavili, budete musieť reštartovať bránu firewall a sieťové služby:

Sudo systemctl reštart siete sudo systemctl reštart firewalld

Musíte skontrolovať zóny, aby ste sa uistili, že služby sú registrované:

Firewall-cmd --get-active-zones privateDNS rozhrania: eth1 verejné webové rozhrania: eth0

Teraz musíme skontrolovať, či fungujú:

Firewall-cmd --zone=publicweb --list-services http htpps ssh firewall-cmd --zone=privateDNS --list-services dns

Ako vidíme, užívateľské zóny sú úplne pripravené na prácu. Ktorýkoľvek z nich môže byť priradený ako predvolený. Napríklad:

Sudo firewall-cmd --set-default-zone=publicweb

8. Ako môžem nastaviť automatické spustenie brány firewall?

Po skontrolovaní pravidiel a všetkých nastavení nakonfigurujeme automatické spúšťanie pomocou:

Sudo systemctl povoliť firewalld

To umožní zapnúť firewall ihneď po spustení servera.

Na záver stojí za zmienku, že firewall Firewalld je pomerne flexibilný nástroj z hľadiska nastavení. A politiku jej fungovania môžete zmeniť pomocou zón.

Prvým krokom k ochrane servera pred vonkajšími hrozbami je firewall, ktorý filtruje prichádzajúcu a odchádzajúce prenosy. V tomto článku chcem diskutovať o nastavení iptables, špeciálnom prípade brány firewall na CentOS, a tiež o jej inštalácii a deaktivácii. Môj návod nebude vyčerpávajúci, zohľadním len tie aspekty, ktoré považujem za najdôležitejšie a ktoré sám používam vo svojej práci.

Tento článok je súčasťou jednej série článkov o serveri.

Úvod

Iptables je v súčasnosti de facto štandardom medzi modernými distribúciami Linuxu. Hneď si ani nepamätám, čo sa ešte používa ako firewall. Takže každý administrátor Linuxu sa musí pri svojej práci zaoberať nastavením tohto firewallu.

Existujú rôzne pripojenia k tomuto firewallu, ktoré sa používajú na „pohodlnejšiu“ konfiguráciu. Ubuntu má ufw, v centoch - firewalld, ostatných nepoznám. Osobne nevidím žiadne pohodlie pri používaní týchto nástrojov. Ako som sa naučil na úplnom začiatku svojej práce, som zvyknutý nastaviť linuxový firewall po starom. Myslím, že toto je najjednoduchší a najpohodlnejší spôsob, o ktorý sa s vami podelím. Jeho podstata spočíva v tom, že skript je vytvorený s pravidlami brány firewall. Tento skript je možné ľahko upraviť podľa vašich potrieb a preniesť zo servera na server.

Vypnutie brány firewall

Problematike vypnutia firewallu som sa už dotkol v téme na . Najprv zakážme firewalld, ktorý je štandardne prítomný v Centos 7 ihneď po inštalácii:

# systemctl stop firewalld

Teraz ho odstránime zo spustenia, aby sa po reštarte znova nezapol:

# systemctl zakázať firewall

Potom sa nastavenia brány firewall na serveri úplne otvoria. Pravidlá iptables môžete zobraziť príkazom:

Inštalácia iptables

V skutočnosti už máme na našom serveri firewall a funguje to, jednoducho neexistujú žiadne pravidlá, všetko je otvorené. Budeme musieť nainštalovať ďalšie nástroje na správu, bez ktorých nie je možné nakonfigurovať iptables. Napríklad nebude možné reštartovať bránu firewall:

# systemctl reštart iptables.service Nepodarilo sa spustiť volanie metódy: Nepodarilo sa načítať jednotku iptables.service: Žiadny takýto súbor alebo adresár.

Alebo ho nebudete môcť pridať do automatického spustenia:

# systemctl enable iptables.service Nepodarilo sa spustiť volanie metódy: Žiadny takýto súbor alebo adresár

Aby ste predišli takýmto chybám, nainštalujte potrebný balík s nástrojmi:

# yum -y nainštalujte iptables-services

Teraz môžete pridať iptables do spustenia a spustiť:

# systemctl povoliť iptables.service # systemctl spustiť iptables.service

Nastavenie brány firewall

Na správu pravidiel brány firewall používam skript. Poďme si ho vytvoriť:

# mcedit /etc/iptables.sh

Ďalej ho naplníme potrebnými pravidlami. Budem analyzovať všetky dôležité časti scenára a Poskytnem ho v plnom znení ako textový súbor na konci článku. Pravidlá sú vytvorené vo forme obrázkov, ktoré zakazujú kopírovanie a vkladanie. To môže viesť k chybám vo fungovaní pravidiel, s ktorými som sa sám stretol pri príprave článku.

Budeme uvažovať o situácii, keď je server bránou do internetu pre lokálnu sieť.

V prvom rade si nastavme všetky premenné, ktoré budeme v skripte používať. Nie je to potrebné, ale odporúča sa to, pretože je vhodné prenášať nastavenia zo servera na server. Bude stačiť jednoducho premenné priradiť.

Pred aplikáciou nových pravidiel vyčistíme všetky reťazce:

Blokujeme všetku premávku, ktorá nezodpovedá žiadnemu z pravidiel:

Povoliť všetok localhost a lokálny prenos:

Povoľujeme ping:

Ak to nepotrebujete, nepridávajte pravidlá povolenia pre icmp.

Otvárame internetový prístup k samotnému serveru:

Ak chcete otvoriť všetky prichádzajúce pripojenia k serveru, pridajte nasledujúce pravidlo:

Teraz pridajme ochranu proti najbežnejším sieťovým útokom. Najprv zahoďme všetky pakety, ktoré nemajú žiadny stav:

Blokovanie nulových paketov:

Chráňte sa pred útokmi syn-flood:

Ak nenastavíte obmedzenia prístupu z lokálnej siete, umožníme každému prístup na internet:

Ďalej zakážeme prístup z internetu do lokálnej siete:

Aby naša lokálna sieť mohla používať internet, povoľujeme nat:

Aby sme nestratili prístup k serveru, po aplikovaní pravidiel povoľujeme pripojenia cez ssh:

A na konci si zapíšeme pravidlá, aby platili po reštarte:

Zostavili sme jednoduchú konfiguráciu, ktorá blokuje všetky prichádzajúce pripojenia okrem ssh a umožňuje prístup z lokálnej siete na internet. Zároveň sme sa chránili pred niektorými sieťovými útokmi.

Uložte skript, urobte ho spustiteľným a spustite:

# chmod 0740 /etc/iptables.sh # /etc/iptables.sh

Pozrime sa na pravidlá a skontrolujte, či sú všetky pravidlá na mieste:

# iptables -L -v -n

Upozorňujeme, že pravidlá musíte použiť iba vtedy, ak máte prístup ku konzole servera. Ak je v nastaveniach chyba, môžete stratiť prístup. Uistite sa, že v prípade núdze môžete vypnúť bránu firewall a upraviť nastavenia.

Otváranie portov

Teraz trochu rozšírime našu konfiguráciu a otvoríme porty v iptables pre niektoré služby. Povedzme, že máme spustený webový server a potrebujeme k nemu otvoriť prístup z internetu. Pridajte pravidlá pre webovú návštevnosť:

Pribudlo povolenie pre prichádzajúce spojenia na portoch 80 a 443, ktoré webový server pri svojej práci využíva.

Ak máte nainštalovaný poštový server, musíte k nemu povoliť prichádzajúce pripojenia na všetkých používaných portoch:

Aby server DNS správne fungoval, musíte otvoriť port UDP 53

Preposielanie portov

Zoberme si situáciu, keď je potrebné presmerovať porty z externého rozhrania na niektorý počítač v lokálnej sieti. Povedzme, že potrebujete získať rdp prístup k počítaču 10.1.3.50 z internetu. Preposielame TCP port 3389:

Ak nechcete odhaliť známy port zvonku, môžete presmerovať z neštandardného portu na port rdp cieľového počítača:

Ak posielate port zvonku do lokálnej siete, nezabudnite zakomentovať pravidlo, ktoré blokuje prístup z externej siete do internej siete. V mojom príklade je toto pravidlo: $IPT -A FORWARD -i $WAN -o $LAN1 -j REJECT

Alebo pred týmto pravidlom vytvorte povoľovacie pravidlo pre externý prístup k internej službe, napríklad takto:

$IPT -A FORWARD -i $WAN -d 10.1.3.50 -p tcp -m tcp --dport 3389 -j PRIJAŤ

Povolenie denníkov

Počas nastavovania je užitočné povoliť protokoly na sledovanie zablokovaných balíkov a zisťovanie, prečo nie je prístup k potrebným službám, ktoré už zrejme máme otvorené. Všetky zablokované pakety posielam do samostatných reťazcov (block_in, block_out, block_fw) zodpovedajúcich smeru prevádzky a každý smer označím v protokoloch. Vďaka tomu je pohodlnejšie vykonávať debrífing. Pred uložením nastavení pridajte na úplný koniec skriptu nasledujúce pravidlá:

Všetky zablokované balíky môžete sledovať v súbore /var/log/messages.

Po dokončení nastavenia zakomentujte tieto riadky a vypnite protokolovanie. Určite to stojí za to urobiť, pretože polená rastú veľmi rýchlo. Osobne nevidím žiadny praktický zmysel v uchovávaní takýchto informácií.

Ako zakázať iptables

Ak sa náhle rozhodnete, že firewall už nepotrebujete, môžete ho vypnúť takto:

# systemctl stop iptables.service

Tento príkaz zastaví bránu firewall. A nasledujúce ho odstráni zo spustenia:

# systemctl zakázať iptables.service

Vypnutím brány firewall sme povolili všetky pripojenia.

Záver

Ako som sľúbil, zverejňujem hotový skript so základným súborom pravidiel, ktoré sme zvážili

Ešte raz podotýkam, že pri nastavovaní iptables treba byť maximálne opatrný. Nezačínajte túto firmu, ak nemáte prístup ku konzole servera. Dokonca aj počas písania tohto článku som stratil prístup na server kvôli smiešnej chybe v pravidlách. Táto chyba vznikla kopírovaním a stratou dvojitej pomlčky - bola nahradená jedinou.

online kurz “Linux Administrator” na OTUS. Kurz nie je pre začiatočníkov, na prihlásenie sú potrebné základné znalosti sietí a inštalácie Linuxu na virtuálny stroj. Školenie trvá 5 mesiacov, po ktorých budú môcť úspešní absolventi kurzu absolvovať pohovory s partnermi. Čo vám tento kurz dá:

  • Znalosť architektúry Linuxu.
  • Ovládanie moderných metód a nástrojov na analýzu a spracovanie dát.
  • Možnosť výberu konfigurácie pre požadované úlohy, riadenie procesov a zaistenie bezpečnosti systému.
  • Ovláda základné pracovné nástroje správcu systému.
  • Pochopenie špecifík nasadzovania, konfigurácie a údržby sietí postavených na Linuxe.
  • Schopnosť rýchlo riešiť vznikajúce problémy a zabezpečiť stabilnú a neprerušovanú prevádzku systému.
Otestujte sa na vstupnom teste a pozrite si program, kde nájdete ďalšie podrobnosti.

Dnes vám predstavím moju víziu počiatočnej konfigurácie univerzálneho servera na populárnom OS. Budem hovoriť o tom, ako vykonať základné nastavenie servera centos ihneď po inštalácii, aby ste ho mohli používať v ľubovoľnej kapacite podľa vlastného uváženia. Uvedené praktické rady zvyšujú bezpečnosť a pohodlie pri práci so serverom. Článok bude relevantný pre dve najnovšie vydania Centos – 7 a 8.

  1. Uveďte počiatočné nastavenia centos, ktoré vykonávam na čerstvo nainštalovanom serveri.
  2. Ukážte príklady konfigurácií, ktoré používam v typickom nastavení.
  3. Poraďte s nastavením centosu na základe vašich skúseností so systémom.
  4. Poskytnite zoznam typických programov a pomôcok, ktoré pomáhajú spravovať server.

Tento článok je súčasťou jednej série článkov o serveri.

Úvod

Po vydaní nového vydania Centos 8 bolo ťažké opísať ho v jedinom článku pôvodné nastavenie oba servery, ale nechcel som článok rozdeliť, pretože má veľa prichádzajúcich odkazov z rôznych miest. Je pohodlnejšie udržiavať všeobecný materiál na oboch vydaniach, čo urobím ja. Zároveň budú jasne viditeľné rozdiely medzi týmito dvoma verziami, niekoľko rokov po vydaní centos 8 budú obe relevantné a budete musieť použiť obe verzie, v závislosti od situácie.

Centos 7 používa správcu balíkov mňam a v Centos 8 - dnf. Zároveň ponechali symbolický odkaz z yum na dnf, takže môžete napísať krstné meno aj druhé. Kvôli konzistencii použijem yum v celom texte, ale varujem vás, len aby ste pochopili, prečo to robím takto. V skutočnosti CentOS 8 používa dnf, toto je ďalší, modernejší správca balíkov, ktorý vám umožňuje pracovať s rôzne verzie rovnaký softvér. Na tento účel sa používajú samostatné úložiská, ktoré sa objavili pre centos 8.

Počiatočné nastavenie CentOS

Osobne spustím akékoľvek nastavenie systému, či už centos alebo iné, po inštalácii úplnou aktualizáciou systému. Ak bol inštalačný obraz čerstvý alebo inštalácia bola vykonaná cez sieť, s najväčšou pravdepodobnosťou nebudú žiadne aktualizácie. Najčastejšie existujú, pretože inštalačné obrazy nie sú vždy pravidelne aktualizované.

Aktualizácia systému

#yum aktualizácia

Pre uľahčenie správy vždy inštalujem Midnight Commander, alebo len mc:

# yum install mc

A hneď na to zapnem zvýrazňovanie syntaxe pre všetky súbory, ktoré nie sú v súbore explicitne označené /usr/share/mc/syntax/Syntax syntax pre sh a bash skripty. Táto univerzálna syntax je vhodná pre konfiguračné súbory, s ktorými musíte na serveri najčastejšie pracovať. Prepisovanie súboru neznámy.syntax. Toto je vzor, ​​ktorý sa použije na súbory .conf a .cf, pretože k nim nie je pripojená žiadna explicitná syntax.

# cp /usr/share/mc/syntax/sh.syntax /usr/share/mc/syntax/unknown.syntax

Nabudúce prídu vhod sieťové nástroje. V závislosti od sady počiatočných balíkov, ktoré vyberiete pri inštalácii systému, budete mať jednu alebo druhú sadu sieťových nástrojov. Tu je zoznam tých, na ktoré som ja osobne zvyknutý - ifconfig, netstat, nslookup a niektoré ďalšie. Ak to potrebujete, rovnako ako ja, navrhujem ich nainštalovať samostatne, ak ešte nie sú nainštalované. Ak ich obzvlášť nepotrebujete a nepoužívate, môžete ich inštaláciu preskočiť. Skontrolujme, čo máme momentálne v systéme

#ifconfig

Ak vidíte odpoveď:

Bash: ifconfig: príkaz nenájdené

To znamená, že pomôcka nie je nainštalovaná. Namiesto ifconfig v CentOS je teraz utilita IP. To platí nielen pre centos. Toto je obraz takmer všetkých populárnych moderných distribúcií Linuxu. Na ifconfig som si už dlho zvykol, aj keď ho v poslednej dobe veľmi nepoužívam. Vždy sa mi páčilo, že v rôznych distribúciách Linuxu je všetko približne rovnaké. Pomocou ifconfig môžete nakonfigurovať sieť nielen v Linuxe, ale aj vo freebsd. Je to pohodlné. A keď má každá distribúcia svoj vlastný nástroj, nie je to pohodlné. Aj keď to už nie je veľmi relevantné, pretože už nepracujem s Freebsd a nástroj ip je dostupný vo všetkých distribúciách Linuxu. Ak však potrebujete ifconfig, môžete si balík nainštalovať sieťové nástroje, ktoré zahŕňa:

# yum install net-tools

Aby nslookup alebo napríklad príkazy host fungovali, musíme si balík nainštalovať bind-utils. Ak sa tak nestane, použite príkaz:

#nslookup

Výstupom bude:

Bash: nslookup: príkaz nenájdený

Takže poďme nainštalovať bind-utils:

# yum install bind-utils

Zakázať SELinux

Zakázať SELinux. Jeho použitie a konfigurácia je samostatná záležitosť. Teraz to neurobím. Poďme to teda vypnúť:

# mcedit /etc/sysconfig/selinux

zmeniť hodnotu

SELINUX=zakázané

Aby sa zmeny prejavili, môžete reštartovať:

# reštartovať

A ak chcete zakázať SELinux bez reštartu, spustite príkaz:

#setenforce 0

Neustále dostávam veľa kritiky za deaktiváciu SELinuxu. Viem, ako to funguje, viem, ako to nakonfigurovať. Naozaj to nie je veľmi zložité a nie je ťažké ho zvládnuť. Toto je moja vedomá voľba, aj keď ju niekedy upravím. Spôsob, akým so systémom pracujem, je taký, že SELinux najčastejšie nepotrebujem, takže s ním nestrácam čas a v základnom nastavení zakážem centos. Zabezpečenie systému je komplexné úsilie, najmä v modernom svete vývoj webu, kde vládnu mikroslužby a kontajnery. SELinux je špecializovaný nástroj, ktorý nie je potrebný vždy a nie všade. Preto v tomto článku nemá miesto. Tí, ktorí to potrebujú, samostatne povolia SELinux a nakonfigurujú ho.

Určenie parametrov siete

Pokračujeme základným nastavením centosu po inštalácii. Teraz to urobíme, ak sme to z nejakého dôvodu neurobili počas inštalácie, alebo ak ich potrebujete zmeniť. IN všeobecný prípad, sieť v Centos sa konfiguruje pomocou NetworkManager a on konzolový nástroj nmtui. Dodáva sa so základnou inštaláciou systému. K dispozícii je jednoduché a prehľadné grafické rozhranie, takže nie je čo povedať. Skôr som zvyknutý na nastavenie siete cez konfiguračné súbory sieťové skripty. Vo verzii centos 7 sú prítomné po vybalení, vo verzii 8 boli odstránené. Ak ich chcete použiť na konfiguráciu siete, musíte balík nainštalovať samostatne sieťové skripty.

# yum nainštalovať sieťové skripty

Teraz môžete nakonfigurovať sieť. Ak to chcete urobiť, otvorte súbor /etc/sysconfig/network-scripts/ifcfg-eth0

# mcedit /etc/sysconfig/network-scripts/ifcfg-eth0

Ak dostanete nastavenia siete cez dhcp, potom bude minimálny súbor nastavení v konfiguračnom súbore nasledovný.

TYPE="Ethernet" BOOTPROTO="dhcp" DEFROUTE="áno" IPV4_FAILURE_FATAL="nie" NAME="eth0" DEVICE="eth0" ONBOOT="áno"

Ak chcete nakonfigurovať statickú adresu IP, nastavenia budú nasledovné.

TYPE="Ethernet" BOOTPROTO="none" DEFROUTE="áno" IPV4_FAILURE_FATAL="nie" NAME="eth0" DEVICE="eth0" ONBOOT="áno" IPADDR=192.168.167.117 DNS1=192.168.167.113 GWAATEY=113 GWAATE 192.168.167.113

Do poľa IPADDR zadáme vašu adresu, do PREFIX masku siete, do GATEWAY bránu, DNS adresu dns servera. Uložte súbor a reštartujte sieť, aby ste použili nastavenia:

# systemctl reštart siete

Nastavenie brány firewall

Pridávanie úložísk

Pri nastavovaní Centos často potrebujete softvér, ktorý nie je súčasťou štandardnej repky. Ak chcete nainštalovať ďalšie balíčky, ktoré potrebujete. Najpopulárnejší je EPEL. Kedysi tu bol rpmforge, no ten je už niekoľko rokov zatvorený. Všetci naňho zabudli. Pripájame úložisko EPEL. Všetko je s ním jednoduché, pridáva sa zo štandardnej repy:

# yum install epel-release

Aj pre CentOS 7 je úložisko REMI mimoriadne užitočné, čo vám umožňuje nainštalovať novšie verzie php, na rozdiel od tých v štandardnom úložisku. Pripomínam, že ide o verziu PHP 5.4, ktorá už nie je dobrá a bola odstránená z podpory.

# rpm -Uhv http://rpms.remirepo.net/enterprise/remi-release-7.rpm

Pre Centos 8 remi zatiaľ nie je relevantné, ale myslím si, že je to dočasné. V zásade mi vo všeobecnom prípade zvyčajne stačia tieto dva úložiská v centos. Iné sú pripojené pre špecifické potreby inštalácie rôzneho softvéru.

Nastavenie ukladania histórie v bash_history

Prejdime k nastaveniu systému centos na serveri. Bude užitočné vykonať nejaké zmeny v štandardnom mechanizme ukladania histórie príkazov. Často pomôže, keď si potrebujete zapamätať niektorý z predtým zadaných príkazov. Štandardné nastavenia majú určité obmedzenia, ktoré sú nepohodlné. Tu je ich zoznam:

  1. V predvolenom nastavení sa uloží iba posledných 1 000 príkazov. Ak ich bude viac, staršie sa vymažú a nahradia novými.
  2. Neexistujú žiadne dátumy vykonania príkazov, iba ich zoznam v poradí vykonania.
  3. Súbor zoznamu príkazov sa aktualizuje po skončení relácie. Počas paralelných relácií sa niektoré príkazy môžu stratiť.
  4. Ukladajú sa úplne všetky príkazy, aj keď niektoré nemá zmysel ukladať.

Zoznam naposledy vykonaných príkazov je uložený v domovskom adresári používateľa v súbore .bash_history(bodka na začiatku). Môžete ho otvoriť v ľubovoľnom editore a zobraziť ho. Ak chcete zoznam zobraziť pohodlnejšie, môžete zadať príkaz do konzoly:

#história

a pozrite si očíslovaný zoznam. Konkrétny príkaz môžete rýchlo nájsť filtrovaním iba potrebných riadkov, napríklad takto:

#história | grep yum

Takto sa nám zobrazia všetky možnosti spustenia príkazu yum, ktoré sú uložené v histórii. Uvedené nedostatky opravíme štandardné nastavenia ukladanie histórie príkazov v CentOS. Ak to chcete urobiť, musíte súbor upraviť .bashrc, ktorý sa nachádza v rovnakom adresári ako súbor histórie. Pridajte k tomu nasledujúce riadky:

Exportovať HISTSIZE=10000 exportovať HISTTIMEFORMAT="%h %d %H:%M:%S " PROMPT_COMMAND="história -a" exportovať HISTIGNORE="ls:ll:history:w:htop"

Prvá možnosť zväčší veľkosť súboru na 10 000 riadkov. Môžete si vyrobiť viac, aj keď táto veľkosť zvyčajne stačí. Druhý parameter určuje, že sa má uložiť dátum a čas vykonania príkazu. Tretí riadok núti ihneď po vykonaní príkazu uložiť ho do histórie. V poslednom riadku vytvoríme zoznam výnimiek pre tie príkazy, ktoré nie je potrebné zapisovať do histórie. Uviedol som príklad najjednoduchšieho zoznamu. Môžete ho pridať podľa vlastného uváženia.

Ak chcete použiť zmeny, musíte sa odhlásiť a znova pripojiť alebo spustiť príkaz:

# zdroj ~/.bashrc

To je všetko o nastavení ukladania histórie príkazov. V súbore .bashrc môžete nakonfigurovať veľa zaujímavých vecí. Raz som sa nechal uniesť a experimentoval, ale potom som všetko opustil, pretože to nedávalo zmysel. Pri práci so zákazníckymi servermi najčastejšie vidím predvolený bash, takže je lepšie si naň zvyknúť a pracovať v ňom. A individuálne nastavenia a dekorácie sú veľa osobné počítače a serverov. Nie robotníci. Takže v tomto ohľade nekonfigurujem nič iné podľa štandardu na serveri centos.

Automatická aktualizácia systému

Ak chcete zachovať bezpečnosť servera na správnej úrovni, je potrebné ho aspoň včas aktualizovať – podobne ako samotné jadro pomocou systémové nástroje, ako aj ďalšie balíčky. Môžete to urobiť manuálne, ale pre efektívnejšiu prácu je lepšie nakonfigurovať automatické vykonávanie. Aktualizácie nie je potrebné inštalovať automaticky, no skontrolujte aspoň ich vzhľad. Väčšinou sa riadim touto stratégiou.

Yum-cron

Pomôcka nám pomôže automaticky kontrolovať aktualizácie v Centos 7 mňam-cron. Inštaluje sa tradične cez yum zo štandardného úložiska.

# yum nainštalovať yum-cron

Po inštalácii sa vytvorí yum-cron automatická úloha spustiť obslužný program v /etc/cron.daily A /etc/cron.hourly. V predvolenom nastavení nástroj stiahne nájdené aktualizácie, ale nepoužije ich. Namiesto toho správca na miestnom Poštová schránka oznámenie o aktualizáciách sa odosiela rootovi. Potom ste už v tom manuálny mód príďte a rozhodnite sa, či chcete inštalovať aktualizácie alebo nie v čase, ktorý vám vyhovuje. Tento režim prevádzky považujem za najpohodlnejší, preto tieto nastavenia nemením.

Môžete nakonfigurovať yum-cron prostredníctvom konfiguračných súborov, ktoré sa nachádzajú na adrese /etc/yum/yum-cron.conf A yum-cron-hourly.conf. Sú dobre komentované, takže nepotrebujú podrobné vysvetlenia. Dávam do pozornosti sekciu , kde môžete zadať parametre pre odosielanie správ. V predvolenom nastavení sa pošta odosiela cez lokálny hostiteľ. Tu môžete zmeniť nastavenia a posielať správy cez poštový server tretej strany. Ale namiesto toho osobne uprednostňujem globálne nakonfigurovanie celého servera tak, aby preposielal lokálnu koreňovú poštu do externej poštovej schránky prostredníctvom autorizácie na inom serveri smtp.

Dnf-automatické

Ako som už povedal, Centos 8 používa iného správcu balíkov - dnf. Konfigurácia aktualizácií balíkov sa vykonáva pomocou pomôcky dnf-automatické. Poďme ho nainštalovať a nakonfigurovať.

# yum nainštalovať dnf-automatic

Už to nie je cron, ktorý riadi plánované spustenia, ale systemd s jeho vstavaným plánovačom. Zobraziť časovače automatický štart môžete použiť príkaz:

# systemctl zoznam-timerov *dnf-*

Ak tam nie sú žiadne úlohy, môžete časovač pridať ručne:

# systemctl enable --now dnf-automatic.timer

Predvolený časovač je nastavený na spustenie dnf-automaticky hodinu po spustení servera a opakuje sa denne. Konfigurácia časovača je tu - /etc/systemd/system/multi-user.target.wants/dnf-automatic.timer.

Konfigurácia pre dnf-automatic žije v /etc/dnf/automatic.conf. Štandardne aktualizácie iba sťahuje, no neaplikuje. Konfigurácia je dobre komentovaná, takže si ju môžete prispôsobiť podľa vlastného uváženia. Nevyžaduje sa žiadne špeciálne vysvetlenie. Aktualizáciu systémových balíkov nakonfigurujte podľa vlastného uváženia. Ako som už povedal, sťahujem ich automaticky. Inštaláciu mám vždy pod kontrolou ručným ovládaním.

Zakázať zaplavovanie správ v /var/log/messages

Pokračovaním v konfigurácii centos opravíme jednu malú nepríjemnosť. V predvolenej inštalácii 7. verzie systému sa celý váš systém prihlási /var/log/messages Po určitom čase bude server zanesený nasledujúcimi záznamami.

16. okt 14:01:01 xs-files systemd: Vytvorený slice user-0.slice. 16. októbra 14:01:01 xs-files systemd: Spúšťa sa používateľ-0.slice. 16. októbra 14:01:01 xs-files systemd: Začala sa relácia 14440 používateľa root. 16. októbra 14:01:01 xs-files systemd: Začína sa relácia 14440 používateľa root. 16. okt 14:01:01 xs-files systemd: Odstránený slice user-0.slice. 16. okt 14:01:01 xs-files systemd: Zastavuje sa user-0.slice. 16. okt 15:01:01 xs-files systemd: Vytvorený slice user-0.slice. 16. okt 15:01:01 xs-files systemd: Spúšťa sa používateľ-0.slice. 16. októbra 15:01:01 xs-files systemd: Začala sa relácia 14441 používateľa root. 16. októbra 15:01:01 xs-files systemd: Začína sa relácia 14441 používateľa root. 16. okt 15:01:01 xs-files systemd: Začala sa relácia 14442 používateľa root. 16. októbra 15:01:01 xs-files systemd: Začína sa relácia 14442 používateľa root. 16. okt 15:01:01 xs-files systemd: Odstránený slice user-0.slice. 16. okt 15:01:01 xs-files systemd: Zastavuje sa user-0.slice. 16. okt 16:01:01 xs-files systemd: Vytvorený slice user-0.slice. 16. okt 16:01:01 xs-files systemd: Spúšťa sa používateľ-0.slice. 16. októbra 16:01:01 xs-files systemd: Začala sa relácia 14443 používateľa root. 16. októbra 16:01:01 xs-files systemd: Začína sa relácia 14443 používateľa root. 16. okt 16:01:01 xs-files systemd: Odstránený segment user-0.slice.

V Centos 8 som si ich nevšimol, takže tam nemusím nič robiť. Správy neposkytujú žiadnu praktickú výhodu, preto ich vypneme. Na to si vytvoríme samostatné pravidlo pre rsyslog, kde vypíšeme všetky šablóny správ, ktoré vystrihneme. Umiestnime toto pravidlo samostatný súbor /etc/rsyslog.d/ignore-systemd-session-slice.conf.

# cd /etc/rsyslog.d && mcedit ignore-systemd-session-slice.conf, ak $programname == "systemd" a ($msg obsahuje "Začiatočná relácia" alebo $msg obsahuje "Začatá relácia" alebo $msg obsahuje "Vytvorené" slice“ alebo $msg obsahuje „Začínajúci používateľ-“ alebo $msg obsahuje „Začínajúci používateľský segment z“ alebo $msg obsahuje „Odstránená relácia“ alebo $msg obsahuje „Odstránený segment používateľa z“ alebo $msg obsahuje „Zastavenie používateľského segmentu z“ ) potom zastavte

Uložte súbor a reštartujte rsyslog, aby ste použili nastavenia.

# systemctl reštartujte rsyslog

Je potrebné pochopiť, že v tomto prípade zakážeme zaplavenie v súbore denníka iba pre lokálny server. Ak ukladáte prihlásenia na , potom na ňom bude potrebné nakonfigurovať toto pravidlo.

Inštalácia iftop, atop, htop, lsof na CentOS

A nakoniec, na dokončenie nastavenia, pridáme niekoľko užitočných nástrojov, ktoré sa môžu hodiť počas prevádzky servera.

iftop zobrazuje načítanie sieťového rozhrania v reálnom čase, dá sa spustiť rôznymi kľúčmi, nebudem sa tým podrobne zaoberať, na internete sú informácie o tejto téme. Dali sme:

# yum nainštalujte iftop

A dva zaujimave task managery, najcastejsie pouzivam htop, ale niekedy mi pride vhod atop. Poďme si nainštalovať oboje, presvedčte sa sami, zistite, čo sa vám najviac páči, čo vám vyhovuje:

# yum install htop # yum install atop

Ak chcete zobraziť informácie o tom, ktoré súbory používajú ktoré procesy, odporúčame vám nainštalovať pomôcku lsof. S najväčšou pravdepodobnosťou sa to bude hodiť skôr či neskôr, keď diagnostikujete server.

# yum nainštalovať wget bzip2 traceroute gdisk

To je z mojej strany všetko. Základné nastavenie CentOS je dokončený, môžete začať inštalovať a konfigurovať hlavné funkcie.

Nastavenie systémovej pošty

Na dokončenie nastavenia servera CentOS sa uistite, že pošta adresovaná miestnemu koreňovému adresáru sa odosiela cez externý poštový server do vybranej poštovej schránky. Ak sa tak nestane, bude lokálne skompilovaný do súboru /var/spool/mail/root. A môžu tam byť dôležité a užitočné informácie. Nakonfigurujme ho na odoslanie do poštovej schránky správcu systému.

Podrobne som o tom hovoril v samostatnom článku -. Tu sú len príkazy a rýchle nastavenie. Nainštalujte potrebné balíčky:

# yum install mailx cyrus-sasl cyrus-sasl-lib cyrus-sasl-plain postfix

Nakreslíme niečo ako túto konfiguráciu pre postfix.

Cat /etc/postfix/main.cf ## ZAČIATOK PREDCHODNEJ KONFIGURÁCIE ###################### queue_directory = /var/spool/postfix command_directory = /usr/sbin daemon_directory = /usr/libexec/postfix data_directory = /var/lib/postfix mail_owner = postfix inet_interfaces = localhost inet_protocols = all unknown_local_recipient_reject_code = 550 alias_maps = hash:/etc/aliases alias alias:/database2 = hash_ase_etc_2 príkaz = PATH =/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin ddd $daemon_directory/$process_name $process_id & spánok 5 sendmail_path = /usr/sbin/sendmail.postfix newaliases_path = /usr/bin / newaliases.postfix mailq_path = /usr/bin/mailq.postfix setgid_group = postdrop html_directory = žiadny adresár_manuálnej stránky = /usr/share/man sample_directory = /usr/share/doc/postfix-2.10.1/samples readme_directory = /usr/share / doc/postfix-2.10.1/README_FILES ## KONIEC PREDCHODNEJ KONFIGURÁCIE ###################### # Názov servera ako výstup príkazu hostname myhostname = centos- xs.local # Tu, logicky, musíte ponechať iba doménu, ale v tomto prípade je lepšie ponechať celý názov servera tak, aby pole odosielateľa # obsahovalo celý názov servera. pohodlnejšie na analýzu servisných správ mydomain = centos-test.xs.local mydestination = $myhostname myorigin = $mydomain # Adresa servera, cez ktorý budeme posielať poštu relayhost = mailsrv.mymail.ru:25 smtp_use_tls = áno smtp_sasl_auth_enable = yes_password hash_smapl :/etc/postfix/sasl_passwd smtp_sasl_security_options = noanonymous smtp _tls_security_level = môže

Na autorizáciu vytvoríme súbor s informáciami o používateľskom mene a hesle.

# mcedit /etc/postfix/sasl_passwd mailsrv.mymail.ru:25 [e-mail chránený]:heslo

Vytvorte súbor db.

# postmap /etc/postfix/sasl_passwd

Teraz môžete reštartovať postfix a skontrolovať, či funguje.

# systemctl reštartujte postfix

Na štandardný alias pre root in /etc/aliases, pridajte externú adresu, na ktorú sa bude duplikovať pošta adresovaná používateľovi root. Aby sme to urobili, upravíme zadaný súbor, zmena posledného riadku.

#root: marc

Koreň: koreň, [e-mail chránený]

Aktualizácia databázy certifikátov:

#newaliases

Pošlime list cez konzolu lokálnemu rootu:

# df -h | mail -s "Použitie disku" root

List by mal ísť do externej poštovej schránky. Ak používate poštovú schránku od spoločnosti Yandex, s najväčšou pravdepodobnosťou dostanete chybu v protokole poštového servera a list sa neodošle.

Relay=smtp.yandex.ru:25, oneskorenie=0,25, oneskorenia=0/0/0,24/0,01, dsn=5,7.1, stav=odskočený (hostiteľ smtp.yandex.ru povedal: 553 5.7.1 Adresa odosielateľa odmietnutá: nie je vo vlastníctve overovacieho používateľa. (v odpovedi na príkaz MAIL FROM))

Táto chyba znamená, že váš odosielateľ pošty nie je tá istá poštová schránka, ktorú používate na autorizáciu. Poviem vám, ako to opraviť v samostatnom článku -. Pri iných poštových systémoch, kde takáto kontrola neexistuje, by malo byť všetko v poriadku.

Týmto sa dokončí nastavenie lokálnej pošty. Teraz budú všetky listy adresované miestnemu koreňovému adresáru, napríklad správy z cronu, duplikované do externej poštovej schránky a odoslané cez plnohodnotný poštový server. Takže listy budú doručené normálne, bez toho, aby skončili v spame (aj keď nie nevyhnutne, existujú aj heuristické filtre).

Záver

Prešli sme niekoľkými počiatočnými krokmi na nastavenie servera CentOS, čo zvyčajne robím pri príprave servera hneď po inštalácii. Nepredstieram, že som absolútna pravda; možno mi niečo uniká alebo robím niečo, čo nie je úplne správne. Budem rád za rozumné a zmysluplné pripomienky a návrhy.

..
  • Pochopenie špecifík nasadzovania, konfigurácie a údržby sietí postavených na Linuxe.
  • Schopnosť rýchlo riešiť vznikajúce problémy a zabezpečiť stabilnú a neprerušovanú prevádzku systému.
  • Otestujte sa na vstupnom teste a pozrite si program, kde nájdete ďalšie podrobnosti.