Essentials Pagina 7

De la Wiki Linux Advanced
Sari la navigare Sari la căutare

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ă.

  1. traseu

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

Management retea nivel 2 - Netplan

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ă