Essentials Pagina 7: Diferență între versiuni

De la Wiki Linux Advanced
Sari la navigare Sari la căutare
Fără descriere a modificării
Fără descriere a modificării
Linia 335: Linia 335:
comanda route afișează și manipulează și tabelul de rutare ip. Pentru a vedea tabelul de rutare implicit în Linux, tastați următoarea comandă.
comanda route afișează și manipulează și tabelul de rutare ip. Pentru a vedea tabelul de rutare implicit în Linux, tastați următoarea comandă.


# traseu
# route
Tabelul de rutare IP al nucleului
Tabelul de rutare IP al nucleului
  Destination Gateway Genmask Flags Metric Ref Utilizare Iface
  Destination Gateway Genmask Flags Metric Ref Utilizare Iface
  192.168.50.0 * 255.255.255.0 U 0 0 0 eth0
  192.168.50.0 * 255.255.255.0 U 0 0 0 eth0
  link-local * 255.255.0.0 U 1002 0 0 eth0
  link-local * 255.255.0.0 U 1002 0 0 eth0
  default 192.168.50.1 0.0.0.0 UG 0 0 0 eth0
  default 192.168.50.1 0.0.0.0 UG 0 0 0 eth0
Adăugarea, ștergerea rutelor și Gateway implicit cu următoarele comenzi.
Adăugarea, ștergerea rutelor și Gateway implicit cu următoarele comenzi.


Linia 363: Linia 364:


==Management retea nivel 1 - NetworkManager==
==Management retea nivel 1 - NetworkManager==
NetworkManager este un program pentru furnizarea de detectii si configurarea sistemelor pentru a se conecta automat la retele. Funcționalitatea NetworkManager poate fi utilă atât pentru rețelele wireless, cât și pentru cele cu fir. Pentru rețelele wireless, NetworkManager preferă rețelele wireless cunoscute și are capacitatea de a trece la cea mai fiabilă rețea. Aplicațiile NetworkManager-aware pot comuta din modul online și offline. NetworkManager preferă, de asemenea, conexiunile prin cablu față de cele wireless, are suport pentru conexiunile modem și anumite tipuri de VPN. NetworkManager a fost dezvoltat inițial de Red Hat și acum este găzduit de proiectul GNOME.
Avertisment: implicit, secrete (de exemplu. Parolele WiFi) sunt accesibile utilizatorului root din sistemul de fișiere și utilizatorilor cu acces la setări prin intermediul GUI (de exemplu nm-applet).
Instalare
Network Manager poate fi instalat cu pachetul Networkmanager, care conține un daemon, o interfață de linie de comandă (nmcli) și o interfață bazată pe blestem (nmtui).
Activarea Manageri De Rețea
După instalare, ar trebui să început/activ NetworkManager.service. . Odată ce demonul NetworkManager este pornit, acesta se va conecta automat la orice "conexiuni de sistem" disponibile care au fost deja configurate. Orice "conexiuni de utilizare" sau conexiuni neconfigurate vor avea nevoie Nmcli sau un applet pentru a configura și conecta.
Notă:
Acest articol sau secțiune este un candidat pentru fuziunea cu configurația rețelei.
Note: Serviciile de rețea contradictorii sunt o problemă generică care nu este specifică NetworkManager. (Discuție în Talk:NetworkManager)
    Trebuie să vă asigurați că niciun alt serviciu care dorește să configureze rețeaua nu funcționează; de fapt, mai multe servicii de rețea vor intra în conflict. Puteți găsi o listă cu serviciile care rulează în prezent systemctl --type=service şi apoi Op, opriri Ei. Vezi #Configurație pentru a activa serviciul NetworkManager.
    Dacă nu este pornită, un mesaj de eroare va începe să vă inunde buștenii. A se vedea #Unit dbus-org.freedesktop.resolve1.service negăsit pentru mai multe informații.
Interfațe suplimentare
    nm-connection-editor pentru o interfață grafică de utilizator,
    rețea-manager-applet pentru un mert de tavă de sistem (nm-applet).
Suport mobil în bandă largă
NetworkManager utilizează ModemManager pentru suportul mobil pentru conexiune în bandă largă.
Instalați modemmanager Și usb_modeswitch.
S-ar putea să fie necesar repornită NetworkManager.service pentru a detecta ModemManager. După ce îl reporniți, re-conectați din nou modemul și trebuie recunoscut.
Adăugați conexiuni de la un front-end (de exemplu nm-connection-editornm-connection-editor) și selectați bandă largă mobilă ca tip de conexiune. După selectarea ISP-ului și a planului de facturare, APN și alte setări trebuie completate automat folosind informații de la mobile-broadband-provider-infomobil-bandă-furnizor-furnizor-info.
Suport PPPOE / DSL
Instalați Rp-poe Pachet pentru suport pentru conexiune PPPoE / DSL. Pentru a adăuga efectiv conexiunea PPPoE, utilizați nm-connection-editor şi se adaugă noua conexiune DSL/PPPoE.
Suport pentru VPN
NetworkManager de la versiunea 1.16 are suport nativ pentru WireGuard, tot ce are nevoie este wireguard Modulul de sâmbure. Citește WireGuard în NetworkManager blog post Pentru detalii.
Suportul pentru alte tipuri VPN se bazează pe un sistem plug-in. Acestea sunt furnizate în următoarele pachete:
    networkman-openconnect-ul pentru OpenConnect
    Networkmanage-openvn pentru OpenVPN
    networkmanager-pptpnetworkmanager-ptp pentru clientul PPTP
    Networkmanager-strongswan pentru StrongSwan
    networkman-vpnc
    Networkmanager-fortisslvpn AUR
    networkman-iodine-git AUR
    networkman-libreswan AUR
    networkman-l2tp
    networkmanager-ssh-gitnetworkmanager-ssh-gt AUR
    rețea-manager-stp
Atenție: Există o mulțime de bug-uri legate de suportul VPN. Verificați opțiunile de procesare a lui Daemon setat prin GUI corect și verificați de două ori cu fiecare versiune de pachet.
Notă:
Pentru a avea o rezoluție DNS pe deplin funcțională atunci când utilizați VPN, ar trebui să configurați o redresare condiționată.
Este posibil ca aceste plug-in-in-uri să nu aibă o interfață documentată a liniei de comandă sau nu pot funcționa deloc fără un lucru de un lucru de uni. Aceasta nu este o problemă dacă utilizați un mediu desktop obișnuit; dacă nu sunteți, ar trebui să rulați #nm-applet în timp ce configurați sau activați conexiunea, astfel încât să obțineți dialogurile necesare. [1]
Utilizare
Network Manager vine cu nmcli(1) și nmtui(1).
Exemple nmcli
Listați rețelele Wi-Fi din apropiere:
$ nmcli device wifi list
Conectați-vă la o rețea Wi-Fi:
$ nmcli device wifi connect SSID_or_BSSID password password
Conectați-vă la o rețea Wi-Fi ascunsă:
$ nmcli device wifi connect SSID_or_BSSID password password hidden yes
Obțineți o listă de conexiuni cu numele, UI-urile, tipurile și dispozitivele de susținere:
$ nmcli connection show
Activați o conexiune (conectați-vă la o rețea cu un profil existent):
$ nmcli connection up name_or_uuid
Ștergerea unei conexiuni:
$ nmcli connection delete name_or_uuid
Vezi o listă de dispozitive de rețea și starea acestora:
$ nmcli device
Opriți Wi-Fi:
$ nmcli radio wifi off
Editarea unei conexiuni
Pentru o listă cuprinzătoare de setări, consultați nm-set-uri (5).
În primul rând, trebuie să obțineți o listă de conexiuni:
<pre>
$ nmcli connection
NAME                UUID                                  TYPE      DEVICE
Wired connection 2  e7054040-a421-3bef-965d-bb7d60b7cecf  ethernet  enp5s0
Wired connection 1  997f2782-f0fc-301d-bfba-15421a2735d8  ethernet  enp0s25
MY-HOME-WIFI-5G    92a0f7b3-2eba-49ab-a899-24d83978f308  wifi      --
</pre>
Aici puteți utiliza prima coloană ca conexiune-id utilizată mai târziu. În acest exemplu, alegem Wired connection 2 Ca o conexiune-id.
Ai trei metode pentru a configura o conexiune Wired connection 2 După ce a fost creat:
<pre>
nmcli interactive editor
    nmcli connection edit 'Wired connection 2'.
    Usage is well documented from the editor.
nmcli command line interface
    nmcli connection modify 'Wired connection 2' setting.property value. See nmcli(1) for usage. For example, you can change its IPv4 route metric to 200 using nmcli connection modify 'Wired connection 2' ipv4.route-metric 200 command.
To remove a setting, pass an empty field ("") to it like this:
    nmcli connection modify 'Wired connection 2' setting.property ""
Fișier de conectare
    În /etc/NetworkManager/system-connections/, modificați corespunzătorul Wired connection 2.nmconnection fișier.
    Nu uitați să reîncărcați fișierul de configurare cu nmcli connection reload.
</pre>
==Management retea nivel 2 - Netplan==
==Management retea nivel 2 - Netplan==
Tutorial de configurare a rețelei Netplan pentru începători
Netplan este o utilitate dezvoltată de Canonical, compania din spatele Ubuntu. Acesta oferă o abstracție de configurare a rețelei față de cel doi sisteme "backend" susținut în prezent networkd și NetworkManager. Folosind Netplan, atât interfețele de rețea fizice, cât și cele virtuale sunt configurate prin intermediul fișierelor yaml care sunt traduse în configurații compatibile cu backend-ul selectat.
În acest articol aflăm despre Netplan și vedem cum îl putem folosi pentru a configura interfețele de rețea pe versiunile recente ale Ubuntu.
În acest tutorial veți afla:
-Structura de bază a fișierelor de configurare a yam-ului utilizată de Netplan
-Cum să creați o regulă simplă pentru a atribui un IP static unei interfețe de rețea
-Cum să testeze și să aplicați o configurație netplan
Tutorial de configurare a rețelei Netplan pentru începători
Cerințele software și convențiile Linux Command Line Categorie Cerințe, convenții sau versiune software utilizată
Sistem Ubuntu > = 20.04
Software-ul Netplan (instalat în mod implicit)
Fișiere de configurare a planului Net
De când Ubuntu 20.4 Netplan a înlocuit metoda tradițională de configurare a interfețelor de rețea folosind /etc/network/interfacesfile; își propune să facă lucrurile mai ușoare și mai centralizate (modul vechi de configurare a interfețelor poate fi încă utilizat: verificați articolul nostru despre Cum să comutați înapoi rețeaua la /etc/network/interfețe pe Ubuntu 20.04 Focal Fossa Linux).
Există trei locații în care fișierele de configurare Netplan pot fi plasate. În ordinea priorității sunt:
    /run/netplan
    /etc/netplan
    /lib/netplan
Prezentare generală
În interiorul fiecăreia dintre aceste directoare, configurațiile sunt create folosind fișiere cu extensia .yaml care sunt procesate în ordine lexicografice, indiferent de direcția în care se află. Prioritatea directorului are un rol numai atunci când există dosare cu acelaşi nume: în aceste cazuri, numai dosarul conţinut în directoarea cu prioritate mai mare este parsat. Dacă un parametru boolean sau scalar este definit în mai multe fișiere de configurare, presupune valoarea pe care o are în ultimul fișier care este analizat; dacă valorile sunt secvențe, în schimb, acestea sunt îngnântate.
Utilizatorii ar trebui să-și plasez configurațiile în interiorul /etc/netplanRegizorul. În mod implicit, sunt singurele fișiere prezente pe un sistem nou instalat Ubuntu 24.04 /etc/netplan/01-network-manager-all.yamlȘi /etc/netplan/50-cloud-init.yaml. . Să aruncăm o privire la instrucțiunile pe care le conțin.
Fișierul /etc/netplan/01-rework-manage-all.yaml
Primul fișier de configurare pe care îl putem găsi în /etc/netplan/Directory este 01-network-manager-all.yaml. Acesta conține următoarele instrucțiuni:
<pre>
# Let NetworkManager gestionează toate dispozitivele din acest sistem
rețea:
  Versiune: 2
  Randare: NetworkManager
</pre>
După cum sugerează comentariul din fișier, configurația este utilizată pentru a permite redatorului NetworkManager să gestioneze toate interfețele de rețea din sistem. Putem observa că directivele sunt indentate în interiorul cheii principale, network. . Din moment ce avem de-a face cu dosare de yaml, indentarea este crucială.
Celelalte două cuvinte cheie pe care le putem găsi în fișier sunt versionȘi renderer: prima indică versiunea de sintaxă în utilizare, aceasta din urmă este utilizată pentru a specifica randarea pe care dorim să o folosim.
Fișierul /etc/netplan/50-cloud-init.yam
Al doilea dosar din /etc/netplan este 50-cloud-init.yaml. Acest fișier este generat de cloud-init, un instrument creat de Canonical pentru a efectua inițializări și personalizări timpurii ale sistemelor Linux. Iată conținutul fișierului pe cazul meu virtualizat de la Ubuntu:
<pre>
# This file is generated from information provided by the datasource. Changes
# to it will not persist across an instance reboot. To disable cloud-init's
# network configuration capabilities, write a file
# /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following:
# network: {config: disabled}
network:
    ethernets:
        enp1s0:
            dhcp4: true
    version: 2
</pre>
Ce realizează această configurație? Acesta permite dhcp pentru adresele IPv4 de pe enp1s0Interfaţă de reţea, care este singura de pe maşina mea. După cum se menționează în comentariile de la începutul dosarului, modificările aduse acestei configurații nu vor supraviețui unei „reporniri la distanță”. Acest lucru nu înseamnă că fișierul va fi resetat la fiecare repornire, dar aceste modificări nu vor persista dacă cloud-initul nu a rulat încă (se execută la prima cizmă - acest mesaj are sens în contextul sistemelor de bază pentru containere și medii similare) sau dacă forțez o reluare, care este o operațiune potențial distructivă.
În toate cazurile, pentru a preveni configurarea rețelei cloud, tot ce trebuie să facem este să creăm /etc/cloud/cloud.cfg.d/99-disable-network-config.cfgfișierul cu următorul conținut:
network: {config: disabled}
O putem face rulând:
$ echo "network: {config: disabled}" | sudo tee /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg
În următoarea secțiune a acestui tutorial vom crea un exemplu de configurare puțin mai complex și îl vom folosi pentru a atribui o adresă IPv4 statică unei interfețe de rețea.
Un exemplu de configurare – setarea unei adrese IPv4 statice
Fișierele de configurare pe care le-am văzut până acum sunt destul de elementare; să încercăm ceva puțin mai complex și să vedem cum putem configura o adresă IPv4 statică folosind Netplan. Primul lucru pe care trebuie să-l facem este să creăm un nou fișier de configurare pentru a fi analizat după cele implicite. Pentru moment, o depozităm ca /tmp/60-static-ip.yml. . În interiorul fișierului, creăm o regulă pentru a se potrivi cu interfața (interfețele) de rețea pe care dorim să le configuram utilizând matchCartografierea, în care specificăm proprietățile interfețelor de rețea și valorile acestora ca perechi de valori cheie. Toate acestea trebuie să se potrivească cu regula care urmează să fie aplicată:
<pre>
# Set static ip address for enp1s0 interface
network:
    version: 2
    renderer: NetworkManager
    ethernets:
        id0:
            match:
                name: enp1s0
            dhcp4: false
            addresses:
                - 192.168.122.250/24
            nameservers:
                addresses:
                    - 192.168.122.1
            routes:
                - to: default
                  via: 192.168.122.1
</pre>
Să aruncăm o privire mai atentă la noile instrucțiuni pe care le-am folosit în configurație. În interiorul principalului networkNod, dispozitivele pot fi grupate după tipul lor:
    ethernets
    wifis
    bridges
Deoarece în exemplul nostru avem de-a face cu o interfață de ethernet, am folosit ethernets. . Înăuntrul matchCartografierea, am făcut referire la interfaţă după numele său: enp1s0. . Regulile de meci se pot baza și pe macaddressşi numai când se utilizează networkdCa redatorul, pe driverCare este numele de driverenel Linux folosit pentru dispozitiv (dispozitive).
Deoarece scopul nostru a fost să atribuim o adresă statică, ne-am dezactivat dhcp4 .Setându-l la „fals” și a folosit addressesCheia pentru a asocia o adresă IPv4 la interfață. Adresele multiple pot fi specificate; acestea trebuie să fie furnizate împreună cu masca lor subnet.
De asemenea, am stabilit adresele nameservers în cartografierea corespunzătoare. În cele din urmă, setăm adresa IPv4 a gateway-ului pentru a fi utilizată de interfață prin intermediul routescheie, care acceptă o secvență de cartografiere ca valoare. În fiecare dintre aceste cartografieri, putem folosi to, cuvânt cheie pentru a specifica adresa de destinație pentru traseu (aici „introvant” este un alias pentru 0.0.0.0), și viapentru a specifica adresa gateway. În versiunile anterioare ale Netplan, IP-ul de gateway static a fost configurat prin intermediul gateway4Cheia, dar acum este depreciată.
Simplificarea configurației
Configurația pe care am folosit-o în exemplul de mai sus poate fi simplificată. Pentru a face referire la interfața la care dorim să atribuim adresa statică, am folosit-o matchDar puteam să-l omitem. Deoarece dorim ca setările noastre să fie aplicate unei singure interfețe specifice, putem face referire direct la utilizarea numelui său previzibil ca și id:
<pre>
network:
    version: 2
    renderer: NetworkManager
    ethernets:
        enp1s0:
            dhcp4: false
            addresses:
                - 192.168.122.250/24
            nameservers:
                addresses:
                    - 192.168.122.1
            routes:
                - to: default
                  via: 192.168.122.1
</pre>
Când match este utilizat, id-ul (id0 în exemplul anterior) este arbitrar și este utilizat pentru a face referire la dispozitivul (dispozitivele) configurat (dispozitivele) configurate din alte secțiuni ale fișierului de configurare; când matcheste omis, în schimb, id-ul trebuie să corespundă numelui previzibil al dispozitivului. În acest moment configurația noastră este gata; tot ce ar trebui să facem este să o testăm și să o aplicăm.
Testarea și aplicarea unei configurații Netplan
Este timpul să ne testăm configurația și să vedem dacă funcționează corect. Pentru a ne atinge obiectivul putem folosi netplanUtilitatea și utilitatea trySubcommand, care, după cum sugerează și numele său, este folosit pentru a încerca o configurație și a o arunca opțional după o anumită perioadă de timp (timpul implicit este de 120 de secunde, dar poate fi schimbat folosind --timeoutOpțiunea).
După cum puteți vedea din ieșirea din ieșirea ip addresscomanda, adresa IPv4 curentă a enp1s0Interfața este 192.168.122.200: :
$ ip addr|grep enp1s0
2: enp1s0: <BROADCAST, MULLICAST,UP, LLOWER_UP> mtu 1500 q q_codel stat grup UP implicit qlen 1000
    inet 192.168.22.200/24 brd 192.168.122.255 de domeniul dinamic global noprefixroute enp1s0
Să încercăm configurația pe care am creat-o în pasul precedent. Trecem de calea fișierului de configurare ca argument față de --config-fileOpțiune:
# netplan try -config-file /tmp/60-static-ip.yaml
Odată ce conducem comanda, următoarea solicitare apare pe ecran:
Doriți să păstrați aceste setări?
Apăsați ENTER înainte de timeout pentru a accepta noua configurație
Modificările vor reveni în 120 de secunde
Avem suficient timp pentru ca adresa IP a interfeței să se schimbe.
ip addr | grep ep1s0
2: enp1s0: <BROADCAST, MULLICAST,UP, LLOWER_UP> mtu 1500 q q_codel stat grup UP implicit qlen 1000
    inet 192.168.22.225/24 brd 192.168.22.255 domeniu de aplicare dinamica globală noprefixroute enp1s00
După cum putem vedea, adresa IPv4 s-a schimbat conform așteptărilor. În acest moment, dacă suntem mulțumiți de rezultatul configurației noastre, putem apăsa „Intra” la prompt, iar fișierul de configurare va fi copiat sub /etc/netplanDirectory, cu un sufix aleatoriu. Dacă nu vrem să acceptăm schimbările, așteptăm comanda la timeout, sau, dacă este posibil, să o întrerupem prin apăsarea CTRL+c.
Pentru a aplica configurația fără a încerca mai întâi, putem copia fișierul direct sub /etc/netplandirector, și emite netplan apply.
Concluzii
În acest tutorial am abordat Netplan, un utilitar dezvoltat de Canonical pentru a abstracta configurația interfețelor de rețea folosind fișiere yaml. Netplan este activ în mod implicit de la Ubuntu 20.04 Focal Fosă. În acest tutorial am văzut cum să scriem o regulă simplă pentru a seta o adresă IP statică pentru o interfață de rețea și am văzut cum să testăm și să aplicăm modificări prin intermediul tryȘi applySubcommandități ale utilitarei netplan. Abia am zgâriat suprafața a ceea ce se poate realiza folosind Netplan; dacă doriți să știți mai multe despre aceasta, vă rugăm să aruncați o privire la site-ul Netplan și la manpage-ul utilitarului.


=Tabelele (filtre) de retea=
=Tabelele (filtre) de retea=
==nivel 1 - iptables (legacy)==
==nivel 1 - iptables (legacy)==


Instrucțiuni de bază pentru iptables
Instrucțiuni de bază pentru iptables

Versiunea de la data 31 octombrie 2024 18:47

Servicii de rețea Linux și securitate

Comenzi generale de rețea

Capitolul comenzi de rețea explică diverse instrumente care pot fi utile atunci când conectați cu alte computere atât în ​​rețea, cât și pe internet, obținând mai multe informații despre alte computere. Acest capitol include, de asemenea, informații despre instrumentele pentru configurarea rețelei, transferul de fișiere și lucrul cu mașini la distanță.

netstat Afișează conținutul fișierelor /proc/net. Funcționează cu subsistemul de rețea Linux, vă va spune care este starea porturilor, adică. legături deschise, închise, în așteptare, mascarade. De asemenea, va afișa diverse alte lucruri. Are multe opțiuni diferite.

tcpdump Acesta este un sniffer, un program care captează pachete dintr-o interfață de rețea și le interpretează pentru tine. Înțelege toate protocoalele de bază ale internetului și poate fi folosit pentru a salva pachete întregi pentru inspecție ulterioară.

Sintaxa de baza:

Filtrarea gazdelor:

- Potriviți orice trafic care implică 192.168.1.1 ca destinație sau sursă

# tcpdump -i eth1 host 192.168.1.1

- Doar sursa, la fel

# tcpdump -i eth1 src host 192.168.1.1

- Doar ca destinație

# tcpdump -i eth1 dst host 192.168.1.1


Porturi de filtrare:

- Potriviți orice trafic care implică portul 25 ca sursă sau destinație

# tcpdump -i eth1 port 25

- Sursa

# tcpdump -i eth1 src port 25

- Destinație

# tcpdump -i eth1 dst port 25

Filtrarea rețelei:

# tcpdump -i eth1 net 192.168
# tcpdump -i eth1 src net 192.168
# tcpdump -i eth1 dst net 192.168

Filtrarea protocolului:

# tcpdump -i eth1 arp
# tcpdump -i eth1 ip
# tcpdump -i eth1 tcp
# tcpdump -i eth1 udp
# tcpdump -i eth1 icmp

ping

Comanda ping (numită după sunetul unui sistem sonar activ) trimite cereri de ecou gazdei pe care o specificați pe linia de comandă și enumeră răspunsurile primite, durata călătoriei dus-întors.

Pur și simplu utilizați ping ca:

ping ip_or_host_name

Rețineți că pentru a opri ping-ul (altfel va merge pentru totdeauna) utilizați CTRL-C (break).

Vă rugăm să rețineți: utilizarea ping/smbmount/ssh sau a altor programe de sistem UNIX cu un nume de computer și nu cu o adresă IP va funcționa numai dacă aveți computerul listat în fișierul /etc/hosts. Iată un exemplu:

192.168.1.100 nou

Această linie spune că este un computer numit „nou” cu adresa IP 192.168.1.100. Acum că există în fișierul /etc/hosts, nu mai trebuie să introduc adresa IP, ci doar numele „nou”. nume de gazdă spune utilizatorului numele de gazdă al computerului la care este conectat. Notă: poate fi numit gazdă.

traceroute traceroute va arăta traseul unui pachet. Încearcă să listeze seria de gazde prin care pachetele dvs. călătoresc în drum spre o anumită destinație. Aruncă o privire și la xtraceroute (unul dintre mai multe echivalente grafice ale acestui program).

Sintaxa comenzii:

traceroute nume_sau_ip_mașină:port

nmap

„instrument de explorare a rețelei și scaner de securitate”. nmap este un instrument de rețea foarte avansat folosit pentru a interoga mașinile (locale sau la distanță) dacă sunt active și ce porturi sunt deschise pe aceste mașini.

Un exemplu simplu de utilizare:

nmap nume_mașină

Acest lucru ar interoga propria mașină cu privire la porturile pe care le păstrează deschise. nmap este un instrument foarte puternic, documentația este disponibilă pe site-ul nmapprecum și informațiile din pagina de manual.

Configurarea rețelei

ifconfig

Această comandă este utilizată pentru a configura interfețele de rețea sau pentru a afișa configurația lor curentă. Pe lângă activarea și dezactivarea interfețelor cu setările „sus” și „jos”, această comandă este necesară pentru setarea informațiilor despre adresa unei interfețe dacă nu aveți scriptul ifcfg. Utilizați ifconfig fie ca:

ifconfig

Aceasta va lista pur și simplu toate informațiile de pe toate dispozitivele de rețea aflate în prezent.

ifconfig eth0 down

Acest lucru va opri eth0 (presupunând că dispozitivul există) în jos, nu va putea primi sau trimite nimic până când nu puneți dispozitivul din nou „up”.

În mod clar, există mult mai multe opțiuni pentru acest instrument, va trebui să citiți manualul/pagina de informații pentru a afla mai multe despre ele.

ifup

Utilizați ifup nume-dispozitiv pentru a afișa o interfață urmând un script (care va conține setările dvs. implicite de rețea). Pur și simplu tastați ifup și veți primi ajutor pentru utilizarea scriptului. De exemplu tastarea:

ifup eth0

Va aduce eth0 în sus dacă este în prezent dezactivat. ifdown Utilizați ifdown nume-dispozitiv pentru a reduce o interfață folosind un script (care va conține setările implicite de rețea). Pur și simplu tastați ifdown și veți primi ajutor pentru utilizarea scriptului.

De exemplu tastarea:

ifdown eth0

Va reduce eth0 dacă este în prezent sus.

ifcfg

Utilizați ifcfg pentru a configura o anumită interfață. Pur și simplu tastați ifcfg pentru a obține ajutor cu privire la utilizarea acestui script.

De exemplu, pentru a schimba eth0 de la 192.168.0.1 la 192.168.0.2, puteți face:

ifcfg eth0 del 192.168.0.1
ifcfg eth0 add 192.168.0.2

Prima comandă elimină eth0 și elimină acea adresă IP stocată, iar a doua o aduce înapoi cu noua adresă.

route

Comanda de rutare este instrumentul folosit pentru a afișa sau modifica tabelul de rutare. Pentru a adăuga o poartă ca implicită, ar trebui să tastați:

route add default gw some_computer


Comenzi specifice internetului

Rețineți că, dacă DNS-ul nu este configurat corect pe computer, trebuie să editați „/etc/resolv.conf” pentru a face lucrurile să funcționeze...

host Efectuează o căutare simplă a unei adrese de internet (folosind sistemul de nume de domeniu, DNS). Pur și simplu tastați:

host adresa_ip
sau
host nume_domeniu

dig Instrumentul „domain information groper”. Mai avansat decât host. Dacă dați un nume de gazdă ca argument pentru a scoate informații despre gazda respectivă, inclusiv adresa IP, numele de gazdă și diverse alte informații.

De exemplu, pentru a căuta informații despre „www.amazon.com” tastați:

dig www.amazon.com

Pentru a găsi numele gazdei pentru o anumită adresă IP (adică o căutare inversă), utilizați dig cu opțiunea „-x”.

dig -x 100.42.30.95

Aceasta va căuta adresa (care poate să existe sau nu) și va returna adresa gazdei, de exemplu, dacă aceasta a fost adresa „http://slashdot.org”, atunci ar returna „http://slashdot. org”.

whois (acum BW whois) este folosit pentru a căuta informațiile de contact din bazele de date „whois”, serverele sunt susceptibile să dețină numai site-uri importante. Rețineți că este posibil ca informațiile de contact să fie ascunse sau restricționate, deoarece sunt adesea abuzate de către crackeri și alții care caută o modalitate de a provoca daune rău intenționate organizației.

wget (GNU Web get) folosit pentru a descărca fișiere de pe World Wide Web.

Pentru a arhiva un singur site web, utilizați opțiunea -m sau --mirror (oglindă).

Utilizați opțiunea -nc (fără clobber) pentru a opri wget să suprascrie un fișier dacă îl aveți deja.

Utilizați opțiunea -c sau --continue pentru a continua un fișier care a fost neterminat de wget sau de un alt program.

Exemplu simplu de utilizare:

wget url_for_file

Acest lucru ar obține pur și simplu un fișier de pe un site. wget poate, de asemenea, să recupereze mai multe fișiere folosind metacaracterele standard, la fel ca tipul folosit în bash, cum ar fi *, [ ], ?. Pur și simplu utilizați wget ca de obicei, dar utilizați ghilimele simple (' ') pe adresa URL pentru a preveni extinderea bash-urilor. Există complicații dacă preluați de pe un site http (vezi mai jos...).

Exemplu de utilizare avansată, (utilizat din pagina de manual wget):

wget --spider --force-html -i bookmarks.html

Aceasta va analiza fișierul bookmarks.html și va verifica dacă toate linkurile există.

Utilizare avansată: acesta este modul în care puteți descărca mai multe fișiere folosind http (folosind un wildcard...). Note: http nu acceptă descărcarea folosind metacaracterele standard, ftp face, așa că puteți folosi metacaracterele cu ftp și va funcționa bine. O soluție pentru această limitare http este prezentată mai jos:

wget -r -l1 --no-parent -A.gif http://www.website.com[1]

Aceasta se va descărca (recursiv), la o adâncime de unu, cu alte cuvinte în directorul curent și nu mai jos. Această comandă va ignora referințele la directorul părinte și va descărca orice se termină în „.gif”. Dacă doriți să descărcați, spuneți orice se termină cu „.pdf” și adăugați un -A.pdf înainte de adresa site-ului web. Pur și simplu schimbați adresa site-ului web și tipul de fișier descărcat pentru a descărca altceva. Rețineți că a face -A.gif este același lucru cu a face -A „*.gif” (doar ghilimele duble, ghilimele simple nu vor funcționa). wget are multe mai multe opțiuni, consultați secțiunea de exemple a paginii de manual, acest instrument este foarte bine documentat.

Poate doriți să încercați alternative precum httrack. Un program complet de descărcare a site-ului GUI scris în python și disponibil pentru GNU/Linux. Aria2 (aria2c), pentru descarcarea unui fisier cu mai multe conexiuni sau dupa un model.

curl curl este un alt program de descărcare de la distanță. Acest program de descărcare de la distanță este proiectat să funcționeze fără interacțiunea utilizatorului și acceptă o varietate de protocoale, poate încărca/descărca și are un număr mare de trucuri/soluții pentru diverse lucruri. Poate accesa servere de dicționar (dict), servere ldap, ftp, http, gopher, consultați pagina de manual pentru detalii complete. Pentru a accesa manualul complet (care este uriaș) pentru acest tip de comandă:

curl -M

Pentru uz general, îl puteți folosi ca wget. De asemenea, vă puteți autentifica folosind un nume de utilizator utilizând opțiunea -u și introducând numele de utilizator și parola astfel:

curl -u nume utilizator:parolă http://www.placetodownload/file

Pentru a încărca folosind ftp opțiunea -T:

curl -T nume_fișier ftp://ftp.uploadsite.com

Pentru a continua descarcarea unui fișier, utilizați opțiunea -C:

curl -C - -o fișier http://www.site.com


Administrarea la distanță

ssh

Shell securizat, conectați-vă de la distanță pe o mașină care rulează daemonul sshd. Odată ce v-ați conectat, aveți un shell securizat și puteți executa diverse comenzi pe acel computer, cum ar fi să copiați fișiere, să reporniți computerul, la fel cum ar fi propriul dvs. computer GNU/Linux. Sau puteți utiliza ssh cu un nume de gazdă complet pentru a vă conecta la o mașină de la distanță (ca pe internet).

Exemple:

ssh user@hostname

Conectați-vă la un sistem de la distanță cu numele dvs. de utilizator actual, evident veți avea nevoie de parola utilizatorului de pe cealaltă mașină. ssh nume utilizator@nume gazd

scp

Copie securizată, parte a pachetului ssh. Vă permite să copiați fișiere de pe un computer pe alt computer, utilizați -r pentru a copia recursiv (copiați directoare și subdirectoare întregi).

Sintaxa lui scp este întotdeauna

scp machineToBeCopiedFrom machineToBeCopiedTo

Unde fiecare mașină poate fi un director local (pe sistemul de fișiere curent /) sau o mașină la distanță. Mașinile de la distanță sunt de obicei machinesFullName:/directory (dacă omiteți partea de director, va presupune doar directorul principal al numelui de utilizator cu care vă conectați).

Exemplul de mai jos copiază toate fișierele din directorul curent (fără a include niciun director), comanda se va autentifica la „nou” folosind numele de utilizator al persoanei conectate în prezent pe computerul local, fișierele vor fi copiate în directorul rădăcină al computer la distanță numit „nou” (care este probabil pe LAN):

scp * nou:/

De asemenea, puteți copia fișiere de pe alt computer pe alt computer. Să presupunem că sunteți pe un computer numit „p100”. Și doriți să copiați fișierele (și directoarele) din „hp166” (în directorul /tmp și orice de mai jos) în „nou” și să puneți fișierele în directorul temporar al lui new. Ai putea face:

scp -r hp166:/tmp nou:/tmp

Presupunând că ați fost conectat ca „fred”, veți avea nevoie de parole pentru utilizatorul „fred” pe computerele hp166 și noi. Adăugați un user_name@ înaintea numelui computerului pentru a vă conecta sub un alt nume de utilizator.

De exemplu, pentru a efectua comanda de mai sus cu utilizatorul „root” pe hp166 și „anon” pe new, ar trebui să tastați:

scp -r root@hp166:/tmp anon@new:/tmp

Pentru a copia de la o mașină la distanță pe un computer local, pur și simplu faceți lucrurile invers:

scp remoteMachine:/mystuff/* .

Acest lucru va copia fișierele de pe mașina de la distanță din directorul „mystuff” pe computerul dvs. local.

Vă rugăm să rețineți că atunci când lucrați cu o mașină la distanță, trebuie să aveți un : (coloană) după numele mașinii, chiar dacă doriți fișierele în directorul lor principal. În caz contrar, comanda va eșua.

sftp

FTP securizat, o altă parte a pachetului ssh. Această comandă este similară cu ftp, dar folosește un tunel criptat pentru a se conecta la un server ftp și, prin urmare, este mai sigură decât simplu ftp.

Utilizarea comenzii este foarte asemănătoare cu ftp (instrumentul din linia de comandă), sftp (odată ce rulează) folosește comenzi precum help (pentru ajutor), put (trimite fișiere la server), get (descărcă fișiere de pe server) și diverse alții, consultați pagina de manual și documentația internă pentru mai multe detalii.



Fișiere de configurare a rețelei TCP/IP Linux:

/etc/resolv.conf Listați serverele DNS pentru rezoluția numelor de domeniu de internet.

/etc/hosts, hosts.allow, hosts.deny Listează gazde care urmează să fie rezolvate local (nu prin DNS).

Red Hat/Fedora/CentOS: /etc/sysconfig/network Specificați configurația rețelei. de ex. IP static, DHCP, NIS etc.

Red Hat/Fedora/CentOS: /etc/sysconfig/network-scripts/ifcfg-device Specificați informațiile de rețea TCP.

Ubuntu/Debian: /etc/network/interfaces Specificați configurația rețelei și dispozitivele. de ex. IP static și informații, DHCP etc.


Alocarea adresei IP statice:

Alegeți una dintre următoarele metode:

   • Linia de comandă:
   /sbin/ifconfig eth0 192.168.10.12 netmask 255.255.255.0 broadcast 192.168.10.255    

Adresa de rețea prin convenție ar fi cea mai mică: 192.168.10.0 Adresa de difuzare prin convenție ar fi cea mai mare: 192.168.10.255 Gateway-ul poate fi orice, dar următoarea convenție: 192.168.10.1


Notă: cele mai înalte și cele mai mici adrese sunt bazate pe masca de rețea. Exemplul anterior se bazează pe o mască de rețea de 255.255.255.0 Fișiere de configurare IP Ubuntu / Debian:

Fișier: /etc/network/interfaces
Exemplu de IP static:
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
        adresa 208.88.34.106
        mască de rețea 255.255.255.248
        difuzat 208.88.34.111
        reteaua 208.88.34.104
        gateway 208.88.34.110
Exemplu de IP dinamic (DHCP):
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet dhcp

Atribuiți mai mult de o adresă IP unei plăci Ethernet:


ifconfig eth0 XXX.XXX.XXX.XXX masca de rețea 255.255.255.0 difuzat XXX.XXX.XXX.255
ifconfig eth0:0 192.168.10.12 netmask 255.255.255.0 difuzare 192.168.10.255
ifconfig eth0:1 192.168.10.14 netmask 255.255.255.0 difuzare 192.168.10.255
 
route add -host XXX.XXX.XXX.XXX dev eth0
route add -host 192.168.10.12 dev eth0
route add -host 192.168.10.14 dev eth0
În acest exemplu, 0 și 1 sunt aliasuri în plus față de eth0 obișnuit. Rezultatul comenzii ifconfig:
          eth0 Link encap:Ethernet HWaddr 00:10:4C:25:7A:3F  
          adresa inet:XXX.XXX.XXX.XXX Bcast:XXX.XXX.XXX.255 Masca:255.255.255.0
          UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
          Pachete RX:14218 erori:0 dropped:0 overruns:0 frame:0
          Pachete TX:1362 erori:0 dropped:0 overruns:0 carrier:0
          coliziuni:1 txqueuelen:100
          Întreruperea: 5 Adresa de bază: 0xe400

eth0:0 Link Encap:Ethernet HWaddr 00:10:4C:25:7A:3F  
          inet adresa:192.168.10.12 Bcast:192.168.10.255 Masca:255.255.255.0
          UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
          Întreruperea: 5 Adresa de bază: 0xe400

eth0:1 Link Encap:Ethernet HWaddr 00:10:4C:25:7A:3F  
          inet adresa:192.168.10.14 Bcast:192.168.10.255 Masca:255.255.255.0
          UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
          Întreruperea: 5 Adresa de bază: 0xe400
Fișier de configurare: /etc/sysconfig/network-scripts/ifcfg-eth0:0
DEVICE=eth0:0
ONBOOT=da
BOOTPROTO=static
Broadcast=192.168.10.255
IPADDR=192.168.10.12
NETMASK=255.255.255.0
NETWORK=192.168.10.0
ONBOOT=da

Aliasurile pot fi, de asemenea, închise independent. adică: ifdown eth0:0

Route: Sistemul de operare Linux gestionează traficul IP de ieșire și de intrare (Internet Protocol). Traficul de intrare este captat pe baza configurației ARP și a adresei IP. Traficul de ieșire este gestionat de rute. Rutarea determină calea pe care o parcurg aceste pachete, astfel încât să fie trimise la destinațiile lor. Acest lucru este necesar pentru tot traficul IP, local și la distanță, inclusiv atunci când sunt disponibile mai multe interfețe de rețea. Rutele sunt deținute de tabelul de rutare a nucleului.

Intrările în tabelul de rutare directă apar atunci când gazdele sursă și destinație sunt în aceeași rețea fizică și pachetele sunt trimise direct de la sursă la destinație.

Intrările în tabelul de rutare indirectă apar atunci când gazdele sursă și destinație sunt pe rețele fizice diferite. Gazda destinație trebuie să fie atinsă prin unul sau mai multe gateway-uri IP. Primul gateway este singurul care este cunoscut de sistemul gazdă.

Rutarea implicită definește un gateway de utilizat atunci când ruta directă a rețelei și rutele gazdă indirecte nu sunt definite pentru o anumită adresă IP.

Rute statice:IP folosește un tabel de rutare pentru a determina unde trebuie trimise pachetele. Mai întâi pachetul este examinat pentru a vedea dacă destinația lui este pentru rețeaua locală sau la distanță. Dacă urmează să fie trimis la o rețea la distanță, tabelul de rutare este consultat pentru a determina calea. Dacă nu există informații în tabelul de rutare, atunci pachetul este trimis către gateway-ul implicit. Rutele statice sunt setate cu comanda ruta.

Comanda ROUTE comanda route afișează și manipulează și tabelul de rutare ip. Pentru a vedea tabelul de rutare implicit în Linux, tastați următoarea comandă.

# route
Tabelul de rutare IP al nucleului
Destination Gateway Genmask Flags Metric Ref Utilizare Iface
192.168.50.0 * 255.255.255.0 U 0 0 0 eth0
link-local * 255.255.0.0 U 1002 0 0 eth0
default 192.168.50.1 0.0.0.0 UG 0 0 0 eth0

Adăugarea, ștergerea rutelor și Gateway implicit cu următoarele comenzi.

Adăugarea rutei

# route add -net 10.10.10.0/24 gw 192.168.0.1

Ștergerea traseului

# route del -net 10.10.10.0/24 gw 192.168.0.1

Adăugarea gateway-ului implicit

# route add default gw 192.168.0.1


ICMP: ICMP este protocolul de rețea folosit de comenzile ping și traceroute. Blocarea ICMP și aspectul invizibil pentru ping: Următoarele reguli de firewall vor elimina solicitările ICMP.

iptables -A OUTPUT -p icmp -d 0/0 -j DROP

Folosind tcpdump pentru a monitoriza rețeaua:

[root]# ifconfig eth0 promisc - Pune nic în modul promiscuu pentru a mirosi traficul.
[root]# tcpdump -n host not XXX.XXX.XXX.XXX | more - Sniff net, dar ignora IP care este sesiunea ta la distanță.


Management retea nivel 1 - NetworkManager

NetworkManager este un program pentru furnizarea de detectii si configurarea sistemelor pentru a se conecta automat la retele. Funcționalitatea NetworkManager poate fi utilă atât pentru rețelele wireless, cât și pentru cele cu fir. Pentru rețelele wireless, NetworkManager preferă rețelele wireless cunoscute și are capacitatea de a trece la cea mai fiabilă rețea. Aplicațiile NetworkManager-aware pot comuta din modul online și offline. NetworkManager preferă, de asemenea, conexiunile prin cablu față de cele wireless, are suport pentru conexiunile modem și anumite tipuri de VPN. NetworkManager a fost dezvoltat inițial de Red Hat și acum este găzduit de proiectul GNOME. Avertisment: implicit, secrete (de exemplu. Parolele WiFi) sunt accesibile utilizatorului root din sistemul de fișiere și utilizatorilor cu acces la setări prin intermediul GUI (de exemplu nm-applet). Instalare

Network Manager poate fi instalat cu pachetul Networkmanager, care conține un daemon, o interfață de linie de comandă (nmcli) și o interfață bazată pe blestem (nmtui). Activarea Manageri De Rețea

După instalare, ar trebui să început/activ NetworkManager.service. . Odată ce demonul NetworkManager este pornit, acesta se va conecta automat la orice "conexiuni de sistem" disponibile care au fost deja configurate. Orice "conexiuni de utilizare" sau conexiuni neconfigurate vor avea nevoie Nmcli sau un applet pentru a configura și conecta. Notă:

Acest articol sau secțiune este un candidat pentru fuziunea cu configurația rețelei. Note: Serviciile de rețea contradictorii sunt o problemă generică care nu este specifică NetworkManager. (Discuție în Talk:NetworkManager)

   Trebuie să vă asigurați că niciun alt serviciu care dorește să configureze rețeaua nu funcționează; de fapt, mai multe servicii de rețea vor intra în conflict. Puteți găsi o listă cu serviciile care rulează în prezent systemctl --type=service şi apoi Op, opriri Ei. Vezi #Configurație pentru a activa serviciul NetworkManager.
   Dacă nu este pornită, un mesaj de eroare va începe să vă inunde buștenii. A se vedea #Unit dbus-org.freedesktop.resolve1.service negăsit pentru mai multe informații.

Interfațe suplimentare

   nm-connection-editor pentru o interfață grafică de utilizator,
   rețea-manager-applet pentru un mert de tavă de sistem (nm-applet).

Suport mobil în bandă largă

NetworkManager utilizează ModemManager pentru suportul mobil pentru conexiune în bandă largă.

Instalați modemmanager Și usb_modeswitch.

S-ar putea să fie necesar repornită NetworkManager.service pentru a detecta ModemManager. După ce îl reporniți, re-conectați din nou modemul și trebuie recunoscut.

Adăugați conexiuni de la un front-end (de exemplu nm-connection-editornm-connection-editor) și selectați bandă largă mobilă ca tip de conexiune. După selectarea ISP-ului și a planului de facturare, APN și alte setări trebuie completate automat folosind informații de la mobile-broadband-provider-infomobil-bandă-furnizor-furnizor-info. Suport PPPOE / DSL

Instalați Rp-poe Pachet pentru suport pentru conexiune PPPoE / DSL. Pentru a adăuga efectiv conexiunea PPPoE, utilizați nm-connection-editor şi se adaugă noua conexiune DSL/PPPoE. Suport pentru VPN

NetworkManager de la versiunea 1.16 are suport nativ pentru WireGuard, tot ce are nevoie este wireguard Modulul de sâmbure. Citește WireGuard în NetworkManager blog post Pentru detalii.

Suportul pentru alte tipuri VPN se bazează pe un sistem plug-in. Acestea sunt furnizate în următoarele pachete:

   networkman-openconnect-ul pentru OpenConnect
   Networkmanage-openvn pentru OpenVPN
   networkmanager-pptpnetworkmanager-ptp pentru clientul PPTP
   Networkmanager-strongswan pentru StrongSwan
   networkman-vpnc
   Networkmanager-fortisslvpn AUR
   networkman-iodine-git AUR
   networkman-libreswan AUR
   networkman-l2tp
   networkmanager-ssh-gitnetworkmanager-ssh-gt AUR
   rețea-manager-stp

Atenție: Există o mulțime de bug-uri legate de suportul VPN. Verificați opțiunile de procesare a lui Daemon setat prin GUI corect și verificați de două ori cu fiecare versiune de pachet. Notă: Pentru a avea o rezoluție DNS pe deplin funcțională atunci când utilizați VPN, ar trebui să configurați o redresare condiționată. Este posibil ca aceste plug-in-in-uri să nu aibă o interfață documentată a liniei de comandă sau nu pot funcționa deloc fără un lucru de un lucru de uni. Aceasta nu este o problemă dacă utilizați un mediu desktop obișnuit; dacă nu sunteți, ar trebui să rulați #nm-applet în timp ce configurați sau activați conexiunea, astfel încât să obțineți dialogurile necesare. [1]

Utilizare

Network Manager vine cu nmcli(1) și nmtui(1). Exemple nmcli

Listați rețelele Wi-Fi din apropiere:

$ nmcli device wifi list

Conectați-vă la o rețea Wi-Fi:

$ nmcli device wifi connect SSID_or_BSSID password password

Conectați-vă la o rețea Wi-Fi ascunsă:

$ nmcli device wifi connect SSID_or_BSSID password password hidden yes

Obțineți o listă de conexiuni cu numele, UI-urile, tipurile și dispozitivele de susținere:

$ nmcli connection show

Activați o conexiune (conectați-vă la o rețea cu un profil existent):

$ nmcli connection up name_or_uuid

Ștergerea unei conexiuni:

$ nmcli connection delete name_or_uuid

Vezi o listă de dispozitive de rețea și starea acestora:

$ nmcli device

Opriți Wi-Fi:

$ nmcli radio wifi off

Editarea unei conexiuni

Pentru o listă cuprinzătoare de setări, consultați nm-set-uri (5).

În primul rând, trebuie să obțineți o listă de conexiuni:

$ nmcli connection

NAME                UUID                                  TYPE      DEVICE
Wired connection 2  e7054040-a421-3bef-965d-bb7d60b7cecf  ethernet  enp5s0
Wired connection 1  997f2782-f0fc-301d-bfba-15421a2735d8  ethernet  enp0s25
MY-HOME-WIFI-5G     92a0f7b3-2eba-49ab-a899-24d83978f308  wifi       --

Aici puteți utiliza prima coloană ca conexiune-id utilizată mai târziu. În acest exemplu, alegem Wired connection 2 Ca o conexiune-id.

Ai trei metode pentru a configura o conexiune Wired connection 2 După ce a fost creat:

nmcli interactive editor
    nmcli connection edit 'Wired connection 2'.
    Usage is well documented from the editor.

nmcli command line interface
    nmcli connection modify 'Wired connection 2' setting.property value. See nmcli(1) for usage. For example, you can change its IPv4 route metric to 200 using nmcli connection modify 'Wired connection 2' ipv4.route-metric 200 command.

To remove a setting, pass an empty field ("") to it like this:

    nmcli connection modify 'Wired connection 2' setting.property ""

Fișier de conectare
    În /etc/NetworkManager/system-connections/, modificați corespunzătorul Wired connection 2.nmconnection fișier.
    Nu uitați să reîncărcați fișierul de configurare cu nmcli connection reload.

Management retea nivel 2 - Netplan

Tutorial de configurare a rețelei Netplan pentru începători

Netplan este o utilitate dezvoltată de Canonical, compania din spatele Ubuntu. Acesta oferă o abstracție de configurare a rețelei față de cel doi sisteme "backend" susținut în prezent networkd și NetworkManager. Folosind Netplan, atât interfețele de rețea fizice, cât și cele virtuale sunt configurate prin intermediul fișierelor yaml care sunt traduse în configurații compatibile cu backend-ul selectat.

În acest articol aflăm despre Netplan și vedem cum îl putem folosi pentru a configura interfețele de rețea pe versiunile recente ale Ubuntu.

În acest tutorial veți afla:

-Structura de bază a fișierelor de configurare a yam-ului utilizată de Netplan -Cum să creați o regulă simplă pentru a atribui un IP static unei interfețe de rețea -Cum să testeze și să aplicați o configurație netplan

Tutorial de configurare a rețelei Netplan pentru începători

Cerințele software și convențiile Linux Command Line Categorie Cerințe, convenții sau versiune software utilizată

Sistem Ubuntu > = 20.04

Software-ul Netplan (instalat în mod implicit)

Fișiere de configurare a planului Net

De când Ubuntu 20.4 Netplan a înlocuit metoda tradițională de configurare a interfețelor de rețea folosind /etc/network/interfacesfile; își propune să facă lucrurile mai ușoare și mai centralizate (modul vechi de configurare a interfețelor poate fi încă utilizat: verificați articolul nostru despre Cum să comutați înapoi rețeaua la /etc/network/interfețe pe Ubuntu 20.04 Focal Fossa Linux).

Există trei locații în care fișierele de configurare Netplan pot fi plasate. În ordinea priorității sunt:

   /run/netplan
   /etc/netplan
   /lib/netplan

Prezentare generală

În interiorul fiecăreia dintre aceste directoare, configurațiile sunt create folosind fișiere cu extensia .yaml care sunt procesate în ordine lexicografice, indiferent de direcția în care se află. Prioritatea directorului are un rol numai atunci când există dosare cu acelaşi nume: în aceste cazuri, numai dosarul conţinut în directoarea cu prioritate mai mare este parsat. Dacă un parametru boolean sau scalar este definit în mai multe fișiere de configurare, presupune valoarea pe care o are în ultimul fișier care este analizat; dacă valorile sunt secvențe, în schimb, acestea sunt îngnântate.

Utilizatorii ar trebui să-și plasez configurațiile în interiorul /etc/netplanRegizorul. În mod implicit, sunt singurele fișiere prezente pe un sistem nou instalat Ubuntu 24.04 /etc/netplan/01-network-manager-all.yamlȘi /etc/netplan/50-cloud-init.yaml. . Să aruncăm o privire la instrucțiunile pe care le conțin. Fișierul /etc/netplan/01-rework-manage-all.yaml

Primul fișier de configurare pe care îl putem găsi în /etc/netplan/Directory este 01-network-manager-all.yaml. Acesta conține următoarele instrucțiuni:

# Let NetworkManager gestionează toate dispozitivele din acest sistem
rețea:
  Versiune: 2
  Randare: NetworkManager

După cum sugerează comentariul din fișier, configurația este utilizată pentru a permite redatorului NetworkManager să gestioneze toate interfețele de rețea din sistem. Putem observa că directivele sunt indentate în interiorul cheii principale, network. . Din moment ce avem de-a face cu dosare de yaml, indentarea este crucială.

Celelalte două cuvinte cheie pe care le putem găsi în fișier sunt versionȘi renderer: prima indică versiunea de sintaxă în utilizare, aceasta din urmă este utilizată pentru a specifica randarea pe care dorim să o folosim.

Fișierul /etc/netplan/50-cloud-init.yam

Al doilea dosar din /etc/netplan este 50-cloud-init.yaml. Acest fișier este generat de cloud-init, un instrument creat de Canonical pentru a efectua inițializări și personalizări timpurii ale sistemelor Linux. Iată conținutul fișierului pe cazul meu virtualizat de la Ubuntu:

# This file is generated from information provided by the datasource. Changes
# to it will not persist across an instance reboot. To disable cloud-init's
# network configuration capabilities, write a file
# /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following:
# network: {config: disabled}
network:
    ethernets:
        enp1s0:
            dhcp4: true
    version: 2

Ce realizează această configurație? Acesta permite dhcp pentru adresele IPv4 de pe enp1s0Interfaţă de reţea, care este singura de pe maşina mea. După cum se menționează în comentariile de la începutul dosarului, modificările aduse acestei configurații nu vor supraviețui unei „reporniri la distanță”. Acest lucru nu înseamnă că fișierul va fi resetat la fiecare repornire, dar aceste modificări nu vor persista dacă cloud-initul nu a rulat încă (se execută la prima cizmă - acest mesaj are sens în contextul sistemelor de bază pentru containere și medii similare) sau dacă forțez o reluare, care este o operațiune potențial distructivă.

În toate cazurile, pentru a preveni configurarea rețelei cloud, tot ce trebuie să facem este să creăm /etc/cloud/cloud.cfg.d/99-disable-network-config.cfgfișierul cu următorul conținut:

network: {config: disabled}

O putem face rulând:

$ echo "network: {config: disabled}" | sudo tee /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg

În următoarea secțiune a acestui tutorial vom crea un exemplu de configurare puțin mai complex și îl vom folosi pentru a atribui o adresă IPv4 statică unei interfețe de rețea. Un exemplu de configurare – setarea unei adrese IPv4 statice

Fișierele de configurare pe care le-am văzut până acum sunt destul de elementare; să încercăm ceva puțin mai complex și să vedem cum putem configura o adresă IPv4 statică folosind Netplan. Primul lucru pe care trebuie să-l facem este să creăm un nou fișier de configurare pentru a fi analizat după cele implicite. Pentru moment, o depozităm ca /tmp/60-static-ip.yml. . În interiorul fișierului, creăm o regulă pentru a se potrivi cu interfața (interfețele) de rețea pe care dorim să le configuram utilizând matchCartografierea, în care specificăm proprietățile interfețelor de rețea și valorile acestora ca perechi de valori cheie. Toate acestea trebuie să se potrivească cu regula care urmează să fie aplicată:


# Set static ip address for enp1s0 interface
network:
    version: 2
    renderer: NetworkManager
    ethernets:
        id0:
            match:
                name: enp1s0
            dhcp4: false
            addresses:
                - 192.168.122.250/24
            nameservers:
                addresses:
                    - 192.168.122.1
            routes:
                - to: default
                  via: 192.168.122.1

Să aruncăm o privire mai atentă la noile instrucțiuni pe care le-am folosit în configurație. În interiorul principalului networkNod, dispozitivele pot fi grupate după tipul lor:

   ethernets
   wifis
   bridges

Deoarece în exemplul nostru avem de-a face cu o interfață de ethernet, am folosit ethernets. . Înăuntrul matchCartografierea, am făcut referire la interfaţă după numele său: enp1s0. . Regulile de meci se pot baza și pe macaddressşi numai când se utilizează networkdCa redatorul, pe driverCare este numele de driverenel Linux folosit pentru dispozitiv (dispozitive).

Deoarece scopul nostru a fost să atribuim o adresă statică, ne-am dezactivat dhcp4 .Setându-l la „fals” și a folosit addressesCheia pentru a asocia o adresă IPv4 la interfață. Adresele multiple pot fi specificate; acestea trebuie să fie furnizate împreună cu masca lor subnet.

De asemenea, am stabilit adresele nameservers în cartografierea corespunzătoare. În cele din urmă, setăm adresa IPv4 a gateway-ului pentru a fi utilizată de interfață prin intermediul routescheie, care acceptă o secvență de cartografiere ca valoare. În fiecare dintre aceste cartografieri, putem folosi to, cuvânt cheie pentru a specifica adresa de destinație pentru traseu (aici „introvant” este un alias pentru 0.0.0.0), și viapentru a specifica adresa gateway. În versiunile anterioare ale Netplan, IP-ul de gateway static a fost configurat prin intermediul gateway4Cheia, dar acum este depreciată.

Simplificarea configurației

Configurația pe care am folosit-o în exemplul de mai sus poate fi simplificată. Pentru a face referire la interfața la care dorim să atribuim adresa statică, am folosit-o matchDar puteam să-l omitem. Deoarece dorim ca setările noastre să fie aplicate unei singure interfețe specifice, putem face referire direct la utilizarea numelui său previzibil ca și id:


network:
    version: 2
    renderer: NetworkManager
    ethernets:
        enp1s0:
            dhcp4: false
            addresses:
                - 192.168.122.250/24
            nameservers:
                addresses:
                    - 192.168.122.1
            routes:
                - to: default
                  via: 192.168.122.1

Când match este utilizat, id-ul (id0 în exemplul anterior) este arbitrar și este utilizat pentru a face referire la dispozitivul (dispozitivele) configurat (dispozitivele) configurate din alte secțiuni ale fișierului de configurare; când matcheste omis, în schimb, id-ul trebuie să corespundă numelui previzibil al dispozitivului. În acest moment configurația noastră este gata; tot ce ar trebui să facem este să o testăm și să o aplicăm. Testarea și aplicarea unei configurații Netplan

Este timpul să ne testăm configurația și să vedem dacă funcționează corect. Pentru a ne atinge obiectivul putem folosi netplanUtilitatea și utilitatea trySubcommand, care, după cum sugerează și numele său, este folosit pentru a încerca o configurație și a o arunca opțional după o anumită perioadă de timp (timpul implicit este de 120 de secunde, dar poate fi schimbat folosind --timeoutOpțiunea).

După cum puteți vedea din ieșirea din ieșirea ip addresscomanda, adresa IPv4 curentă a enp1s0Interfața este 192.168.122.200: :

$ ip addr|grep enp1s0
2: enp1s0: <BROADCAST, MULLICAST,UP, LLOWER_UP> mtu 1500 q q_codel stat grup UP implicit qlen 1000
    inet 192.168.22.200/24 brd 192.168.122.255 de domeniul dinamic global noprefixroute enp1s0

Să încercăm configurația pe care am creat-o în pasul precedent. Trecem de calea fișierului de configurare ca argument față de --config-fileOpțiune:

# netplan try -config-file /tmp/60-static-ip.yaml

Odată ce conducem comanda, următoarea solicitare apare pe ecran:

Doriți să păstrați aceste setări?

Apăsați ENTER înainte de timeout pentru a accepta noua configurație

Modificările vor reveni în 120 de secunde

Avem suficient timp pentru ca adresa IP a interfeței să se schimbe.

ip addr | grep ep1s0
2: enp1s0: <BROADCAST, MULLICAST,UP, LLOWER_UP> mtu 1500 q q_codel stat grup UP implicit qlen 1000
    inet 192.168.22.225/24 brd 192.168.22.255 domeniu de aplicare dinamica globală noprefixroute enp1s00

După cum putem vedea, adresa IPv4 s-a schimbat conform așteptărilor. În acest moment, dacă suntem mulțumiți de rezultatul configurației noastre, putem apăsa „Intra” la prompt, iar fișierul de configurare va fi copiat sub /etc/netplanDirectory, cu un sufix aleatoriu. Dacă nu vrem să acceptăm schimbările, așteptăm comanda la timeout, sau, dacă este posibil, să o întrerupem prin apăsarea CTRL+c.

Pentru a aplica configurația fără a încerca mai întâi, putem copia fișierul direct sub /etc/netplandirector, și emite netplan apply.

Concluzii

În acest tutorial am abordat Netplan, un utilitar dezvoltat de Canonical pentru a abstracta configurația interfețelor de rețea folosind fișiere yaml. Netplan este activ în mod implicit de la Ubuntu 20.04 Focal Fosă. În acest tutorial am văzut cum să scriem o regulă simplă pentru a seta o adresă IP statică pentru o interfață de rețea și am văzut cum să testăm și să aplicăm modificări prin intermediul tryȘi applySubcommandități ale utilitarei netplan. Abia am zgâriat suprafața a ceea ce se poate realiza folosind Netplan; dacă doriți să știți mai multe despre aceasta, vă rugăm să aruncați o privire la site-ul Netplan și la manpage-ul utilitarului.

Tabelele (filtre) de retea

nivel 1 - iptables (legacy)

Instrucțiuni de bază pentru iptables Iptables este un firewall, instalat implicit pe toate distribuțiile oficiale Ubuntu. Există o mulțime de informații disponibile despre iptables, dar multe dintre ele sunt destul de complexe și, dacă doriți să faceți câteva lucruri de bază, acest How To este pentru dvs.

Comenzi de bază Tastarea

sudo iptables -L

listează regulile tale curente în iptables. Dacă tocmai v-ați configurat serverul, nu veți avea reguli și ar trebui să vedeți INTRARE în lanț (politica ACCEPTĂ)

target prot opt ​​sursă destinație

Lanț FORWARD (politica ACCEPT)

target prot opt ​​sursă destinație

Ieșire în lanț (politica ACCEPT)

target prot opt ​​sursă destinație

Opțiuni de bază pentru Iptables Iată explicații pentru unele dintre opțiunile iptables pe care le veți vedea în acest tutorial. Nu vă faceți griji că înțelegeți totul aici acum, dar amintiți-vă să reveniți și să priviți această listă pe măsură ce întâlniți noi opțiuni mai târziu.

    • -A - Adăugați această regulă la un lanț de reguli. Lanțurile valide pentru ceea ce facem sunt INPUT, FORWARD și OUTPUT, dar în mare parte ne ocupăm de INPUT în acest tutorial, care afectează doar traficul de intrare.
    • -L - Listează regulile curente de filtrare.
    • -m conntrack - Permite regulilor de filtrare să se potrivească în funcție de starea conexiunii. Permite utilizarea opțiunii --ctstate.
    • --ctstate - Definiți lista de stări cu care să se potrivească regula. Stările valide sunt:
        ◦ NOU - Conexiunea nu a fost încă văzută.
        ◦ RELATED - Conexiunea este nouă, dar este legată de o altă conexiune deja permisă.
        ◦ STABILIT - Conexiunea este deja stabilită.
        ◦ INVALID - Traficul nu a putut fi identificat dintr-un motiv oarecare.
    • -m limit - Solicită ca regula să se potrivească doar de un număr limitat de ori. Permite utilizarea opțiunii --limit. Util pentru limitarea regulilor de logare.
        ◦ --limit - Rata maximă de potrivire, dată ca număr urmat de „/secundă”, „/minut”, „/oră” sau „/zi”, în funcție de cât de des doriți să se potrivească regula. Dacă această opțiune nu este utilizată și este utilizată limita -m, valoarea implicită este „3/oră”.
    • -p - Protocolul de conectare utilizat.
    • --dport - Portul (porturile) de destinație necesare pentru această regulă. Poate fi dat un singur port sau poate fi dat un interval ca start:end, care se va potrivi cu toate porturile de la început până la sfârșit, inclusiv.
    • -j - Salt la ținta specificată. Implicit, iptables permite patru ținte:
        ◦ ACCEPT - Acceptați pachetul și opriți procesarea regulilor din acest lanț.
        ◦ REJECT - Respingeți pachetul și notificați expeditorul că am făcut acest lucru și opriți procesarea regulilor din acest lanț.
        ◦ DROP - Ignorați în tăcere pachetul și opriți procesarea regulilor din acest lanț.
        ◦ LOG - Înregistrați pachetul și continuați să procesați mai multe reguli în acest lanț. Permite utilizarea opțiunilor --log-prefix și --log-level.
    • --log-prefix - Când vă conectați, puneți acest text înaintea mesajului de jurnal. Folosiți ghilimele duble în jurul textului de utilizat.
    • --log-level - Log utilizând nivelul syslog specificat. 7 este o alegere bună, cu excepția cazului în care aveți nevoie de altceva.
    • -i - Se potrivește numai dacă pachetul vine pe interfața specificată.
    • -I - Inserează o regulă. Este nevoie de două opțiuni, lanțul în care să insereze regula și numărul regulii care ar trebui să fie.
        ◦ -I INPUT 5 ar introduce regula în lanțul INPUT și o face a 5-a regulă din listă.
    • -v - Afișează mai multe informații în rezultat. Util pentru dacă aveți reguli care arată similar fără a utiliza -v.
    • -s --source - adresa[/mask] specificarea sursei
    • -d --destination - adresa[/mask] specificația destinației
    • -o --out-interface - nume de ieșire[+] nume de interfață de rețea ([+] pentru wildcard)

Permiterea sesiunilor stabilite Putem permite sesiunilor stabilite să primească trafic: sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

   • Regula de mai sus nu are spații pe fiecare parte a virgulei în ESTABLISHED,RELATED

Dacă linia de mai sus nu funcționează, este posibil să fiți pe un VPS castrat al cărui furnizor nu a pus la dispoziție extensia, caz în care o versiune inferioară poate fi folosită ca ultimă soluție:

sudo iptables -A INPUT -m stare --state ESTABLISHED,RELATED -j ACCEPT

Permiterea traficului de intrare pe anumite porturi Ați putea începe prin a bloca traficul, dar este posibil să lucrați prin SSH, unde ar trebui să permiteți SSH înainte de a bloca orice altceva. Pentru a permite traficul de intrare pe portul SSH implicit (22), ați putea spune iptables să permită intrarea întregului trafic TCP de pe acel port.

sudo iptables -A INTRARE -p tcp --dport ssh -j ACCEPT

Referindu-ne la lista de mai sus, puteți vedea că aceasta spune iptables:

   • adăugați această regulă la lanțul de intrare (-A INPUT) astfel încât să ne uităm la traficul de intrare
   • verificați dacă este TCP (-p tcp).
   • dacă da, verificați pentru a vedea dacă intrarea merge la portul SSH (--dport ssh).
   • dacă da, acceptați intrarea (-j ACCEPT).

Să verificăm regulile: (afișate doar primele câteva rânduri, vei vedea mai multe)

sudo iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     all  --  anywhere             anywhere            state RELATED,ESTABLISHED
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:ssh
Now, let's allow all incoming web traffic 
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
Checking our rules, we have 
sudo iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     all  --  anywhere             anywhere            state RELATED,ESTABLISHED
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:ssh
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:www

Am permis în mod special traficul tcp către porturile ssh și web, dar, deoarece nu am blocat nimic, tot traficul poate intra în continuare.

Blocarea traficului Odată ce este luată decizia de a accepta un pachet, nu mai există reguli care îl afectează. Întrucât regulile noastre care permit traficul ssh și web sunt pe primul loc, atâta timp cât regula noastră de a bloca tot traficul vine după ele, putem totuși să acceptăm traficul pe care îl dorim. Tot ce trebuie să facem este să punem regula de a bloca tot traficul la sfârșit.

sudo iptables -A INPUT -j DROP
sudo iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     all  --  anywhere             anywhere            state RELATED,ESTABLISHED
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:ssh
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:www
DROP       all  --  anywhere             anywhere

Deoarece nu am specificat o interfață sau un protocol, orice trafic pentru orice port de pe orice interfață este blocat, cu excepția web și ssh.

Editarea iptables Singura problemă cu configurația noastră de până acum este că chiar și portul loopback este blocat. Am fi putut scrie regula drop doar pentru eth0 specificând -i eth0, dar am putea adăuga și o regulă pentru loopback. Dacă anexăm această regulă, va veni prea târziu - după ce tot traficul a fost eliminat. Trebuie să introducem această regulă înainte de asta. Deoarece acesta este mult trafic, îl vom introduce ca primă regulă, astfel încât să fie procesat mai întâi.

sudo iptables -I INPUT 1 -i lo -j ACCEPT
sudo iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     all  --  anywhere             anywhere
ACCEPT     all  --  anywhere             anywhere            state RELATED,ESTABLISHED
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:ssh
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:www
DROP       all  --  anywhere             anywhere

Prima și ultima linie arată aproape la fel, așa că vom enumera iptables mai detaliat.

sudo iptables -L -v
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 ACCEPT     all  --  lo     any     anywhere             anywhere
    0     0 ACCEPT     all  --  any    any     anywhere             anywhere            state RELATED,ESTABLISHED
    0     0 ACCEPT     tcp  --  any    any     anywhere             anywhere            tcp dpt:ssh
    0     0 ACCEPT     tcp  --  any    any     anywhere             anywhere            tcp dpt:www
    0     0 DROP       all  --  any    any     anywhere             anywhere

Acum puteți vedea mult mai multe informații. Această regulă este de fapt foarte importantă, deoarece multe programe folosesc interfața loopback pentru a comunica între ele. Dacă nu le lași să vorbească, ai putea rupe acele programe! Înregistrare În exemplele de mai sus, niciunul din trafic nu va fi înregistrat. Dacă doriți să înregistrați pachetele abandonate în syslog, aceasta ar fi cea mai rapidă modalitate: sudo iptables -I INPUT 5 -m limit --limit 5/min -j LOG --log-prefix "iptables denied: " --log-level 7

Tipuri de lanțuri

iptables folosește trei lanțuri diferite: intrare, înainte și ieșire. (INPUT,FORWARD,OUTPUT) Intrare – Acest lanț este folosit pentru a controla comportamentul conexiunilor de intrare. De exemplu, dacă un utilizator încearcă să facă SSH pe PC/server, iptables va încerca să potrivească adresa IP și portul cu o regulă din lanțul de intrare. Redirecționare – Acest lanț este utilizat pentru conexiunile de intrare care nu sunt de fapt livrate local. Gândiți-vă la un router – datele îi sunt întotdeauna trimise, dar rareori sunt destinate ruterului în sine; datele sunt doar redirecționate către ținta sa.

Dacă nu faci un fel de rutare, NATing sau altceva pe sistemul tău care necesită redirecționare, nici măcar nu vei folosi acest lanț. Există o modalitate sigură de a verifica dacă sistemul dvs. utilizează sau nu are nevoie de lanțul înainte.

iptables -L -v

Captura de ecran de mai sus este a unui server care rulează de câteva săptămâni și nu are restricții privind conexiunile de intrare sau de ieșire. După cum puteți vedea, lanțul de intrare a procesat 11 GB de pachete, iar lanțul de ieșire a procesat 17 GB. Lanțul înainte, pe de altă parte, nu a fost nevoie să proceseze un singur pachet. Acest lucru se datorează faptului că serverul nu efectuează niciun fel de redirecționare sau este utilizat ca dispozitiv de trecere.

Ieșire – Acest lanț este utilizat pentru conexiunile de ieșire. De exemplu, dacă încercați să ping howtogeek.com, iptables își va verifica lanțul de ieșire pentru a vedea care sunt regulile referitoare la ping și howtogeek.com înainte de a lua o decizie de a permite sau de a refuza încercarea de conectare.

Comportamentul implicit al lanțului de politici Înainte de a intra și de a configura reguli specifice, veți dori să decideți care doriți să fie comportamentul implicit al celor trei lanțuri. Cu alte cuvinte, ce vrei să facă iptables dacă conexiunea nu se potrivește cu nicio regulă existentă? Pentru a vedea ceea ce lanțurile dvs. de politici sunt configurate în prezent cu traficul nepotrivit, executați comanda iptables -L.

După cum puteți vedea, am folosit și comanda grep pentru a ne oferi rezultate mai curate. În acea captură de ecran, se crede că lanțurile noastre acceptă trafic. De multe ori, veți dori ca sistemul dvs. să accepte conexiuni în mod implicit. Dacă nu ați modificat anterior regulile lanțului de politici, această setare ar trebui să fie deja configurată. În orice caz, iată comanda pentru a accepta conexiunile în mod implicit:

iptables --policy INPUT ACCEPT
iptables --policy OUTPUT ACCEPT
iptables --policy FORWARD ACCEPT

Implicitând regula de acceptare, puteți utiliza apoi iptables pentru a refuza anumite adrese IP sau numere de porturi, continuând să acceptați toate celelalte conexiuni. Vom ajunge la acele comenzi într-un minut. Dacă preferați să refuzați toate conexiunile și să specificați manual cărora doriți să le permiteți să se conecteze, ar trebui să modificați politica implicită a lanțurilor dvs. pentru a renunța. Acest lucru ar fi probabil util doar pentru serverele care conțin informații sensibile și care au întotdeauna aceleași adrese IP conectate la ele. iptables --policy INPUT DROPiptables --policy OUTPUT DROPiptables --policy FORWARD DROP

Răspunsuri specifice conexiunii Cu politicile implicite de lanț configurate, puteți începe să adăugați reguli la iptables, astfel încât să știe ce să facă atunci când întâlnește o conexiune de la sau către o anumită adresă IP sau port. În acest ghid, vom trece peste cele trei „răspunsuri” cele mai elementare și utilizate în mod obișnuit. Accept – Permite conexiunea. Renunțați – Renunțați la conexiunea, acționați ca și cum nu s-ar fi întâmplat niciodată. Acest lucru este cel mai bine dacă nu doriți ca sursa să realizeze că sistemul dvs. există. Respingere – Nu permiteți conexiunea, dar trimiteți înapoi o eroare. Acest lucru este cel mai bine dacă nu doriți ca o anumită sursă să se conecteze la sistemul dvs., dar doriți ca ei să știe că firewall-ul dvs. le-a blocat. Cel mai bun mod de a arăta diferența dintre aceste trei reguli este să arăți cum arată atunci când un PC încearcă să pună ping la o mașină Linux cu iptables configurat pentru fiecare dintre aceste setări.

Respingerea conexiunii:

Permiterea sau blocarea conexiunilor specifice Cu lanțurile de politici configurate, acum puteți configura iptables pentru a permite sau bloca anumite adrese, intervale de adrese și porturi. În aceste exemple, vom seta conexiunile la DROP, dar le puteți comuta la ACCEPT sau REJECT, în funcție de nevoile dvs. și de modul în care v-ați configurat lanțurile de politici. Notă: În aceste exemple, vom folosi iptables -A pentru a adăuga reguli la lanțul existent. iptables începe din partea de sus a listei sale și parcurge fiecare regulă până când găsește una care se potrivește. Dacă trebuie să inserați o regulă deasupra alteia, puteți utiliza iptables -I [lanț] [număr] pentru a specifica numărul pe care ar trebui să-l figureze în listă. Conexiuni de la o singură adresă IP

Acest exemplu arată cum să blocați toate conexiunile de la adresa IP 10.10.10.10.

iptables -A INPUT -s 10.10.10.10 -j DROP

Conexiuni de la o serie de adrese IP Acest exemplu arată cum să blocați toate adresele IP din intervalul de rețea 10.10.10.0/24. Puteți utiliza o mască de rețea sau o notație standard pentru a specifica intervalul de adrese IP.

iptables -A INPUT -s 10.10.10.0/24 -j DROP

sau

iptables -A INPUT -s 10.10.10.0/255.255.255.0 -j DROP

Conexiuni la un anumit port Acest exemplu arată cum să blocați conexiunile SSH din 10.10.10.10.

iptables -A INPUT -p tcp --dport ssh -s 10.10.10.10 -j DROP

Puteți înlocui „ssh” cu orice protocol sau număr de port. Partea -p tcp a codului spune iptables ce fel de conexiune folosește protocolul. Dacă ați blocat un protocol care utilizează UDP mai degrabă decât TCP, atunci ar fi necesar -p udp. Acest exemplu arată cum să blocați conexiunile SSH de la orice adresă IP.

iptables -A INPUT -p tcp --dport ssh -j DROP

Statele de conexiune După cum am menționat mai devreme, o mulțime de protocoale vor necesita comunicare în două sensuri. De exemplu, dacă doriți să permiteți conexiuni SSH la sistemul dvs., lanțurile de intrare și ieșire vor avea nevoie de o regulă adăugată la ele. Dar, ce se întâmplă dacă doriți doar ca SSH să intre în sistemul dvs. să fie permis? Adăugarea unei reguli la lanțul de ieșire nu va permite și încercările SSH de ieșire? Aici intervin stările de conexiune, care vă oferă capacitatea de care aveți nevoie pentru a permite comunicarea în două sensuri, dar permite stabilirea conexiunilor într-un singur sens. Uitați-vă la acest exemplu, unde conexiunile SSH DE LA 10.10.10.10 sunt permise, dar conexiunile SSH LA 10.10.10.10 nu sunt. Cu toate acestea, sistemului i se permite să trimită înapoi informații prin SSH atâta timp cât sesiunea a fost deja stabilită, ceea ce face posibilă comunicarea SSH între aceste două gazde.

iptables -A INPUT -p tcp --dport ssh -s 10.10.10.10 -m stare --state NOU,STABILIT -j ACCEPT
iptables -A OUTPUT -p tcp --sport 22 -d 10.10.10.10 -m stat --state ESTABLISHED -j ACCEPT

Salvarea modificărilor Modificările pe care le faceți regulilor dvs. iptables vor fi eliminate data viitoare când serviciul iptables va fi repornit, cu excepția cazului în care executați o comandă pentru a salva modificările. Această comandă poate diferi în funcție de distribuția dvs.:

sudo /sbin/iptables-save

Alte Comenzi Listați regulile iptables configurate în prezent: iptables -L Adăugarea opțiunii -v vă va oferi informații despre pachet și octet, iar adăugarea -n va lista totul numeric. Cu alte cuvinte – numele de gazdă, protocoalele și rețelele sunt listate ca numere. Pentru a șterge toate regulile configurate în prezent, puteți lansa comanda de golire. iptables -F

nivel 1 - nftables

Tabele:

se refera la unul dintre tipurile de tabele: ip (implicit), arp, ip6, bridge, inet, netdev.

% nft list tables [<family>]
% nft [-n] [-a] list table [<family>] <name>
% nft (add | delete | flush) table [<family>] <name>


The argument -n shows the addresses and other information that use names in numeric format. The -a argument is used to display each rule's handle (i.e., a numerical identifier).

Lanturi:

   filter: Supported by arp, bridge, ip, ip6 and inet table families.
   route: Mark packets (like mangle for the output hook, for other hooks use the type filter instead), supported by ip and ip6.
   nat: In order to perform Network Address Translation, supported by ip and ip6.

Hook: Se refera la stadiul acelui pachet in timp ce este procesat de kernel in Netfilter.

   The hooks for ip, ip6 and inet families are: prerouting, input, forward, output, postrouting.
   The hooks for arp family are: input, output.
   The bridge family handles ethernet packets traversing bridge devices.
   The hooks for netdev are: ingress, egress.

policy este verdictul pentru a controla cursul acelui pachet in lant si tabel. Posibile valori: accept (default) si drop.

 % nft (add | create) chain [<family>] <table> <name> [ \{ type <type> hook <hook> [device <device>] priority <priority> \; [policy <policy> \;] \} ]
 % nft (delete | list | flush) chain [<family>] <table> <name>
 % nft rename chain [<family>] <table> <name> <newname>

Reguli

Inserate la inceputul unui lant

 % nft add rule [<family>] <table> <chain> <matches> <statements>
 % nft insert rule [<family>] <table> <chain> [position <handle>] <matches> <statements>
 % nft replace rule [<family>] <table> <chain> [handle <handle>] <matches> <statements>
 % nft delete rule [<family>] <table> <chain> [handle <handle>]

Listeaza regulile

% nft list ruleset

Sterge regulile

% nft flush ruleset

Incarca reguli

Create a command batch file and load it with the nft interpreter,

% echo "flush ruleset" > /etc/nftables.rules
% echo "add table filter" >> /etc/nftables.rules
% echo "add chain filter input" >> /etc/nftables.rules
% echo "add rule filter input meta iifname lo accept" >> /etc/nftables.rules
% nft -f /etc/nftables.rules

or create an executable nft script file,

% cat << EOF > /etc/nftables.rules
> #!/usr/local/sbin/nft -f
> flush ruleset
> add table filter
> add chain filter input
> add rule filter input meta iifname lo accept
> EOF
% chmod u+x /etc/nftables.rules
% /etc/nftables.rules

or create an executable nft script file from an already created ruleset,

% nft list ruleset > /etc/nftables.rules
% nft flush ruleset
% nft -f /etc/nftables.rules

Exemple

Simple IP/IPv6 Firewall

flush ruleset

table firewall {
  chain incoming {
    type filter hook input priority 0; policy drop;

    # established/related connections
    ct state established,related accept

    # loopback interface
    iifname lo accept

    # icmp
    icmp type echo-request accept

    # open tcp ports: sshd (22), httpd (80)
    tcp dport { ssh, http } accept
  }
}

table ip6 firewall {
  chain incoming {
    type filter hook input priority 0; policy drop;

    # established/related connections
    ct state established,related accept

    # invalid connections
    ct state invalid drop

    # loopback interface
    iifname lo accept

    # icmp
    # routers may also want: mld-listener-query, nd-router-solicit
    icmpv6 type { echo-request, nd-neighbor-solicit } accept

    # open tcp ports: sshd (22), httpd (80)
    tcp dport { ssh, http } accept
  }
}

layer 2 - ufw

Introducere

UFW (Uncomplicated firewall) este un instrument de configurare firewall care rulează prin iptables/nftables, inclus în mod implicit în distribuțiile Ubuntu. Acesta oferă o interfață simplificată pentru configurarea cazurilor comune de utilizare a firewall-ului prin intermediul liniei de comandă.

Amintiți-vă că puteți verifica regulile actuale UFW cu sudo ufw status/ sudo ufw status verbose. Verificarea statutului UFW

sudo ufw status
Status: inactive

Activează UFW

sudo ufw enable
Firewall is active and enabled on system startup

Pentru a vedea ce este blocat sau permis în prezent, puteți utiliza verboseParametrul atunci când alergați ufw status, după cum urmează:

sudo ufw status
Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), deny (routed)
New profiles: skip

Dezactivarea UFW

sudo ufw disable

Fiți conștienți de faptul că această comandă va dezactiva pe deplin serviciul firewall pe sistemul dvs. Blocați o adresă IP

Pentru a bloca toate conexiunile de rețea care provin de la o anumită adresă IP, rulați următoarea comandă, înlocuind adresa IP evidențiată cu adresa IP pe care doriți să o blocați:

$ sudo ufw deny from 203.0.113.100
Rule added
$ ufw status
Status: active

To                         Action      From
--                         ------      ----
Anywhere                   DENY        203.0.113.100         

Toate conexiunile, care vin sau ies, sunt blocate pentru adresa IP specificată.

Blocarea unui subnet

Dacă trebuie să blocați un subnet complet, puteți utiliza adresa de subnet ca fromParametrul de pe ufw deny- Deţinere. Acest lucru ar bloca toate adresele IP în exemplul subnet 203.0.113.0/24: :

sudo ufw deny from 203.0.113.0/24
Rule added

Blocarea conexiunilor la o interfață de rețea

Pentru a bloca conexiunile de intrare de la o anumită adresă IP la o anumită interfață de rețea, rulați următoarea comandă, înlocuind adresa IP evidențiată cu adresa IP pe care doriți să o blocați:

sudo ufw deny in on eth0 from 203.0.113.100
Rule added

Permite o adresă IP

Pentru a permite toate conexiunile de rețea care provin de la o anumită adresă IP, rulați următoarea comandă, înlocuind adresa IP evidențiată cu adresa IP pe care doriți să o permiteți acces:

sudo ufw allow from 203.0.113.101
Rule added
ufw statusAcum, veți vedea o ieșire similară cu aceasta, arătând cuvântul ALLOWlângă adresa IP tocmai ați adăugat.
Output
Status: active 
To                         Action      From
--                         ------      ----
...          
Anywhere                   ALLOW       203.0.113.101 

De asemenea, puteți permite conexiuni de la un întreg subnet prin furnizarea de mască de subnet corespunzătoare pentru o gazdă, cum ar fi 203.0.113.0/24. . Permiteți conexiunile de intrare la o interfață de rețea

Pentru a permite conexiunile primite de la o anumită adresă IP la o anumită interfață de rețea, rulați următoarea comandă, înlocuiți adresa IP evidențiată cu adresa IP pe care doriți să o permiteți:

sudo ufw allow in on eth0 from 203.0.113.102
Rule added
Status: active
To                         Action      From
--                         ------      ----
...         
Anywhere on eth0           ALLOW       203.0.113.102            


Pentru a șterge o regulă pe care o configurați anterior în UFW, utilizați ufw deleteUrmat de regula ( allowsau deny) și specificația țintă. Următorul exemplu ar șterge o regulă stabilită anterior pentru a permite toate conexiunile de la o adresă IP a 203.0.113.101: :

sudo ufw delete allow from 203.0.113.101
Rule deleted

Un alt mod de a specifica ce regulă doriți să ștergeți este prin furnizarea de ID-ul de reguli. Aceste informatii pot fi obtinute cu urmatoarea comanda:

sudo ufw status numbered 
Status: active
     To                         Action      From
     --                         ------      ----
[ 1] Anywhere                   DENY IN     203.0.113.100             
[ 2] Anywhere on eth0           ALLOW IN    203.0.113.102             

Din ieșire, puteți vedea că există două reguli active. Prima regulă, cu valori evidențiate, neagă toate conexiunile care provin de la adresa IP 203.0.113.100. . A doua regulă permite conexiuni pe eth0interfaţă care vine de la adresa IP 203.0.113.102. .

Deoarece în mod implicit UFW blochează deja tot accesul extern, cu excepția cazului în care este permis în mod explicit, prima regulă este redundantă, astfel încât să o puteți elimina.

Listă Profiluri de Aplicatie Disponibile

La instalare, aplicațiile care se bazează pe comunicațiile de rețea vor configura de obicei un profil UFW pe care îl puteți utiliza pentru a permite conectarea de la adresele externe. Acest lucru este adesea la fel ca alergarea ufw allow from, cu avantajul de a furniza o scurtătură care absoarbe numerele specifice de port pe care un serviciu le utilizează și oferă o nomenclatură ușor de utilizat la serviciile de referință.

Pentru a lista profilurile disponibile în prezent, rulați următoarele:

   sudo ufw app list

Dacă ați instalat un serviciu, cum ar fi un server web sau alt software dependent de rețea și un profil nu a fost pus la dispoziție în cadrul UFW, asigurați-vă mai întâi că serviciul este activat. Pentru servere de la distanță, veți avea de obicei OpenSSH ușor disponibil:

Available applications:
 OpenSSH

În exemplul următor, permitem profilul OpenSSH, care va permite toate conexiunile SSH primite pe portul SSH implicit.

sudo ufw allow “OpenSSH”
Rule added
Rule added (v6)

Amintiți-vă să citați nume de profil care constau din mai multe cuvinte, cum ar fi Nginx HTTPS. . Dezactivarea Profilului De Aplicare

Pentru a dezactiva un profil de aplicare pe care l-ați configurat anterior în cadrul UFW, va trebui să eliminați regula corespunzătoare. De exemplu, luați în considerare următoarea ieșire din sudo ufw status: :

   sudo ufw status
Status: active
To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere                               
Nginx Full                 ALLOW       Anywhere                  
OpenSSH (v6)               ALLOW       Anywhere (v6)                   
Nginx Full (v6)            ALLOW       Anywhere (v6)        

Această ieșire indică faptul că Nginx FullProfilul de aplicație este activat în prezent, permițând oricare și toate conexiunile la serverul web atât prin HTTP, cât și prin HTTPS. Dacă doriți să permiteți doar solicitări HTTPS de la și la serverul dvs. web, ar trebui să activați mai întâi regula cea mai restrictivă, care în acest caz ar fi Nginx HTTPS, apoi dezactivați activul în prezent Nginx Fullregula:

sudo ufw allow "Nginx HTTPS"
sudo ufw delete allow "Nginx Full"

Amintiți-vă că puteți lista toate profilurile de aplicații disponibile cu sudo ufw app list. . Permite SSH

Când lucrați cu servere de la distanță, veți dori să vă asigurați că portul SSH este deschis la conexiuni, astfel încât să puteți să vă conectați la serverul dvs. de la distanță.

Următoarea comandă va permite profilul aplicației OpenSSH UFW și va permite toate conexiunile la portul SSH implicit de pe server:

sudo ufw allow OpenSSH
Rule added
Rule added (v6)

Deși mai puțin ușor de utilizat, o sintaxa alternativă este de a specifica numărul portului exact al serviciului SSH, care este de obicei setat la 22În mod implicit:

sudo ufw allow 22
Rule added
Rule added (v6)

Permiteți Intrarea SSH de la adresa IP specifică sau subnet

Pentru a permite conexiunile de intrare de la o anumită adresă IP sau a subnet, veți include o fromdirectivă de definire a sursei conexiunii. Acest lucru va necesita să specificați și adresa de destinație cu o toUn parametru. Pentru a bloca această regulă numai la SSH, veți limita proto(protocol) la tcpşi apoi să folosească portparametrii și setați-l la 22, portul implicit al SSH.

Următoarea comandă va permite numai conexiunile SSH provenite de la adresa IP 203.0.113.103: :

sudo ufw allow from 203.0.113.103 proto tcp to any port 22
Rule added


Pagina anterioară | Ultima pagină