Kako postaviti pametne telefone i računala. Informativni portal

Primjer: Dopustite ssh na nestandardnom portu.

FirewallD je alat za upravljanje vatrozidom prema zadanim postavkama dostupan na poslužiteljima CentOS 7. U osnovi, to je omot oko IPTables i dolazi s grafičkim alatom za konfiguraciju vatrozida i alatom za naredbeni redak firewall-cmd. Uz uslugu IPtables, svaka promjena zahtijeva uklanjanje starih pravila i stvaranje novih pravila u ` / etc / sysconfig / iptables`dok firewalld primjenjuje samo razlike.

FirewallD zone

FirewallD koristi usluge i zone umjesto pravila i lanaca u iptables. Prema zadanim postavkama dostupne su sljedeće zone:

  • pad- Ispustite sve dolazne mrežne pakete bez odgovora, dostupne su samo odlazne mrežne veze.
  • blok- Odbijte sve dolazne mrežne pakete s porukom icmp-host-prohibited, dostupne su samo odlazne mrežne veze.
  • javnost- prihvaćaju se samo odabrane dolazne veze, za korištenje na javnim mjestima
  • vanjski- Za vanjske mreže s maskiranjem prihvaćaju se samo odabrane dolazne veze.
  • dmz- demilitarizirana zona DMZ, javno dostupna s ograničenim pristupom internoj mreži, prihvaćaju se samo odabrane dolazne veze.
  • raditi
  • Dom- Za računala u kućnoj zoni prihvaćaju se samo odabrane dolazne veze.
  • unutarnje- Za računala na vašoj internoj mreži prihvaćaju se samo odabrane dolazne veze.
  • vjerovao- Sve mrežne veze su prihvaćene.

Da biste dobili popis svih dostupnih zona:

# firewall-cmd --get-zones work drop interni vanjski pouzdani kućni dmz javni blok

Za pregled popisa zadanih zona:

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

Za promjenu zadane zone:

FirewallD usluge

FirewallD usluge su XML konfiguracijske datoteke koje sadrže informacije servisnog zapisa za firewalld. Da biste dobili popis svih dostupnih usluga:

# 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-ldaps freeipa-high-availability 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 pmcd pmproxy pmproxy pmwebapi pmcd pmproxy pmwebapi proprivpc proprivpc samp popxy pmwebpisd bapi klijent sane smtp smtps snmp snmptrap squid ssh sinergija syslog syslog-tls telnet tftp tftp-client tinc tor-socks prijenos-klijent vdsm vnc-server wbem-https xmpp-bosh xmpp-client xmpp-server xmpp-local

XML konfiguracijske datoteke pohranjuju se u direktorije / usr / lib / firewalld / services / i / etc / firewalld / usluge /.

Konfiguriranje vatrozida s FirewallD-om

Kao primjer, evo kako možete konfigurirati vatrozid s FirewallD ako koristite web poslužitelj, SSH na portu 7022 i poslužitelj e-pošte.

Prvo ćemo postaviti zadanu zonu za DMZ.

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

Da biste dodali trajna pravila usluge za HTTP i HTTPS u DMZ, pokrenite sljedeću naredbu:

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

Otvorite port 25 (SMTP) i port 465 (SMTPS):

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

Otvoreni, IMAP, IMAPS, POP3 i POP3S portovi:

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

Budući da je SSH port promijenjen u 7022, uklonit ćemo SSH uslugu (port 22) i otvoriti port 7022

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

Da bismo implementirali promjene, moramo ponovno učitati vatrozid:

Firewall-cmd --reload

Na kraju možete navesti pravila.

Počevši od CentoOS-a 7, dodan je novi alat za konfiguriranje pravila filtriranja prometa firewalld... Preporuča se koristiti ga za upravljanje iptables pravilima. CentOS 8 sada koristi nftables framework umjesto zadanog paketa za filtriranje iptables, a kada konfigurirate pravila vatrozida kroz firewalld, vi zapravo konfigurirate nftables. U ovom članku ćemo vas provesti kroz instalaciju, osnovne koncepte i konfiguraciju firewalld-a na poslužitelju na kojem radi CentOS 8 (u CentOS-u 7 sve je isto).


VatrozidD- vatrozid za zaštitu poslužitelja od neželjenog prometa s podrškom za upravljanje dinamičkim pravilima (bez ponovnog pokretanja) i implementacijom trajnih pravila vatrozida. Radi kao frontend za obje nftables. FirewallD se može koristiti u gotovo svim distribucijama Linuxa.

Osnovni koncepti, zone i pravila vatrozida

Prije nego nastavite s instalacijom i konfiguracijom firewalld, upoznat ćemo se s konceptom zona, koje se koriste za određivanje razine povjerenja za različite veze. Za različite zone firewalld možete primijeniti različita pravila filtriranja, specificirati aktivne opcije vatrozida u obliku unaprijed definiranih usluga, protokola i portova, prosljeđivanja portova i obogaćenih pravila.

Vatrozid filtrira dolazni promet po zonama ovisno o pravilima koja se primjenjuju na zonu. Ako IP- adresa pošiljatelja zahtjeva odgovara pravilima bilo koje zone, tada će paket biti poslan kroz ovu zonu. Ako adresa ne odgovara nijednoj od zona konfiguriranih na poslužitelju, paket će obraditi zadana zona. Prilikom ugradnje firewalld poziva se zadana zona javnost.

Postoje zone u firewalld-u u kojima su dopuštenja za razne usluge već unaprijed konfigurirana. Možete koristiti ove postavke ili stvoriti vlastite zone. Popis zadanih zona koje se kreiraju kada je firewalld instaliran (pohranjen u /usr / lib / firewalld / zones / direktorij):

pad minimalna razina povjerenja. Sve dolazne veze su blokirane bez odgovora, dopuštene su samo odlazne veze;
blok zona je slična prethodnoj, ali kada su dolazni zahtjevi odbijeni, šalje se poruka icmp-host-prohibited za Ipv4 ili icmp6-adm-prohibited za Ipv6;
javnost predstavlja javne, nepouzdane mreže. Možete dopustiti odabrane dolazne veze na individualnoj osnovi;
vanjski vanjske mreže kada koristite vatrozid kao pristupnik. Konfiguriran je za maskiranje NAT-a, tako da vaša interna mreža ostaje privatna, ali dostupna;
unutarnje antonim vanjske zone. Domaćin ima dovoljnu razinu povjerenja, dostupan je niz dodatnih usluga;
dmz koristi se za računala smještena u DMZ-u (izolirana računala bez pristupa ostatku mreže). Dopuštene su samo određene dolazne veze;
raditi zona za radne strojeve (većina računala na mreži je pouzdana);
Dom područje kućne mreže. Većini računala može se vjerovati, ali su podržane samo određene dolazne veze;
vjerovao vjerovati svim strojevima na mreži. Najotvorenija od svih dostupnih opcija, zahtijeva svjesno korištenje.

V firewalld koriste se dva skupa pravila - trajna i privremena. Privremena pravila funkcioniraju dok se poslužitelj ne ponovno pokrene. Prema zadanim postavkama, prilikom dodavanja pravila u firewalld, pravila se smatraju privremenim ( vrijeme izvođenja). Da biste trajno dodali pravilo, trebate upotrijebiti zastavicu - trajno... Ova pravila će se primijeniti nakon ponovnog pokretanja poslužitelja.

Instaliranje i omogućavanje firewalld-a na CentOS-u

Na CentOS 7/8 firewalld je instaliran prema zadanim postavkama na OS. Ako ste ga uklonili i želite instalirati firewalld, možete koristiti standardni / dnf upravitelj:

# yum install firewalld -y - za Centos 7
# dnf instaliraj firewalld -y - za Centos 8

Demonu firewalld pokrenut automatski s početkom poslužitelja, morate ga dodati u:

# systemctl omogući firewalld

I pokrenite:

# systemctl start firewalld

Provjerite status usluge:

# systemctl status firewalld

● firewalld.service - firewalld - dinamički firewall demon Učitano: učitano (/usr/lib/systemd/system/firewalld.service; omogućeno; unaprijed postavljeno dobavljača: omogućeno) Aktivno: aktivno (u radu) od pon 14.10.2019 14:54 : 40 +06; Prije 22 s Dokumenti: čovjek: firewalld (1) Glavni PID: 13646 (firewalld) CGroup: /system.slice/firewalld.service └─13646 / usr / bin / python2 -Es / usr / sbin / firewalld --nofork --nopid 14. listopada 14:54:40 server.vpn.ru systemd: Pokretanje firewalld - dinamički firewall demon ... 14. listopada 14:54:40 server.vpn.ru systemd: Pokrenut firewalld - dinamički firewall demon.

Ili naredbom:

# firewall-cmd --state

Naredba firewall-cmd je frontend firewalld za nftables / iptables.

# firewall-cmd --state

Rad s pravilima vatrozida

Zadana pravila:

Prije konfiguriranja pravila vatrozida, morate provjeriti koja se zona koristi prema zadanim postavkama:

# firewall-cmd --get-default-zone

Budući da smo upravo instalirali firewalld i još ga nismo konfigurirali, imamo zadanu zonu javnost.

Provjerimo aktivnu zonu. Ona je također jedna - javna:

# firewall-cmd --get-active-zones

Javna sučelja: eth0

Kao što vidite, eth0 mrežno sučelje kontrolira zona javnost.

Da biste vidjeli osnovna pravila, unesite:

# firewall-cmd --list-all

Javni (aktivni) cilj: zadana icmp-block-inversion: nema sučelja: eth0 izvori: usluge: dhcpv6-client ssh portovi: protokoli: maskerada: nema naprijed-portova: izvorni portovi: icmp-blocks: bogata pravila:

Iz popisa možete vidjeti da su uobičajene operacije vezane uz DHCP klijent i ssh dodane ovoj zoni.

Dostupne zone

Da biste vidjeli popis svih zona, morate pokrenuti naredbu:

# firewall-cmd --get-zones

Na kraju sam dobio ovakav popis:

Blokiraj dmz ispusti vanjski dom interni javni pouzdani rad

Da biste provjerili pravila za određenu zonu, morate dodati oznaku - zone.

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

Početna cilj: zadana icmp-block-inversion: nema sučelja: izvori: usluge: dhcpv6-client mdns samba-client ssh portovi: protokoli: maskerada: nema naprijed-portova: izvorni portovi: icmp-blocks: bogata pravila:

Pravila za sve zone mogu se vidjeti naredbom:

# firewall-cmd --list-all-zones

Popis će biti prilično velik, budući da može biti mnogo zona.

Promijenite zadanu zonu.

Prema zadanim postavkama, sva mrežna sučelja nalaze se u zoni javnost, ali se mogu prenijeti u bilo koju od zona naredbom:

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

Nakon parametra —Zona = odredite željenu zonu.

Da biste promijenili zadanu zonu, trebate koristiti naredbu:

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

Dodavanje pravila za aplikacije

Da biste otvorili priključak za aplikaciju, možete dodati uslugu iznimkama. Popis dostupnih usluga:

Izlaz će sadržavati veliki broj usluga. Pojedinosti usluge sadržane su u njenom xml datoteka. Te se datoteke nalaze u direktoriju / usr / lib / firewalld / usluge.

Na primjer:

# cd / usr / lib / firewalld / usluge

pošta (SMTP) Ova opcija omogućuje dostavu dolazne SMTP pošte. Ako trebate dopustiti udaljenim domaćinima da se izravno povežu s vašim računalom radi dostave pošte, omogućite ovu opciju. Ne morate to omogućiti ako prikupljate svoju poštu s poslužitelja vašeg ISP-a putem POP3 ili IMAP-a ili ako koristite alat kao što je fetchmail. Imajte na umu da neispravno konfigurirani SMTP poslužitelj može omogućiti udaljenim strojevima da koriste vaš poslužitelj za slanje neželjena pošta.

XML datoteka sadrži opis usluge, protokol i broj porta koji će se otvoriti u firewalldu.

Prilikom dodavanja pravila možete koristiti parametar —Dodatna usluga za otvaranje pristupa određenoj usluzi:

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

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

Nakon dodavanja pravila, možete provjeriti jesu li usluge dodane u navedenu zonu:

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

Dhcpv6-klijent http https ssh

Ako želite da ova pravila budu trajna, morate dodati parametar prilikom dodavanja — Trajno.

Da biste uklonili uslugu iz zone:

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

Dhcpv6-klijent https ssh test

Ako želite dodati svoju uslugu iznimkama, možete stvoriti datoteku xml sebe i ispunite. Možete kopirati podatke s bilo koje usluge, promijeniti naziv, opis i broj porta.

Kopirajte datoteku smtp.xml u imenik za rad s korisničkim uslugama:

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

Izmijenite opis usluge u datoteci.

Sama xml datoteka također se mora preimenovati prema nazivu vaše usluge. Nakon toga morate ponovno pokrenuti firewalld i provjeriti je li naša usluga na popisu:

Nazvala sam uslugu test i pojavio se na popisu:

Syslog-tls telnet test tftp

Sada možete dodati kreiranu uslugu u bilo koju zonu:

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

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

Dhcpv6-klijent http https ssh test

Ako ne možete pronaći uslugu koja vam je potrebna na popisu, možete otvoriti potrebni port na firewalld-u naredbom:

# firewall-cmd --zone = public -add-port = 77 / tcp - otvoreni port 77 tcp
# firewall-cmd --zone = public -add-port = 77 / udp - otvoreni port 77 udp
# firewall-cmd --zone = public -add-port = 77-88 / udp - otvoreni raspon portova 77-88 udp
# firewall-cmd --zone = public -list-ports - provjerite popis dopuštenih portova

Blokiraj/dopusti ICMP odgovore:

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

Ukloni dodani priključak:

# firewall-cmd --zone = public -remove-port = 77 / udp - uklonite privremeno pravilo 77 udp

# firewall-cmd --permanent --zone = public -remove-port = 77 / udp - ukloni trajno pravilo

Dodavanje vlastitih zona

Možete stvoriti vlastitu zonu (ja ću je nazvati naše):

# firewall-cmd --permanent --new-zone = our

Nakon kreiranja nove zone, kao i nakon kreiranja usluge, potrebno je ponovno podizanje sustava firewalld:

# firewall-cmd --reload

# firewall-cmd --get-zones

Blokiraj dmz ispusti vanjski dom unutarnji naš javni pouzdani rad

Zona naše dostupno. Možete mu dodati usluge ili otvoriti određene portove.

Vatrozid: blokira IP adrese, izbaci iznimke

Možete dodati pouzdane IP adrese iznimkama vatrozida ili blokirati neželjene.

Za dodavanje određene IP adrese (na primjer 8.8.8.8) iznimkama na vašem poslužitelju putem firewalld, koristite naredbu:

# firewall-cmd --zone = public --add-rich-rule = "obitelj pravila =" ipv4 "izvorna adresa =" 8.8.8.8 "prihvati"

Provjerite područje i uvjerite se IP dodano iznimkama u bogatim pravilima:

Javni (aktivni) cilj: zadana icmp-block-inversion: nema sučelja: eth0 izvori: usluge: dhcpv6-client http https ssh testni portovi: protokoli: maskerada: nema portova za prosljeđivanje: izvorni portovi: icmp-blocks: bogata pravila: obitelj pravila = "ipv4" izvorna adresa = "8.8.8.8" prihvati

Blokirati IP, potrebno je zamijeniti prihvatiti na odbiti:

# firewall-cmd --zone = public --add-rich-rule = "obitelj pravila =" ipv4 "izvorna adresa =" 8.8.4.4 "odbaci"

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

Javni (aktivni) cilj: zadana icmp-block-inversion: nema sučelja: eth0 izvori: usluge: dhcpv6-client http https ssh testni portovi: protokoli: maskerada: nema portova za prosljeđivanje: izvorni portovi: icmp-blocks: bogata pravila: obitelj pravila = "ipv4" izvorna adresa = "8.8.8.8" prihvati obitelj pravila = "ipv4" izvorna adresa = "8.8.4.4" odbaci

Možete dopustiti određenu uslugu samo za zahtjeve s određene IP adrese:

# firewall-cmd --permanent --add-rich-rule "obitelj pravila =" ipv4 "izvorna adresa =" 10.10.1.0/24 "naziv usluge =" https "prihvati"

Ako hitno trebate blokirati sve zahtjeve poslužitelju, upotrijebite naredbu panika:

# firewall-cmd --panic-on

Način rada panike možete onemogućiti naredbom:

# firewall-cmd --panic-off

Ili ponovnim pokretanjem poslužitelja.

Možete zaključati konfiguraciju vatrozida kako biste spriječili lokalne root usluge da mijenjaju pravila vatrozida koja ste kreirali:

# firewall-cmd --lockdown-on

Onemogući način zaključavanja:

# firewall-cmd --lockdown-off

Prosljeđivanje portova u firewalldu

Možete stvoriti pravilo za prosljeđivanje portova u firewalld-u. Za prosljeđivanje porta 443 na 9090:

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

Da biste uklonili pravilo prosljeđivanja porta:

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

FirewallD je alat za upravljanje vatrozidom prema zadanim postavkama dostupan na poslužiteljima CentOS 7. U osnovi, to je omot oko IPTables i dolazi s grafičkim alatom za konfiguraciju vatrozida i alatom za naredbeni redak firewall-cmd. Uz uslugu IPtables, svaka promjena zahtijeva uklanjanje starih pravila i stvaranje novih pravila u ` / etc / sysconfig / iptables`dok firewalld primjenjuje samo razlike.

FirewallD zone

FirewallD koristi usluge i zone umjesto pravila i lanaca u iptables. Prema zadanim postavkama dostupne su sljedeće zone:

  • pad- Ispustite sve dolazne mrežne pakete bez odgovora, dostupne su samo odlazne mrežne veze.
  • blok- Odbijte sve dolazne mrežne pakete s porukom icmp-host-prohibited, dostupne su samo odlazne mrežne veze.
  • javnost- prihvaćaju se samo odabrane dolazne veze, za korištenje na javnim mjestima
  • vanjski- Za vanjske mreže s maskiranjem prihvaćaju se samo odabrane dolazne veze.
  • dmz- demilitarizirana zona DMZ, javno dostupna s ograničenim pristupom internoj mreži, prihvaćaju se samo odabrane dolazne veze.
  • raditi
  • Dom- Za računala u kućnoj zoni prihvaćaju se samo odabrane dolazne veze.
  • unutarnje- Za računala na vašoj internoj mreži prihvaćaju se samo odabrane dolazne veze.
  • vjerovao- Sve mrežne veze su prihvaćene.

Da biste dobili popis svih dostupnih zona:

# firewall-cmd --get-zones work drop interni vanjski pouzdani kućni dmz javni blok

Za pregled popisa zadanih zona:

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

Za promjenu zadane zone:

FirewallD usluge

FirewallD usluge su XML konfiguracijske datoteke koje sadrže informacije servisnog zapisa za firewalld. Da biste dobili popis svih dostupnih usluga:

# 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-ldaps freeipa-high-availability 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 pmcd pmproxy pmproxy pmwebapi pmcd pmproxy pmwebapi proprivpc proprivpc samp popxy pmwebpisd bapi klijent sane smtp smtps snmp snmptrap squid ssh sinergija syslog syslog-tls telnet tftp tftp-client tinc tor-socks prijenos-klijent vdsm vnc-server wbem-https xmpp-bosh xmpp-client xmpp-server xmpp-local

XML konfiguracijske datoteke pohranjuju se u direktorije / usr / lib / firewalld / services / i / etc / firewalld / usluge /.

Konfiguriranje vatrozida s FirewallD-om

Kao primjer, evo kako možete konfigurirati vatrozid s FirewallD ako koristite web poslužitelj, SSH na portu 7022 i poslužitelj e-pošte.

Prvo ćemo postaviti zadanu zonu za DMZ.

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

Da biste dodali trajna pravila usluge za HTTP i HTTPS u DMZ, pokrenite sljedeću naredbu:

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

Otvorite port 25 (SMTP) i port 465 (SMTPS):

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

Otvoreni, IMAP, IMAPS, POP3 i POP3S portovi:

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

Budući da je SSH port promijenjen u 7022, uklonit ćemo SSH uslugu (port 22) i otvoriti port 7022

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

Da bismo implementirali promjene, moramo ponovno učitati vatrozid:

Firewall-cmd --reload

Na kraju možete navesti pravila.

Zone

Firewalld daemon upravlja grupama pravila koristeći takozvane zone.

Zone su u biti skupovi pravila koja upravljaju prometom na temelju razine povjerenja u određenu mrežu. Zone se dodjeljuju mrežnim sučeljima i kontroliraju ponašanje vatrozida.

Računala koja se često povezuju na različite mreže (na primjer, prijenosna računala) mogu koristiti zone za promjenu svojih skupova pravila na temelju svog okruženja. Na primjer, kada je spojen na javnu WiFi mrežu, vatrozid može nametnuti stroža pravila i ublažiti ograničenja na kućnoj mreži.

Sljedeće zone postoje u firewalld-u:

  • pad: Najniža razina povjerenja u mrežu. Sav ulazni promet se prekida bez odgovora, podržane su samo izlazne veze.
  • blok: Ova zona je slična prethodnoj, ali se ulazni zahtjevi odbacuju porukom icmp-host-prohibited ili icmp6-adm-prohibited.
  • javna: Ova zona predstavlja javnu mrežu kojoj se ne može vjerovati, ali upravlja dolaznim vezama na individualnoj osnovi.
  • vanjski: područje vanjskih mreža. Podržava NAT maskiranje tako da interna mreža ostaje zatvorena, ali i dalje dostupna.
  • unutarnje: obrnuta strana vanjske zone, unutarnje mreže. Računala u ovoj zoni mogu se vjerovati. Dodatne usluge dostupne.
  • dmz: Koristi se za računala smještena u DMZ-u (izolirana računala koja neće imati pristup ostatku mreže); podržava samo neke dolazne veze.
  • rad: zona radne mreže. Većini strojeva na mreži može se vjerovati. Dodatne usluge dostupne.
  • dom: zona kućne mreže. Okruženje se može vjerovati, ali su podržane samo korisnički definirane ulazne veze.
  • pouzdano: svim strojevima na mreži može se vjerovati.

Pravila spremanja

Pravila vatrozida su trajna i privremena. Ako se pojavi bilo koje pravilo ili se promijeni u skupu, trenutno se ponašanje vatrozida odmah mijenja. Međutim, nakon ponovnog pokretanja, sve će promjene biti izgubljene ako se ne pohrane.

Većina naredbi firewall-cmd može koristiti oznaku --permanent, koja će spremiti pravilo i zatim ga trajno koristiti.

Omogućavanje firewall firewall

Prvo morate omogućiti daemon. Datoteka jedinice systemd naziva se firewalld.service. Za pokretanje demona unesite.

sudo systemctl start firewalld.service

Provjerite je li usluga pokrenuta:

firewall-cmd --state
trčanje

Vatrozid je sada pokrenut i radi prema zadanoj konfiguraciji.

Trenutno je usluga omogućena, ali se neće automatski pokrenuti s poslužiteljem. Kako biste izbjegli slučajno blokiranje na vlastitom poslužitelju, prvo stvorite skup pravila, a zatim konfigurirajte automatsko pokretanje.

Zadana pravila vatrozida

Pregled zadanih pravila

Da biste saznali koja se zona koristi prema zadanim postavkama, unesite:

firewall-cmd --get-default-zone
javnost

U ovom trenutku firewalld nije dobio nikakve upute u vezi s drugim zonama, osim toga, nijedno sučelje nije povezano s drugim zonama, tako da je sada javna zona zadana zona i ujedno jedina aktivna zona.

Da biste dobili popis vrućih mjesta, unesite:


javnost
sučelja: eth0 eth1

Na javnu zonu su povezana dva mrežna sučelja: eth0 i eth1. Sučelja povezana sa zonom rade prema pravilima za tu zonu.

Da biste saznali koja pravila zona koristi prema zadanim postavkama, unesite:

firewall-cmd --list-all
javno (zadano, aktivno)
sučelja: eth0 eth1
izvori:
usluge: dhcpv6-client ssh
luke:
maškare: br
naprijed-priključci:
icmp-blokovi:
bogata pravila:

Dakle, sada znate da:

  • public je zadana zona i jedina aktivna zona.
  • Sučelja eth0 i eth1 vezana su za njega.
  • Podržava DHCP (Dodjela IP adrese) i SSH (Daljinska administracija) promet.

Ostale zone vatrozida

Sada biste se trebali upoznati s drugim zonama.

Da biste dobili popis svih dostupnih zona, unesite:

firewall-cmd --get-zones

Da biste dobili postavke za određenu zonu, dodajte oznaku -zone = naredbi.

firewall-cmd --zone = home --list-all
Dom
sučelja:
izvori:
usluge: dhcpv6-client ipp-client mdns samba-client ssh
luke:
maškare: br
naprijed-priključci:
icmp-blokovi:
bogata pravila:

Za popis definicija svih dostupnih zona, dodajte opciju --list-all-zones. Za jednostavnije gledanje, izlaz se može poslati na dojavljivač:

firewall-cmd --list-all-zones | manje

Konfiguriranje zona sučelja

U početku su sva mrežna sučelja vezana za zadanu zonu.

Promjena zone sučelja za jednu sesiju

Za prijenos sučelja u drugu zonu za jednu sesiju, koristite opcije —zone = i —change-interface =.

Na primjer, da biste eth0 doveli u kućnu zonu, upisali biste:

sudo firewall-cmd --zone = home --change-interface = eth0
uspjeh

Bilješka: Prilikom premještanja sučelja u drugu zonu, morate uzeti u obzir da to može utjecati na rad nekih usluga. Na primjer, kućna zona podržava SSH, tako da veze s ove usluge neće biti prekinute. Ali neke zone prekidaju sve veze, uključujući SSH, i tada se možete slučajno blokirati u pristupu vlastitom poslužitelju.

Da biste bili sigurni da je sučelje vezano za novu zonu, unesite:

firewall-cmd --get-active-zones
Dom
sučelja: eth0
javnost
sučelja: eth1

Nakon ponovnog pokretanja vatrozida, sučelje će se ponovno povezati sa zadanom zonom.

sudo systemctl ponovno pokrenite firewalld.service
firewall-cmd --get-active-zones
javnost
sučelja: eth0 eth1

Trajna promjena područja sučelja

Ako nijedna druga zona nije navedena u postavkama sučelja, nakon ponovnog pokretanja vatrozida, sučelje će biti ponovno vezano na zadanu zonu. Na CentOS-u takve su konfiguracije pohranjene u direktoriju / etc / sysconfig / network-scripts, u datotekama formata ifcfg-interface.

Da biste definirali zonu za sučelje, otvorite konfiguracijsku datoteku za to sučelje, na primjer:

Dodajte varijablu ZONE = na kraj datoteke i navedite drugu zonu kao vrijednost, na primjer home:

. . .
DNS1 = 2001: 4860: 4860 :: 8844
DNS2 = 2001: 4860: 4860 :: 8888
DNS3 = 8.8.8.8
ZONA = dom

Spremite i zatvorite datoteku.

Da biste ažurirali postavke, ponovno pokrenite mrežnu uslugu i vatrozid:

sudo systemctl restart network.service
sudo systemctl ponovno pokrenite firewalld.service

Nakon ponovnog pokretanja, eth0 će se vezati za kućnu zonu.

firewall-cmd --get-active-zones
Dom
sučelja: eth0
javnost
sučelja: eth1

Postavljanje zadane zone

Također možete odabrati drugu zadanu zonu.

Za to se koristi parametar –set-default-zone =. Nakon toga, sva sučelja bit će vezana za drugu zonu:

sudo firewall-cmd --set-default-zone = home
Dom
sučelja: eth0 eth1

Izrada pravila za aplikacije

Dodavanje usluge u zonu

Najlakši način je dodati uslugu ili port u zonu koju koristi vatrozid. Pregledajte dostupne usluge:

firewall-cmd --get-services
RH-Satellite-6 amanda-client bacula bacula-client dhcp dhcpv6 dhcpv6-client pmmp dns ftp visoke dostupnosti http https imaps ipp ipp-client ipsec kerberos kpasswd ldap ldaps libvirt libsfv6-client pmmp dns ftp visoke dostupnosti http https imaps ipp ipp-client ipsec kerberos kpasswd ldap ldaps libvirt libsdv-wd pmp pop3s postgresql proxy-dhcp radijus rpc-bind samba samba-client smtp ssh telnet tftp tftp-client prijenos-klijent vnc-server wbem-https

Bilješka: Više informacija o svakoj određenoj usluzi možete pronaći u .xml datotekama u direktoriju /usr/lib/firewalld/services. Na primjer, informacije o SSH usluzi pohranjene su u /usr/lib/firewalld/services/ssh.xml i izgledaju ovako:



SSH

Da biste omogućili servisnu podršku u određenoj zoni, koristite opciju –add-service =. Možete odrediti ciljnu zonu pomoću opcije -zone =. Prema zadanim postavkama, ove promjene će raditi za jednu sesiju. Da biste spremili svoje promjene i trajno ih koristili, dodajte oznaku —stalna.

Na primjer, da biste pokrenuli web poslužitelj za posluživanje HTTP prometa, prvo morate omogućiti podršku za ovaj promet u javnoj zoni za jednu sesiju:

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

Ako uslugu treba dodati u zadanu zonu, oznaka –zone = može se izostaviti.

Provjerite je li operacija uspješna:

firewall-cmd --zone = public --list-services
dhcpv6-klijent http ssh

Testirajte uslugu i vatrozid. Ako sve radi ispravno, možete promijeniti trajni skup pravila i dodati mu pravilo koje će podržati ovu uslugu.

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

Da biste vidjeli popis trajnih pravila, unesite:

sudo firewall-cmd --zone = public --permanent --list-services
dhcpv6-klijent http ssh

Javna zona sada trajno podržava HTTP i port 80. Ako web-poslužitelj može posluživati ​​SSL/TLS promet, možete dodati i https uslugu (za jednu sesiju ili u skupu trajnih pravila):

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

Što ako usluga koju želite nije dostupna?

Vatrozid vatrozida prema zadanim postavkama uključuje mnoge od najčešćih usluga. Međutim, neke aplikacije zahtijevaju usluge koje firewalld ne podržava. U ovom slučaju možete učiniti dvije stvari.

Metoda 1: postavljanje porta

Najlakši način za to je otvaranje porta aplikacije u potrebnoj zoni vatrozida. Vi samo trebate navesti port ili raspon portova i protokol.

Na primjer, aplikaciju koja koristi port 5000 i TCP potrebno je dodati u javnu zonu. Da biste omogućili podršku za aplikaciju po sesiji, koristite parametar –add-port = i navedite tcp ili udp protokol.

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

Provjerite je li operacija uspješna:

firewall-cmd --list-ports
5000 / tcp

Također možete odrediti raspon serijskih portova tako da prvi i zadnji port raspona odvojite crticom. Na primjer, ako vaša aplikacija koristi UDP portove 4990-4999, da biste ih dodali u javnu zonu, unijeli biste:

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

Nakon testiranja, ova pravila možete dodati stalnim postavkama vatrozida.

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
uspjeh
uspjeh
4990-4999 / udp 5000 / tcp

Metoda 2: definiranje usluge

Dodavanje portova zonama je jednostavno, ali ako imate puno ovih aplikacija, može biti teško pronaći čemu služi određeni port. Da biste izbjegli ovu situaciju, možete definirati usluge umjesto portova.

Usluge su jednostavno zbirke portova s ​​određenim imenom i opisom. Usluge olakšavaju upravljanje postavkama, ali su same po sebi složenije od portova.

Prvo morate kopirati postojeću skriptu iz direktorija /usr / lib / firewalld / services u direktorij / etc / firewalld / services (gdje vatrozid traži nestandardne postavke).

Na primjer, možete kopirati definiciju SSH usluge i koristiti je za definiranje primjera uvjetne usluge. Naziv skripte mora odgovarati nazivu usluge i imati ekstenziju .xml.

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

Ispravite kopiranu datoteku.

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

Datoteka sadrži SSH definiciju:



SSH
Secure Shell (SSH) je protokol za prijavu i izvršavanje naredbi na udaljenim strojevima. Omogućuje sigurnu šifriranu komunikaciju. Ako namjeravate pristupiti svom računalu daljinski putem SSH-a preko sučelja s vatrozidom, omogućite ovu opciju. Trebate instalirati openssh-server paket da bi ova opcija bila korisna.

Većina definicije usluge su metapodaci. Kratki naziv usluge možete promijeniti u oznakama ... Ovo je čovjeku čitljiv naziv usluge. Također morate dodati opis usluge. Jedina promjena koja će utjecati na uslugu je promjena broja porta i protokola.

Vratimo se na primjer usluge; Recimo da traži otvaranje TCP porta 7777 i UDP porta 8888. Definicija će izgledati ovako:



Primjer usluge
Ovo je samo primjer usluge. Vjerojatno se ne bi trebao koristiti na stvarnom sustavu.

Spremite i zatvorite datoteku.

Ponovno pokrenite vatrozid:

sudo firewall-cmd --reload

Usluga će se sada pojaviti na popisu dostupnih usluga:

firewall-cmd --get-services
RH-Satellite-6 amanda-client bacula bacula-client dhcp dhcpv6 dhcpv6-client dns primjer ftp visoke dostupnosti http https imaps ipp ipp-client ipsec kerberos kpasswd ldap ldaps libvirt libvirt-nsf open mss pms pm pmwebapi pmwebapis pop3s postgresql proxy-dhcp radijus rpc-bind samba samba-client smtp ssh telnet tftp tftp-client prijenos-klijent vnc-server wbem-https

Stvaranje zona

Vatrozid nudi mnogo unaprijed definiranih zona, koje su dovoljne za većinu posla. Međutim, u nekim situacijama postaje potrebno stvoriti prilagođenu zonu.

Na primjer, možete stvoriti javnu web zonu za web poslužitelj i privatnu DNS zonu za DNS uslugu.

Kada stvarate zonu, morate je dodati u trajne postavke vatrozida.

Pokušajte stvoriti javne web i privatneDNS zone:

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

Provjerite postoje li zone:

sudo firewall-cmd --permanent --get-zones

U trenutnoj sesiji nove zone neće biti dostupne:

firewall-cmd --get-zones
blok dmz drop vanjski dom interni javni pouzdani rad

Da biste pristupili novim zonama, morate ponovno pokrenuti vatrozid:

sudo firewall-cmd --reload
firewall-cmd --get-zones
blok dmz ispusti vanjski dom interni privatniDNS javni publicweb pouzdani rad

Sada možete dodijeliti potrebne usluge i portove novim zonama. Na primjer, SSH, HTTP i HTTPS mogu se dodati u zonu 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
sučelja:
izvori:
usluge: http https ssh
luke:
maškare: br
naprijed-priključci:
icmp-blokovi:
bogata pravila:

Možete dodati DNS u zonu privateDNS:

sudo firewall-cmd --zone = privateDNS --add-service = dns
firewall-cmd --zone = privateDNS --list-all
privatniDNS
sučelja:
izvori:
usluge: dns
luke:
maškare: br
naprijed-priključci:
icmp-blokovi:
bogata pravila:

Zatim možete povezati mrežna sučelja na nove zone:

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

Sada možete testirati postavljanje. Ako sve radi kako treba, ova pravila možete dodati u trajne postavke.

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

Zatim možete konfigurirati mrežna sučelja da se automatski povezuju na ispravnu zonu.

Na primjer, eth0 će se vezati za publicweb:

sudo nano / etc / sysconfig / network-scripts / ifcfg-eth0
. . .
IPV6_AUTOCONF = br
DNS1 = 2001: 4860: 4860 :: 8844
DNS2 = 2001: 4860: 4860 :: 8888
DNS3 = 8.8.8.8
ZONA = publicweb

I eth1 sučelje će biti vezano za privatniDNS:

sudo nano / etc / sysconfig / network-scripts / ifcfg-eth1
. . .
MREŽNA MASKA = 255.255.0.0
DEFROUTE = "ne"
NM_CONTROLLED = "da"
ZONA = privatniDNS

Ponovno pokrenite mrežne usluge i vatrozid:

sudo systemctl ponovno pokretanje mreže
sudo systemctl ponovno pokrenite firewalld

Provjerite zone:

firewall-cmd --get-active-zones
privatniDNS
sučelja: eth1
publicweb
sučelja: eth0

Provjerite rade li potrebne usluge u zonama:

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

Prilagođene zone su potpuno spremne za rad. Možete postaviti bilo koju od njih kao zadanu zonu. Na primjer:

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

Automatsko pokretanje vatrozida

Sada kada ste provjerili sve postavke i uvjerili se da sva pravila rade prema očekivanjima, možete konfigurirati vatrozid za automatsku reprodukciju.

Da biste to učinili, unesite:

sudo systemctl omogući firewalld

Vatrozid će sada započeti s poslužiteljem.

Zaključak

Firewall vatrozid je vrlo fleksibilan alat. Zone vam omogućuju brzu promjenu pravila vatrozida.

Sada znate kako firewalld funkcionira, upoznati ste s osnovnim konceptima vatrozida, možete kreirati prilagođene zone i dodavati usluge.

Oznake:,

Danas ću vas upoznati sa svojom vizijom početne konfiguracije univerzalnog poslužitelja na popularnom OS-u. Reći ću vam kako napraviti osnovnu konfiguraciju centos poslužitelja odmah nakon instalacije kako biste ga koristili u bilo kojem kapacitetu koji želite. Ovi praktični savjeti poboljšat će sigurnost i upotrebljivost vašeg poslužitelja. Članak će biti relevantan za posljednja dva izdanja Centosa - 7 i 8.

  1. Navedite početne postavke centosa koje izvodim na svježe instaliranom poslužitelju.
  2. Prikaži primjere konfiguracija koje koristim u tipičnom postavljanju.
  3. Dajte savjet o postavljanju centosa na temelju svog iskustva sa sustavom.
  4. Navedite popis tipičnih programa i uslužnih programa koji pomažu u administriranju poslužitelja.

Ovaj je članak dio jedne serije članaka o poslužitelju.

Uvod

Nakon izlaska novog izdanja Centosa 8, postalo je teško opisati početnu konfiguraciju oba poslužitelja u jednom članku, ali nisam htio odvajati članak, budući da postoji mnogo dolaznih poveznica s različitih mjesta na njega. Prikladnije je održavati zajednički materijal na oba izdanja, što ću i učiniti. Istodobno će biti jasno vidljive razlike između dviju verzija, koje će par godina nakon izlaska centosa 8 obje biti relevantne i morat će koristiti obje verzije, ovisno o situaciji.

Centos 7 koristi upravitelj paketa njam, a u Centosu 8 - dnf... Ujedno smo ostavili simboličku poveznicu od yum do dnf-a, tako da možete napisati i prvo ime i drugo. Zbog dosljednosti, svugdje ću koristiti yum, i upozoravam vas, samo da shvatite zašto to radim na ovaj način. U stvarnosti, dnf se koristi u CentOS-u 8, ovo je drugačiji, moderniji upravitelj paketa koji vam omogućuje rad s različitim verzijama istog softvera. Za to se koriste zasebna spremišta koja su se pojavila za centos 8.

Početno postavljanje CentOS-a

Osobno, nakon instalacije, počinjem s bilo kojim postavljanjem sustava, bilo centos ili na neki drugi način, potpunim ažuriranjem sustava. Ako je instalacijska slika bila svježa ili je instalacija provedena putem mreže, tada najvjerojatnije neće biti ažuriranja. Najčešće se nalaze jer se instalacijske slike ne ažuriraju uvijek redovito.

Ažuriranje sustava

# yum update

Zbog pogodnosti administracije, uvijek instaliram Midnight Commander ili samo mc:

# yum instaliraj mc

I odmah za to uključujem isticanje sintakse svih datoteka koje nisu eksplicitno naznačene u datoteci / usr / share / mc / sintaksa / sintaksa sintaksa za sh i bash skripte. Ova generička sintaksa je dobra za konfiguracijske datoteke koje se najčešće koriste na poslužitelju. Prepiši datoteku nepoznato.sintaksa... Ovo je predložak koji će se primijeniti na .conf i .cf datoteke, budući da im nije pridružena eksplicitna sintaksa.

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

Zatim će vam pomoći mrežni uslužni programi. Ovisno o skupu početnih paketa koje odaberete prilikom instalacije sustava, imat ćete jedan ili drugi skup mrežnih uslužnih programa. Evo popisa onih na koje sam osobno navikao - ifconfig, netstat, nslookup i neke druge. Ako vam treba, kao i meni, onda predlažem da ih instalirate zasebno, ako već nisu tu. Ako vam baš ne trebaju i ne koristite ih, možete preskočiti njihovu instalaciju. Provjerimo što trenutno imamo u sustavu

# ifconfig

Ako vidite odgovor:

Bash: ifconfig: naredba nije pronađena

To znači da uslužni program nije instaliran. Umjesto ifconfig na CentOS-u, sada postoji uslužni program ip... To se ne odnosi samo na centos. Ovo je slika u gotovo svim popularnim modernim distribucijama Linuxa. Odavno sam se navikao na ifconfig, iako ga u posljednje vrijeme jedva koristim. Uvijek mi se sviđalo da je u različitim distribucijama Linuxa sve otprilike isto. Koristeći ifconfig, možete konfigurirati mrežu ne samo u linuxu, već iu freebsd-u. Udoban je. A kada svaka distribucija ima svoj alat nije zgodno. Iako to sada više nije bitno, jer više ne radim s Freebsdom, a ip uslužni program je u svim distribucijama Linuxa. Međutim, ako trebate ifconfig, možete instalirati paket net-alati, što uključuje:

# yum install net-tools

Da bi naredbe nslookup ili, na primjer, host, radile za nas, morate instalirati paket bind-utils... Ako to nije učinjeno, onda na naredbu:

# nslookup

Izlaz će biti:

Bash: nslookup: naredba nije pronađena

Dakle, instalirajte bind-utils:

# yum install bind-utils

Onemogućite SELinux

Onemogućite SELinux. Njegovo korištenje i postavljanje zasebnog razgovora. Sada to neću učiniti. Dakle, onemogućujemo:

# mcedit / etc / sysconfig / selinux

promijenite vrijednost

SELINUX = onemogućeno

Možete ponovno pokrenuti kako bi promjene stupile na snagu:

# ponovno podizanje sustava

A ako želite primijeniti onemogućavanje SELinuxa bez ponovnog pokretanja, pokrenite naredbu:

# setenforce 0

Stalno dobivam mnogo kritika zbog onemogućavanja SELinuxa. Znam kako radi, mogu ga prilagoditi. To stvarno nije jako teško i nije teško savladati. Ovo je moj namjerni odabir, iako ga ponekad ugađam. Moj format rada sa sustavom je takav da mi SELinux najčešće ne treba, pa ne gubim vrijeme na njega i onemogućujem centos u osnovnoj postavci. Sigurnost sustava složen je posao, posebno u suvremenom svijetu razvoja weba, gdje vladaju mikroservise i kontejneri. SELinux je niša alat koji nije potreban uvijek i svugdje. Stoga u ovom članku ne pripada. Tko god treba, zasebno će omogućiti SELinux i konfigurirati.

Određivanje mrežnih parametara

Nastavljamo s osnovnom konfiguracijom centosa nakon instalacije. Sada ćemo to učiniti, ako iz nekog razloga to nismo učinili tijekom instalacije, ili ako ih trebate promijeniti. Općenito, mreža u Centosu se konfigurira pomoću NetworkManager i njegovu pomoćnu konzolu nmtui... Dolazi u osnovnoj postavci sustava. Postoji jednostavno i jasno grafičko sučelje, tako da nema što reći. Više sam navikao konfigurirati mrežu putem konfiguracijskih datoteka mrežnih skripti. U 7. verziji centosa su izvan kutije, u 8. verziji su uklonjeni. Da biste ih koristili za konfiguraciju mreže, morate zasebno instalirati paket mrežne skripte.

# yum instalirajte mrežne skripte

Sada možete konfigurirati mrežu. Da biste to učinili, otvorite datoteku / etc / sysconfig / network-scripts / ifcfg-eth0

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

Ako mrežne postavke dobijete putem dhcp-a, tada će minimalni skup postavki u konfiguracijskoj datoteci biti sljedeći.

TYPE = "Ethernet" BOOTPROTO = "dhcp" DEFROUTE = "da" IPV4_FAILURE_FATAL = "ne" NAME = "eth0" DEVICE = "eth0" ONBOOT = "da"

Za konfiguriranje statičke IP adrese, postavke će biti sljedeće.

TYPE = "Ethernet" BOOTPROTO = "ništa" DEFROUTE = "da" IPV4_FAILURE_FATAL = "ne" NAME = "eth0" DEVICE = "eth0" ONBOOT = "da" IPADDR = 192.168.167.117 DNS16X1 = 19.167. 192.168.167.113

U polje IPADDR unesite svoju adresu, u PREFIX mrežnu masku, u GATEWAY gateway, DNS adresu dns poslužitelja. Spremite datoteku i ponovno pokrenite mrežu da biste primijenili postavke:

# systemctl ponovno pokretanje mreže

Postavljanje vatrozida

Dodavanje spremišta

Prilikom postavljanja centosa često vam treba softver koji nije u standardnoj repi. Da biste instalirali dodatne pakete, trebate. Najpopularniji je EPEL. Nekada je to bio rpmforge, ali je zatvoren nekoliko godina. Svi su ga zaboravili. Povezujemo EPEL repozitorij. S njim je sve jednostavno, dodaje se iz standardne repe:

# yum instaliraj epel-release

Također, za CentOS 7, REMI repozitorij je izuzetno koristan, koji vam omogućuje da instalirate novije verzije php-a, za razliku od onih u standardnom spremištu. Podsjetim da se radi o php 5.4 koji više nije za ništa i uklonjen je iz podrške.

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

Za Centos 8 remi još nije relevantan, ali mislim da je privremen. U principu, ova dva repozitorija u centosu su mi obično dovoljna u općem slučaju. Drugi su već povezani za specifične potrebe za instalaciju različitog softvera.

Postavljanje pohrane povijesti u bash_history

Prelazimo na postavljanje centos sustava na poslužitelju. Bit će korisno napraviti neke promjene u standardnom mehanizmu za spremanje povijesti naredbi. Često pomaže kada se trebate sjetiti jedne od prethodno unesenih naredbi. Zadane postavke imaju neka ograničenja koja su nezgodna. Evo popisa njih:

  1. Prema zadanim postavkama, sprema se samo zadnjih 1000 naredbi. Ako ih ima više, stariji će se izbrisati i zamijeniti novima.
  2. Datumi izvršenja naredbi nisu navedeni, samo njihov popis u redoslijedu izvršenja.
  3. Datoteka s popisom naredbi ažurira se nakon završetka sesije. U paralelnim sesijama neke od naredbi mogu biti izgubljene.
  4. Apsolutno sve naredbe su spremljene, iako neke nema smisla pohranjivati.

Popis zadnjih izvršenih naredbi pohranjen je u korisničkom početnom imeniku u datoteci .bash_history(na početnoj točki). Može ga otvoriti bilo koji urednik i pogledati. Za praktičniji prikaz popisa, možete unijeti naredbu u konzolu:

# povijest

i vidjeti numerirani popis. Možete brzo pronaći određenu naredbu filtriranjem samo potrebnih redaka, na primjer, ovako:

#povijest | grep njam

Tako ćemo vidjeti sve opcije za pokretanje naredbe yum, koje su pohranjene u povijesti. Ispravimo navedene nedostatke standardnih postavki za pohranu povijesti naredbi u CentOS-u. Da biste to učinili, morate urediti datoteku .bashrc koji se nalazi u istom direktoriju kao i datoteka povijesti. Dodajte mu sljedeće retke:

Izvoz HISTSIZE = 10000 izvoz HISTTIMEFORMAT = "% h% d% H:% M:% S" PROMPT_COMMAND = "povijest -a" izvoz HISTIGNORE = "ls: ll: povijest: w: htop"

Prvi parametar povećava veličinu datoteke na 10.000 redaka. Može se učiniti više, iako je ova veličina obično dovoljna. Drugi parametar navodi pohranjivanje datuma i vremena izvršenja naredbe. Treći red prisiljava da se spremi u povijest odmah nakon izvršenja naredbe. U zadnjem retku stvaramo popis iznimaka za one naredbe koje ne treba upisivati ​​u povijest. Naveo sam primjer najjednostavnije liste. Možete ga dodati po vlastitom nahođenju.

Da biste primijenili promjene, morate se odjaviti i ponovno se povezati ili pokrenuti naredbu:

# izvor ~ / .bashrc

To je sve o postavljanju pohrane povijesti naredbi. Mnogo je zanimljivih stvari koje možete učiniti u datoteci .bashrc. Svojedobno sam se zanosio i eksperimentirao, ali sam onda odustao od svega, jer nema smisla. Kod rada s poslužiteljima kupaca najčešće vidim zadani bash pa se bolje naviknuti i raditi u njemu. A individualne postavke i ukrasi su puno osobnih računala i poslužitelja. Ne radnici. Dakle, ne konfiguriram ništa drugo prema standardu u centos poslužitelju u tom pogledu.

Automatsko ažuriranje sustava

Da bi se sigurnost poslužitelja održala na odgovarajućoj razini, potrebno ga je barem pravovremeno ažurirati - kako samu jezgru s pomoćnim programima sustava, tako i druge pakete. To možete učiniti ručno, ali za učinkovitiji rad bolje je postaviti automatsko izvršenje. Nije potrebno automatski instalirati ažuriranja, ali barem provjeriti njihov izgled. Obično slijedim ovu strategiju.

Yum-cron

Za automatsku provjeru ažuriranja u Centos 7, pomoćni program će nam pomoći yum-cron... Instalira se tradicionalno putem yum-a iz standardnog spremišta.

# yum instaliraj yum-cron

Nakon instaliranja yum-cron-a, kreira se automatski zadatak za izvršavanje uslužnog programa /etc/cron.daily i /etc/cron.po satu... Prema zadanim postavkama, uslužni program preuzima pronađena ažuriranja, ali ih ne primjenjuje. Umjesto toga, obavijest o ažuriranju šalje se administratoru na lokalni korijenski poštanski sandučić. Zatim idete u ručni način rada i odlučite hoćete li instalirati ažuriranja ili ne u prikladno vrijeme za vas. Ovaj način rada mi se čini najprikladnijim, pa te postavke ne mijenjam.

Možete konfigurirati yum-cron putem konfiguracijskih datoteka koje se nalaze na /etc/yum/yum-cron.conf i yum-cron-hourly.conf... Dobro su komentirani, pa im nisu potrebna detaljna objašnjenja. Obratite pažnju na odjeljak , gdje možete odrediti parametre za slanje poruka. Zadana postavka je slanje pošte putem lokalnog hosta. Ovdje možete promijeniti parametre i slati poruke putem poslužitelja e-pošte treće strane. Ali umjesto ovoga, osobno, radije bih konfigurirao prosljeđivanje lokalne korijenske pošte u vanjski poštanski sandučić globalno za cijeli poslužitelj putem autorizacije na drugom smtp poslužitelju.

Dnf-automatski

Kao što sam ranije rekao, Centos 8 koristi drugačiji upravitelj paketa - dnf. Konfiguriranje ažuriranja paketa tamo se vrši putem uslužnog programa dnf-automatski... Postavimo ga i konfigurirajmo.

# yum install dnf-automatic

Upravljanje planiranim pokretanjem više ne upravlja cron, već systemd sa svojim ugrađenim planerom. Možete vidjeti mjerače automatskog pokretanja naredbom:

# systemctl popis-tajmeri * dnf- *

Ako tamo nema zadataka, možete ručno dodati mjerač vremena:

# systemctl enable --sada dnf-automatic.timer

Zadani mjerač vremena je postavljen tako da se dnf-automatski pokreće jedan sat nakon pokretanja poslužitelja i ponavlja se svakodnevno. Konfiguracija tajmera živi ovdje - /etc/systemd/system/multi-user.target.wants/dnf-automatic.timer.

Konfiguracija za dnf-automatic živi u /etc/dnf/automatic.conf... Prema zadanim postavkama, preuzima samo ažuriranja, ali ih ne primjenjuje. Konfiguracija je dobro komentirana, tako da je možete prilagoditi kako god želite. Zasebna objašnjenja nisu potrebna. Prilagodite ažuriranja paketa sustava kako vam odgovara. Kao što sam rekao, samo ih automatski preuzimam. Instalaciju uvijek držim pod kontrolom ručnom kontrolom.

Onemogući preplavljivanje poruka u / var / log / porukama

Nastavljajući konfiguraciju centosa, popravit ćemo jednu malu neugodnost. U zadanoj instalaciji 7. verzije sustava, cijeli zapisnik vašeg sustava / var / log / poruke nakon nekog vremena poslužitelj će biti začepljen sljedećim unosima.

16. listopada 14:01:01 xs-files systemd: Stvorena rezina user-0.slice. 16. listopada 14:01:01 xs-files systemd: Pokretanje user-0.slice. 16. listopada 14:01:01 xs-files systemd: Započeta sesija 14440 korijenskog korisnika. 16. listopada 14:01:01 xs-files systemd: Pokretanje sesije 14440 korijenskog korisnika. 16. listopada 14:01:01 xs-files systemd: Uklonjena kriška user-0.slice. 16. listopada 14:01:01 xs-files systemd: Zaustavljanje user-0.slice. 16. listopada 15:01:01 xs-files systemd: Stvorena rezina user-0.slice. 16. listopada 15:01:01 xs-files systemd: Pokretanje user-0.slice. 16. listopada 15:01:01 xs-files systemd: Započela sesija 14441 korijenskog korisnika. 16. listopada 15:01:01 xs-files systemd: Pokretanje sesije 14441 korijenskog korisnika. 16. listopada 15:01:01 xs-files systemd: Započela sesija 14442 korijenskog korisnika. 16. listopada 15:01:01 xs-files systemd: Pokretanje sesije 14442 korijenskog korisnika. 16. listopada 15:01:01 xs-files systemd: Uklonjena kriška user-0.slice. 16. listopada 15:01:01 xs-files systemd: Zaustavljanje user-0.slice. 16. listopada 16:01:01 xs-files systemd: Stvorena rezina user-0.slice. 16. listopada 16:01:01 xs-files systemd: Pokretanje user-0.slice. 16. listopada 16:01:01 xs-files systemd: Započela sesija 14443 korijenskog korisnika. 16. listopada 16:01:01 xs-files systemd: Pokretanje sesije 14443 korijenskog korisnika. 16. listopada 16:01:01 xs-files systemd: Uklonjena kriška user-0.slice.

Nisam ih primijetio u Centosu 8 pa se tu nema što raditi. Poruke nisu od praktične koristi, pa ih deaktivirajmo. Da bismo to učinili, kreirat ćemo zasebno pravilo za rsyslog, gdje ćemo navesti sve predloške poruka koje ćemo izrezati. Stavimo ovo pravilo u zasebnu datoteku /etc/rsyslog.d/ignore-systemd-session-slice.conf.

# cd /etc/rsyslog.d && mcedit ignore-systemd-session-slice.conf ako je $programname == "systemd" i ($ msg sadrži "Početak sesije" ili $ msg sadrži "Započetu sesiju" ili $ msg sadrži "Stvoreno odsječak "ili $ msg sadrži" Početni korisnik- "ili $ msg sadrži" Početni korisnički odsječak od "ili $ msg sadrži" Uklonjena sesija "ili $ msg sadrži" Uklonjeni isječak Korisnički odsječak od "ili $ msg sadrži" Zaustavljajući korisnički odsječak od " ) zatim stani

Spremite datoteku i ponovno pokrenite rsyslog da biste primijenili postavke.

# systemctl ponovno pokrenite rsyslog

Potrebno je razumjeti da u ovom slučaju onemogućujemo flooding u log datoteku samo na lokalnom poslužitelju. Ako pohranjujete prijave, na njemu će se morati konfigurirati ovo pravilo.

Instaliranje iftop, atop, htop, lsof na CentOS

I na kraju, na kraju konfiguracije, dodat ćemo nekoliko korisnih uslužnih programa koji bi mogli biti korisni tijekom rada poslužitelja.

iftop u stvarnom vremenu prikazuje opterećenje mrežnog sučelja, može se pokrenuti raznim tipkama, neću se detaljnije zadržavati na tome, na Internetu postoje informacije o ovoj temi. Stavljamo:

# yum instaliraj iftop

I dva zanimljiva upravitelja zadataka, uglavnom koristim htop, ali ponekad i atop dobro dođe. Stavljamo oboje, uvjerite se sami, shvatite što vam se najviše sviđa, odgovara:

# yum install htop # yum install atop

Za prikaz informacija o tome koje datoteke koriste određeni procesi, savjetujem vam da instalirate uslužni program lsof... Najvjerojatnije će vam prije ili kasnije dobro doći kada dijagnosticirate rad poslužitelja.

# yum install wget bzip2 traceroute gdisk

To je sve za mene. Osnovno postavljanje CentOS-a je završeno, možete početi instalirati i konfigurirati glavnu funkcionalnost.

Postavljanje sistemske pošte

Kako bismo dovršili konfiguriranje CentOS poslužitelja, provjerimo da li se pošta adresirana na lokalni korijen šalje preko vanjskog poslužitelja pošte u odabrani poštanski sandučić. Ako se to ne učini, bit će dodan lokalno u datoteku / var / spool / mail / root... I možda ima važnih i korisnih informacija. Konfigurirajmo ga da se pošalje u poštanski sandučić administratora sustava.

O tome sam detaljno govorio u zasebnom članku -. Ovdje ukratko samo naredbe i brzo postavljanje. Instaliramo potrebne pakete:

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

Crtamo nešto poput ove konfiguracije za postfix.

Cat /etc/postfix/main.cf ## DEFAULT CONFIG BEGIN ############################### 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_recipient_reject_code /etc. = debiah: / etc / com = / bin: / usr / bin: / usr / local / bin: / usr / X11R6 / bin ddd $ daemon_directory / $ process_name $ process_id & sleep 5 sendmail_path = /usr/sbin/sendmail.postfix newaliases_path = / usr / bin / newaliases.postfix mailq_path = /usr/bin/mailq.postfix setgid_group = postdrop html_directory = no manpage_directory = / usr / share / man sample_directory = /usr/share/doc/postfix-2.10.1 readme_directory = / usr / share / doc / postfix-2.10.1 / README_FILES ## ZADANO KONFIGIRANJE KRAJ ###################### # Ime poslužitelja kao prikazano ime hosta myhostname = centos-test. xs.local # Ovdje n o logici, trebate ostaviti samo domenu, ali u ovom slučaju bolje je ostaviti puni naziv poslužitelja kako bi se puni naziv poslužitelja pojavio u polju pošiljatelja #, pa je prikladnije analizirati uslugu poruke mydomain = centos-test.xs.local mydestination = $ myhostname myorigin = $ mydomain # Adresa poslužitelja preko kojeg ćemo slati poštu relayhost = mailsrv.mymail.ru:25 smtp_use_tls = yes smtp_sasl_auth_enable /psfi_sword_enable /phsxma itd. / sasl_passwd smtp_sasl_security_options = noanseonymous smtp_sasl_security_options = noanseonymous smtp

Napravite datoteku s podacima o korisničkom imenu i lozinki za autorizaciju.

# mcedit / etc / postfix / sasl_passwd mailsrv.mymail.ru:25 [e-mail zaštićen]: zaporka

Kreirajte db datoteku.

# poštanska karta / etc / postfix / sasl_passwd

Sada možete ponovno pokrenuti postfix i testirati ga.

# systemctl restart postfix

Na standardni alias za root in / etc / aliasi, dodajte vanjsku adresu na kojoj će se duplicirati pošta adresirana na root. Da biste to učinili, uredite navedenu datoteku promjenom zadnjeg retka.

#korijen: marc

korijen: korijen, [e-mail zaštićen]

Ažuriranje baze certifikata:

# newaliases

Pošaljimo pismo putem konzole lokalnom korijenu:

# df -h | mail -s "Korištenje diska" root

Pismo bi trebalo otići u vanjski poštanski sandučić. Ako koristite poštanski sandučić od Yandexa, najvjerojatnije ćete dobiti pogrešku u zapisniku poslužitelja e-pošte i pismo neće biti poslano.

Relej = smtp.yandex.ru: 25, kašnjenje = 0,25, kašnjenje = 0/0 / 0,24 / 0,01, dsn = 5.7.1, status = odbijen (host smtp.yandex.ru je rekao: 553 5.7.1 Adresa pošiljatelja odbijena: nije u vlasništvu ovlaštenog korisnika. (kao odgovor na naredbu MAIL FROM))

Ova pogreška znači da nemate naveden isti poštanski sandučić kao pošiljatelj pošte kojeg koristite za autorizaciju. Kako to popraviti, reći ću vam u zasebnom članku -. S ostalim mail sustavima, gdje nema takve provjere, sve bi trebalo biti u redu i tako.

Time je dovršena konfiguracija lokalne pošte. Sada će se sva pisma adresirana na lokalni korijen, na primjer, izvješća iz crona, duplicirati u vanjski poštanski sandučić i slati putem punopravnog poslužitelja pošte. Dakle, e-poruke će biti isporučene normalno bez upadanja u neželjenu poštu (iako ne nužno, postoje i heuristički filtri).

Zaključak

Slijedili smo neke od početnih koraka za postavljanje CentOS poslužitelja koje obično radim kada pripremam poslužitelj odmah nakon instalacije. Ne pretvaram se da sam apsolutna istina, možda nešto propuštam ili ne radim sasvim kako treba. Bilo bi mi drago za razumne i smislene komentare i prijedloge.

..
  • Razumijevanje specifičnosti postavljanja, konfiguriranja i održavanja mreža temeljenih na Linuxu.
  • Sposobnost brzog rješavanja nastalih problema i osiguravanja stabilnog i neprekinutog rada sustava.
  • Testirajte se na prijemnom ispitu i pogledajte detalje programa na.

    Vrhunski povezani članci