<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-4915140777580483380</id><updated>2026-06-18T11:23:53.939-07:00</updated><category term="download"/><category term="programare"/><category term="Programming"/><category term="Pascal"/><category term="ip"/><category term="Biblioteci"/><category term="Didactică"/><category term="Paralab"/><category term="Paralel programming"/><category term="algoritm"/><category term="dns"/><category term="nat"/><category term="tcp"/><category term="units"/><category term="Web"/><category term="howto"/><category term="informatică"/><category term="iptables"/><category term="linux"/><category term="masquerading"/><category term="network"/><category term="paralel"/><category term="retea"/><category term="tipuri de date"/><category term="CD"/><category term="DVD"/><category term="Informatica aplicata"/><category term="RW"/><category term="Search Engine"/><category term="Solr"/><category term="alocarea memoriei"/><category term="animaţie"/><category term="apache"/><category term="aptitudini"/><category term="arraz"/><category term="capacităţi"/><category term="cozi"/><category term="css"/><category term="dialup"/><category term="didactica"/><category term="dinamică"/><category term="discuri optice"/><category term="dnat"/><category term="efecte"/><category term="email"/><category term="engine"/><category term="extraşcolar"/><category term="fibra optica"/><category term="filtrare pachete"/><category term="filtru de pachete"/><category term="fire torsodate"/><category term="firewall"/><category term="fisiere"/><category term="forward"/><category term="ftp"/><category term="graphic"/><category term="hardware"/><category term="hexa"/><category term="html"/><category term="integer"/><category term="interfata"/><category term="internet"/><category term="ipchains"/><category term="javascript"/><category term="jocuri didactice"/><category term="kernel"/><category term="linie inchiriata"/><category term="matematică"/><category term="model"/><category term="modelare"/><category term="modem"/><category term="modul"/><category term="module"/><category term="multime"/><category term="named"/><category term="netmask"/><category term="numere mari"/><category term="php"/><category term="ppp"/><category term="pppd"/><category term="predare"/><category term="principii"/><category term="program"/><category term="programe rezolvate"/><category term="protocol"/><category term="proxy"/><category term="proxz"/><category term="real"/><category term="search"/><category term="server"/><category term="sistem binar"/><category term="sisteme de numereaţie"/><category term="softwa"/><category term="stive"/><category term="string"/><category term="telefonie"/><category term="tipuri de CD"/><category term="transformatoare"/><category term="transparent proxy"/><title type='text'>Blog despre resurse educaţionale din IT</title><subtitle type='html'>Cu informatii pentru dezvoltare personala, dar şi pentru studentţi, elevi, profesori, webmasteri, programatori</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://resurse-it.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4915140777580483380/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://resurse-it.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/4915140777580483380/posts/default?start-index=26&amp;max-results=25&amp;redirect=false'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>31</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-4915140777580483380.post-7117010949204392276</id><published>2011-04-11T00:57:00.001-07:00</published><updated>2011-04-11T00:58:55.900-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="dns"/><category scheme="http://www.blogger.com/atom/ns#" term="howto"/><category scheme="http://www.blogger.com/atom/ns#" term="ip"/><category scheme="http://www.blogger.com/atom/ns#" term="linux"/><category scheme="http://www.blogger.com/atom/ns#" term="named"/><category scheme="http://www.blogger.com/atom/ns#" term="nat"/><category scheme="http://www.blogger.com/atom/ns#" term="network"/><category scheme="http://www.blogger.com/atom/ns#" term="server"/><category scheme="http://www.blogger.com/atom/ns#" term="tcp"/><title type='text'>Linux. Cum sa administrati rapid un DNS.</title><content type='html'>DNS HOWTO&lt;br /&gt;
Nicolai Langfeldt (janl@linpro.no), Jamie Norrish and others&lt;br /&gt;
Version 3.1, 2001-01-18&lt;br /&gt;
Traducerea: Victor Plugaru(vuk@go.ro). Cu scuzele de rigoare&lt;br /&gt;
pentru eventualele greseli si/sau inadvertente.&lt;br /&gt;
&lt;br /&gt;
CUM SA administrati rapid un DNS.&lt;br /&gt;
______________________________________________________________________&lt;br /&gt;
&lt;br /&gt;
Cuprins&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1. Preambul&lt;br /&gt;
&lt;br /&gt;
1.1 Chestiuni legale&lt;br /&gt;
1.2 Credit si cereri de suport.&lt;br /&gt;
1.3 Dedicatie&lt;br /&gt;
&lt;br /&gt;
2. Introducere.&lt;br /&gt;
&lt;br /&gt;
3. Caching name server.&lt;br /&gt;
&lt;br /&gt;
3.1 Pornirea lui named&lt;br /&gt;
3.2 Resolvere&lt;br /&gt;
3.3 Felicitari&lt;br /&gt;
&lt;br /&gt;
4. Forwarding&lt;br /&gt;
&lt;br /&gt;
5. Un domeniu simplu&lt;br /&gt;
&lt;br /&gt;
5.1 Intai teorie seaca&lt;br /&gt;
5.2 Propriul nostru domeniu&lt;br /&gt;
5.3 Zona reverse&lt;br /&gt;
5.4 Cuvinte de atentionare&lt;br /&gt;
5.5 De ce nu functioneaza interogarile inverse.&lt;br /&gt;
5.5.1 Zona reverse nu este investita.&lt;br /&gt;
5.5.2 Aveti un subnet fara clase&lt;br /&gt;
5.6 Servere slave (sclav)&lt;br /&gt;
&lt;br /&gt;
6. Optiuni de securitate fundamentale.&lt;br /&gt;
&lt;br /&gt;
6.1 Restrictionarea transferurilor pe zone&lt;br /&gt;
6.2 Protectia in situatii de spoofing&lt;br /&gt;
6.3 Rularea lui named ca non-root&lt;br /&gt;
&lt;br /&gt;
7. Un exemplu real de domeniu&lt;br /&gt;
&lt;br /&gt;
7.1 /etc/named.conf (sau /var/named/named.conf)&lt;br /&gt;
7.2 /var/named/root.hints&lt;br /&gt;
7.3 /var/named/zone/127.0.0&lt;br /&gt;
7.4 /var/named/zone/land-5.com&lt;br /&gt;
7.5 /var/named/zone/206.6.177&lt;br /&gt;
&lt;br /&gt;
8. Intretinere&lt;br /&gt;
&lt;br /&gt;
9. Conversia de la versiunea 4 la versiunea 8&lt;br /&gt;
&lt;br /&gt;
10. Intrebari si raspunsuri&lt;br /&gt;
&lt;br /&gt;
11. Cum sa deveniti un administrator DNS la scara mare.&lt;br /&gt;
&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
______________________________________________________________________&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1. Preambul&lt;br /&gt;
&lt;br /&gt;
Cuvinte cheie: DNS, BIND, BIND 4, BIND 8, named, dialup, ppp, slip, ISDN, &lt;br /&gt;
internet, domeniu, nume, rezolutie, hosturi, caching.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Acest document este parte din Proiectul Documentatiei Linux (Linux&lt;br /&gt;
Documentation Project)&lt;br /&gt;
&lt;br /&gt;
1.1. Chestiuni legale&lt;br /&gt;
&lt;br /&gt;
(C)opyright 1995-2001 Nicolai Langfeldt, Jamie Norrish &amp;amp; Co.&lt;br /&gt;
Nu distribuiti modificand fara copyright, distribuiti liberi dar&lt;br /&gt;
pastrati mesajul de copyright.&lt;br /&gt;
&lt;br /&gt;
1.2. Credite si cereri de suport&lt;br /&gt;
&lt;br /&gt;
Vreau sa multumesc lui Arnt Gulbrandsen caruia i-am cauzat suferinta&lt;br /&gt;
cu aceste tiparituri si care mi-a oferit multe sugestii utile. Vreau&lt;br /&gt;
sa multumesc de asemeni numeroselor persoane care mi-au trimis sugestii si&lt;br /&gt;
note prin e-mail.&lt;br /&gt;
&lt;br /&gt;
Acesta nu va fi niciodata un document final; va rog sa imi trimiteti&lt;br /&gt;
e-mailuri despre problemele si succesele dumneavoastra. Puteti da o mana&lt;br /&gt;
de ajutor la imbunatatirea acestui HOWTO. Asa ca va rog sa trimiteti&lt;br /&gt;
comentarii si/sau sugestii la janl@linpro.no. Sau cumparati cartea mea&lt;br /&gt;
despre DNS. Vedeti bibliografia despre informatii in legatura cu aceasta&lt;br /&gt;
chestiune. Daca trimiteti un e-mail si asteptati raspunsuri, dati dovada de&lt;br /&gt;
curtoazie si asigurati-va ca adresa de reply este corecta si functioneaza.&lt;br /&gt;
Tot astfel, va rog sa cititi sectiunea &quot;qanda&quot; inainte de a-mi trimite&lt;br /&gt;
e-mail. Inca un lucru, inteleg doar limbile norvegiana si engleza.&lt;br /&gt;
&lt;br /&gt;
Acesta este un HOWTO (CUM_SA). L-am intretinut ca parte a LDP din 1995. Am&lt;br /&gt;
scris, in timpul anului 2000 o carte pe aceiasi tema. Vreau sa spun ca,&lt;br /&gt;
desi acest HOWTO este asemanator cartii din multe puncte de vedere, nu&lt;br /&gt;
este o versiune redusa astfel incat sa promovez vinderea cartii. Veti gasi&lt;br /&gt;
cartea in bibliografie in finalul acestui HOWTO. Cititorii acestui HOWTO&lt;br /&gt;
m-au ajutat sa inteleg ceea ce e dificil de inteles in legatura cu&lt;br /&gt;
DNS. Aceasta m-a ajutat la carte, iar cartea m-a ajutat de asemeni&lt;br /&gt;
sa inteleg la ce ar servi acest HOWTO. Acest HOWTO a completat cartea.&lt;br /&gt;
Cartea a completat versiunea 3 a acestui HOWTO. Multumirile mele&lt;br /&gt;
editorului cartii, care si-a incercat norocul cu mine :-)&lt;br /&gt;
&lt;br /&gt;
1.3. Dedicatie&lt;br /&gt;
&lt;br /&gt;
Acest HOWTO este dedicat lui Anne Line Norheim Langfeldt, desi dansa nu il&lt;br /&gt;
va citi niciodata pentru ca nu e genul.&lt;br /&gt;
&lt;br /&gt;
1. Introducere&lt;br /&gt;
&lt;br /&gt;
Ce este si ce nu este aceasta.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
DNS este Domain Name System (Sistemul Domeniului de Nume). DNS converteste&lt;br /&gt;
numele masinilor (de calcul) in adrese IP pe care toate masinile de pe&lt;br /&gt;
Internet le au.  Translateaza (sau &quot;mapeaza&quot; cum se zice in jargon) din&lt;br /&gt;
nume in adrese si din adrese in nume, precum si alte cateva lucruri. Acest&lt;br /&gt;
HOWTO documenteaza definirea acestor mapari folosind sisteme UNIX, cu&lt;br /&gt;
cateva lucruri specifice Linux-ului.&lt;br /&gt;
&lt;br /&gt;
O mapare este o simpla asociere intre doua lucruri, in acest caz un nume&lt;br /&gt;
de masina, ca ftp.linux.org, si IP-ul masinii (sau adresa)&lt;br /&gt;
199.249.150.4. DNS-ul contine de asemeni mapari si in alt sens, din&lt;br /&gt;
IP catre numele masinii; aceasta se numeste &quot;mapare inversa&quot;&lt;br /&gt;
&lt;br /&gt;
DNS este, pentru neinitiati (dumneavoastra :-), una dintre&lt;br /&gt;
cele mai obscure domenii din administrarea retelelor. Din fericire, DNS nu&lt;br /&gt;
este chiar asa de greu. Acest HOWTO va incerca sa va clarifice&lt;br /&gt;
cateva lucruri. Descrie cum sa setati un server de nume DNS simplu,&lt;br /&gt;
incepand doar cu un server cache si pana la a seta un sever DNS primar &lt;br /&gt;
pentru domeniu. Pentru setari mai complexe consultati sectiunea &quot;qanda&quot; &lt;br /&gt;
din acest document. Daca nu este descris acolo (ceea ce va trebuie),&lt;br /&gt;
va trebui sa consultati documentatie &quot;adevarata&quot;. Voi reveni si voi arata&lt;br /&gt;
in ce consta aceasta documentatie &quot;adevarata&quot; in &quot;ultimul capitol&quot;.&lt;br /&gt;
&lt;br /&gt;
Inainte de a incepe ar trebui sa va configurati masina astfel incat sa&lt;br /&gt;
puteti folosi telnet de la si catre aceasta masina si sa puteti face tot&lt;br /&gt;
felul de conexiuni in retea, si in special sa puteti da telnet 127.0.0.1 &lt;br /&gt;
si sa reusiti sa intrati pe propria masina (ar trebui sa incercati&lt;br /&gt;
asta chiar acum!). Va trebuie de asemeni fisierele /etc/nsswitch.conf,&lt;br /&gt;
/etc/resolv.conf si /etc/hosts corecte, ca punct de plecare pentru ca nu&lt;br /&gt;
le voi explica functiile aici. Daca nu aveti toate acestea configurate si&lt;br /&gt;
in stare de functionare, Networking-HOWTO si/sau Networking-Overview-HOWTO&lt;br /&gt;
explica cum sa le configurati. CItiti-le.&lt;br /&gt;
&lt;br /&gt;
Cand spun &quot;masina dumneavoastra&quot; inteleg masina pe care vreti&lt;br /&gt;
sa configurati DNS, nu orice alta masina pe care o aveti si care ar fi&lt;br /&gt;
implicata in efortul de a pune la punct reteaua.&lt;br /&gt;
&lt;br /&gt;
Presupun ca nu sunteti in spatele nici unui fel de firewall care blocheaza&lt;br /&gt;
interogarile de nume. Daca sunteti in atare situatie, vedeti sectiunea&lt;br /&gt;
&quot;quanda&quot;.&lt;br /&gt;
&lt;br /&gt;
Serverul de nume in UNIX este indeplinit de un program numit named. Acesta&lt;br /&gt;
este o parte a pachetului &quot;BIND&quot; coordonat de The Internet&lt;br /&gt;
Software Cosortium. Named este inclus in majoritatea distributiilor de Linux &lt;br /&gt;
si este de obicei instalat in /usr/sbin/named, de obicei dintr-un pachet&lt;br /&gt;
BIND.&lt;br /&gt;
&lt;br /&gt;
Daca aveti un named probabil ca il puteti si folosi. Daca nu aveti unul,&lt;br /&gt;
puteti lua distributia binara de de pe un site ftp Linux, sau luati ultima&lt;br /&gt;
si cea mai &quot;tare&quot; sursa de la &amp;lt;ftp://ftp.isc.org/isc/bind/src/&amp;gt;. Acest&lt;br /&gt;
HOWTO se refera la BIND versiunea 8. Versiunea veche a acestui document,&lt;br /&gt;
despre BIND 4 este inca disponibila la &amp;lt;http://www.math.uio.no/~janl/DNS/&amp;gt;.&lt;br /&gt;
in caz ca folositi BIND 4. Daca paginile man ale named (chiar la sfarsit,&lt;br /&gt;
in sectiunea FILES) fac referire la named.conf, aveti BIND 8. Daca fac&lt;br /&gt;
referire la named.boot, aveti BIND 4. Daca aveti BIND 4&lt;br /&gt;
si sunteti constient de problemele de securitate, ar fi bine sa faceti&lt;br /&gt;
uprade la BIND 8. Acum.&lt;br /&gt;
&lt;br /&gt;
DNS este o baza de date distribuita in retea. Aveti grija ce puneti in ea.&lt;br /&gt;
Daca puneti &quot;balarii&quot; in ea, dumneavoastra si altii, tot &quot;balarii&quot;&lt;br /&gt;
veti avea. Mentineti DNS-ul restrans si consistent si veti avea parte de&lt;br /&gt;
servicii de buna calitate de la el. Invatati sa il folositi, administrati,&lt;br /&gt;
depanati si veti fi inca un bun administrator, evitand ingenuncherea&lt;br /&gt;
Internetului din cauza prostului management.&lt;br /&gt;
&lt;br /&gt;
Indicatie: faceti copii de rezerva a tuturor fisierelor pe care va indic&lt;br /&gt;
sa le modificati, daca le aveti deja, asa incat daca trecand&lt;br /&gt;
prin acestea (configurari, modificari) nimic nu mai merge, sa puteti&lt;br /&gt;
reveni la vechea dumneavoastra stare de functionare.&lt;br /&gt;
&lt;br /&gt;
3. Caching name server&lt;br /&gt;
&lt;br /&gt;
Un prim model de configurarie DNS, foarte util pentru dialup, modem&lt;br /&gt;
de cablu si utilizatori ADSL.&lt;br /&gt;
&lt;br /&gt;
In distributiile Redhat si inrudite puteti obtine aceleasi rezultate&lt;br /&gt;
practice ca in prima sectiune a acestui HOWTO, instaland&lt;br /&gt;
pachetul BIND, utilitarele bind si caching-nameserver-ul. Daca&lt;br /&gt;
folositi Debian, instalati bind si bind-doc. Bine inteles ca&lt;br /&gt;
doar instaland aceste pachete nu veti invata atat de mult ca si cand ati&lt;br /&gt;
citi acest HOWTO. Asa ca instalati pachetele si verificati fisierele&lt;br /&gt;
instalate. &lt;br /&gt;
&lt;br /&gt;
Un server cache de nume va gasi raspunsuri la interogarile de nume si va&lt;br /&gt;
memora aceste raspunsuri pentru data viitoare cand veti&lt;br /&gt;
avea nevoie. Aceasta va scurta semnificativ timpul de asteptare urmatoarea&lt;br /&gt;
data, in special daca aveti o conexiune lenta.&lt;br /&gt;
&lt;br /&gt;
In primul rand aveti nevoie de un fisier numit /etc/named.conf&lt;br /&gt;
(Debian: /etc/bind/named.conf). Acesta este citit cand named porneste.&lt;br /&gt;
Deocamdata ar trebui sa contina pur si simplu:&lt;br /&gt;
&lt;br /&gt;
______________________________________________________________________&lt;br /&gt;
// Config file for caching only name server&lt;br /&gt;
&lt;br /&gt;
options {&lt;br /&gt;
directory &quot;/var/named&quot;;&lt;br /&gt;
&lt;br /&gt;
// Uncommenting this might help if you have to go through a&lt;br /&gt;
// firewall and things are not working out.  But you probably&lt;br /&gt;
// need to talk to your firewall admin.&lt;br /&gt;
&lt;br /&gt;
// query-source port 53;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
zone &quot;.&quot; {&lt;br /&gt;
type hint;&lt;br /&gt;
file &quot;root.hints&quot;;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
zone &quot;0.0.127.in-addr.arpa&quot; {&lt;br /&gt;
type master;&lt;br /&gt;
file &quot;pz/127.0.0&quot;;&lt;br /&gt;
};&lt;br /&gt;
______________________________________________________________________&lt;br /&gt;
&lt;br /&gt;
Pachetele distributiilor Linux pot folosi diferite nume de fisiere&lt;br /&gt;
pentru fiecare tip de fisier mentionat aici, cu toate acestea, continutul&lt;br /&gt;
va fi identic.&lt;br /&gt;
&lt;br /&gt;
Linia &quot;directory&quot; ii spune lui named unde sa caute fisiere. Toate fisierele&lt;br /&gt;
named subsecvente vor fi relative la aceasta. pz este un director sub&lt;br /&gt;
/var/named, de ex. /var/named/pz. /var/named este directorul corect&lt;br /&gt;
potrivit Standardului de Fisiere Linux.&lt;br /&gt;
&lt;br /&gt;
Fisierul /var/named/root.hints ar trebui sa contina urmatoarele: (daca&lt;br /&gt;
execuati cut si paste dintr-o versiune electronica a acestui document,&lt;br /&gt;
aveti in vedere ca nu trebuie sa existe spatii de inceput in acest fisier,&lt;br /&gt;
de exemplu toate liniile trebuie sa inceapa cu un caracter&lt;br /&gt;
non-blank. Anumite programe de procesare de text vor insera spatii&lt;br /&gt;
la inceputul liniilor, cauzand confuzie. In acest caz va rog&lt;br /&gt;
sa indepartati spatiile goale.)&lt;br /&gt;
&lt;br /&gt;
______________________________________________________________________&lt;br /&gt;
;&lt;br /&gt;
; There might be opening comments here if you already have this file.&lt;br /&gt;
; If not don&#39;t worry.&lt;br /&gt;
;&lt;br /&gt;
.                       6D IN NS        M.ROOT-SERVERS.NET.&lt;br /&gt;
.                       6D IN NS        I.ROOT-SERVERS.NET.&lt;br /&gt;
.                       6D IN NS        E.ROOT-SERVERS.NET.&lt;br /&gt;
.                       6D IN NS        D.ROOT-SERVERS.NET.&lt;br /&gt;
.                       6D IN NS        A.ROOT-SERVERS.NET.&lt;br /&gt;
.                       6D IN NS        H.ROOT-SERVERS.NET.&lt;br /&gt;
.                       6D IN NS        C.ROOT-SERVERS.NET.&lt;br /&gt;
.                       6D IN NS        G.ROOT-SERVERS.NET.&lt;br /&gt;
.                       6D IN NS        F.ROOT-SERVERS.NET.&lt;br /&gt;
.                       6D IN NS        B.ROOT-SERVERS.NET.&lt;br /&gt;
.                       6D IN NS        J.ROOT-SERVERS.NET.&lt;br /&gt;
.                       6D IN NS        K.ROOT-SERVERS.NET.&lt;br /&gt;
.                       6D IN NS        L.ROOT-SERVERS.NET.&lt;br /&gt;
;&lt;br /&gt;
M.ROOT-SERVERS.NET.     6D IN A         202.12.27.33&lt;br /&gt;
I.ROOT-SERVERS.NET.     6D IN A         192.36.148.17&lt;br /&gt;
E.ROOT-SERVERS.NET.     6D IN A         192.203.230.10&lt;br /&gt;
D.ROOT-SERVERS.NET.     6D IN A         128.8.10.90&lt;br /&gt;
A.ROOT-SERVERS.NET.     6D IN A         198.41.0.4&lt;br /&gt;
H.ROOT-SERVERS.NET.     6D IN A         128.63.2.53&lt;br /&gt;
C.ROOT-SERVERS.NET.     6D IN A         192.33.4.12&lt;br /&gt;
G.ROOT-SERVERS.NET.     6D IN A         192.112.36.4&lt;br /&gt;
F.ROOT-SERVERS.NET.     6D IN A         192.5.5.241&lt;br /&gt;
B.ROOT-SERVERS.NET.     6D IN A         128.9.0.107&lt;br /&gt;
J.ROOT-SERVERS.NET.     6D IN A         198.41.0.10&lt;br /&gt;
K.ROOT-SERVERS.NET.     6D IN A         193.0.14.129&lt;br /&gt;
L.ROOT-SERVERS.NET.     6D IN A         198.32.64.12&lt;br /&gt;
______________________________________________________________________&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Fisierul descrie serverele de nume &quot;radacina&quot; din lume. Acestea se schimba&lt;br /&gt;
in timp si trebuie mentinute permanent. Vedeti sectiunea &quot;intretinere&quot;&lt;br /&gt;
despre cum sa mentineti la curent acest fisier. &lt;br /&gt;
&lt;br /&gt;
Urmatoarea sectiune in named.conf este ultima zona. II voi explica&lt;br /&gt;
utilizarea intr-un capitol ulterior. Deocamdata creati din aceasta un&lt;br /&gt;
fisier numit 127.0.0 in subdirectorul pz (din nou, indepartati&lt;br /&gt;
spatiile goale daca executati cut si paste).&lt;br /&gt;
&lt;br /&gt;
______________________________________________________________________&lt;br /&gt;
$TTL 3D&lt;br /&gt;
@               IN      SOA     ns.linux.bogus. hostmaster.linux.bogus. (&lt;br /&gt;
1       ; Serial&lt;br /&gt;
8H      ; Refresh&lt;br /&gt;
2H      ; Retry&lt;br /&gt;
4W      ; Expire&lt;br /&gt;
1D)     ; Minimum TTL&lt;br /&gt;
NS      ns.linux.bogus.&lt;br /&gt;
1                       PTR     localhost.&lt;br /&gt;
______________________________________________________________________&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pe urma, aveti nevoie de un fisier /etc/resolv.conf care sa arate cam asa:&lt;br /&gt;
(indepartati spatiile!)&lt;br /&gt;
&lt;br /&gt;
______________________________________________________________________&lt;br /&gt;
search subdomain.your-domain.edu your-domain.edu&lt;br /&gt;
nameserver 127.0.0.1&lt;br /&gt;
______________________________________________________________________&lt;br /&gt;
&lt;br /&gt;
Linia &quot;search&quot; specifica ce domenii ar trebui cautate pentru un nume de&lt;br /&gt;
host la care vreti sa va conectati. Linia &quot;nameserver&quot; indica serverul&lt;br /&gt;
dumneavoastra de nume, in acest caz propria dumneavoastra masina,&lt;br /&gt;
daca acolo ruleaza named (127.0.0.1 e perfect, nu conteaza ca mai aveti si&lt;br /&gt;
alta adresa IP). Daca doriti sa apara mai multe servere de nume, puneti&lt;br /&gt;
cate o linie &quot;nameserver&quot; pentru fiecare. (Nota: named niciodata&lt;br /&gt;
nu citeste acest fisier, ci rezolverul, programul care il utilizeaza&lt;br /&gt;
pe named. Nota2 :in unele fisiere resolv.conf gasiti o linie &quot;domain&quot;. E&lt;br /&gt;
in regula, dar nu folositi si &quot;search&quot; si &quot;domain&quot;, doar una dintre ele va&lt;br /&gt;
merge). &lt;br /&gt;
&lt;br /&gt;
Pentru a ilustra ce face acest fisier: daca un client incearca&lt;br /&gt;
sa caute (hostul) &quot;foo&quot;, atunci foo.subdomeniu.domeniul-tau.edu este&lt;br /&gt;
incercat primul, apoi foo.domeniul-tau.edu si apoi foo. Nu e de preferat&lt;br /&gt;
sa puneti prea multe domenii in linia &quot;search&quot; pentru ca va dura mult sa&lt;br /&gt;
le interogheze pe toate.&lt;br /&gt;
&lt;br /&gt;
Exemplul de mai sus presupune ca apartineti domeniului&lt;br /&gt;
subdomeniu.domeniul-tau.edu; atunci masina dumneavoastra este numita&lt;br /&gt;
probabil masina-ta.subdomeniu.domeniul-tau.edu Linia &quot;search&quot; n-ar trebui&lt;br /&gt;
sa contina TLD-ul dumneavoastra (Top Level Domain &quot;edu&quot;- Domeniul de Nivel&lt;br /&gt;
Inalt) in acest caz. Daca aveti nevoie sa va conectati&lt;br /&gt;
la hosturi din alt domeniu, in mod frecvent, puteti adauga acel domeniu in&lt;br /&gt;
linia &quot;search&quot; astfel: (indepartati spatiile!) &lt;br /&gt;
&lt;br /&gt;
______________________________________________________________________&lt;br /&gt;
search subdomain.your-domain.edu your-domain.edu other-domain.com&lt;br /&gt;
______________________________________________________________________&lt;br /&gt;
&lt;br /&gt;
si asa mai departe. Evident, trebuie sa puneti nume reale de domeniu&lt;br /&gt;
in locul celor din exemplu. Importat: observati lipsa punctelor de&lt;br /&gt;
la sfarsitul numelor de domeniu.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3.1 Pornirea lui named&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dupa toate acestea este timpul sa pornim named. Daca folositi o conexiune &lt;br /&gt;
dialup, conectati-va intai. Dati comanda &quot;ndc start&quot; si apasati Enter,&lt;br /&gt;
fara nici o optiune. Daca nu merge asa, incercati &quot;/usr/sbin/ndc start&quot;.&lt;br /&gt;
Daca tot nu merge, vedeti sectiunea &quot;qanda&quot;. Daca observati in&lt;br /&gt;
fisierul mesajelor syslog (de obicei /var/adm/messages sau&lt;br /&gt;
/var/log/messages) in timp ce porniti named (incercati tail -f&lt;br /&gt;
/var/log/messages), ar trebui sa vedeti ceva asemanator :&lt;br /&gt;
&lt;br /&gt;
(liniile care se incheie in \ continua pe linia urmatoare)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dec 15 23:53:29 localhost named[3768]: starting.  named 8.2.2-P7 \&lt;br /&gt;
Fri Nov 10 04:50:23 EST 2000^Iprospector@porky.\&lt;br /&gt;
devel.redhat.com:/usr/src/bs/BUILD/bind-8.2.2_P7/\&lt;br /&gt;
src/bin/named&lt;br /&gt;
Dec 15 23:53:29 localhost named[3768]: hint zone &quot;&quot; (IN) loaded\&lt;br /&gt;
(serial 0)&lt;br /&gt;
Dec 15 23:53:29 localhost named[3768]:Zone &quot;0.0.127.in-addr.arpa&quot;\&lt;br /&gt;
(file pz/127.0.0): No default TTL set using SOA\&lt;br /&gt;
minimum instead&lt;br /&gt;
Dec 15 23:53:29 localhost named[3768]: master zone\&lt;br /&gt;
&quot;0.0.127.in-addr.arpa&quot; (IN) loaded (serial 1)&lt;br /&gt;
Dec 15 23:53:29 localhost named[3768]:listening on [127.0.0.1].53 (lo)&lt;br /&gt;
Dec 15 23:53:29 localhost named[3768]: listening on [10.0.0.129].53\&lt;br /&gt;
(wvlan0)&lt;br /&gt;
Dec 15 23:53:29 localhost named[3768]: Forwarding source address is\&lt;br /&gt;
[0.0.0.0].1034&lt;br /&gt;
Dec 15 23:53:29 localhost named[3769]: Ready to answer queries.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Daca sunt multe mesaje de eroare, trebuie sa fie o greseala&lt;br /&gt;
pe undeva. Named va indica fisierul unde se afla greseala. Reveniti si&lt;br /&gt;
verificati fisierul respectiv. Dati comanda &quot;ndc restart&quot; si ati&lt;br /&gt;
rezolvat problema. &lt;br /&gt;
&lt;br /&gt;
Acum puteti testa configurarea. In mod traditional, un program numit&lt;br /&gt;
nslookup e folosit pentru aceasta. In mod curent, dig e recomandat.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
$ dig -x 127.0.0.1&lt;br /&gt;
&lt;br /&gt;
; &amp;lt;&amp;lt;&amp;gt;&amp;gt; DiG 8.2 &amp;lt;&amp;lt;&amp;gt;&amp;gt; -x&lt;br /&gt;
;; res options: init recurs defnam dnsrch&lt;br /&gt;
;; got answer:&lt;br /&gt;
;; -&amp;gt;&amp;gt;HEADER&amp;lt;&amp;lt;- opcode: QUERY, status: NOERROR, id: 4&lt;br /&gt;
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY:1, ADDITIONAL: 0&lt;br /&gt;
;; QUERY SECTION:&lt;br /&gt;
;;      1.0.0.127.in-addr.arpa, type = ANY, class = IN&lt;br /&gt;
&lt;br /&gt;
;; ANSWER SECTION:&lt;br /&gt;
1.0.0.127.in-addr.arpa.  1D IN PTR  localhost.&lt;br /&gt;
&lt;br /&gt;
;; AUTHORITY SECTION:&lt;br /&gt;
0.0.127.in-addr.arpa.   1D IN NS        ns.penguin.bv.&lt;br /&gt;
&lt;br /&gt;
;; Total query time: 30 msec&lt;br /&gt;
;; FROM: lookfar to SERVER: default -- 127.0.0.1&lt;br /&gt;
;; WHEN: Sat Dec 16 00:16:12 2000&lt;br /&gt;
;; MSG SIZE  sent: 40  rcvd: 110&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Daca ati obtinut aceasta, serviciul functioneaza. Speram. Daca treburile&lt;br /&gt;
stau altfel, reveniti si verificati totul. De fiecare data cand moficati&lt;br /&gt;
fisierul named.conf, trebuie sa reporniti named cu comanda ndc restart.&lt;br /&gt;
&lt;br /&gt;
Acum puteti efectua o interogare. Incercati sa cautati o masina apropiata.&lt;br /&gt;
pat.uio.no este apropiata de mine, la Universitatea din Oslo.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
$ dig pat.uio.no&lt;br /&gt;
&lt;br /&gt;
; &amp;lt;&amp;lt;&amp;gt;&amp;gt; DiG 8.2 &amp;lt;&amp;lt;&amp;gt;&amp;gt; pat.uio.no&lt;br /&gt;
;; res options: init recurs defnam dnsrch&lt;br /&gt;
;; got answer:&lt;br /&gt;
;; -&amp;gt;&amp;gt;HEADER&amp;lt;&amp;lt;- opcode:QUERY, status: NOERROR, id: 4&lt;br /&gt;
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY:3, ADDITIONAL: 3&lt;br /&gt;
;; QUERY SECTION:&lt;br /&gt;
;;      pat.uio.no, type = A, class = IN&lt;br /&gt;
&lt;br /&gt;
;; ANSWER SECTION:&lt;br /&gt;
pat.uio.no.             1D IN A   129.240.130.16&lt;br /&gt;
&lt;br /&gt;
;; AUTHORITY SECTION:&lt;br /&gt;
uio.no.                 1D IN NS        nissen.uio.no.&lt;br /&gt;
uio.no.                 1D IN NS        ifi.uio.no.&lt;br /&gt;
uio.no.                 1D IN NS        nn.uninett.no.&lt;br /&gt;
&lt;br /&gt;
;; ADDITIONAL SECTION:&lt;br /&gt;
nissen.uio.no.          1D IN A         129.240.2.3&lt;br /&gt;
ifi.uio.no.             1H IN A         129.240.64.2&lt;br /&gt;
nn.uninett.no.          1D IN A         158.38.0.181&lt;br /&gt;
&lt;br /&gt;
;; Total query time: 112 msec&lt;br /&gt;
;; FROM: lookfar to SERVER: default -- 127.0.0.1&lt;br /&gt;
;; WHEN: Sat Dec 16 00:23:07 2000&lt;br /&gt;
;; MSG SIZE  sent: 28  rcvd: 162&lt;br /&gt;
&lt;br /&gt;
De data aceasta dig a cerut lui named sa caute masina pat.uio.no. &lt;br /&gt;
A contactat una dintre masinile server de nume indicate in fisierul&lt;br /&gt;
root.hints si a cerut calea de acolo. Poate dura putin pana obtine&lt;br /&gt;
rezultatul, dupa cum va trebui sa caute in domeniile din /etc/resolv.conf.&lt;br /&gt;
Observati &quot;aa&quot; in linia &quot;flags:&quot;. Inseamna ca raspunsul este&lt;br /&gt;
autoritativ, venit proaspat de la un server autoritativ. Voi explica&lt;br /&gt;
ce inseamna &quot;autoritativ&quot; mai tarziu. &lt;br /&gt;
&lt;br /&gt;
Daca veti face aceiasi interogare din nou, veti obtine aceasta:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
$ dig pat.uio.no&lt;br /&gt;
&lt;br /&gt;
; &amp;lt;&amp;lt;&amp;gt;&amp;gt; DiG 8.2 &amp;lt;&amp;lt;&amp;gt;&amp;gt; pat.uio.no&lt;br /&gt;
;; res options: init recurs defnam dnsrch&lt;br /&gt;
;; got answer:&lt;br /&gt;
;; -&amp;gt;&amp;gt;HEADER&amp;lt;&amp;lt;- opcode: QUERY, status:NOERROR, id: 4&lt;br /&gt;
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 3, ADDITIONAL: 3&lt;br /&gt;
;; QUERY SECTION:&lt;br /&gt;
;;      pat.uio.no, type = A, class = IN&lt;br /&gt;
&lt;br /&gt;
;; ANSWER SECTION:&lt;br /&gt;
pat.uio.no.             23h59m58s IN A  129.240.130.16&lt;br /&gt;
&lt;br /&gt;
;; AUTHORITY SECTION:&lt;br /&gt;
UIO.NO.                 23h59m58s IN NS  nissen.UIO.NO.&lt;br /&gt;
UIO.NO.                 23h59m58s IN NS  ifi.UIO.NO.&lt;br /&gt;
UIO.NO.                 23h59m58s IN NS  nn.uninett.NO.&lt;br /&gt;
&lt;br /&gt;
;; ADDITIONAL SECTION:&lt;br /&gt;
nissen.UIO.NO.          23h59m58s   IN A  129.240.2.3&lt;br /&gt;
ifi.UIO.NO.             1d23h59m58s IN A  129.240.64.2&lt;br /&gt;
nn.uninett.NO.          1d23h59m58s IN A  158.38.0.181&lt;br /&gt;
&lt;br /&gt;
;; Total query time: 4 msec&lt;br /&gt;
;; FROM: lookfar to SERVER: default -- 127.0.0.1&lt;br /&gt;
;; WHEN: Sat Dec 16 00:23:09 2000&lt;br /&gt;
;; MSG SIZE  sent: 28  rcvd: 162&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Observati lipsa flagului &quot;aa&quot; din acest rezultat. Inseamna ca named&lt;br /&gt;
nu a mai iesit in retea pentru a afla acest raspuns, daca informatia se&lt;br /&gt;
afla in cache acum. Dar informatia din cache poate fi veche (stale). Asa&lt;br /&gt;
ca sunteti informati despre aceasta (foarte subtil)&lt;br /&gt;
prin lipsa lui &quot;aa&quot;. Dar oricum, acum stiti ca serviciul cache functioneaza.&lt;br /&gt;
&lt;br /&gt;
3.2. Rezolvere&lt;br /&gt;
&lt;br /&gt;
Toate sistemele de operare care implementeaza standardul C API fac uz de&lt;br /&gt;
apelul gethostbyname si gethostbyaddr. Acestea pot obtine informatii din&lt;br /&gt;
diverse surse. Din ce surse se alimenteaza, este indicat in fisierul&lt;br /&gt;
/etc/nsswitch.conf in Linux (si alte UNIX-uri). Acesta este un fisier lung&lt;br /&gt;
care specifica din ce fisier sau baza de date se vor obtine diferitele&lt;br /&gt;
tipuri de date. De obicei contine informatii folositoare la inceput, pe&lt;br /&gt;
care ar trebui sa le cititi. Dupa aceasta, cautati linia incapand cu&lt;br /&gt;
&quot;hosts:&quot;; va trebui sa aveti:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
______________________________________________________________________&lt;br /&gt;
hosts:      files dns&lt;br /&gt;
______________________________________________________________________&lt;br /&gt;
&lt;br /&gt;
(va aduceti aminte de spatiile de inceput, nu-i asa? Nu le voi mai mentiona) &lt;br /&gt;
&lt;br /&gt;
Daca nu exista nici o linie cu &quot;hosts:&quot;, puneti una ca mai&lt;br /&gt;
sus. Aceasta indica cum ca programele ar trebui sa examineze&lt;br /&gt;
fisierul /etc/hosts intai, apoi sa verifice DNS-ul conform /etc/resolv.conf.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3.3. Felicitari &lt;br /&gt;
&lt;br /&gt;
Acum deja stiti cum sa configurati un named cu caching. Luati o bere, un&lt;br /&gt;
lapte acru si sarbatoriti. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4. Forwarding&lt;br /&gt;
&lt;br /&gt;
In retele mari, bine organizate, academice sau ISP (Internet Service&lt;br /&gt;
Provider - Furnizor de Servicii Internet), veti constata uneori ca&lt;br /&gt;
administratorii de retea au pus la punct o ierarhie de servere DNS&lt;br /&gt;
pentru forwarding (inaintare- transfer), care usureaza&lt;br /&gt;
incarcarea retelei interiorare si exterioare. Nu e usor de stiut daca va&lt;br /&gt;
aflati intr-o asemenea retea sau nu. Oricum, nu este important si,&lt;br /&gt;
folosind serverul DNS al furnizorului dumneavoastra din retea ca &quot;forwarder&quot;&lt;br /&gt;
puteti obtine raspunsurile mai rapid si cu o incarcare mai mica a retelei.&lt;br /&gt;
Daca folositi un modem, aceasta poate fi chiar un castig. De&lt;br /&gt;
dragul acestui exemplu sa presupunem ca furnizorul are doua servere de&lt;br /&gt;
nume pe care vrea sa le folositi cu IP-urile 10.0.0.1 si 10.1.0.1. Atunci,&lt;br /&gt;
in named.conf la dumneavoastra, in interiorul sectiunii &quot;options&quot;,&lt;br /&gt;
inserati aceste linii:&lt;br /&gt;
&lt;br /&gt;
______________________________________________________________________&lt;br /&gt;
forward first;&lt;br /&gt;
forwarders {&lt;br /&gt;
10.0.0.1;&lt;br /&gt;
10.1.0.1;&lt;br /&gt;
};&lt;br /&gt;
______________________________________________________________________&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Exista de asemeni o smecherie draguta pentru masinile dialup care folosesc&lt;br /&gt;
&quot;forwardere&quot;. Este descrisa in sectiunea &quot;qanda&quot;.&lt;br /&gt;
&lt;br /&gt;
Restartati serverul de nume si testati-l cu dig. Ar trebui sa mearga perfect.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
5. Un domeniu simplu&lt;br /&gt;
&lt;br /&gt;
Cum configurati propriul domeniu.&lt;br /&gt;
&lt;br /&gt;
5.1. Intai teorie seaca&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In primul rand: ati citit tot pana aici, nu? Trebuie.&lt;br /&gt;
&lt;br /&gt;
Inainte de a porni intr-adevar aceasta sectiune, va voi expune ceva&lt;br /&gt;
teorie si un exemplu despre cum functioneaza DNS. Si o veti citi pentru ca&lt;br /&gt;
va este necesara. Daca nu doriti, ar trebui macar sa o parcurgeti rapid.&lt;br /&gt;
Opriti-va din cititul printre randuri cand ajungeti la ceea ce ar trebui&lt;br /&gt;
sa aveti in fisierul named.conf.&lt;br /&gt;
&lt;br /&gt;
DNS este un sistem ierarhic, arborescent. Varful este notat &quot;.&quot; si&lt;br /&gt;
este denumit &quot;root&quot;, cum este uzual pentru structurile de&lt;br /&gt;
date arborescente. Dedesubt exista un numar de Top Level Domain - Domenii&lt;br /&gt;
de Nivel Inalt - TLD-uri. Cele mai cunoscute sunt .COM .ORG .EDU .NET, dar&lt;br /&gt;
sunt mai multe. Ca si la un arbore, exista o radacina care se imparte pe&lt;br /&gt;
ramuri. Daca aveti ceva cunostinte despre computere, veti recunoaste DNS&lt;br /&gt;
ca un arbore de cautare si veti fi capabili sa gasiti nodurile nodurile&lt;br /&gt;
mici (leaf nodes) si marginile (edges). Punctele sunt noduri, marginile&lt;br /&gt;
sunt in nume. Cand cautati o masina, interogarea porneste recursiv&lt;br /&gt;
in ierarhie, plecand de la radacina (root). Daca doriti sa aflati adresa&lt;br /&gt;
pentru prep.ai.mit.edu, serverul dumneavoastra de nume va incepe&lt;br /&gt;
sa caute undeva. Incepe prin a cauta in cache. Daca stie raspunsul,&lt;br /&gt;
avandu-l in cache mai dinainte, va raspunde imediat, asa cum am vazut in&lt;br /&gt;
ultima sectiune. Daca nu stie, va indeparta partea din nume incepand de la&lt;br /&gt;
stanga, verificand daca stie ceva despre ai.mit.edu, apoi mit.edu., apoi&lt;br /&gt;
edu., si apoi daca nu cumva &quot;.&quot; are cunostinta, pentru ca asa s-a specificat in&lt;br /&gt;
fisierul hints (indicii). Apoi va intreba un server &quot;.&quot; (root)&lt;br /&gt;
despre prep.ai.mit.edu. Acest server &quot;.&quot; nu va sti raspunsul dar&lt;br /&gt;
va ajuta serverul dumneavoastra in calea sa, dandu-i o referinta,&lt;br /&gt;
spunandu-i unde sa mai caute. Aceste referinte vor conduce eventual&lt;br /&gt;
serverul dumneavoastra catre un server de nume care cunoaste&lt;br /&gt;
raspunsul. Voi ilustra aceasta acum, &quot;+norec&quot; inseamna ca &quot;dig&quot; aplica&lt;br /&gt;
interogari ne-recursive, asa ca va trebui sa aplicam chiar noi&lt;br /&gt;
recursivitatea. Cealalta optiune ar fi sa reducem cantitatea de date &lt;br /&gt;
pe care &quot;dig&quot; o produce asa incat sa nu avem de-a face cu prea multe pagini:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
$ dig +norec +noH +noques +nostats +nocmd prep.ai.mit.edu.&lt;br /&gt;
;; res options: init defnam dnsrch&lt;br /&gt;
;; got answer:&lt;br /&gt;
; flags: qr ra; QUERY: 1, ANSWER: 0, AUTHORITY: 13, ADDITIONAL: 13&lt;br /&gt;
;; AUTHORITY SECTION:&lt;br /&gt;
.                       5d23h48m47s IN NS  I.ROOT-SERVERS.NET.&lt;br /&gt;
.                       5d23h48m47s IN NS  E.ROOT-SERVERS.NET.&lt;br /&gt;
.                       5d23h48m47s IN NS  D.ROOT-SERVERS.NET.&lt;br /&gt;
.                       5d23h48m47s IN NS  A.ROOT-SERVERS.NET.&lt;br /&gt;
.                       5d23h48m47s IN NS  H.ROOT-SERVERS.NET.&lt;br /&gt;
.                       5d23h48m47s IN NS  C.ROOT-SERVERS.NET.&lt;br /&gt;
.                       5d23h48m47s IN NS  G.ROOT-SERVERS.NET.&lt;br /&gt;
.                       5d23h48m47s IN NS  F.ROOT-SERVERS.NET.&lt;br /&gt;
.                       5d23h48m47s IN NS  B.ROOT-SERVERS.NET.&lt;br /&gt;
.                       5d23h48m47s IN NS  J.ROOT-SERVERS.NET.&lt;br /&gt;
.                       5d23h48m47s IN NS  K.ROOT-SERVERS.NET.&lt;br /&gt;
.                       5d23h48m47s IN NS  L.ROOT-SERVERS.NET.&lt;br /&gt;
.                       5d23h48m47s IN NS  M.ROOT-SERVERS.NET.&lt;br /&gt;
&lt;br /&gt;
;; ADDITIONAL SECTION:&lt;br /&gt;
I.ROOT-SERVERS.NET.     6d23h48m47s IN A  192.36.148.17&lt;br /&gt;
E.ROOT-SERVERS.NET.     6d23h48m47s IN A  192.203.230.10&lt;br /&gt;
D.ROOT-SERVERS.NET.     6d23h48m47s IN A  128.8.10.90&lt;br /&gt;
A.ROOT-SERVERS.NET.     6d23h48m47s IN A  198.41.0.4&lt;br /&gt;
H.ROOT-SERVERS.NET.     6d23h48m47s IN A  128.63.2.53&lt;br /&gt;
C.ROOT-SERVERS.NET.     6d23h48m47s IN A  192.33.4.12&lt;br /&gt;
G.ROOT-SERVERS.NET.     6d23h48m47s IN A  192.112.36.4&lt;br /&gt;
F.ROOT-SERVERS.NET.     6d23h48m47s IN A  192.5.5.241&lt;br /&gt;
B.ROOT-SERVERS.NET.     6d23h48m47s IN A  128.9.0.107&lt;br /&gt;
J.ROOT-SERVERS.NET.     6d23h48m47s IN A  198.41.0.10&lt;br /&gt;
K.ROOT-SERVERS.NET.     6d23h48m47s IN A  193.0.14.129&lt;br /&gt;
L.ROOT-SERVERS.NET.     6d23h48m47s IN A  198.32.64.12&lt;br /&gt;
M.ROOT-SERVERS.NET.     6d23h48m47s IN A  202.12.27.33&lt;br /&gt;
&lt;br /&gt;
Aceasta este referinta. Ne ofera doar o &quot;sectiune autoritativa&quot;&lt;br /&gt;
nu o &quot;sectiune de raspuns&quot;. Propriul nostru nameserver ne raporteaza&lt;br /&gt;
la alt nameserver. Alegeti la intamplare:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
$ dig +norec +noH +noques +nostats +nocmd&lt;br /&gt;
prep.ai.mit.edu. @H.ROOT-SERVE&lt;br /&gt;
; (1 server found)&lt;br /&gt;
;; res options: init defnam dnsrch&lt;br /&gt;
;; got answer:&lt;br /&gt;
; flags: qr; QUERY: 1, ANSWER: 0, AUTHORITY: 3, ADDITIONAL: 3&lt;br /&gt;
;; AUTHORITY SECTION:&lt;br /&gt;
MIT.EDU.                2D IN NS        BITSY.MIT.EDU.&lt;br /&gt;
MIT.EDU.                2D IN NS        STRAWB.MIT.EDU.&lt;br /&gt;
MIT.EDU.                2D IN NS        W20NS.MIT.EDU.&lt;br /&gt;
&lt;br /&gt;
;; ADDITIONAL SECTION:&lt;br /&gt;
BITSY.MIT.EDU.          2D IN A         18.72.0.3&lt;br /&gt;
STRAWB.MIT.EDU.         2D IN A         18.71.0.151&lt;br /&gt;
W20NS.MIT.EDU.          2D IN A         18.70.0.160&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Se refera la serverele MIT.EDU odata. Din nou, alegeti unul la intamplare:&lt;br /&gt;
&lt;br /&gt;
$ dig +norec +noH +noques +nostats +nocmd prep.ai.mit.edu. @bitsy.mit.edu&lt;br /&gt;
; (1 server found)&lt;br /&gt;
;; res options: init defnam dnsrch&lt;br /&gt;
;; got answer:&lt;br /&gt;
; flags: qr ra; QUERY: 1, ANSWER: 1, AUTHORITY: 4, ADDITIONAL: 4&lt;br /&gt;
;; ANSWER SECTION:&lt;br /&gt;
prep.ai.mit.edu.        3h50m7s IN A    198.186.203.18&lt;br /&gt;
&lt;br /&gt;
;; AUTHORITY SECTION:&lt;br /&gt;
AI.MIT.EDU.             6H IN NS        FEDEX.AI.MIT.EDU.&lt;br /&gt;
AI.MIT.EDU.             6H IN NS        LIFE.AI.MIT.EDU.&lt;br /&gt;
AI.MIT.EDU.             6H IN NS        ALPHA-BITS.AI.MIT.EDU.&lt;br /&gt;
AI.MIT.EDU.             6H IN NS        BEET-CHEX.AI.MIT.EDU.&lt;br /&gt;
&lt;br /&gt;
;; ADDITIONAL SECTION:&lt;br /&gt;
FEDEX.AI.MIT.EDU.       6H IN A         192.148.252.43&lt;br /&gt;
LIFE.AI.MIT.EDU.        6H IN A         128.52.32.80&lt;br /&gt;
ALPHA-BITS.AI.MIT.EDU.  6H IN A         128.52.32.5&lt;br /&gt;
BEET-CHEX.AI.MIT.EDU.   6H IN A         128.52.32.22&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
DE data aceasta avem o &quot;sectiune de raspuns&quot; si un raspuns la interogarea&lt;br /&gt;
noastra. &quot;Sectiunea autoritativa&quot; contine informatii despre ce servere&lt;br /&gt;
sa interogam despre ai.mit.edu data viitoare. Asa ca le puteti interoga&lt;br /&gt;
data viitoare direct despre ce nume va intereseaza din domeniul ai.mit.edu.&lt;br /&gt;
&lt;br /&gt;
Deci pornind de la &quot;.&quot; am gasit serverele de nume pentru fiecare nivel&lt;br /&gt;
in numele de domeniu, prin referinte. Daca ati folosit propriul&lt;br /&gt;
server de nume in loc de alte servere,&lt;br /&gt;
nameserverul dumneavoastra a stocat, bineinteles in cache, toata&lt;br /&gt;
informatia pe care a gasit-o &quot;sapand&quot; (comanda &quot;dig&quot;) pentru aceasta, si&lt;br /&gt;
nu va trebui sa cerceteze mult pentru raspunsuri, un timp.&lt;br /&gt;
&lt;br /&gt;
In structura arborescenta analoga, fiecare &quot;.&quot; este un punct&lt;br /&gt;
de ramificatie si fiecare parte intre &quot;.&quot; reprezinta&lt;br /&gt;
numele ramurilor individuale in arbore. Unul urca pe arbore luand numele&lt;br /&gt;
pe care il dorim (prep.ai.mit.edu) intreband root-ul &quot;.&quot; sau orice&lt;br /&gt;
server parinte dinspre root  catre prep.ai.mit.edu despre care&lt;br /&gt;
avem informatii in cache. Odata ce limitele cache-ului&lt;br /&gt;
sunt atinse, rezolverul recursiv &quot;iese&quot; interogand serverele, obtinand&lt;br /&gt;
referinte (margini - edges) in nume.&lt;br /&gt;
&lt;br /&gt;
Un domeniu mai putin discutat, dar la fel de important&lt;br /&gt;
este in-addr.arpa. Este de asemeni catalogat ca un domeniu &quot;normal&quot; ne&lt;br /&gt;
permite sa obtinem numele host-ului cand ii cunoastem adresa. Un lucru&lt;br /&gt;
important de retinut aici este ca adresele IP sunt scrise in&lt;br /&gt;
ordine inversa in domeniul in-addr.arpa. Daca aveti adresa unei masini, de&lt;br /&gt;
exemplu 192.148.52.43, named procedeaza ca in exemplul cu&lt;br /&gt;
prep.ai.mit.edu:&lt;br /&gt;
cauta serverele arpa. , cauta serverele in-addr.arpa, cauta serverele&lt;br /&gt;
192.in-addr.arpa. , cauta serverele 148.192.in-addr.arpa., cauta serverele&lt;br /&gt;
52.148.192.in-addr.arpa. , cauta inregistrarile necesare pentru  &lt;br /&gt;
43.52.148.192.in-addr.arpa. Inteligent, nu? (Spuneti &quot;da&quot;.) Reversia&lt;br /&gt;
numerelor poate crea confuzie.&lt;br /&gt;
&lt;br /&gt;
5.2. Propriul nostru domeniu&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Acum sa definim propriul nostru domeniu. Vom face domeniul linux.bogus&lt;br /&gt;
si vom defini masini in el. Voi folosi nume de domenii total aiurea,&lt;br /&gt;
astfel incat sa ne asiguram ca nu deranjam pe nimeni Acolo Afara.&lt;br /&gt;
&lt;br /&gt;
Inca un lucru inainte de a incepe. Nu toate caracterele sunt permise&lt;br /&gt;
in numele de domenii. Suntem restrictionati la caracterele din alfabetul&lt;br /&gt;
englez: a-z si numere 0-9 si caracterul &quot;-&quot;. Limitati-va la aceste&lt;br /&gt;
caractere. Caracterele majuscule si minuscule sunt identice pentru DNS,&lt;br /&gt;
deci pat.uio.no este identic cu Pat.Uio.No.&lt;br /&gt;
&lt;br /&gt;
Am pornit deja aceasta parte cu o linie in named.conf:&lt;br /&gt;
&lt;br /&gt;
______________________________________________________________________&lt;br /&gt;
zone &quot;0.0.127.in-addr.arpa&quot; {&lt;br /&gt;
type master;&lt;br /&gt;
file &quot;pz/127.0.0&quot;;&lt;br /&gt;
};&lt;br /&gt;
______________________________________________________________________&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Va rog sa observati lipsa lui &quot;.&quot; la sfarsitul numelor de domeniu in acest&lt;br /&gt;
fisier. Acesta spune ca acum vom definit zona 0.0.127.in-addr.arpa, care&lt;br /&gt;
este serverul master pentru ea si care este stocat in fisierul numit&lt;br /&gt;
pz/127.0.0. Deja am configurat acest fisier, care arata:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
______________________________________________________________________&lt;br /&gt;
$TTL 3D&lt;br /&gt;
@               IN      SOA     ns.linux.bogus. hostmaster.linux.bogus. (&lt;br /&gt;
1       ; Serial&lt;br /&gt;
8H      ; Refresh&lt;br /&gt;
2H      ; Retry&lt;br /&gt;
4W      ; Expire&lt;br /&gt;
1D)     ; Minimum TTL&lt;br /&gt;
NS      ns.linux.bogus.&lt;br /&gt;
1                       PTR     localhost.&lt;br /&gt;
______________________________________________________________________&lt;br /&gt;
&lt;br /&gt;
Observati &quot;.&quot; la sfarsitul fiecarui nume de domeniu in acest fisier,&lt;br /&gt;
in contrast cu named.conf de mai sus. Unii prefera sa inceapa fiecare zona&lt;br /&gt;
cu directiva $ORIGIN, dar aceasta configurare este superflua. Originea&lt;br /&gt;
(din care face parte ierarhia DNS) unei fisier zona este specificata&lt;br /&gt;
in sectiunea &quot;zone&quot; din fisierul named.conf; in acest caz este&lt;br /&gt;
0.0.127.in-addr.arpa.&lt;br /&gt;
&lt;br /&gt;
Acest &quot;fisier zona&quot; contine 3 &quot;inregistrari resursa&quot; (RR): A SOA RR.  A NS&lt;br /&gt;
RR si un PTR RR. SOA este prescurtarea pentru Start of Authority. &quot;@&quot;&lt;br /&gt;
este notatia speciala semnificand originea, si cum coloana &quot;domain&quot; pentru&lt;br /&gt;
acest fisier indica 0.0.127.in-addr.arpa, prima linie inseamna in realitate:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
0.0.127.in-addr.arpa.   IN      SOA ...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
NS este name server RR. Nu este nici un &quot;@&quot; la inceputul acestei linii;&lt;br /&gt;
este implicit pentru ca inceputul liniei anterioare incepe cu un &quot;@&quot;. Va&lt;br /&gt;
scuteste de redactat. Astfel, linia NS poate fi scrisa deasemeni:&lt;br /&gt;
&lt;br /&gt;
0.0.127.in-addr.arpa.   IN      NS      ns.linux.bogus&lt;br /&gt;
&lt;br /&gt;
Aceasta spune DNS-ului ce masina este name-serverul pentru&lt;br /&gt;
domeniul 0.0.127.in-addr.arpa, este ns.linux.bogus. &quot;ns&quot; este un nume&lt;br /&gt;
uzitat pentru serverele de nume, dar ca si pentru serverele web care&lt;br /&gt;
sunt numite www.ceva numele poate fi oricare.&lt;br /&gt;
&lt;br /&gt;
Si, in final, inregistrarea PTR (Domain Name Pointer - Pointerul Numelui &lt;br /&gt;
de Domeniu) arata ca hostul de la adresa 1 din&lt;br /&gt;
subnetul 0.0.127.in-addr.arpa, de exemplu 127.0.0.1 este numit localhost.&lt;br /&gt;
&lt;br /&gt;
Inregistrarea SOA este preambulul tuturor fisierelor de zona, si ar trebui&lt;br /&gt;
sa fie exact cate una pentru fiecare fisier de zona. Aceasta descrie zona,&lt;br /&gt;
de unde vine (o masina numita ns.linux.bogus), cine este responsabil&lt;br /&gt;
pentru continutul ei (hostmaster@linux.bogus; ar trebui sa inserati adresa&lt;br /&gt;
dumneavoastra de e-mail aici), ce versiune a fisierului zona este (serial:1)&lt;br /&gt;
si alte lucruri care au de-a face cu cachingul si serverele DNS secundare.&lt;br /&gt;
Pentru restul campurilor (refresh, retry, expire si minimum)&lt;br /&gt;
folositi numerele utilizate in acest HOWTO si ar trebui sa fiti in&lt;br /&gt;
siguranta. Inainte de SOA apare o linie esentiala, linia $TTL 3D. Puneti&lt;br /&gt;
in ea toate fisierele de zona. &lt;br /&gt;
&lt;br /&gt;
Acum reporniti named (cu comanda ndc restart) si folositi &quot;dig&quot; pentru a&lt;br /&gt;
examina rezultatele. -x cere o interogare inversa:&lt;br /&gt;
&lt;br /&gt;
$ dig -x 127.0.0.1&lt;br /&gt;
&lt;br /&gt;
; &amp;lt;&amp;lt;&amp;gt;&amp;gt; DiG 8.2 &amp;lt;&amp;lt;&amp;gt;&amp;gt; -x&lt;br /&gt;
;; res options: init recurs defnam dnsrch&lt;br /&gt;
;; got answer:&lt;br /&gt;
;; -&amp;gt;&amp;gt;HEADER&amp;lt;&amp;lt;- opcode: QUERY, status: NOERROR, id: 4&lt;br /&gt;
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 0&lt;br /&gt;
;; QUERY SECTION:&lt;br /&gt;
;;      1.0.0.127.in-addr.arpa, type = ANY, class = IN&lt;br /&gt;
&lt;br /&gt;
;; ANSWER SECTION:&lt;br /&gt;
1.0.0.127.in-addr.arpa.  1D IN PTR  localhost.&lt;br /&gt;
&lt;br /&gt;
;; AUTHORITY SECTION:&lt;br /&gt;
0.0.127.in-addr.arpa.   1D IN NS        ns.penguin.bv.&lt;br /&gt;
&lt;br /&gt;
;; Total query time: 5 msec&lt;br /&gt;
;; FROM: lookfar to SERVER: default -- 127.0.0.1&lt;br /&gt;
;; WHEN: Sat Dec 16 01:13:48 2000&lt;br /&gt;
;; MSG SIZE  sent: 40  rcvd: 110&lt;br /&gt;
&lt;br /&gt;
Deci se descurca sa obtina localhostul din 127.0.0.1, e OK. Acum, pentru&lt;br /&gt;
scopul nostru principal, inserati o noua sectiune zona (&quot;zone&quot;) in&lt;br /&gt;
named.conf:&lt;br /&gt;
&lt;br /&gt;
______________________________________________________________________&lt;br /&gt;
zone &quot;linux.bogus&quot; {&lt;br /&gt;
notify no;&lt;br /&gt;
type master;&lt;br /&gt;
file &quot;pz/linux.bogus&quot;;&lt;br /&gt;
};&lt;br /&gt;
______________________________________________________________________&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Observati din nou lipsa &quot;.&quot; din numele de domeniu din fisierul named.conf.&lt;br /&gt;
In fisierul zona linux.bogus vom pune niste date total aiurea.&lt;br /&gt;
&lt;br /&gt;
______________________________________________________________________&lt;br /&gt;
;&lt;br /&gt;
; Zone file for linux.bogus&lt;br /&gt;
;&lt;br /&gt;
; The full zone file&lt;br /&gt;
;&lt;br /&gt;
$TTL 3D&lt;br /&gt;
@       IN      SOA     ns.linux.bogus. hostmaster.linux.bogus. (&lt;br /&gt;
199802151       ; serial, todays date + todays serial&lt;br /&gt;
8H              ; refresh, seconds&lt;br /&gt;
2H              ; retry, seconds&lt;br /&gt;
4W              ; expire, seconds&lt;br /&gt;
1D )            ; minimum, seconds&lt;br /&gt;
;&lt;br /&gt;
NS      ns              ; Inet Address of name server&lt;br /&gt;
MX      10 mail.linux.bogus     ; Primary Mail Exchanger&lt;br /&gt;
MX      20 mail.friend.bogus.   ; Secondary Mail Exchanger&lt;br /&gt;
;&lt;br /&gt;
localhost       A       127.0.0.1&lt;br /&gt;
ns              A       192.168.196.2&lt;br /&gt;
mail            A       192.168.196.4&lt;br /&gt;
______________________________________________________________________&lt;br /&gt;
&lt;br /&gt;
Doua lucruri trebuie observate in legatura cu inregistrarea SOA:&lt;br /&gt;
ns.linux.bogus trebuie sa fie o masina cu inregistrare &quot;A&quot;. Nu este in&lt;br /&gt;
regula sa avem o inregistrarea CNAME pentru masina mentionata in&lt;br /&gt;
inregistrarea SOA. Numele ei nu este obligatoriu sa fie &quot;ns&quot;, poate&lt;br /&gt;
fi orice nume &quot;legal&quot;, acceptabil, de host. Apoi, hostmaster.linux.bogus&lt;br /&gt;
trebuie citit ca hostmaster@linux.bogus. Acesta ar trebui sa fie un mail&lt;br /&gt;
alias sau un mailbox (cutie postala) unde persoanele care intretin DNS-ul&lt;br /&gt;
ar trebui sa citeasca frecvent mailul. Orice mail privind domeniul va fi&lt;br /&gt;
trimis la adresa listata aici. Numele nu e necesar&lt;br /&gt;
sa fie &quot;hostmaster&quot;, paote fi adresa dumneavoastra normala&lt;br /&gt;
de e-mail, dar adresa de e-mail &quot;hostmaster&quot; ar trebui sa functioneze&lt;br /&gt;
la fel de bine. &lt;br /&gt;
&lt;br /&gt;
Exista un tip nou &quot;RR&quot; in acest fisier, RR-ul &quot;MX&quot;-ului sau&lt;br /&gt;
Mail Exchanger-ului. Acesta indica sistemului de e-mail unde&lt;br /&gt;
sa trimita mailul adresat cuiva@linux.bogus, dupa nume&lt;br /&gt;
mail.linux.bogus sau mail.friend.bogus. Numerele din fata fiecarei&lt;br /&gt;
masini este prioritatea RR-ului MailExchangerului. RR-ul&lt;br /&gt;
cu cel mai mic numar (10) este unde mailul ar trebui sa fie trimis daca&lt;br /&gt;
este posibil. Daca acesta rateaza, mailul va fi trimis urmatorului&lt;br /&gt;
cu numar mai mare, un manager de e-mail secundar (mail handler),&lt;br /&gt;
de exemplu mail.friend.bogus, care are prioritatea 20 aici.&lt;br /&gt;
&lt;br /&gt;
Restartati named cu &quot;ndc restart&quot;. Examinati rezultatul cu &quot;dig&quot;:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
$ dig any linux.bogus +pfmin&lt;br /&gt;
;; res options: init recurs defnam dnsrch&lt;br /&gt;
;; got answer:&lt;br /&gt;
;; -&amp;gt;&amp;gt;HEADER&amp;lt;&amp;lt;- opcode: QUERY, status: NOERROR, id: 23499&lt;br /&gt;
;; QUERY: 1, ANSWER: 4, AUTHORITY: 1, ADDITIONAL: 1&lt;br /&gt;
;; QUERY SECTION:&lt;br /&gt;
;;      linux.bogus, type = ANY, class = IN&lt;br /&gt;
&lt;br /&gt;
;; ANSWER SECTION:&lt;br /&gt;
linux.bogus.            3D IN MX        10 mail.linux.bogus.linux.bogus.&lt;br /&gt;
linux.bogus.            3D IN MX        20 mail.friend.bogus.&lt;br /&gt;
linux.bogus.            3D IN NS        ns.linux.bogus.&lt;br /&gt;
linux.bogus.            3D IN SOA       ns.linux.bogus.hostmaster.linux&lt;br /&gt;
199802151       ; serial&lt;br /&gt;
8H              ; refresh&lt;br /&gt;
2H              ; retry&lt;br /&gt;
4W              ; expiry&lt;br /&gt;
1D )            ; minimum&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Examinand cu atentie rezultatele de mai sus, veti descoperi o hiba. Linia&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
linux.bogus.            3D IN MX  10 mail.linux.bogus.linux.bogus.&lt;br /&gt;
&lt;br /&gt;
este total gresita. Ar trebui sa fie:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
linux.bogus.            3D IN MX        10 mail.linux.bogus.&lt;br /&gt;
&lt;br /&gt;
Am facut intentionat o greseala, ca sa puteti invata din ea :-). Privind&lt;br /&gt;
in fisierul zona, vom observa aceasta linie;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
MX      10 mail.linux.bogus     ; Primary Mail Exchanger&lt;br /&gt;
&lt;br /&gt;
Lipseste un punct. Sau are prea multe &quot;linux.bogus&quot;. Daca un nume de&lt;br /&gt;
masina nu se termina cu punct intr-un fisier zona, originea este adaugata&lt;br /&gt;
la sfarsitul lui, cauzand dublura linux.bogus.linux.bogus. Asa ca ori&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
______________________________________________________________________&lt;br /&gt;
MX      10 mail.linux.bogus.    ; Primary Mail Exchanger&lt;br /&gt;
______________________________________________________________________&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ori&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
______________________________________________________________________&lt;br /&gt;
MX      10 mail                 ; Primary Mail Exchanger&lt;br /&gt;
______________________________________________________________________&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
este corect. Prefer ultima forma, e mai putin de scris.&lt;br /&gt;
Sunt anumiti experti in BIND care dezaproba, si altii care aproba aceasta.&lt;br /&gt;
Intr-un fisier zona, domeniul ar trebui sa fie ori scris si terminat&lt;br /&gt;
in &quot;.&quot; ori ne inclus deloc, caz in care ramane implicita originea.&lt;br /&gt;
&lt;br /&gt;
Trebuie sa va stresez cu ideea ca in fisierul named.conf nu trebuie sa fie&lt;br /&gt;
semne &quot;.&quot; dupa numele de domenii. N-aveti idee de cate ori&lt;br /&gt;
prea multe sau prea putine &quot;.&quot; au pus in stare de confuzie utilizatorii.&lt;br /&gt;
&lt;br /&gt;
Deci, ideea mea aici este noul fisier zona , cu cateva informatii in plus:&lt;br /&gt;
&lt;br /&gt;
______________________________________________________________________&lt;br /&gt;
;&lt;br /&gt;
; Zone file for linux.bogus&lt;br /&gt;
;&lt;br /&gt;
; The full zone file&lt;br /&gt;
;&lt;br /&gt;
$TTL 3D&lt;br /&gt;
@       IN      SOA     ns.linux.bogus. hostmaster.linux.bogus. (&lt;br /&gt;
199802151       ; serial, todays date + todays serial&lt;br /&gt;
8H              ; refresh, seconds&lt;br /&gt;
2H              ; retry, seconds&lt;br /&gt;
4W              ; expire, seconds&lt;br /&gt;
1D )            ; minimum, seconds&lt;br /&gt;
;&lt;br /&gt;
TXT     &quot;Linux.Bogus, your DNS consultants&quot;&lt;br /&gt;
NS      ns              ; Inet Address of name server&lt;br /&gt;
NS      ns.friend.bogus.&lt;br /&gt;
MX      10 mail         ; Primary Mail Exchanger&lt;br /&gt;
MX      20 mail.friend.bogus. ; Secondary Mail Exchanger&lt;br /&gt;
&lt;br /&gt;
localhost       A       127.0.0.1&lt;br /&gt;
&lt;br /&gt;
gw              A       192.168.196.1&lt;br /&gt;
HINFO   &quot;Cisco&quot; &quot;IOS&quot;&lt;br /&gt;
TXT     &quot;The router&quot;&lt;br /&gt;
&lt;br /&gt;
ns              A       192.168.196.2&lt;br /&gt;
MX      10 mail&lt;br /&gt;
MX      20 mail.friend.bogus.&lt;br /&gt;
HINFO   &quot;Pentium&quot; &quot;Linux 2.0&quot;&lt;br /&gt;
www             CNAME   ns&lt;br /&gt;
&lt;br /&gt;
donald          A       192.168.196.3&lt;br /&gt;
MX      10 mail&lt;br /&gt;
MX      20 mail.friend.bogus.&lt;br /&gt;
HINFO   &quot;i486&quot;      &quot;Linux 2.0&quot;&lt;br /&gt;
TXT     &quot;DEK&quot;&lt;br /&gt;
&lt;br /&gt;
mail            A       192.168.196.4&lt;br /&gt;
MX      10 mail&lt;br /&gt;
MX      20 mail.friend.bogus.&lt;br /&gt;
HINFO   &quot;386sx&quot; &quot;Linux 1.2&quot;&lt;br /&gt;
&lt;br /&gt;
ftp             A       192.168.196.5&lt;br /&gt;
MX      10 mail&lt;br /&gt;
MX      20 mail.friend.bogus.&lt;br /&gt;
HINFO   &quot;P6&quot; &quot;Linux 2.1.86&quot;&lt;br /&gt;
______________________________________________________________________&lt;br /&gt;
&lt;br /&gt;
Aici sunt cateva noi RR-uri: HINFO (Host INFOrmation) are doua parti; e un&lt;br /&gt;
obicei bun sa le comentati pe fiecare. Prima parte este harware-ul si&lt;br /&gt;
CPU-ul din respectiva masina, iar a doua parte&lt;br /&gt;
este software-ul sau sitemul de operare de pe masina. Masina &quot;ns&quot; este&lt;br /&gt;
un Pentium si ruleaza Linux 2.0. CNAME (Canonical NAME) este o cale de a&lt;br /&gt;
da fiecarei masini mai multe nume. Deci &quot;www&quot; este un alias pentru &quot;ns&quot;.&lt;br /&gt;
&lt;br /&gt;
Utilizarea inregistrarii CNAME este controversata. Dar e in OK sa urmati&lt;br /&gt;
regula potrivit careia o inregistrare MX, CNAME sau SOA nu trebuie sa nu&lt;br /&gt;
se refere niciodata la o inregistrare CNAME, trebuie intotdeauna sa se&lt;br /&gt;
refere la o inregistrare &quot;A&quot;, deci este inadmisibil sa avem:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
______________________________________________________________________&lt;br /&gt;
foobar          CNAME   www                     ; NO!&lt;br /&gt;
______________________________________________________________________&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
dar corect sa avem&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
______________________________________________________________________&lt;br /&gt;
foobar          CNAME   ns                      ; Yes!&lt;br /&gt;
______________________________________________________________________&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Este de asemeni sigur sa presupunem ca un CNAME nu este un nume de&lt;br /&gt;
host corect pentru o adresa de e-mail: webmaster@www.linux.bogus&lt;br /&gt;
este o adresa de e-mail ilegala, incorecta, data de configurarea de mai sus.&lt;br /&gt;
Va puteti chiar astepta la cativa administratori de e-mail de Afara sa&lt;br /&gt;
restrictioneze aceasta regula, daca pentru&lt;br /&gt;
dumneavoasta functioneaza. Calea pentru a evita aceasta este sa folositi&lt;br /&gt;
inregistrari &quot;A&quot; (si poate si altele, cum ar fi reguli MX) in loc:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
______________________________________________________________________&lt;br /&gt;
www             A       192.168.196.2&lt;br /&gt;
______________________________________________________________________&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Un numar de arch-BIND-wizards recomanda sa nu utilizati de loc&lt;br /&gt;
CNAME. Dar discutia legata aceasta nu face obiectul acestui HOWTO.&lt;br /&gt;
&lt;br /&gt;
Dar cum vedeti, acest HOWTO si multe site-uri nu urmeaza aceasta regula.&lt;br /&gt;
&lt;br /&gt;
Incarcati noua baza de date cu &quot;ndc reload&quot; ceea ce il obliga&lt;br /&gt;
pe named sa-si reciteasca fisierele.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
$ dig linux.bogus axfr&lt;br /&gt;
&lt;br /&gt;
; &amp;lt;&amp;lt;&amp;gt;&amp;gt; DiG 8.2 &amp;lt;&amp;lt;&amp;gt;&amp;gt; linux.bogus axfr&lt;br /&gt;
$ORIGIN linux.bogus.&lt;br /&gt;
@                       3D IN SOA       ns hostmaster (&lt;br /&gt;
199802151       ; serial&lt;br /&gt;
8H              ; refresh&lt;br /&gt;
2H              ; retry&lt;br /&gt;
4W              ; expiry&lt;br /&gt;
1D )            ; minimum&lt;br /&gt;
&lt;br /&gt;
3D IN NS        ns&lt;br /&gt;
3D IN NS        ns.friend.bogus.&lt;br /&gt;
3D IN MX        10 mail&lt;br /&gt;
3D IN MX        20 mail.friend.bogus.&lt;br /&gt;
3D IN TXT       &quot;Linux.Bogus, your DNS consultants&quot;&lt;br /&gt;
gw                      3D IN TXT       &quot;The router&quot;&lt;br /&gt;
3D IN HINFO     &quot;Cisco&quot; &quot;IOS&quot;&lt;br /&gt;
3D IN A         192.168.196.1&lt;br /&gt;
localhost               3D IN A         127.0.0.1&lt;br /&gt;
mail                    3D IN HINFO     &quot;386sx&quot; &quot;Linux 1.2&quot;&lt;br /&gt;
3D IN MX        10 mail&lt;br /&gt;
3D IN MX        20 mail.friend.bogus.&lt;br /&gt;
3D IN A         192.168.196.4&lt;br /&gt;
www                     3D IN CNAME     ns&lt;br /&gt;
donald                  3D IN TXT       &quot;DEK&quot;&lt;br /&gt;
3D IN HINFO     &quot;i486&quot; &quot;Linux 2.0&quot;&lt;br /&gt;
3D IN MX        10 mail&lt;br /&gt;
3D IN MX        20 mail.friend.bogus.&lt;br /&gt;
3D IN A         192.168.196.3&lt;br /&gt;
ns                      3D IN HINFO     &quot;Pentium&quot; &quot;Linux 2.0&quot;&lt;br /&gt;
3D IN MX        10 mail&lt;br /&gt;
3D IN MX        20 mail.friend.bogus.&lt;br /&gt;
3D IN A         192.168.196.2&lt;br /&gt;
ftp                     3D IN HINFO     &quot;P6&quot; &quot;Linux 2.1.86&quot;&lt;br /&gt;
3D IN MX        10 mail&lt;br /&gt;
3D IN MX        20 mail.friend.bogus.&lt;br /&gt;
3D IN A         192.168.196.5&lt;br /&gt;
@                       3D IN SOA       ns hostmaster (&lt;br /&gt;
199802151       ; serial&lt;br /&gt;
8H              ; refresh&lt;br /&gt;
2H              ; retry&lt;br /&gt;
4W              ; expiry&lt;br /&gt;
1D )            ; minimum&lt;br /&gt;
&lt;br /&gt;
;; Received 29 answers (29 records).&lt;br /&gt;
;; FROM: lookfar to SERVER: 127.0.0.1&lt;br /&gt;
;; WHEN: Sat Dec 16 01:35:05 2000&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Asta e bine. Si observati ca arata chiar ca fisierul zona. Sa verificam ce&lt;br /&gt;
spune doar pentru www:&lt;br /&gt;
&lt;br /&gt;
$ dig www.linux.bogus +pfmin&lt;br /&gt;
;; res options: init recurs defnam dnsrch&lt;br /&gt;
;; got answer:&lt;br /&gt;
;; -&amp;gt;&amp;gt;HEADER&amp;lt;&amp;lt;- opcode: QUERY, status: NOERROR, id: 27345&lt;br /&gt;
;; QUERY: 1, ANSWER: 2, AUTHORITY: 2, ADDITIONAL: 1&lt;br /&gt;
;; QUERY SECTION:&lt;br /&gt;
;;      www.linux.bogus, type = A, class = IN&lt;br /&gt;
&lt;br /&gt;
;; ANSWER SECTION:&lt;br /&gt;
www.linux.bogus.        3D IN CNAME     ns.linux.bogus.&lt;br /&gt;
ns.linux.bogus.         3D IN A         192.168.196.2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Cu alte cuvinte, numele real al lui www.linux.bogus este ns.linux.bogus,&lt;br /&gt;
si va da si cateva informatii despre &quot;ns&quot; de asemeni, suficient pentru a&lt;br /&gt;
va conecta la el daca cere un program.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Acum suntem la jumatatea drumului.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
5.3. Zona reverse&lt;br /&gt;
&lt;br /&gt;
Acum programele pot converti numele din linux.bogus in adrese la care se&lt;br /&gt;
conecteaza. Dar de asemeni este ceruta o zona reverse, una care sa&lt;br /&gt;
faca DNS-ul capabil sa converteasca adresele in nume. Acest nume&lt;br /&gt;
este folosit de o multime de servere de diverse tipuri (FTP, WWW, IRC si&lt;br /&gt;
altele) pentru a decide daca vor comunica cu dumneavoastra sau nu, si daca&lt;br /&gt;
da, ce prioritate vi se va acorda. Pentru acces deplin la toate serviciile&lt;br /&gt;
Internet , o zona reverse este necesara.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Puneti aceasta in named.conf:&lt;br /&gt;
&lt;br /&gt;
______________________________________________________________________&lt;br /&gt;
zone &quot;196.168.192.in-addr.arpa&quot; {&lt;br /&gt;
notify no;&lt;br /&gt;
type master;&lt;br /&gt;
file &quot;pz/192.168.196&quot;;&lt;br /&gt;
};&lt;br /&gt;
______________________________________________________________________&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Este exact acelasi lucru ca si cu 0.0.127.in-addr.arpa si continuturile&lt;br /&gt;
sunt similare:&lt;br /&gt;
&lt;br /&gt;
______________________________________________________________________&lt;br /&gt;
$TTL 3D&lt;br /&gt;
@       IN      SOA     ns.linux.bogus. hostmaster.linux.bogus. (&lt;br /&gt;
199802151 ; Serial, todays date + todays serial&lt;br /&gt;
8H      ; Refresh&lt;br /&gt;
2H      ; Retry&lt;br /&gt;
4W      ; Expire&lt;br /&gt;
1D)     ; Minimum TTL&lt;br /&gt;
NS      ns.linux.bogus.&lt;br /&gt;
&lt;br /&gt;
1               PTR     gw.linux.bogus.&lt;br /&gt;
2               PTR     ns.linux.bogus.&lt;br /&gt;
3               PTR     donald.linux.bogus.&lt;br /&gt;
4               PTR     mail.linux.bogus.&lt;br /&gt;
5               PTR     ftp.linux.bogus.&lt;br /&gt;
______________________________________________________________________&lt;br /&gt;
&lt;br /&gt;
Acum restartati named-ul cu &quot;ndc restart&quot; si examinati rezultatele cu &quot;dig&quot;:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
______________________________________________________________________&lt;br /&gt;
$ dig -x 192.168.196.4 +pfmin&lt;br /&gt;
;; res options: init recurs defnam dnsrch&lt;br /&gt;
;; got answer:&lt;br /&gt;
;; -&amp;gt;&amp;gt;HEADER&amp;lt;&amp;lt;- opcode: QUERY, status: NOERROR, id: 8764&lt;br /&gt;
;; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1&lt;br /&gt;
;; QUERY SECTION:&lt;br /&gt;
;;      4.196.168.192.in-addr.arpa, type = ANY, class = IN&lt;br /&gt;
&lt;br /&gt;
;; ANSWER SECTION:&lt;br /&gt;
4.196.168.192.in-addr.arpa.  3D IN PTR  mail.linux.bogus.&lt;br /&gt;
______________________________________________________________________&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
deci arata OK, executati &quot;dig&quot; pentru toata configuratia pentru a o examina:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
______________________________________________________________________&lt;br /&gt;
dig -x 192.168.196 AXFR&lt;br /&gt;
&lt;br /&gt;
; &amp;lt;&amp;lt;&amp;gt;&amp;gt; DiG 8.2 &amp;lt;&amp;lt;&amp;gt;&amp;gt; -x AXFR&lt;br /&gt;
$ORIGIN 196.168.192.in-addr.arpa.&lt;br /&gt;
@                       3D IN SOA       ns.linux.bogus. hostmaster.linux.bogus. (&lt;br /&gt;
199802151       ; serial&lt;br /&gt;
8H              ; refresh&lt;br /&gt;
2H              ; retry&lt;br /&gt;
4W              ; expiry&lt;br /&gt;
1D )            ; minimum&lt;br /&gt;
&lt;br /&gt;
3D IN NS        ns.linux.bogus.&lt;br /&gt;
4                   3D IN PTR       mail.linux.bogus.&lt;br /&gt;
2                   3D IN PTR       ns.linux.bogus.&lt;br /&gt;
5                   3D IN PTR       ftp.linux.bogus.&lt;br /&gt;
3                   3D IN PTR       donald.linux.bogus.&lt;br /&gt;
1                   3D IN PTR       gw.linux.bogus.&lt;br /&gt;
@                   3D IN SOA       ns.linux.bogus. hostmaster.linux.bogus. (&lt;br /&gt;
199802151       ; serial&lt;br /&gt;
8H              ; refresh&lt;br /&gt;
2H              ; retry&lt;br /&gt;
4W              ; expiry&lt;br /&gt;
1D )            ; minimum&lt;br /&gt;
&lt;br /&gt;
;; Received 8 answers (8 records).&lt;br /&gt;
;; FROM: lookfar to SERVER: 127.0.0.1&lt;br /&gt;
;; WHEN: Sat Dec 16 01:44:03 2000&lt;br /&gt;
____________________________________________________________________&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Arata bine! Daca output-ul dumneavoastra nu arata la fel, cautati eroarea&lt;br /&gt;
in mesajele din syslog. Am explicat cum sa faceti aceasta in prima&lt;br /&gt;
sectiune la paragraful &quot;Pornirea lui named&quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
5.4. Cuvinte de atentionare.&lt;br /&gt;
&lt;br /&gt;
Trebuie sa adaug niste lucruri aici. Numerele IP utilizate in exemplele de&lt;br /&gt;
mai sus sunt luate din blocul &quot;retelelor private&quot;, ele nu sunt permise a&lt;br /&gt;
se utiliza in Internet, deci sunt potrivite a fi utilizate intr-un exemplu&lt;br /&gt;
ca acest HOWTO. Al doilea lucru este numarul de notificare:linia. Acesta&lt;br /&gt;
ii spune lui named sa nu notifice serverele secundare (slave)&lt;br /&gt;
cand a suferit o actualizare la unul dintre fisierele sale &quot;zone&quot;. In BIND 8&lt;br /&gt;
named poate notifica celelalte servere listate in inregistrarile NS in&lt;br /&gt;
fisierul &quot;zone&quot; cand o zona este actualizata. Aceasta situatie&lt;br /&gt;
este avantajoasa in mod normal. Dar pentru experimente private&lt;br /&gt;
cu zone, aceasta optiune ar trebui sa fie dezactivata - nu vrem sa&lt;br /&gt;
poluam Internetul cu experimentele noastre, nu?&lt;br /&gt;
&lt;br /&gt;
Si, bineinteles, acest domeniu este total aiurea si la fel&lt;br /&gt;
sunt toate adresele din el. Pentru un exemplu real vedeti urmatoarea&lt;br /&gt;
sectiune principala.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
5.5. De ce nu functioneaza interogarile inverse (reverse lookups).&lt;br /&gt;
&lt;br /&gt;
Sunt cateva &quot;chestii&quot; care in mod normal sunt evitate la interogarile&lt;br /&gt;
de nume vazute adesea la configurarea zonelor inverse. Inainte&lt;br /&gt;
de a trece mai departe, trebuie ca pe masinile dumneavoastra, interogarile&lt;br /&gt;
inverse sa fie functionale pe propriul nameserver. Daca nu functioneaza,&lt;br /&gt;
reveniti si puneti totul la punct inainte de a continua.&lt;br /&gt;
&lt;br /&gt;
Voi discuta doua situatii de nefunctionare a interogarilor&lt;br /&gt;
inverse, asa cum sunt vazute din afara retelei dumneavoastra.&lt;br /&gt;
&lt;br /&gt;
5.5.1 Zona inversa nu este investita.&lt;br /&gt;
&lt;br /&gt;
Cand cereti unui provider o plaja de adrese si un nume de domeniu,&lt;br /&gt;
numele de domeniu este in mod normal investit. Investirea este &quot;eticheta&quot;&lt;br /&gt;
pe care NS (Name Server) o inregistreaza si care va ajuta sa treceti de la&lt;br /&gt;
un nameserver la altul, asa cum am explicat in &quot;teoria seaca&quot; de mai&lt;br /&gt;
sus. Ati citit aceasta, nu-i asa? Daca zona inversa nu functioneaza,&lt;br /&gt;
reveniti si cititi-o. Acum.&lt;br /&gt;
&lt;br /&gt;
Zona inversa trebuie de asemeni investita. Daca aveti clasa 192.168.196 de&lt;br /&gt;
la provider cu domeniul linux.bogus, ei trebuie sa insereze inregistrarile&lt;br /&gt;
NS atat pentru zona directa (forward) cat si pentru cea inversa. Daca&lt;br /&gt;
urmati lantul de la in-addr.arpa in sus pana la reteaua dvs, probabil&lt;br /&gt;
gasiti o ruptura in acest lant, cel mai probabil la providerul dvs. Gasind&lt;br /&gt;
ruptura din lant, contactati providerul si cereti-i sa corecteze eroarea.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
5.5.2. Aveti un subnet fara clase.&lt;br /&gt;
&lt;br /&gt;
Acesta este oarecum un subiect avansat, dar subneturile fara clase sunt&lt;br /&gt;
ceva comun in ziua de azi si probabil ca aveti unul daca sunteti intr-o&lt;br /&gt;
firma mica.&lt;br /&gt;
&lt;br /&gt;
Un subnet fara clase este ceea ce tine Internetul in picioare in&lt;br /&gt;
zilele noastre. Cu cativa ani in urma au fost discutii intense cu privire&lt;br /&gt;
la limitarile adreselor IP. Tipii de la IETF (Internet Engineering&lt;br /&gt;
Task Force - ei mentin Internetul in stare de functionare) si-au stors&lt;br /&gt;
creierii si au rezolvat problema. Cu un pret. Pretul este ca veti&lt;br /&gt;
obtine mai putin de un subnet de clasa &quot;C&quot; si unele lucruri s-ar putea&lt;br /&gt;
sa crape. Va rog consultati ASK MR DNS la:&lt;br /&gt;
&amp;lt;http://www.acmebw.com/askmrdns/00007.htm&amp;gt; pentru o buna explicatie&lt;br /&gt;
cu privire la aceste lucruri, si cum sa va descurcati.&lt;br /&gt;
&lt;br /&gt;
Ati citit-o? Eu nu o voi explica, asa ca, va rog cititi-o!&lt;br /&gt;
&lt;br /&gt;
Prima parte a acestei probleme este ca ISP-ul dvs. trebuie&lt;br /&gt;
sa inteleaga tehnica descrisa de Mr. DNS. Nu toti ISP-stii mici au habar&lt;br /&gt;
de aceasta problema. Daca asa sta treaba, va trebui sa le explicati&lt;br /&gt;
problema si sa si insistati. Asigurati-va ca ati inteles-o dvs. intai. :-)&lt;br /&gt;
&lt;br /&gt;
Ei vor configura atunci o zona inversa foarte draguta pe serverul lor,&lt;br /&gt;
pe care o puteti examina spre corectitudine cu &quot;dig&quot;. &lt;br /&gt;
&lt;br /&gt;
A doua si ultima parte a problemei este ca trebuie sa intelegeti&lt;br /&gt;
tehnica. Daca nu sunteti sigur, reveniti si recititi-o. Atunci puteti sa&lt;br /&gt;
va configurati propria zona inversa fara clase, asa cum este descrisa&lt;br /&gt;
de Mr. DNS.&lt;br /&gt;
&lt;br /&gt;
Mai e o capcana care pandeste aici. Rezolverele vechi nu vor fi capabile&lt;br /&gt;
sa urmeze &quot;fenta&quot; cu CNAME in lantul de rezolvare si vor esua in&lt;br /&gt;
incercarea de a rezolva invers masina dvs. Rezultatul poate fi acela&lt;br /&gt;
ca serverul ii aloca o clasa de acces incorecta,&lt;br /&gt;
interzicerea accesului sau ceva de genul aceasta. Daca va impotmoliti&lt;br /&gt;
intr-un asemena serviciu, singura solutie (despre care am cunostinta) este&lt;br /&gt;
pentru ISP sa insereze inregistrarea dvs. PTR direct in fisierul zonei&lt;br /&gt;
fara clase in loc de inregistrare CNAME.&lt;br /&gt;
&lt;br /&gt;
Alte ISP-uri ofera alte cai de a rezolva aceasta problema, cum ar fi&lt;br /&gt;
formularele bazate pe Web care va permit sa va introduceti maparile inverse.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
5.6. Servere slave (sclav)&lt;br /&gt;
&lt;br /&gt;
Odata ce v-ati setat corect zonele pe serverele master, trebuie sa&lt;br /&gt;
configurati macar un server slave (&quot;sclav&quot;). Serverele slave sunt necesare&lt;br /&gt;
pentru a asigura robustetea serviciilor. Daca serverul master a picat,&lt;br /&gt;
oamenii de pe internet vor putea totusi primit date despre doemeniu de&lt;br /&gt;
la serverul slave. Un server slave ar trebui sa fie cat mai indepartat&lt;br /&gt;
de dvs posibil si sa imparta cu serverul master cat mai&lt;br /&gt;
putine din resursele de alimentare cu energie, LAN, ISP, oras, tara.&lt;br /&gt;
Daca toate aceste lucruri sunt diferite de ale serverului master, aveti un&lt;br /&gt;
bun server slave.&lt;br /&gt;
&lt;br /&gt;
Un server slave este pur si simplu un nameserver care copie fisierele zone&lt;br /&gt;
de la master. Il configurati astfel:&lt;br /&gt;
&lt;br /&gt;
______________________________________________________________________&lt;br /&gt;
zone &quot;linux.bogus&quot; {&lt;br /&gt;
type slave;&lt;br /&gt;
file &quot;sz/linux.bogus&quot;;&lt;br /&gt;
masters { 192.168.196.2; };&lt;br /&gt;
};&lt;br /&gt;
______________________________________________________________________&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Un mecanism numit trasfer de zone este folosit pentru a copia datele. &lt;br /&gt;
Transferul de zone este controlat de inregistrarea SOA: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
______________________________________________________________________&lt;br /&gt;
@       IN      SOA     ns.linux.bogus. hostmaster.linux.bogus. (&lt;br /&gt;
199802151       ; serial, todays date + todays serial&lt;br /&gt;
8H              ; refresh, seconds&lt;br /&gt;
2H              ; retry, seconds&lt;br /&gt;
4W              ; expire, seconds&lt;br /&gt;
1D )            ; minimum, seconds&lt;br /&gt;
______________________________________________________________________&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
O zona este transferata doar daca numarul serial al masterului este mai&lt;br /&gt;
mare decat al slave-ului. Dupa fiecare interval de refresh, slave-ul&lt;br /&gt;
va verifica daca masterul a fost actualizat.&lt;br /&gt;
Daca verificarea esueaza (pentru ca masterul nu este disponibil)&lt;br /&gt;
va reincerca verificarea. Daca va continua sa esueze atat timp cat dureaza&lt;br /&gt;
intervalul de expirare, slave-ul va sterge zona din propriul sistem de&lt;br /&gt;
fisiere si nu va mai actiona ca server pentru acea zona.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
6. Optiuni fundamentale de securitate.&lt;br /&gt;
&lt;br /&gt;
de Jamie Norrish &lt;br /&gt;
&lt;br /&gt;
Seterea optiunilor de configurare pentru a reduce posibilitatea aparitiei &lt;br /&gt;
problemelor&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sunt cativa pasi simpli pe care ii puteti parcurge si care va vor asigura&lt;br /&gt;
un server mai sigur si totodata ii vor reduce incarcarea. Materialul&lt;br /&gt;
prezentat aici nu este mai mult decat un puct de plecare. Daca va preocupa&lt;br /&gt;
securitatea (si ar trebui sa va preocupe), va rog sa consultati si&lt;br /&gt;
alte resurse de pe Internet (vedeti &quot;ultimul capitol&quot;).&lt;br /&gt;
&lt;br /&gt;
Urmatoarele directive de configurare apar in named.conf.&lt;br /&gt;
Daca o directiva apare in sectiunea &quot;options&quot; din fisier, se&lt;br /&gt;
aplica tuturor zonelor listate in acel fisier. Daca apare in optiunile&lt;br /&gt;
unei zone, se aplica numai acelei zone. On optiune dintr-o&lt;br /&gt;
zona suprascrie, anuleaza o inregistrare din zona &quot;options&quot;.&lt;br /&gt;
&lt;br /&gt;
6.1. Restrictionarea trasferului pe zone.&lt;br /&gt;
&lt;br /&gt;
Pentru ca serverele slave sa fie capabile sa raspunda interogarilor spre&lt;br /&gt;
domeniul dvs. trebuie sa fie capabile sa transfere informatia zona de la&lt;br /&gt;
serverul primar. In foarte putine cazuri e nevoie de aceasta. De&lt;br /&gt;
aceea, restrictionati transferurile pe zona, folosind optiunea&lt;br /&gt;
&quot;allow-trasfer&quot;. Presupunand ca 194.168.1.4 este adresa IP a lui&lt;br /&gt;
ns.friend.bogus, si adaugandu-va in scop de depanare:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
______________________________________________________________________&lt;br /&gt;
zone &quot;linux.bogus&quot; {&lt;br /&gt;
allow-transfer { 192.168.1.4; localhost; };&lt;br /&gt;
};&lt;br /&gt;
______________________________________________________________________&lt;br /&gt;
&lt;br /&gt;
Restrictionand transferul pe zone, va asigurati ca singura&lt;br /&gt;
informatie disponibila utilizatorilor este cea pe care acestia o cer&lt;br /&gt;
direct = nimeni nu poate cere, interoga toate detaliile configurarii dvs. &lt;br /&gt;
&lt;br /&gt;
6.2. Protectia impotriva spoofing-ului.&lt;br /&gt;
&lt;br /&gt;
In primul rand, dezactivati orice interogari pentru domenii care nu va&lt;br /&gt;
apartin, cu exceptia masinii dvs. interne/locale. Aceasta nu&lt;br /&gt;
doar preintampina utilizarea frauduloasa a serverului dvs. DNS, dar reduce&lt;br /&gt;
si utilizarea ne-necesara a acestuia.&lt;br /&gt;
&lt;br /&gt;
______________________________________________________________________&lt;br /&gt;
options {&lt;br /&gt;
allow-query { 192.168.196.0/24; localhost; };&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
zone &quot;linux.bogus&quot; {&lt;br /&gt;
allow-query { any; };&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
zone &quot;196.168.192.in-addr.arpa&quot; {&lt;br /&gt;
allow-query { any; };&lt;br /&gt;
};&lt;br /&gt;
______________________________________________________________________&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mai departe, dezactivati interogarile recursive cu exceptia celor de&lt;br /&gt;
la masinile locale/interne. Aceasta reduce riscul atacurilor&lt;br /&gt;
prin &quot;otravirea&quot; cache-ului, cand date false alimenteaza serverul. &lt;br /&gt;
&lt;br /&gt;
______________________________________________________________________&lt;br /&gt;
options {&lt;br /&gt;
allow-recursion { 192.168.196.0/24; localhost; };&lt;br /&gt;
};&lt;br /&gt;
______________________________________________________________________&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
6.3. Rularea lui named ca non-root.&lt;br /&gt;
&lt;br /&gt;
Este o idee buna sa rulati named ca utilizator altul decat root, asa incat&lt;br /&gt;
daca acesta este compromis, privilegiile castigate de catre cracker&lt;br /&gt;
sa fie cat mai limitate. Intai trebuie sa creati un grup si un&lt;br /&gt;
utilizator sub care named sa ruleze, si apoi sa modificati scriptul pe&lt;br /&gt;
care il folositi pentru a porni named. Transferati noul grup si utilizator&lt;br /&gt;
catre named folosind flagurile -d si -u.&lt;br /&gt;
&lt;br /&gt;
De exemplu, in Debian GNU/Linux 2.2 ati putea modifica scriptul /etc/init.d/bind&lt;br /&gt;
pentru a contine urmatoarea linie (unde userul si grupul &quot;named&quot; au fost&lt;br /&gt;
deja create):&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
______________________________________________________________________&lt;br /&gt;
start-stop-daemon --start --quiet --exec /usr/sbin/named -- -u named -g named&lt;br /&gt;
______________________________________________________________________&lt;br /&gt;
&lt;br /&gt;
La fel se procedeaza si cu RedHat si cu celelalte distributii. Dave Lugo a&lt;br /&gt;
descris un setup dual chroot &lt;br /&gt;
&amp;lt;http://www.etherboy.com/dns/chrootdns.html&amp;gt; care s-ar putea&lt;br /&gt;
sa fie interesant de citit.&lt;br /&gt;
&lt;br /&gt;
7. Un exemplu real de domeniu.&lt;br /&gt;
&lt;br /&gt;
Unde vom lista fisiere reale de zona.&lt;br /&gt;
&lt;br /&gt;
Utilizatorii mi-au sugerat sa includ un exemplu real de domeniu, ca si&lt;br /&gt;
unul tutorial, de instructaj.&lt;br /&gt;
&lt;br /&gt;
Folosesc acest exemplu cu permisiunea lui David Bullock de la LAND-5.&lt;br /&gt;
Aceste fisiere dateaza din 24 septembrie 1996, si au fost editate pentru a&lt;br /&gt;
se conforma restrictiilor BIND 8 si folosesc extensii scrise&lt;br /&gt;
de mine. Deci, ceea ce vedeti aici s-ar putea sa difere de ceea&lt;br /&gt;
ce ati putea afla interogand LAND-5 acum.&lt;br /&gt;
&lt;br /&gt;
7.1.  /etc/named.conf (sau /var/named/named.conf)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Aici gasim zona master pentru cele doua zone inverse necesare: reteaua&lt;br /&gt;
127.0.0  si subreteaua (subnetul) de la LAND-5  206.6.177 ca linie primara&lt;br /&gt;
pentru zona de forward a LAND-5 land-5.com. Observati ca in loc ca toate&lt;br /&gt;
fisierele sa fie adunate nu in directorul &quot;pz&quot; asa cum am facut in acest&lt;br /&gt;
HOWTO, le pune intr-un director numit &quot;zone&quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
______________________________________________________________________&lt;br /&gt;
// Boot file for LAND-5 name server&lt;br /&gt;
&lt;br /&gt;
options {&lt;br /&gt;
directory &quot;/var/named&quot;;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
zone &quot;.&quot; {&lt;br /&gt;
type hint;&lt;br /&gt;
file &quot;root.hints&quot;;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
zone &quot;0.0.127.in-addr.arpa&quot; {&lt;br /&gt;
type master;&lt;br /&gt;
file &quot;zone/127.0.0&quot;;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
zone &quot;land-5.com&quot; {&lt;br /&gt;
type master;&lt;br /&gt;
file &quot;zone/land-5.com&quot;;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
zone &quot;177.6.206.in-addr.arpa&quot; {&lt;br /&gt;
type master;&lt;br /&gt;
file &quot;zone/206.6.177&quot;;&lt;br /&gt;
};&lt;br /&gt;
______________________________________________________________________&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Daca puneti aceasta in fisierul dvs. named.conf spre a va juca, VA ROG&lt;br /&gt;
puneti &quot;notify no: &quot; in sectiunea zone, pentru cele doua zone land-5,&lt;br /&gt;
spre a evita incidentele.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
7.2.  /var/named/root.hints&lt;br /&gt;
&lt;br /&gt;
Tineti minte ca acest fisier este dinamic, iar cel listat aici este&lt;br /&gt;
vechi. Mai bine folositi unul produs cu &quot;dig&quot; asa cum am&lt;br /&gt;
explicat mai devreme:&lt;br /&gt;
&lt;br /&gt;
______________________________________________________________________&lt;br /&gt;
; &amp;lt;&amp;lt;&amp;gt;&amp;gt; DiG 8.1 &amp;lt;&amp;lt;&amp;gt;&amp;gt; @A.ROOT-SERVERS.NET.&lt;br /&gt;
; (1 server found)&lt;br /&gt;
;; res options: init recurs defnam dnsrch&lt;br /&gt;
;; got answer:&lt;br /&gt;
;; -&amp;gt;&amp;gt;HEADER&amp;lt;&amp;lt;- opcode: QUERY, status: NOERROR, id: 10&lt;br /&gt;
;; flags: qr aa rd; QUERY: 1, ANSWER: 13, AUTHORITY: 0, ADDITIONAL: 13&lt;br /&gt;
;; QUERY SECTION:&lt;br /&gt;
;;      ., type = NS, class = IN&lt;br /&gt;
&lt;br /&gt;
;; ANSWER SECTION:&lt;br /&gt;
.                     6D IN NS        G.ROOT-SERVERS.NET.&lt;br /&gt;
.                     6D IN NS        J.ROOT-SERVERS.NET.&lt;br /&gt;
.                     6D IN NS        K.ROOT-SERVERS.NET.&lt;br /&gt;
.                     6D IN NS        L.ROOT-SERVERS.NET.&lt;br /&gt;
.                     6D IN NS        M.ROOT-SERVERS.NET.&lt;br /&gt;
.                     6D IN NS        A.ROOT-SERVERS.NET.&lt;br /&gt;
.                     6D IN NS        H.ROOT-SERVERS.NET.&lt;br /&gt;
.                     6D IN NS        B.ROOT-SERVERS.NET.&lt;br /&gt;
.                     6D IN NS        C.ROOT-SERVERS.NET.&lt;br /&gt;
.                     6D IN NS        D.ROOT-SERVERS.NET.&lt;br /&gt;
.                     6D IN NS        E.ROOT-SERVERS.NET.&lt;br /&gt;
.                     6D IN NS        I.ROOT-SERVERS.NET.&lt;br /&gt;
.                     6D IN NS        F.ROOT-SERVERS.NET.&lt;br /&gt;
&lt;br /&gt;
;; ADDITIONAL SECTION:&lt;br /&gt;
G.ROOT-SERVERS.NET.     5w6d16h IN A    192.112.36.4&lt;br /&gt;
J.ROOT-SERVERS.NET.     5w6d16h IN A    198.41.0.10&lt;br /&gt;
K.ROOT-SERVERS.NET.     5w6d16h IN A    193.0.14.129&lt;br /&gt;
L.ROOT-SERVERS.NET.     5w6d16h IN A    198.32.64.12&lt;br /&gt;
M.ROOT-SERVERS.NET.     5w6d16h IN A    202.12.27.33&lt;br /&gt;
A.ROOT-SERVERS.NET.     5w6d16h IN A    198.41.0.4&lt;br /&gt;
H.ROOT-SERVERS.NET.     5w6d16h IN A    128.63.2.53&lt;br /&gt;
B.ROOT-SERVERS.NET.     5w6d16h IN A    128.9.0.107&lt;br /&gt;
C.ROOT-SERVERS.NET.     5w6d16h IN A    192.33.4.12&lt;br /&gt;
D.ROOT-SERVERS.NET.     5w6d16h IN A    128.8.10.90&lt;br /&gt;
E.ROOT-SERVERS.NET.     5w6d16h IN A    192.203.230.10&lt;br /&gt;
I.ROOT-SERVERS.NET.     5w6d16h IN A    192.36.148.17&lt;br /&gt;
F.ROOT-SERVERS.NET.     5w6d16h IN A    192.5.5.241&lt;br /&gt;
&lt;br /&gt;
;; Total query time: 215 msec&lt;br /&gt;
;; FROM: roke.uio.no to SERVER: A.ROOT-SERVERS.NET.  198.41.0.4&lt;br /&gt;
;; WHEN: Sun Feb 15 01:22:51 1998&lt;br /&gt;
;; MSG SIZE  sent: 17  rcvd: 436&lt;br /&gt;
______________________________________________________________________&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
7.3.  /var/named/zone/127.0.0&lt;br /&gt;
&lt;br /&gt;
Doar bazele, inregistrarea SOA obligatorie, si o inregistrare&lt;br /&gt;
care mapeaza 127.0.0.1 catre localhost. Ambele sunt necesare. Nimic mai&lt;br /&gt;
mult nu ar trebui sa fie in acest fisier. Nu vor&lt;br /&gt;
trebui niciodata updatate, decat daca nameserver-ul sau adresa hostmaster&lt;br /&gt;
a dvs se modifica.&lt;br /&gt;
&lt;br /&gt;
______________________________________________________________________&lt;br /&gt;
@               IN      SOA     land-5.com. root.land-5.com. (&lt;br /&gt;
199609203       ; Serial&lt;br /&gt;
28800   ; Refresh&lt;br /&gt;
7200    ; Retry&lt;br /&gt;
604800  ; Expire&lt;br /&gt;
86400)  ; Minimum TTL&lt;br /&gt;
NS      land-5.com.&lt;br /&gt;
&lt;br /&gt;
1                       PTR     localhost.&lt;br /&gt;
______________________________________________________________________&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Daca veti cauta intr-o instalare BIND aleatorie, veti observa probabil&lt;br /&gt;
ca linia $TTL lipseste. Nu a fost folosita inainte si doar versiunea 8.2 &lt;br /&gt;
BIND avertizeaza asupra lipsei acesteia. Va recomand sa puneti linia $TTL&lt;br /&gt;
in fisierele zona cand observati ca lipseste.&lt;br /&gt;
&lt;br /&gt;
7.4.  /var/named/zone/land-5.com&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Aici observam inregistrarea SOA obligatorie, inregistrarea&lt;br /&gt;
NS necesara. Putem vedea ca are un nameserver secundar la ns2.psi.net. Asa&lt;br /&gt;
ar trebui sa fie, intotdeauna sa fie un al doilea nameserver&lt;br /&gt;
in afara retelei, ca backup. Observam ca exista un host master numit&lt;br /&gt;
land-5 care se ocupa de multiplele servicii Internet, si ca acesta&lt;br /&gt;
este inregistrat cu CNAME ( o alternativa este utilizarea inregistrarii A).&lt;br /&gt;
&lt;br /&gt;
Asa cum vedem din inregistrarea SOA, fisierul zona incepe cu land-5.com,&lt;br /&gt;
persoana de contact este root@land-5.com. hostmaster este o alta&lt;br /&gt;
adresa folosita adesea pentru persoana de contact. Numarul serial este&lt;br /&gt;
obisnuitul format yyyymmdd cu numarul serial de astazi adaugat. Aceasta&lt;br /&gt;
este probabil a sasea versiune a fisierului zona, din 20&lt;br /&gt;
septembrie 1996. Tineti minte ca numarul serial trebuie sa creasca&lt;br /&gt;
monoton, aici este un singur digit pentru numarul serial de astazi, dupa 9&lt;br /&gt;
editari va trebui sa astepam pana maine inainte&lt;br /&gt;
de a edita din nou fisierul. Ganditi-ba la posibilitatea de a folosi 2&lt;br /&gt;
digiti.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
______________________________________________________________________&lt;br /&gt;
@       IN      SOA     land-5.com. root.land-5.com. (&lt;br /&gt;
199609206       ; serial, todays date + todays serial&lt;br /&gt;
8H              ; refresh, seconds&lt;br /&gt;
2H              ; retry, seconds&lt;br /&gt;
4W              ; expire, seconds&lt;br /&gt;
1D )            ; minimum, seconds&lt;br /&gt;
NS      land-5.com.&lt;br /&gt;
NS      ns2.psi.net.&lt;br /&gt;
MX      10 land-5.com.  ; Primary Mail Exchanger&lt;br /&gt;
TXT     &quot;LAND-5 Corporation&quot;&lt;br /&gt;
&lt;br /&gt;
localhost       A       127.0.0.1&lt;br /&gt;
&lt;br /&gt;
router          A       206.6.177.1&lt;br /&gt;
&lt;br /&gt;
land-5.com.     A       206.6.177.2&lt;br /&gt;
ns              A       206.6.177.3&lt;br /&gt;
www             A       207.159.141.192&lt;br /&gt;
&lt;br /&gt;
ftp             CNAME   land-5.com.&lt;br /&gt;
mail            CNAME   land-5.com.&lt;br /&gt;
news            CNAME   land-5.com.&lt;br /&gt;
&lt;br /&gt;
funn            A       206.6.177.2&lt;br /&gt;
&lt;br /&gt;
;&lt;br /&gt;
;       Workstations&lt;br /&gt;
;&lt;br /&gt;
ws-177200       A       206.6.177.200&lt;br /&gt;
MX      10 land-5.com.   ; Primary Mail Host&lt;br /&gt;
ws-177201       A       206.6.177.201&lt;br /&gt;
MX      10 land-5.com.   ; Primary Mail Host&lt;br /&gt;
ws-177202       A       206.6.177.202&lt;br /&gt;
MX      10 land-5.com.   ; Primary Mail Host&lt;br /&gt;
ws-177203       A       206.6.177.203&lt;br /&gt;
MX      10 land-5.com.   ; Primary Mail Host&lt;br /&gt;
ws-177204       A       206.6.177.204&lt;br /&gt;
MX      10 land-5.com.   ; Primary Mail Host&lt;br /&gt;
ws-177205       A       206.6.177.205&lt;br /&gt;
MX      10 land-5.com.   ; Primary Mail Host&lt;br /&gt;
; {Many repetitive definitions deleted - SNIP}&lt;br /&gt;
ws-177250       A       206.6.177.250&lt;br /&gt;
MX      10 land-5.com.   ; Primary Mail Host&lt;br /&gt;
ws-177251       A       206.6.177.251&lt;br /&gt;
MX      10 land-5.com.   ; Primary Mail Host&lt;br /&gt;
ws-177252       A       206.6.177.252&lt;br /&gt;
MX      10 land-5.com.   ; Primary Mail Host&lt;br /&gt;
ws-177253       A       206.6.177.253&lt;br /&gt;
MX      10 land-5.com.   ; Primary Mail Host&lt;br /&gt;
ws-177254       A       206.6.177.254&lt;br /&gt;
MX      10 land-5.com.   ; Primary Mail Host&lt;br /&gt;
______________________________________________________________________&lt;br /&gt;
&lt;br /&gt;
Daca veti examina nameserverul lui land-5, veti observa ca numele&lt;br /&gt;
hosturilor sunt exprimate in forma ws_number. De la ultimele versiuni de&lt;br /&gt;
BIND4 ,named a inceput sa intareasca restrictiile in legatura&lt;br /&gt;
cu caracterele ce pot fi folosite in numele hosturilor. Asa ca aceasta&lt;br /&gt;
nu functioneaza sub BIND8, asa ca am inlocuit caracterul &quot;-&quot; (liniuta)&lt;br /&gt;
cu caracterul &quot;_&quot; pentru a fi folosit in acest HOWTO.&lt;br /&gt;
&lt;br /&gt;
Un alt lucru de remarcat este ca statiile de lucru nu au nume individuale,&lt;br /&gt;
ci mai curand un prefix urmat de doua din ultimile parti ale&lt;br /&gt;
IP-ului. Folosirea unei astfel de conventii poate simplifica&lt;br /&gt;
intretinerea semnificativ, dar poate fi un pic impersonala si,&lt;br /&gt;
in fapt, o sursa de iritare printre clientii dumneavoastra. &lt;br /&gt;
&lt;br /&gt;
De asemeni, observam ca funn.land-5.com este un alias&lt;br /&gt;
pentru land-5.com, dar folosind inregistrarea A nu CNAME. Aceasta este o&lt;br /&gt;
buna politica, asa cum am spus si mai devreme. &lt;br /&gt;
&lt;br /&gt;
7.5.  /var/named/zone/206.6.177&lt;br /&gt;
&lt;br /&gt;
Voi face comentariile dupa acest fisier:&lt;br /&gt;
&lt;br /&gt;
______________________________________________________________________&lt;br /&gt;
@               IN      SOA     land-5.com. root.land-5.com. (&lt;br /&gt;
199609206       ; Serial&lt;br /&gt;
28800   ; Refresh&lt;br /&gt;
7200    ; Retry&lt;br /&gt;
604800  ; Expire&lt;br /&gt;
86400)  ; Minimum TTL&lt;br /&gt;
NS      land-5.com.&lt;br /&gt;
NS      ns2.psi.net.&lt;br /&gt;
;&lt;br /&gt;
;       Servers&lt;br /&gt;
;&lt;br /&gt;
1       PTR     router.land-5.com.&lt;br /&gt;
2       PTR     land-5.com.&lt;br /&gt;
2       PTR     funn.land-5.com.&lt;br /&gt;
;&lt;br /&gt;
;       Workstations&lt;br /&gt;
;&lt;br /&gt;
200     PTR     ws-177200.land-5.com.&lt;br /&gt;
201     PTR     ws-177201.land-5.com.&lt;br /&gt;
202     PTR     ws-177202.land-5.com.&lt;br /&gt;
203     PTR     ws-177203.land-5.com.&lt;br /&gt;
204     PTR     ws-177204.land-5.com.&lt;br /&gt;
205     PTR     ws-177205.land-5.com.&lt;br /&gt;
; {Many repetitive definitions deleted - SNIP}&lt;br /&gt;
250     PTR     ws-177250.land-5.com.&lt;br /&gt;
251     PTR     ws-177251.land-5.com.&lt;br /&gt;
252     PTR     ws-177252.land-5.com.&lt;br /&gt;
253     PTR     ws-177253.land-5.com.&lt;br /&gt;
254     PTR     ws-177254.land-5.com.&lt;br /&gt;
______________________________________________________________________&lt;br /&gt;
&lt;br /&gt;
Zona inversa este partea de configurare care da dureri de cap. Este&lt;br /&gt;
folosita pentru a identifica numele de host daca aveti IP-ul&lt;br /&gt;
unei masini. Exemplu: sunteti un server IRC si acceptati conexiuni de la&lt;br /&gt;
clientii IRC. Oricum, sunteti un server norvegian si acceptati&lt;br /&gt;
doar conexiuni de la clientii din Norvegia si celelalte tari scandinave.&lt;br /&gt;
Cand primiti o conexiune de la un client, biblioteca C e capabila sa&lt;br /&gt;
va spune IP-ul masinii client, pentru ca numarul IP este continut in toate&lt;br /&gt;
pachetele care traverseaza reteaua. Acum puteti invoca o functie&lt;br /&gt;
numita gethostbyaddr care cauta numele unui host avand data adresa IP.&lt;br /&gt;
Gethostbyaddr va interoga un server DNS, care va traversa reteaua&lt;br /&gt;
de servere DNS cautand masina respectiva. Sa presupunem ca conexiunea client&lt;br /&gt;
este de la ws-177200.land-5.com. Numarul IP pe care biblioteca C il&lt;br /&gt;
livreaza catre serverul IRC este 206.6.177.200. Pentru a afla numele&lt;br /&gt;
acelei masini trebuie sa gasim 200.177.6.206.in-addr.arpa. Serverul DNS va&lt;br /&gt;
trebui intai sa gaseasca serverele arpa. , apoi in-addr.arpa. ,&lt;br /&gt;
urmand calea inversa spre 206, apoi 6, in final gasind serverul pentru&lt;br /&gt;
177.6.206.in-addr.arpa la LAND-5. De unde va lua raspunsul final, cum ca&lt;br /&gt;
pentru 200.177.6.206.in-addr.arpa avem o inregistrare &quot;PTR&lt;br /&gt;
ws-177200.land-5.com&quot; insemnand ca numele care insoteste 206.6.177.200&lt;br /&gt;
este ws-177200.land-5.com.&lt;br /&gt;
&lt;br /&gt;
Inapoi la exemplul cu serverele IRC. Serverul IRC accepta doar conexiuni&lt;br /&gt;
din tari scandinave, de exemplu:  *.no, *.se, *.dk, numele&lt;br /&gt;
ws-177200.land-5.com e clar ca nu indeplineste aceasta conditie si&lt;br /&gt;
serverul ii va respinge conexiunea. Daca nu a fost&lt;br /&gt;
mapare inversa a lui 206.2.177.200 prin zona in-addr.arpa serverul nu va&lt;br /&gt;
fi capabil sa gaseasca numele deloc si nici sa compare 206.2.177.200&lt;br /&gt;
cu *.no, *.se and *.dk, asa ca acestea nu se vor potrivi nicicum. &lt;br /&gt;
&lt;br /&gt;
Unii va vor spune ca maparea inversa nu este importanta pentru servere sau&lt;br /&gt;
nu este importanta deloc. Nu este asa: multe servere FTP, news, IRC&lt;br /&gt;
si unele servere WWW (web) nu vor accepta conexiuni de la masini ale caror&lt;br /&gt;
nume nu le pot afla. Deci maparea inversa este de fapt obligatorie&lt;br /&gt;
si necesara.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
8. Intretinere.&lt;br /&gt;
&lt;br /&gt;
Tineti-l in viata.&lt;br /&gt;
&lt;br /&gt;
Exista o sarcina de intretinere cand aveti de-a face cu named-uri, alta&lt;br /&gt;
decat a le mentine ruland. Aceea de a mentine fisierul&lt;br /&gt;
root.hints actualizat, la zi. Cea mai usoara cale este cu &quot;dig&quot;. Prima&lt;br /&gt;
data rulati &quot;dig&quot; fara nici un argument, si veti obtine datele din&lt;br /&gt;
&quot;root.hints&quot; conform propriului nameserver. Apoi interogati unul&lt;br /&gt;
dintre rootservere listate cu &quot;dig @rootserver&quot;. Veti observa ca&lt;br /&gt;
rezultatul seamana foarte bine cu un&lt;br /&gt;
fisier &quot;root.hints&quot;. Salvati-l intr-un fisier (dig&lt;br /&gt;
@e.root-servers.net . ns &amp;gt;root.hints.new) si inlocuiti vechiul&lt;br /&gt;
root.hints cu el. &lt;br /&gt;
&lt;br /&gt;
Nu uitati sa restartati named dupa inlocuirea fisierului cache.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Al Longyear mi-a trimis acest script care rulat, poate actualiza automat&lt;br /&gt;
fisierul root.hints. Instalati-l intr-o intrare crontab pentru a&lt;br /&gt;
fi rulat odata pe luna si puteti uita de el. Scriptul presupune ca&lt;br /&gt;
va merge serviciul de mail si ca este definita adresa de hostmaster.&lt;br /&gt;
Puteti sa il modificati pentru a se potrivi configuratiei dvs.&lt;br /&gt;
&lt;br /&gt;
______________________________________________________________________&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
#&lt;br /&gt;
# Update the nameserver cache information file once per month.&lt;br /&gt;
# This is run automatically by a cron entry.&lt;br /&gt;
#&lt;br /&gt;
# Original by Al Longyear&lt;br /&gt;
# Updated for BIND 8 by Nicolai Langfeldt&lt;br /&gt;
# Miscelanious error-conditions reported by David A. Ranch&lt;br /&gt;
# Ping test suggested by Martin Foster&lt;br /&gt;
# named up-test suggested by Erik Bryer.&lt;br /&gt;
#&lt;br /&gt;
(&lt;br /&gt;
echo &quot;To: hostmaster &amp;lt;hostmaster&amp;gt;&quot;&lt;br /&gt;
echo &quot;From: system &amp;lt;root&amp;gt;&quot;&lt;br /&gt;
&lt;br /&gt;
# Is named up? Check the status of named.&lt;br /&gt;
case &#39;ndc status 2&amp;gt;&amp;amp;1 in&lt;br /&gt;
*&#39;cannot connect to command channel&#39;*)&lt;br /&gt;
echo &quot;named is DOWN. root.hints was NOT updated&quot;&lt;br /&gt;
echo&lt;br /&gt;
exit 0&lt;br /&gt;
;;&lt;br /&gt;
esac&lt;br /&gt;
PATH=/sbin:/usr/sbin:/bin:/usr/bin:&lt;br /&gt;
export PATH&lt;br /&gt;
# NOTE: /var/named must be writable only by trusted users or this script&lt;br /&gt;
# will cause root compromise/denial of service opportunities.&lt;br /&gt;
cd /var/named 2&amp;gt;/dev/null || {&lt;br /&gt;
echo &quot;Subject: Cannot cd to /var/named, error $?&quot;&lt;br /&gt;
echo&lt;br /&gt;
echo &quot;The subject says it all&quot;&lt;br /&gt;
exit 1&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Are we online?  Ping a server at your ISP&lt;br /&gt;
case &#39;ping -qnc 1 some.machine.net 2&amp;gt;&amp;amp;1&#39; in&lt;br /&gt;
*&#39;100% packet loss&#39;*)&lt;br /&gt;
echo &quot;Subject: root.hints NOT updated.  The network is DOWN.&quot;&lt;br /&gt;
echo&lt;br /&gt;
echo &quot;The subject says it all&quot;&lt;br /&gt;
exit 1&lt;br /&gt;
;;&lt;br /&gt;
esac&lt;br /&gt;
&lt;br /&gt;
dig @e.root-servers.net . ns &amp;gt;root.hints.new 2&amp;gt; errors&lt;br /&gt;
&lt;br /&gt;
case &#39;cat root.hints.new&#39; in&lt;br /&gt;
*NOERROR*)&lt;br /&gt;
# It worked&lt;br /&gt;
:;;&lt;br /&gt;
*)&lt;br /&gt;
echo &quot;Subject: The root.hints file update has FAILED.&quot;&lt;br /&gt;
echo&lt;br /&gt;
echo &quot;The root.hints update has failed&quot;&lt;br /&gt;
echo &quot;This is the dig output reported:&quot;&lt;br /&gt;
echo&lt;br /&gt;
cat root.hints.new errors&lt;br /&gt;
exit 1&lt;br /&gt;
;;&lt;br /&gt;
esac&lt;br /&gt;
&lt;br /&gt;
echo &quot;Subject: The root.hints file has been updated&quot;&lt;br /&gt;
echo&lt;br /&gt;
echo &quot;The root.hints file has been updated to contain the following&lt;br /&gt;
information:&quot;&lt;br /&gt;
echo&lt;br /&gt;
cat root.hints.new&lt;br /&gt;
&lt;br /&gt;
chown root.root root.hints.new&lt;br /&gt;
chmod 444 root.hints.new&lt;br /&gt;
rm -f root.hints.old errors&lt;br /&gt;
mv root.hints root.hints.old&lt;br /&gt;
mv root.hints.new root.hints&lt;br /&gt;
ndc restart&lt;br /&gt;
echo&lt;br /&gt;
echo &quot;The nameserver has been restarted to ensure that the update is complete&quot;&lt;br /&gt;
echo &quot;The previous root.hints file is now called&lt;br /&gt;
/var/named/root.hints.old.&quot;&lt;br /&gt;
) 2&amp;gt;&amp;amp;1 | /usr/lib/sendmail -t&lt;br /&gt;
exit 0&lt;br /&gt;
______________________________________________________________________&lt;br /&gt;
&lt;br /&gt;
Unii dintre dvs v-ati prins ca fisierul root.hints este disponibil&lt;br /&gt;
prin ftp din Internic. Va rog nu folositi ftp&lt;br /&gt;
pentru a actualiza root.hints, metoda de mai sus este mult mai prietenoasa&lt;br /&gt;
pentru net si Internic.&lt;br /&gt;
&lt;br /&gt;
9. Conversia de la versiunea 4 la versiunea 8.&lt;br /&gt;
&lt;br /&gt;
Aceasta a fost la inceput o sectiune despre folosirea lui BIND 8 scrisa de&lt;br /&gt;
David E.  Smith (dave@bureau42.ml.org). Am editat cate ceva pentru a&lt;br /&gt;
se potrivi noului nume al sectiunii.&lt;br /&gt;
&lt;br /&gt;
Nu sunt prea multe de spus. Cu exceptia inlocuirii fisierului named.boot&lt;br /&gt;
cu named.conf, restul este identic. Iar BIND 8 vine cu un script PERL care&lt;br /&gt;
converteste totul de la vechiul la noul format. Exemplu de fisier&lt;br /&gt;
named.boot (vechiul stil) pentru caching nameserver:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
______________________________________________________________________&lt;br /&gt;
directory /var/named&lt;br /&gt;
cache   .                                     root.hints&lt;br /&gt;
primary 0.0.127.IN-ADDR.ARPA                    127.0.0.zone&lt;br /&gt;
primary localhost                               localhost.zone&lt;br /&gt;
______________________________________________________________________&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In linia de comanda, in directorul bind8/src/bin/named (aceasta presupune&lt;br /&gt;
ca aveti sursele distributiei). Daca aveti pachetul binar, scriptul e prin&lt;br /&gt;
preajma... Dati comanda :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
______________________________________________________________________&lt;br /&gt;
./named-bootconf.pl &amp;lt; named.boot &amp;gt; named.conf&lt;br /&gt;
______________________________________________________________________&lt;br /&gt;
&lt;br /&gt;
care va crea named.conf:&lt;br /&gt;
&lt;br /&gt;
______________________________________________________________________&lt;br /&gt;
// generated by named-bootconf.pl&lt;br /&gt;
&lt;br /&gt;
options {&lt;br /&gt;
directory &quot;/var/named&quot;;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
zone &quot;.&quot; {&lt;br /&gt;
type hint;&lt;br /&gt;
file &quot;root.hints&quot;;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
zone &quot;0.0.127.IN-ADDR.ARPA&quot; {&lt;br /&gt;
type master;&lt;br /&gt;
file &quot;127.0.0.zone&quot;;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
zone &quot;localhost&quot; {&lt;br /&gt;
type master;&lt;br /&gt;
file &quot;localhost.zone&quot;;&lt;br /&gt;
};&lt;br /&gt;
______________________________________________________________________&lt;br /&gt;
&lt;br /&gt;
Functioneaza pentru orice intra intr-un fisier named.boot, desi nu&lt;br /&gt;
adauga toate imbunatatirile si optiunile de configuratie pe care&lt;br /&gt;
le permite BIND8. Aici este un named.conf care face aceleasi&lt;br /&gt;
lucruri, dar ceva mai eficient:&lt;br /&gt;
&lt;br /&gt;
______________________________________________________________________&lt;br /&gt;
// This is a configuration file for named (from BIND 8.1 or later).&lt;br /&gt;
// It would normally be installed as /etc/named.conf.&lt;br /&gt;
// The only change made from the  tock&#39; named.conf (aside from this&lt;br /&gt;
// comment :) is that the directory line was uncommented, since I&lt;br /&gt;
// already had the zone files in /var/named.&lt;br /&gt;
&lt;br /&gt;
options {&lt;br /&gt;
directory &quot;/var/named&quot;;&lt;br /&gt;
datasize 20M;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
zone &quot;localhost&quot; IN {&lt;br /&gt;
type master;&lt;br /&gt;
file &quot;localhost.zone&quot;;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
zone &quot;0.0.127.in-addr.arpa&quot; IN {&lt;br /&gt;
type master;&lt;br /&gt;
file &quot;127.0.0.zone&quot;;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
zone &quot;.&quot; IN {&lt;br /&gt;
type hint;&lt;br /&gt;
file &quot;root.hints&quot;;&lt;br /&gt;
};&lt;br /&gt;
______________________________________________________________________&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In directorul bind8/src/bin/named/test din distributia BIND 8&lt;br /&gt;
gasiti aceasta si copii ale fisierelor zona, pe care multi utilizatori&lt;br /&gt;
le pot instala si folosi ca atare. Formatele pentru fisierele root.hints&lt;br /&gt;
si fisierele zone sunt identice, ca si comenzile  pentru actualizarea lor.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
10 Intrebari si raspunsuri.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Va rog sa cititi aceasta sectiune inainte de a imi trimite e-mail.&lt;br /&gt;
&lt;br /&gt;
1. named-ul meu &quot;vrea&quot; un fisier named.boot&lt;br /&gt;
&lt;br /&gt;
Cititi un HOWTO gresit.Vedeti vechea versiune a acestui HOWTO, care&lt;br /&gt;
studiaza BIND4 la &amp;lt;http://www.math.uio.no/~janl/DNS/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Cum folosesc DNS-ul  din interiorul unui firewall ?&lt;br /&gt;
&lt;br /&gt;
Indicatie: forward-only . Sau puteti folosi &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
___________________________________________________________________&lt;br /&gt;
query-source port 53;&lt;br /&gt;
&lt;br /&gt;
___________________________________________________________________&lt;br /&gt;
&lt;br /&gt;
in sectiunea &quot;options&quot; a lui named.conf.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3. Cum fac DNS-ul sa se &quot;plimbe&quot; prin adresele disponibile, pentru&lt;br /&gt;
un serviciu, sa zicem www.busy.site, pentru a obtine un efect de&lt;br /&gt;
egalizare a incarcarii (loadbalancing), sau similar?&lt;br /&gt;
&lt;br /&gt;
Faceti cateva inregistrari &quot;A&quot; pentru www.busy,site  si folositi BIND&lt;br /&gt;
4.9.3 sau mai nou. Atunci, BIND va functiona ca perpetuum-mobile in&lt;br /&gt;
cautare de raspunsuri. Nu va functiona cu versiuni mai vechi de BIND.&lt;br /&gt;
&lt;br /&gt;
4. Vreau sa configurez un DNS intr-un Intranet (inchis). Cum fac?&lt;br /&gt;
&lt;br /&gt;
Lasati fisierul root.hints si ocupati-va numai de fisierele zone.&lt;br /&gt;
Asta inseamna de asemeni ca nu trebuie sa actualizati fiserul .hint &lt;br /&gt;
tot timpul&lt;br /&gt;
&lt;br /&gt;
5. Cum configurez un server secundar (slave) ?&lt;br /&gt;
&lt;br /&gt;
Daca serverul primar/master are adresa 127.0.0.1, puneti o linie ca&lt;br /&gt;
aceasta in named.conf-ul de la serverul secundar:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
___________________________________________________________________&lt;br /&gt;
zone &quot;linux.bogus&quot; {&lt;br /&gt;
type slave;&lt;br /&gt;
file &quot;sz/linux.bogus&quot;;&lt;br /&gt;
masters { 127.0.0.1; };&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
___________________________________________________________________&lt;br /&gt;
&lt;br /&gt;
Puteti lista si alte servere master de unde pot fi copiate zonele, &lt;br /&gt;
separate de punct si virgula &quot;;&quot;&lt;br /&gt;
&lt;br /&gt;
6. Vreau sa rulez BIND cand sunt deconectat de la Internet.&lt;br /&gt;
&lt;br /&gt;
Sunt patru chestiuni privind aceasta problema:&lt;br /&gt;
&lt;br /&gt;
- Specific lui BIND 8, Adam L Rice mi-a trimis acest e-mail despre cum&lt;br /&gt;
sa rulezi DNS fara dureri de cap pe o masina dialup:&lt;br /&gt;
&lt;br /&gt;
Am descoperit in noile versiuni ca acest fisier [&amp;lt;em/shuffeling files,&lt;br /&gt;
-ed/] nu mai este necesar. Exista o directiva &quot;forward&quot; pe linga&lt;br /&gt;
&quot;forwarderi&quot;, directiva care controleaza cum aceastia sunt&lt;br /&gt;
utilizati. Setarea implicita este &quot;forward first&quot;, care interogheaza intai&lt;br /&gt;
fiecare dintre &quot;forwarderi&quot;, apoi incearca abordarea normala&lt;br /&gt;
daca prima varianta esueaza. Aceasta face ca functia gethostbyname() sa se&lt;br /&gt;
comporte familiar, luand un timp foarte lung cand legatura&lt;br /&gt;
nu functioneaza. Dar daca &quot;forward only&quot; este setat, BIND renunta cand&lt;br /&gt;
nu primeste un raspuns de la forwarderi iar gethostbyname() raspunde&lt;br /&gt;
imediat.&lt;br /&gt;
&lt;br /&gt;
In cazul meu, am adaugat liniile:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
forward only;&lt;br /&gt;
forwarders { 193.133.58.5; };&lt;br /&gt;
&lt;br /&gt;
in sectiunea options { } din fisierul meu named.conf. Functioneaza&lt;br /&gt;
foarte frumos, singurul dezavantaj este ca reduce o incredibil&lt;br /&gt;
de sofisticata masinarie software care este DNS la statutul de cache&lt;br /&gt;
chior. As fi preferat sa pot rula un cache simplu in loc, dar nu exita asa&lt;br /&gt;
ceva care sa inlocuiasca DNS pentru Linux.&lt;br /&gt;
&lt;br /&gt;
- Am receptionat acest mail de la Ian Clark &amp;lt;ic@deakin.edu.au&amp;gt; unde&lt;br /&gt;
el explica modul in care face aceasta:&lt;br /&gt;
&lt;br /&gt;
Rulez named pe masina mea &quot;masquerade&quot; (cu mascaradare). Am doua fisiere&lt;br /&gt;
root.hints, unul numita root.hints.real care contine numele reale ale&lt;br /&gt;
root-serverelor si celalalt numit root.hints.fake care contine...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
; root.hints.fake&lt;br /&gt;
; this file contains no information&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
cand inchid conexiunea (dialup), copii root.hints.fake peste root.hints si&lt;br /&gt;
restartez named.&lt;br /&gt;
Cand pornesc conexiunea, copii root.hints.real peste root.hints&lt;br /&gt;
si restartez named. Asta o fac din ip-up si ip-down. Prima data cand fac o&lt;br /&gt;
interogare offline pe un nume de domeniu, named nu are detalii de oferit&lt;br /&gt;
si pune o intrare ca aceasta in mesaje:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Jan 28 20:10:11 hazchem named[10147]: No root nameserver for class IN&lt;br /&gt;
&lt;br /&gt;
care nu ma deranjeaza. &lt;br /&gt;
&lt;br /&gt;
Deci functioneaza cu siguranta. Pot folosi nameserverul pentru&lt;br /&gt;
masinile locale cand sunt deconectat de la Internet fara intarzieri de&lt;br /&gt;
timeout pentru interogarile domeniilor externe.&lt;br /&gt;
&lt;br /&gt;
Peter Denison crede ca Ian nu a ajuns prea departe. El scrie:&lt;br /&gt;
&lt;br /&gt;
Cand sunt conectat) alimenteaza toate intrarile din cache (si reteaua locala)&lt;br /&gt;
imediat, pentru intrarile reinregistrate in cache,&lt;br /&gt;
forward catre nameserver-ul ISP-ului&lt;br /&gt;
&lt;br /&gt;
Cand nu sunt conectat) alimenteaza interogarile retelei locale&lt;br /&gt;
imediat, abandoneaza orice alte interogari IMEDIAT&lt;br /&gt;
&lt;br /&gt;
Combinatia dintre schimbarea fisierului root cache si interogarile forward&lt;br /&gt;
nu functioneaza. &lt;br /&gt;
&lt;br /&gt;
Deci am configurat (cu unele discutii pe Linux User Group-ul local) doua&lt;br /&gt;
named-uri, dupa cum urmeaza:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
named-online:   forwards to ISPs nameserver&lt;br /&gt;
master for localnet zone&lt;br /&gt;
master for localnet reverse zone (1.168.192.in-addr.arpa)&lt;br /&gt;
master for 0.0.127.in-addr.arpa&lt;br /&gt;
listens on port 60053&lt;br /&gt;
&lt;br /&gt;
named-offline:  no forwarding&lt;br /&gt;
&quot;fake&quot; root cache file&lt;br /&gt;
slave for 3 local zones (master is 127.0.0.1:60053)&lt;br /&gt;
listens on port 61053&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Si combinand aceasta cu port-forwarding-ul, pentru a trimite portul&lt;br /&gt;
53 catre portul 61053 cand suntem off-line si catre portul 60053 cand&lt;br /&gt;
suntem online (folosesc noul pachet netfilter sub 2.3.18, dar si vechiul&lt;br /&gt;
mecanism ipchains functioneaza).&lt;br /&gt;
&lt;br /&gt;
Observati ca aceasta nu va merge chiar &quot;din tzeava&quot; de vreme ce exista&lt;br /&gt;
un mic bug in BIND 8.2 pe care l-am semnalat dezvoltatorilor,&lt;br /&gt;
care impiedica un server slave sa aiba un master pe aceiasi adresa iP&lt;br /&gt;
(chiar si pe un port diferit).&lt;br /&gt;
&lt;br /&gt;
- Am primit informatii despre cum BIND interactioneaza cu NFS si&lt;br /&gt;
portmapper-ul pe o masina mai mult off-line, de la Karl-Max Wanger :&lt;br /&gt;
&lt;br /&gt;
Obisnuiesc sa rulez propriul meu named pe toate masinile care se&lt;br /&gt;
conecteaza ocazional la Internet prin modem. Nameserverul singur&lt;br /&gt;
actioneaza ca un cache, nu are nici o arie de autoritate, si&lt;br /&gt;
interogheaza serverele din fisierul root.cache. Ca de obicei in Slackware,&lt;br /&gt;
este pornit inainte de nfsd si mountd.&lt;br /&gt;
&lt;br /&gt;
Cu una dintre masinile mele (un notebook Libretto 30) am avut probleme&lt;br /&gt;
ca adesea nu puteam sa il montez dintr-un sistem conectat la reteaua mea&lt;br /&gt;
LAN. Aceleasi probleme le aveam si din punct de vedere&lt;br /&gt;
al legaturilor PPP sau PLIP.&lt;br /&gt;
&lt;br /&gt;
Dupa ceva timp de cercetari si experimente am constatat ca named s-a&lt;br /&gt;
incurcat in inregistrarea serviciilor initiate de nfsd si mountd precum si&lt;br /&gt;
cu portmapper-ul. Pornind named-ul dupa nfsd si mountd, am scapat complet&lt;br /&gt;
de probleme.&lt;br /&gt;
&lt;br /&gt;
Cum nu sunt dezavantaje de asteptat in urma unei asemenea modificari&lt;br /&gt;
in ordinea de boot, recomand tuturor sa treaca la aceasta,&lt;br /&gt;
pentru a preintampina necazurile.&lt;br /&gt;
&lt;br /&gt;
- In final, exista ceva informatii despre aceasta la Ask MR. DNS la &lt;br /&gt;
&amp;lt;http://www.acmebw.com/askmrdns/#linux-dialup&amp;gt;.  Este despre BIND&lt;br /&gt;
4, asa ca trebuie sa faceti adaptari la BIND 8.&lt;br /&gt;
&lt;br /&gt;
7. Unde stocheaza caching-nameserver-ul cache-ul si cum pot controla&lt;br /&gt;
dimensiunea acestuia?&lt;br /&gt;
&lt;br /&gt;
Cache-ul este stocat complet in memorie, nu este scris pe disc in nici&lt;br /&gt;
un moment. De fiecare data cand dati kill lui named, cache-ul este&lt;br /&gt;
pierdut. Cache-ul nu este controlabil nicicum, named il controleaza dupa&lt;br /&gt;
cateva reguli simple, si cam asta e tot. Nu puteti controla cache-ul sau&lt;br /&gt;
dimensiunea acestuia nicicum si pentru nici un motiv. Daca&lt;br /&gt;
doriti neaparat, puteti incerca sa hackuiti  named , dar nu este recomandat.&lt;br /&gt;
&lt;br /&gt;
8. Named-ul salveaza cache-ul intre restart-uri? Pot sa il fac sa salveze?&lt;br /&gt;
&lt;br /&gt;
NU, named nu salveaza cache-ul cand dispare. Aceasta inseamna ca&lt;br /&gt;
cache-ul trebuie reconstruit de la zero de fiecare data cand named&lt;br /&gt;
este repornit. Nu exista nici o metoda de a-l face pe named sa salveze&lt;br /&gt;
cache-ul intr-un fisier.&lt;br /&gt;
&lt;br /&gt;
9. Cum imi procur un domeniu? Vreau sa imi configurez propriul&lt;br /&gt;
domeniu, denumit de exemplu linux-rules.net. Cum pot sa obtin domeniul&lt;br /&gt;
pe care il doresc alocat mie?&lt;br /&gt;
&lt;br /&gt;
Va rog sa va contactati provider-ul. Ei va vor putea ajuta cu&lt;br /&gt;
aceasta. Aveti in vedere ca in cele mai multe parti ale lumii,&lt;br /&gt;
aceast lucru costa (obtinerea unui nume de domeniu).&lt;br /&gt;
&lt;br /&gt;
10. Cum securizez serverul meu DNS? Cum configurez un DNS split? (separat)&lt;br /&gt;
&lt;br /&gt;
Ambele sunt chestiuni avansate si sunt analizate in&lt;br /&gt;
&amp;lt;http://www.etherboy.com/dns/chrootdns.html&amp;gt;. de aceea nu le voi&lt;br /&gt;
expune aici.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
11. Cum sa devii un DNS de talie mare.&lt;br /&gt;
&lt;br /&gt;
Documentatii si utilitare.&lt;br /&gt;
&lt;br /&gt;
Exista documentatie &quot;reala&quot;. Online si tiparita. Citirea acesteia este&lt;br /&gt;
necesara pentru a face pasul de la un administrator DNS de mica anvergura&lt;br /&gt;
la unul de talie mare. Am tiparit Ghidul Concis al DNS si BIND&lt;br /&gt;
(Nicolai Langfeldt) publicata de QUE (ISDN  0-7897-2273-9). Cartea seamana&lt;br /&gt;
cu acest HOWTO. Doar mai multe detalii si mai multe despre toate aspectele.&lt;br /&gt;
Dar cartea standard este &quot;DNS and BIND  by C. Liu and P. Albitz&lt;br /&gt;
from O&#39;Reilly &amp;amp; Associates (ISBN   0-937175-82-X). Este excelenta.&lt;br /&gt;
Faceti rost de editia a 3-a, care acopera BIND 8 ca si BIND 4. Exista de&lt;br /&gt;
asemeni o sectiune DNS si in TCP/IP Network Administration Guide. by Craig&lt;br /&gt;
Hunt from O&#39;Reilly (ISBN 0-937175-82-X).  O alta carte buna si pentru DNS&lt;br /&gt;
si pentru orice este Zen and the Art of Motorcycle Maintenance (Zen si&lt;br /&gt;
arta intretinerii motocicletei :-)  de Robert M. Pirsig :-) ISBN 0688052304\&lt;br /&gt;
si altii. &lt;br /&gt;
&lt;br /&gt;
Online veti gasi multe chestii la: &amp;lt;http://www.dns.net/dnsrd/&amp;gt; (DNS&lt;br /&gt;
Resources Directory),  &amp;lt;http://www.isc.org/bind.html&amp;gt;; FAQ si manual&lt;br /&gt;
de referinta  (BOG; BIND Operations Guide) ca si documente si definitii de&lt;br /&gt;
protocol si &quot;hack-uri&quot; DNS (acestea - ma rog, nu toate- ca si RFC-urile&lt;br /&gt;
sunt continute in distributia BIND). N-am citit chiar toate aceastea, &lt;br /&gt;
dar nici mare administrator DNS nu sunt.  Arnt Gulbrandsen pe de&lt;br /&gt;
alta parte a citit BOG (BIND Operation Guide) si este extaziat de acesta :)&lt;br /&gt;
Newsgrupul   &amp;lt;news:comp.protocols.tcp-ip.domains&amp;gt;  este despre DNS.&lt;br /&gt;
Pe langa asta, exista un numar de RFC-uri despre DNS, cele mai&lt;br /&gt;
importante sunt probabil cele listate aici. Cele care au BCP (Best Current&lt;br /&gt;
Practice) sunt cele mai recomandate. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
RFC 2671&lt;br /&gt;
P. Vixie, Extension Mechanisms for DNS (EDNS0) August 1999.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
RFC 2317&lt;br /&gt;
, BCP 20, H. Eidnes et. al. Classless IN-ADDR.ARPA delegation,&lt;br /&gt;
March 1998. This is about CIDR, or classless subnet reverse&lt;br /&gt;
lookups.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
RFC 2308&lt;br /&gt;
, M. Andrews, Negative Caching of DNS Queries, March 1998.&lt;br /&gt;
About negative caching and the $TTL zone file directive.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
RFC 2219&lt;br /&gt;
, BCP 17, M. Hamilton and R. Wright, Use of DNS Aliases for&lt;br /&gt;
Network Services, October 1997.  About CNAME usage.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
RFC 2182&lt;br /&gt;
, BCP 16, R. Elz et. al., Selection and Operation of Secondary&lt;br /&gt;
DNS Servers, July 1997.&lt;br /&gt;
&lt;br /&gt;
RFC 2052&lt;br /&gt;
A. Gulbrandsen, P. Vixie, A DNS RR for specifying the location&lt;br /&gt;
of services (DNS SRV), October 1996&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
RFC 1918&lt;br /&gt;
Y. Rekhter, R. Moskowitz, D. Karrenberg, G. de Groot, E. Lear,&lt;br /&gt;
Address Allocation for Private Internets, 02/29/1996.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
RFC 1912&lt;br /&gt;
D. Barr, Common DNS Operational and Configuration Errors,&lt;br /&gt;
02/28/1996.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
RFC 1912 Errors&lt;br /&gt;
B. Barr Errors in RFC 1912, this is available at&lt;br /&gt;
&amp;lt;http://www.cis.ohio-state.edu/~barr/rfc1912-errors.html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
RFC 1713&lt;br /&gt;
A. Romao, Tools for DNS debugging, 11/03/1994.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
RFC 1712&lt;br /&gt;
C. Farrell, M. Schulze, S. Pleitner, D. Baldoni, DNS Encoding of&lt;br /&gt;
Geographical Location, 11/01/1994.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
RFC 1183&lt;br /&gt;
R. Ullmann, P. Mockapetris, L. Mamakos, C. Everhart, New DNS RR&lt;br /&gt;
Definitions, 10/08/1990.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
RFC 1035&lt;br /&gt;
P. Mockapetris, Domain names - implementation and specification,&lt;br /&gt;
11/01/1987.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
RFC 1034&lt;br /&gt;
P. Mockapetris, Domain names - concepts and facilities,&lt;br /&gt;
11/01/1987.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
RFC 1033&lt;br /&gt;
M. Lottor, Domain administrators operations guide, 11/01/1987.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
RFC 1032&lt;br /&gt;
M. Stahl, Domain administrators guide, 11/01/1987.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
RFC 974&lt;br /&gt;
C. Partridge, Mail routing and the domain system, 01/01/1986.</content><link rel='replies' type='application/atom+xml' href='http://resurse-it.blogspot.com/feeds/7117010949204392276/comments/default' title='Postare comentarii'/><link rel='replies' type='text/html' href='http://resurse-it.blogspot.com/2011/04/dns.html#comment-form' title='0 comentarii'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4915140777580483380/posts/default/7117010949204392276'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4915140777580483380/posts/default/7117010949204392276'/><link rel='alternate' type='text/html' href='http://resurse-it.blogspot.com/2011/04/dns.html' title='Linux. Cum sa administrati rapid un DNS.'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4915140777580483380.post-3856731062593408962</id><published>2011-04-11T00:55:00.000-07:00</published><updated>2011-04-11T00:56:46.932-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="dnat"/><category scheme="http://www.blogger.com/atom/ns#" term="dns"/><category scheme="http://www.blogger.com/atom/ns#" term="forward"/><category scheme="http://www.blogger.com/atom/ns#" term="ip"/><category scheme="http://www.blogger.com/atom/ns#" term="iptables"/><category scheme="http://www.blogger.com/atom/ns#" term="masquerading"/><category scheme="http://www.blogger.com/atom/ns#" term="nat"/><category scheme="http://www.blogger.com/atom/ns#" term="tcp"/><category scheme="http://www.blogger.com/atom/ns#" term="transparent proxy"/><title type='text'>Cum sa realizezi masquerading, transparent proxy, forwardare de porturi, si alte forme de NAT pentru kernelurile Linux ver 2.4</title><content type='html'>traducere ver. 0.2 de catre Riddl&lt;br /&gt;
&lt;br /&gt;
Multumiri tuturor celor care m-au ajutat,  in special lui Gushterul.&lt;br /&gt;
Observatie f importanta: probabil ca exista unele greseli in acest document.&lt;br /&gt;
Am tradus si eu cum m-am priceput mai bine, daca descoperiti greseli de&lt;br /&gt;
traducere si pentru observatii pertinente trimiteti-mi mail pentru Riddl la&lt;br /&gt;
&quot;discutzii at gmx dot net&quot;. Nu uitati sa precizati numele documentului.&lt;br /&gt;
Multumesc anticipat.&lt;br /&gt;
Aceasta versiune este  putin modificata fata de original, deorece unii termeni&lt;br /&gt;
sunau foarte ciudat in ro.&lt;br /&gt;
Pentru ultima versiune a acestui document verifica&lt;br /&gt;
&amp;lt;http://www.securityorg.net/docs/&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Lecturare placuta!&lt;br /&gt;
______________________________________________________________________&lt;br /&gt;
Linux 2.4 NAT HOWTO&lt;br /&gt;
Rusty Russell, lista de discutii netfilter@lists.samba.org&lt;br /&gt;
$Revision: 1.3 $ $Date: 2002/06/05 13:21:56 $&lt;br /&gt;
&lt;br /&gt;
Acest document descrie cum sa realizezi masquerading, transparent proxy, &lt;br /&gt;
forwardare de porturi, si alte forme de NAT pentru kernelurile Linux ver 2.4.&lt;br /&gt;
&lt;br /&gt;
______________________________________________________________________  &lt;br /&gt;
&lt;br /&gt;
Cuprins&lt;br /&gt;
&lt;br /&gt;
1. Introducere&lt;br /&gt;
2. Care este site-ul oficial si care sunt listele de discutii?&lt;br /&gt;
2.1. Ce inseamna NAT?&lt;br /&gt;
2.2. De ce as dori sa realizez NAT?&lt;br /&gt;
3. Doua tipuri de NAT&lt;br /&gt;
4. Trecere rapida de la kernelurile 2.0 si 2.2&lt;br /&gt;
4.1. Doresc sa realizez doar masquerading! Help!&lt;br /&gt;
4.2. Dar despre ipmasqadm?&lt;br /&gt;
5. Controlul a ceea ce dorim sa facem cu NAT?&lt;br /&gt;
5.1 Selectare simpla folosind iptables&lt;br /&gt;
5.2 Aspecte delicate in privinta selectarii pachetelor ce le dorim&lt;br /&gt;
modificate &lt;br /&gt;
6. Cum sa modificam pachetele&lt;br /&gt;
6.1 Folosirea NAT pentru modificarea adresei sursa (SNAT)&lt;br /&gt;
6.1.1 Masquerading&lt;br /&gt;
6.2 Folosirea NAT pentru modificarea adresei destinatie (DNAT)&lt;br /&gt;
6.2.2 Redirectare&lt;br /&gt;
6.3 Mapare complexa&lt;br /&gt;
6.3.1. Selectarea de adrese multiple dintr-un sir&lt;br /&gt;
6.3.2. Realizarea de mapare NAT nula &lt;br /&gt;
6.3.3. Comportamentul NAT standard&lt;br /&gt;
6.3.4. Mapare implicita a porturilor sursa&lt;br /&gt;
6.3.5. Ce se intampla cand NAT-area nu reuseste&lt;br /&gt;
6.3.6. Mapari multiple, Suprapuneri si Conflicte&lt;br /&gt;
6.3.7. Schimbarea destinatiei conexiunilor generate local&lt;br /&gt;
7. Protocoale speciale&lt;br /&gt;
8. Avertizmente privind folosirea NAT&lt;br /&gt;
9. Folosirea SNAT si rutarea&lt;br /&gt;
10. Folosirea DNAT pentru adrese aflate in aceeasi retea.&lt;br /&gt;
11. Multumiri&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
______________________________________________________________________&lt;br /&gt;
&lt;br /&gt;
1. Introducere&lt;br /&gt;
&lt;br /&gt;
Bine ai venit!&lt;br /&gt;
&lt;br /&gt;
Esti pe cale sa incepi sa inveti fascinanta (si uneori inspaimantatoare)&lt;br /&gt;
lume a NAT-ului: traducerea adreselor de retea. Acest Howto iti va fi&lt;br /&gt;
oarecum un ghid precis pentru kernelurile din linux ver. 2.4 si peste.&lt;br /&gt;
&lt;br /&gt;
In kernelul de linux ver. 2.4, a fost introdus suport pentru modificarea &lt;br /&gt;
pachetelor, numit &quot;netfilter&quot;. Un nivel deasupra acestuia pune la dispozitie&lt;br /&gt;
NAT (translatarea adreselor de retea), complet rescris fata de versiunile din&lt;br /&gt;
kernelurile anterioare.&lt;br /&gt;
&lt;br /&gt;
(C) 2000 Paul &quot;Rusty&quot; Russell.  Sub licenta GNU GPL.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2. Care este site-ul oficial si care sunt listele de discutii?&lt;br /&gt;
&lt;br /&gt;
Sunt trei site-uri oficiale:&lt;br /&gt;
&lt;br /&gt;
o       Multumiri lui Filewatcher &amp;lt;http://netfilter.filewatcher.org/&amp;gt;.&lt;br /&gt;
o       Multumiri Echipei Samba si SGI &amp;lt;http://netfilter.samba.org/&amp;gt;.&lt;br /&gt;
o       Multumiri lui Harald Welte &amp;lt;http://netfilter.gnumonks.org/&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Le poti accesa pe toate folosind round-robin DNS la:&lt;br /&gt;
&amp;lt;http://www.netfilter.org/&amp;gt; si  &amp;lt;http://www.iptables.org/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pentru lista de discutii oficiala de la netfilter, vezi:&lt;br /&gt;
&amp;lt;http://www.netfilter.org/contact.html#list&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2.1. Ce inseamna NAT?&lt;br /&gt;
&lt;br /&gt;
In mod normal, pachetele intr-o retea se deplaseaza de la sursa  (cum ar fi&lt;br /&gt;
computerul tau) la destinatia  (cum ar fi www.securityorg.net) prin mai&lt;br /&gt;
multe legaturi de retea diferite: de exemplu cam 19 de la locatia in care ma&lt;br /&gt;
aflu eu. Nici una din aceste legaturi nu iti modifica pachetul, pur si simplu&lt;br /&gt;
este trimis mai departe. &lt;br /&gt;
&lt;br /&gt;
Daca una din aceste legaturi ar fi facut NAT, atunci ar fi modificat sursa sau&lt;br /&gt;
destinatia pachetului ce intra. Dupa cum iti imaginezi nu asa a fost conceput&lt;br /&gt;
sistemul sa functioneze, si din aceasta cauza NAT este intodeauna ceva&lt;br /&gt;
in genul unui infirm. Deobicei legatura care a facut NAT va tine minte cum a&lt;br /&gt;
modificat pachetul, si cand un pachet replica vine din cealalta parte, va&lt;br /&gt;
realiza modificarea inversa a pachetului replica, asa ca totul va functiona.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2.2. De ce as dori sa realizez NAT?&lt;br /&gt;
&lt;br /&gt;
Intr-o lume perfecta nu ai avea nevoie. Intre timp, principale motive sunt:&lt;br /&gt;
&lt;br /&gt;
Conexiunile prin modem la internet&lt;br /&gt;
Cele mai multe ISP-uri iti dau doar o singura adresa IP cand te&lt;br /&gt;
conectezi la ei. Poti trimite pachete cu orice adresa sursa pe care o&lt;br /&gt;
doresti, dar doar pachetele cu aceasta adresa IP se vor intoarce la&lt;br /&gt;
tine. Daca doresti sa folosesti mai multe sisteme (cum ar fi reteaua&lt;br /&gt;
de acasa) pentru a le conecta la internet prin aceasta singura&lt;br /&gt;
legatura vei avea nevoie de NAT.&lt;br /&gt;
Aceasta este de departe cel mai raspandit mod de folosire al NAT-ului&lt;br /&gt;
din zilele noastre, cunoscut si sub numele de &quot;masquerading&quot; in lumea&lt;br /&gt;
Linuxului. Eu numesc aceasta SNAT, deoarece modifici adresa sursa a&lt;br /&gt;
primului pachet.&lt;br /&gt;
&lt;br /&gt;
Servere multiple&lt;br /&gt;
Uneori doresti sa modifici directia in care sa se indrepte pachetele&lt;br /&gt;
ce intra in reteaua ta. In mod frecvent aceasta este (ca si mai sus)&lt;br /&gt;
deoarece ai doar o singura adresa IP, dar doresti ca oameni sa poata&lt;br /&gt;
sa ajunga la computerele din spatele sistemului cu adresa IP &quot;reala&quot;.&lt;br /&gt;
Daca rescrii adresa destinatie a pachetelor care intra, poti realiza&lt;br /&gt;
acest lucru. Acest tip de NAT a fost numit forwardare (inaintare) de&lt;br /&gt;
porturi in versiunile anterioare de Linux.&lt;br /&gt;
O variatie des intalnita a acestei aplicatii al NAT-ului este&lt;br /&gt;
load-sharing-ul (incarcare partajata), unde se mapeaza mai multe &lt;br /&gt;
sisteme, permitand sistemelor sa ajung la aceste sisteme. Daca &lt;br /&gt;
realizezi acest lucru la o scara mare, ar fi bine sa te uiti pe &lt;br /&gt;
Linux Virtual Server &amp;lt;http://linuxvirtualserver.org/&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Proxy transparent&lt;br /&gt;
Uneori doresti sa para ca fiecare pachet care trece prin sistemul tau&lt;br /&gt;
Linux este destinat pentru un program ruland chiar pe sistemul tau.&lt;br /&gt;
Acest lucru este folosit pentru a realiza proxy-uri transparente: un&lt;br /&gt;
proxy este un program care se interpune intre reteaua ta si lumea&lt;br /&gt;
exterioara, mediand comunicarea intre ele. Se numeste transparent&lt;br /&gt;
deoarece reteaua ta nici nu va realiza ca foloseste un proxy, doar daca&lt;br /&gt;
bineinteles, proxy-ul nu functioneaza.&lt;br /&gt;
Squid-ul poate fi configurat sa ruleze in acest mod, si aceasta era&lt;br /&gt;
numita redirectare sau realizare de proxy transparent in versiunile&lt;br /&gt;
anterioare de linux.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3. Doua tipuri de NAT&lt;br /&gt;
&lt;br /&gt;
Am impartit NAT-ul in doua tipuri: NAT pentru sursa (SNAT) si NAT pentru&lt;br /&gt;
destinatie (DNAT).&lt;br /&gt;
&lt;br /&gt;
SNAT este realizat atunci cand modifici adresa sursa al primului pachet:&lt;br /&gt;
schimbi sursa de unde porneste conexiunea. SNAT este intodeauna realizat dupa&lt;br /&gt;
procesul de rutare al pachetelor, chiar inainte de a pleca pe conexiune&lt;br /&gt;
pachetul. Masquerading este o forma particulara de SNAT.&lt;br /&gt;
&lt;br /&gt;
DNAT este realizat cand modifici adresa destinatie al primului pachet: schimbi&lt;br /&gt;
destinatia unde va fi facuta conexiunea. DNAT este intodeauna realizat&lt;br /&gt;
inainte de rutarea pachetelor, cand pachetul tocmai a venit prin interfata.&lt;br /&gt;
Forwardare de porturi, load-sharing-ul, si proxy-ul transparent sunt toate&lt;br /&gt;
forme de DNAT.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4. Trecere rapida de la kernelurile 2.0 si 2.2&lt;br /&gt;
&lt;br /&gt;
Imi pare rau pentru aceia dintre dumneavastra socati de trecerea de la&lt;br /&gt;
versiunea 2.0 (ipfwadm) la 2.2 (ipchains). Exista vesti bune si vesti proaste.&lt;br /&gt;
&lt;br /&gt;
In primul rand, poti in mod simplu sa folosesti ipchains si ipfwadm ca mai&lt;br /&gt;
inainte. Pentru aceasta trebuie sa incarci (insmod) modulele pentru kernel&lt;br /&gt;
&quot;ipchains.o&quot; sau &quot;ipfwadm.o&quot; ce se gasesc in ultima distributie netfilter. &lt;br /&gt;
Acestea se exclud reciproc (ai fost avertizat), si nu ar trebui folosite cu &lt;br /&gt;
nici un alt modul din netfilter.&lt;br /&gt;
&lt;br /&gt;
Odata ce unul din aceste module a fost incarcat, vei putea folos ipchains si&lt;br /&gt;
ipfwadm in mod normal, insa cu unele diferente:&lt;br /&gt;
&lt;br /&gt;
- Setarea de timeout-uri pentru masquerading cu ipchains  -M -S, sau ipfwadm&lt;br /&gt;
-M -s nu rezolva nimic. Cum timeout-urile sunt mai mari pentru noua&lt;br /&gt;
infrastructura NAT, acest lucru nu ar trebui sa conteze.&lt;br /&gt;
&lt;br /&gt;
- Campurile init_seq, delta si previous_delta in listarea detaliata a &lt;br /&gt;
masqueradarii sunt intodeauna zero.&lt;br /&gt;
&lt;br /&gt;
- Resetarea si listarea counter-elor simultana &quot;-Z -L&quot; nu mai este posibila:&lt;br /&gt;
countere-le nu vor fi resetate.&lt;br /&gt;
&lt;br /&gt;
- Nivelul de compatibilitate nu este foarte bun pentru un numar de conexiuni&lt;br /&gt;
foarte mare: nu il folosi pentru gateway-ul corporatiei.&lt;br /&gt;
&lt;br /&gt;
Hackerii pot deasemenea sa observe:&lt;br /&gt;
&lt;br /&gt;
- Acum te poti lega si pe porturile 61000-65095 chiar daca realizezi&lt;br /&gt;
masquerading. Codul pentru masqueradare obisnuia sa considere ca nimic in&lt;br /&gt;
aceasta raza ar fi fost ceva corect, asa ca programele nu puteau sa o&lt;br /&gt;
foloseasca.&lt;br /&gt;
&lt;br /&gt;
- &quot;Hack-ul&quot; (nedocumentat) &quot;getsockname&quot;, pe care programele ce realizau proxy&lt;br /&gt;
transparent il puteau folosi pentru a afla adresa reala a conexiunilor nu&lt;br /&gt;
mai este disponibil.&lt;br /&gt;
&lt;br /&gt;
- &quot;Hack-ul&quot; (nedocumentat) bind-to-foreign-address (atasare pe o adresa&lt;br /&gt;
straina) nu mai este deasemnea implementat; acesta era folosit pentru a&lt;br /&gt;
completa iluzia de proxy transparent.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4.1. Doresc sa realizez doar masquerading! Help!&lt;br /&gt;
&lt;br /&gt;
Aceasta este ce vor majoritatea oamenilor. Daca ai o adresa PPP IP dinamica,&lt;br /&gt;
vrei in mod simplu sa spui sistemului tau ca toate pachetele ce vin din&lt;br /&gt;
reteaua interna ar trebui sa fie modificate astfel incat sa para ca vin de la&lt;br /&gt;
sistemul tau.&lt;br /&gt;
&lt;br /&gt;
# Incarca modulul NAT (acesta introduce toate modulele necesare)&lt;br /&gt;
modprobe iptable_nat&lt;br /&gt;
&lt;br /&gt;
# In tabela NAT (-t nat) in chain-ul POSTROUTING adauga o regula &lt;br /&gt;
# pentru toate pachetele care ies prin ppp0 (-p ppp0) care precizeaza&lt;br /&gt;
# sa masqueradeze conexiunea (-j MASQUERADE).&lt;br /&gt;
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE&lt;br /&gt;
&lt;br /&gt;
# Da drumul la forwardarea IP&lt;br /&gt;
echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
&lt;br /&gt;
Observatie: aici nu faci nici un fel de filtrare a pachetelor: pentru aceasta&lt;br /&gt;
citeste Packet Filtering HOWTO: capitolul &quot;Folosirea impreuna a NAT-ului si a&lt;br /&gt;
filtrarii de pachete&quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4.2. Dar despre ipmasqadm?&lt;br /&gt;
&lt;br /&gt;
Nu este cazul sa ne facem probleme prea mari pentru compatibilitate. Poti&lt;br /&gt;
folosi in mod simplu  &quot;iptables -t nat&quot; pentru a realiza forwardare de&lt;br /&gt;
porturi. De exemplu, in Linux 2.2 ai fi facut:&lt;br /&gt;
&lt;br /&gt;
# Linux 2.2&lt;br /&gt;
# Forwardeaza pachetele TCP catre portul 8080, adresa 1.2.3.4, spre&lt;br /&gt;
# portul 80, adresa 192.168.1.1&lt;br /&gt;
ipmasqadm portfw -a -P tcp -L 1.2.3.4 8080 -R 192.168.1.1 80&lt;br /&gt;
&lt;br /&gt;
Acum ar trebui sa faci:&lt;br /&gt;
&lt;br /&gt;
# Linux 2.4&lt;br /&gt;
# Adauga o regula inainte de procesul rutarii in chain-ul PREROUTING&lt;br /&gt;
# (-A PREROUTING) in tabela NAT (-t nat) pentru ca pachetele TCP &lt;br /&gt;
# (-p tcp) care vin spre adresa 1.2.3.4 (-d 1.2.3.4), portul 8080&lt;br /&gt;
# (--dport 8080) sa aiba destinatia mapata (-j DNAT) catre&lt;br /&gt;
# 192.168.1.1, portul 80 (--to 192.168.1.1:80)&lt;br /&gt;
iptables -A PREROUTING -t nat -p tcp -d 1.2.3.4 --dport 8080 \&lt;br /&gt;
-j DNAT --to 192.168.1.1:80&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
5. Controlul a ceea ce dorim sa facem cu NAT?&lt;br /&gt;
&lt;br /&gt;
Ai nevoie sa scrii reguli NAT pentru a spune kernelului ce conexiuni sa&lt;br /&gt;
schimbe, si cum sa le schimbe. Pentru a realiza aceasta folosim comanda&lt;br /&gt;
iptables, si precizam ca dorim a schimba tabela NAT prin specificarea optiunii&lt;br /&gt;
&quot;-t nat&quot;.&lt;br /&gt;
&lt;br /&gt;
Tabela regulilor NAT cuprinde trei liste numite &quot;chain-uri&quot;: fiecare regula&lt;br /&gt;
este examinata in chain pana cand una se potriveste. Doua chain-uri sunt&lt;br /&gt;
numite PREROUTING (pentru DNAT, pentru pachetele care tocmai au intrat) si&lt;br /&gt;
POSTROUTING (pentru SNAT, pentru pachetele care sunt pe cale sa iasa). Al&lt;br /&gt;
treilea chain (OUTPUT) va fi ignorat in cele ce urmeaza.&lt;br /&gt;
&lt;br /&gt;
Urmatoarea diagrama ilustreaza destul de bine cum stau lucrurile:&lt;br /&gt;
&lt;br /&gt;
_____                                     _____&lt;br /&gt;
/     \                                   /     \&lt;br /&gt;
PREROUTING --&amp;gt;[Routing ]-----------------&amp;gt;POSTROUTING-----&amp;gt;&lt;br /&gt;
\D-NAT/     [Decision]                    \S-NAT/&lt;br /&gt;
|                            ^&lt;br /&gt;
|                            |&lt;br /&gt;
|                            |&lt;br /&gt;
|                            |&lt;br /&gt;
|                            |&lt;br /&gt;
|                            |&lt;br /&gt;
|                            |&lt;br /&gt;
--------&amp;gt; Local Process ------&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La fiecare dintre punctele de mai sus, cand un pachet trece este determinat&lt;br /&gt;
carei conexiuni ii este asociat. Daca este o conexiune noua, este determinat&lt;br /&gt;
chain-ul corespunzator in tabela NAT pentru a determina ce sa facem cu acel&lt;br /&gt;
pachet. Raspunsul determinat va fi aplicat pentru toate pachetele viitoare&lt;br /&gt;
apartinand acelei conexiuni.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
5.1 Selectare simpla folosind iptables&lt;br /&gt;
&lt;br /&gt;
iptables admite un numar de optiuni standard dupa cum sunt listate mai jos.&lt;br /&gt;
Toate optiunile care incep cu &quot;--&quot; pot fi prescurtate, atat timp cat iptables&lt;br /&gt;
poate sa le deosebeasca de alte optiuni. Daca kernelul tau are iptables&lt;br /&gt;
compilat ca modul, este necesar sa incarci intai modulul iptables: &quot;insmod&lt;br /&gt;
ip_tables&quot;.&lt;br /&gt;
&lt;br /&gt;
Cea mai importanta optiune in acest caz este optiunea de selectare a tabelei,&lt;br /&gt;
&quot;-t&quot;. Pentru toate actiune NAT, vei dori sa folosesti &quot;-t nat&quot; pentru tabela&lt;br /&gt;
NAT. A doua cea mai importanta optiune este &quot;-A&quot; pentru a adauga o noua regula&lt;br /&gt;
la sfarsitul unui chain (&quot;-A POSTROUTING&quot;), sau &quot;-I&quot; pentru a insera o regula&lt;br /&gt;
la inceputul unui chain (&quot;-I PREROUTING&quot;).&lt;br /&gt;
&lt;br /&gt;
Poti specifia sursa (&quot;-s&quot; sau &quot;--source&quot;) si destinatia (&quot;-d&quot; sau&lt;br /&gt;
&quot;--destination&quot;) pachetelor pe care le doresti sa le prelucrezi prin NAT.&lt;br /&gt;
Aceste optiuni pot fi urmate de o singura adresa IP (192.168.1.1), un nume&lt;br /&gt;
(www.securityorg.net), sau o adresa de retea (192.168.1.0/24 sau &lt;br /&gt;
192.168.1.0/255.255.255.0).&lt;br /&gt;
&lt;br /&gt;
Poti specifica interfata cu care sa se potriveasca regula, de intrare (&quot;-i&quot;&lt;br /&gt;
sau &quot;--in-interface&quot;) sau de iesire (&quot;-o&quot; sau &quot;--out-interface&quot;), dar ceea ce&lt;br /&gt;
poti specifica depinde si de chain-ul in care introduci regula: pentru&lt;br /&gt;
chain-ul PREROUTING poti selecta numai interfete prin care intra pachetele,&lt;br /&gt;
si in chain-ul POSTROUTING poti selecta numai interfete de iesire. Daca&lt;br /&gt;
folosesti o interfata gresita iptables iti va da eroare.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
5.2 Aspecte delicate in privinta selectarii pachetelor ce le dorim modificate&lt;br /&gt;
&lt;br /&gt;
Am spus mai sus ca poti preciza o adresa sursa si destinatie. Daca vei omite&lt;br /&gt;
optiunea privitoare la adresa sursa, atunci regula se va potrivi pentru &lt;br /&gt;
orice adresa sursa. Analog, daca omiti optiunea pentru adresa destinatie, atunci&lt;br /&gt;
regula se va potrivi pentru orice adresa destinatie. &lt;br /&gt;
&lt;br /&gt;
Poti deasemenea indica un protocol specific (&quot;-p&quot; sau &quot;--protocol&quot;), cum ar fi&lt;br /&gt;
TCP sau UDP; doar pachetele de acest tip se vor potrivi cu regula. Principalul&lt;br /&gt;
motiv pentru a preciza unul dintre aceste protocoale permite apoi folosirea de&lt;br /&gt;
noi optiuni: in special optiunile &quot;--source-port&quot; si &quot;--destination-port&quot;&lt;br /&gt;
(prescurtate &quot;--sport&quot; si &quot;--dport&quot;).&lt;br /&gt;
&lt;br /&gt;
Aceste optiuni iti permite sa specifici ca numai pachetele cu anumite porturi&lt;br /&gt;
destinatie sau porturi sursa se vor potrivi cu regulii. Aceste optiuni sunt&lt;br /&gt;
folositoare, de exemplu, pentru redirectarea cererilor web (porturile TCP 80&lt;br /&gt;
sau 8080) si nemodificarea celorlalte pachete.&lt;br /&gt;
&lt;br /&gt;
Aceste optiuni trebuie sa fie puse dupa optiunea &quot;-p&quot; (care are ca alt efect&lt;br /&gt;
incarcarea optiunilor extinse pentru acel protocol). Poti folosi pentru&lt;br /&gt;
porturi numere, sau nume cum sunt scrise in fisierul /etc/services.&lt;br /&gt;
&lt;br /&gt;
Toate caracteristicile dupa care poti selecta un pachet sunt detaliate in&lt;br /&gt;
pagina de manual pentru iptables (man iptables).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
6. Cum sa modificam pachetele&lt;br /&gt;
&lt;br /&gt;
In concluzie, acum stim cum sa selectam pachetele pe care le dorim modificate.&lt;br /&gt;
Pentru a scrie regulile complete trebuie sa spunem kernelului cu exactitate&lt;br /&gt;
ceea ce dorim sa facem pachetelor.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
6.1 Folosirea NAT pentru modificarea adresei sursa&lt;br /&gt;
&lt;br /&gt;
Doresti sa faci SNAT; sa schimbi adresa sursa a conexiunilor cu ceva diferit.&lt;br /&gt;
Acesta este realizat in chain-ul POSTROUTING, chiar inainte de a fi trimis&lt;br /&gt;
pachetul; acesta este un detaliu important, deoarece inseamna ca orice alceva&lt;br /&gt;
in sistemul Linux (rutare, filtrare de pachete) va vedea doar pachetul&lt;br /&gt;
neschimbat. Mai inseamna deasemenea ca optiunea &quot;-o&quot; (interfata de iesire)&lt;br /&gt;
poate fi folosita.&lt;br /&gt;
&lt;br /&gt;
SNAT este specificat folosind optiunea &quot;-j SNAT&quot;; si optiunea &quot;--to-source&quot;&lt;br /&gt;
specifica o adresa IP, un sir de adrese IP, si un port optional sau un sir de&lt;br /&gt;
porturi (doar in cazul protocoalelor UDP si TCP).&lt;br /&gt;
&lt;br /&gt;
## Schimba adresa sursa cu 1.2.3.4&lt;br /&gt;
# iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to 1.2.3.4&lt;br /&gt;
&lt;br /&gt;
## Schimba adresa sursa cu 1.2.3.4, 1.2.3.5 sau 1.2.3.6&lt;br /&gt;
# iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to 1.2.3.4-1.2.3.6&lt;br /&gt;
&lt;br /&gt;
## Schimba adresa sursa cu 1.2.3.4, si porturile intre 1-1023&lt;br /&gt;
# iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to 1.2.3.4:1-1023&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
6.1.1 Masquerading&lt;br /&gt;
&lt;br /&gt;
Exista un caz particular de SNAT numit masquerading: ar trebui sa fie folosit&lt;br /&gt;
numai pentru adrese IP asignate dinamic, cum ar fi in cazul celor ce se&lt;br /&gt;
conecteaza prin dial-up (pentru adrese IP statice, foloseste SNAT ca mai sus).&lt;br /&gt;
&lt;br /&gt;
Nu este necesar cand faci masquerading sa specifici adresa sursa: deoarece va&lt;br /&gt;
folosi adresa sursa a interfetei prin care va iesi pachetul. Dar ce este mai&lt;br /&gt;
importat, daca legatura cu ISP-ul cade, conexiunile (care acum sunt pierdute&lt;br /&gt;
oricum) sunt uitate, acest lucru inseamnand mai putine probleme tehnice cand&lt;br /&gt;
legatura cu ISP-ul revine cu o noua adresa IP.&lt;br /&gt;
&lt;br /&gt;
## masqueradare pentru ppp0&lt;br /&gt;
# iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
6.2 Folosirea NAT pentru modificarea adresei destinatie (DNAT)&lt;br /&gt;
&lt;br /&gt;
Aceasta se realizeaza  in chain-ul PREROUTING, exact  dupa primirea&lt;br /&gt;
pachetului, aceasta insemna ca orice in sistemul Linux (rutare, filtrare de&lt;br /&gt;
pachete) va vedea pachetul cu noua adresa destinatie. Mai inseamna ca optiunea&lt;br /&gt;
&quot;-i&quot; (interfata de intrare) poate fi folosita.&lt;br /&gt;
&lt;br /&gt;
Se specifica folosirea DNAT cu ajutorul optiunii &quot;-j DNAT&quot;, iar optiunea&lt;br /&gt;
&quot;--to-detination&quot; specifica o adresa IP, un sir de adrese IP, si un port&lt;br /&gt;
optional sau un sir de porturi (acest lucru fiind valabil doar pentru &lt;br /&gt;
protocoalele UPD si TCP).&lt;br /&gt;
&lt;br /&gt;
## Schimba adresa destinatie cu 5.6.7.8&lt;br /&gt;
# iptables -t nat -A PREROUTING -i eth0 -j DNAT --to 5.6.7.8&lt;br /&gt;
&lt;br /&gt;
## Schimba adresa destinatie cu  5.6.7.8, 5.6.7.9 sau 5.6.7.10.&lt;br /&gt;
# iptables -t nat -A PREROUTING -i eth0 -j DNAT --to 5.6.7.8-5.6.7.10&lt;br /&gt;
&lt;br /&gt;
##Schimba adresa destinatie a traficului spre portul 80 cu 5.6.7.8, port 8080.&lt;br /&gt;
# iptables -t nat -A PREROUTING -p tcp --dport 80 -i eth0 \&lt;br /&gt;
-j DNAT --to 5.6.7.8:8080&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
6.2.2 Redirectare&lt;br /&gt;
&lt;br /&gt;
Exista un caz particular de DNAT numita redirectare: este o simpla conventie&lt;br /&gt;
care este echivalenta cu a realiza DNAT catre adresa interfetei prin care&lt;br /&gt;
intra pachetele.&lt;br /&gt;
&lt;br /&gt;
## Trimite traficul care vine pe portul 80 catre squid (proxy-ul&lt;br /&gt;
transparent&lt;br /&gt;
# iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 \&lt;br /&gt;
-j REDIRECT --to-port 3128&lt;br /&gt;
&lt;br /&gt;
Observatie: squid-ul trebuie sa fie configurat pentru a putea fi folosit ca&lt;br /&gt;
proxy transparent!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
6.3 Mapare complexa&lt;br /&gt;
&lt;br /&gt;
Sunt cateva lucruri rafinate in folosirea NAT pe care majoritatea oamenilor nu&lt;br /&gt;
vor avea nevoie sa le foloseasca. Aceste lucruri sunt documentate mai jos&lt;br /&gt;
pentru curiosi.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
6.3.1. Selectarea de adrese multiple dintr-un sir&lt;br /&gt;
&lt;br /&gt;
Daca un sir de adrese IP este specificat, adresa IP care va fi folosita este&lt;br /&gt;
bazata pe cea mai putin folosita la conexiuni adresa IP de care sistemul stie.&lt;br /&gt;
Acest comportament furnizeaza load-balancing primar.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
6.3.2. Realizarea de mapare NAT nula&lt;br /&gt;
&lt;br /&gt;
Poti folosi tinta &quot;-j ACCEPT&quot; pentru a permite realizarea conexiunii fara sa&lt;br /&gt;
fie realizat deloc NAT.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
6.3.3. Comportamentul NAT standard&lt;br /&gt;
&lt;br /&gt;
Comportamentul obisnuit este sa modifice conexiunea cat mai putin posibil, cu&lt;br /&gt;
exceptia regulilor date de catre utilizator. Aceasta inseamna ca nu vor fi&lt;br /&gt;
remapate porturile decat daca suntem obligati sa realizam acest lucru.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
6.3.4. Mapare implicita a porturilor sursa&lt;br /&gt;
&lt;br /&gt;
Chiar daca folosirea NAT nu este ceruta pentru o conexiune, translatarea&lt;br /&gt;
portului sursa poate fi facut automat, daca o alta conexiune a fost mapata&lt;br /&gt;
peste una noua. De exemplu considerati un caz care este comun in masquerading:&lt;br /&gt;
&lt;br /&gt;
1. O conexiune web este realizata de la un sistem cu IP-ul 192.1.1.1 cu portul&lt;br /&gt;
sursa 1024 catre www.securityorg.net portul 80.&lt;br /&gt;
&lt;br /&gt;
2. Aceasta conexiune este masqueradata de un sistem care se ocupa cu acest&lt;br /&gt;
lucru, pentru a folosi IP-ul sursa al sistemului ce realizeaza masqueradarea&lt;br /&gt;
(1.2.3.4)&lt;br /&gt;
&lt;br /&gt;
3. Insusi sistemul ce realizeaza masquerading initiaza o conexiune catre&lt;br /&gt;
www.securityorg.net, portul 80, de la 1.2.3.4 (adresa interfetei externe)&lt;br /&gt;
portul 1024&lt;br /&gt;
&lt;br /&gt;
4. Codul NAT va modifica portul sursa al celei de-a doua conexiuni cu 1025,&lt;br /&gt;
astfel ca sa nu existe conflict intre cele doua conexiuni.&lt;br /&gt;
&lt;br /&gt;
Cand se realizeaza aceasta mapare automata a sursei, porturile sunt impartite&lt;br /&gt;
in trei clase:&lt;br /&gt;
&lt;br /&gt;
o Porturile sub 512&lt;br /&gt;
o Porturile intre 512 si 1023&lt;br /&gt;
o Porturile de la 1024, inclusiv, in sus&lt;br /&gt;
&lt;br /&gt;
Un port nu va fi niciodata mapat automat intr-o clasa diferita.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
6.3.5. Ce se intampla cand NAT-area nu reuseste&lt;br /&gt;
&lt;br /&gt;
Daca nu mai este disponibil nici un mod in care sa se relizeze maparea unica a&lt;br /&gt;
conexiunii cerute de catre utilizator, conexiunea va fi abandonata. Acest&lt;br /&gt;
comportament se aplica ai in cazurile in care pachetele nu au putut fi&lt;br /&gt;
clasificate ca parte a unei conexiuni, deoarece sunt malformate, sau sistemul&lt;br /&gt;
nu mai are memorie libera, etc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
6.3.6. Mapari multiple, Suprapuneri si Conflicte&lt;br /&gt;
&lt;br /&gt;
Daca ai reguli care folosesc NAT pentru mapare de porturi aflate intr-o raza&lt;br /&gt;
comuna; codul NAT este destul de inteligent pentru a evita conflicte. Aceasta&lt;br /&gt;
pentru ca, avand doua reguli, este corecta maparea adresei sursa pentru &lt;br /&gt;
192.168.1.1 si respectiv 192.168.1.2 in adresa 1.2.3.4.&lt;br /&gt;
&lt;br /&gt;
Mai mult, poti face mapare peste adrese IP reale folosite, atat timp cat&lt;br /&gt;
aceste adrese trec deasemenea prin masina care realizeaza maparea. Asa ca daca&lt;br /&gt;
ai o retea asignata (1.2.3.0/24), dar ai o retea interna care foloseste&lt;br /&gt;
aceasta clasa de IP-uri si inca o retea care foloseste o clasa de adrese IP&lt;br /&gt;
private 192.168.1.0/24, poti sa realizezi SNAT pentru adresele cu sursa IP &lt;br /&gt;
192.168.1.0/24 peste adresele din reteaua 1.2.3.0, fara sa iti fie teama de &lt;br /&gt;
conflicte:&lt;br /&gt;
&lt;br /&gt;
# iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth1 \&lt;br /&gt;
-j SNAT --to 1.2.3.0/24&lt;br /&gt;
&lt;br /&gt;
Aceeasi logica se aplica adreselor folosite de insusi sistemul ce realizeaza&lt;br /&gt;
NAT: in acest fel functioneaza si masquerading-ul (prin folosirea impreuna a&lt;br /&gt;
adresei interfatei de catre pachetele masqueradate si pachetele &quot;reale&quot;&lt;br /&gt;
venite de la insusi sistemul ca realizeaza masquerading-ul).&lt;br /&gt;
&lt;br /&gt;
De altfel, poti mapa aceleasi pachete pe mai multe sisteme diferite, si&lt;br /&gt;
acestea vor fi folosite in comun. De exemplu, daca nu doresti sa mappezi nimic&lt;br /&gt;
peste adresa 1.2.3.5, ai putea sa dai urmatoarea comanda:&lt;br /&gt;
&lt;br /&gt;
# iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth1 \&lt;br /&gt;
-j SNAT --to 1.2.3.0-1.2.3.4 --to 1.2.3.6-1.2.3.254&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
6.3.7. Schimbarea destinatiei conexiunilor generate local&lt;br /&gt;
&lt;br /&gt;
Codul NAT iti permite sa introduce reguli in chainul OUTPUT avand ca tinta&lt;br /&gt;
DNAT, dar acest lucru nu este in intregime suportat in kernelurile 2.4 (poate&lt;br /&gt;
fi programat dar are nevoie de noi optiuni, testari, si putina programare,&lt;br /&gt;
asa ca daca nimeni nu il contacteaza pe Rusty pentru al scrie, nu o sa fie&lt;br /&gt;
disponibil prea devreme).&lt;br /&gt;
&lt;br /&gt;
Limitarea curenta este faptul ca poti sa schimbi destinatia pachetelor doar&lt;br /&gt;
catre sistemul local ( &quot;-j DNAT --to 127.0.0.1&quot;), nu si catre alte sisteme, in&lt;br /&gt;
caz contrar replicile nu vor fi primite in mod corect inapoi.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
7. Protocoale speciale&lt;br /&gt;
&lt;br /&gt;
Unele protocoale nu accepta sa fie NAT-uite. Pentru fiecare dintre aceste&lt;br /&gt;
protocoale, doua module speciale trebuiesc scrie; unul pentru urmarirea&lt;br /&gt;
conexiunilor si al doilea pentru operatia de NAT-are propriu-zisa.&lt;br /&gt;
&lt;br /&gt;
In cadrul distributiei netfilter, exista module pentru ftp: ip_conntrack_ftp.o&lt;br /&gt;
si ip_nat_ftp.o. Daca le inserezi in kernel (insmod) sau le compilezi in&lt;br /&gt;
kernel, atunci realizarea oricarui tip de NAT pentru conexiuni ftp ar trebui&lt;br /&gt;
sa functioneze. Daca nu, atunci poti folosi ftp pasiv, si chiar si atunci s-ar&lt;br /&gt;
putea sa nu functioneze foarte sigur daca vrei sa realizezi alceva decat SNAT.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
8. Avertizmente privind folosirea NAT&lt;br /&gt;
&lt;br /&gt;
Daca realizezi NAT pentru o conexiune, pachetele venind din ambele sensuri&lt;br /&gt;
(din afara si din inauntrul retelei) trebuie sa treaca prin sistemul care&lt;br /&gt;
realizeaza NAT-area, in caz contrar lucrurile nu vor functiona sigur. In&lt;br /&gt;
special, codul urmarii conexiunilor reansambleaza fragmentele, care inseamna&lt;br /&gt;
ca nu numai depistarea conexiunilor nu va fi sigura, dar chiar si pachetele&lt;br /&gt;
s-ar putea sa nu treaca deloc, ca fragmente fiind retinute.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
9. Folosirea SNAT si rutarea&lt;br /&gt;
&lt;br /&gt;
Daca doresti sa realizezi SNAT, vei dori sa fii sigur ca fiecare masina la&lt;br /&gt;
care ajung pachete care sunt parte a unei conexiuni SNAT, vor trimite&lt;br /&gt;
pachetele replica inapoi la sistemul care realizeaza SNAT-ul.&lt;br /&gt;
De exemplu, daca mapezi niste pachete ce ies, cu adresa sursa 1.2.3.4, atunci&lt;br /&gt;
ruterul extern trebuie sa stie ca trebuie sa trimita pachetele replica inapoi&lt;br /&gt;
(care vor avea adresa destinatie 1.2.3.4) catre acest sistem.&lt;br /&gt;
Acest lucru poate fi realizat in urmatoarele moduri:&lt;br /&gt;
&lt;br /&gt;
1. Daca realizezi SNAT peste adresa propriului sistem (pentru care rutarea si&lt;br /&gt;
toate celelalte merg deja), nu trebuie sa faci nimic&lt;br /&gt;
&lt;br /&gt;
2. Daca realizezi SNAT peste o adresa nefolosita din propriul LAN (de exemplu,&lt;br /&gt;
mappezi peste 1.2.3.99, o adresa IP nefolosita din reteaua ta  1.2.3.0/24),&lt;br /&gt;
sistemul ce realizeaza NAT va trebui sa raspunda la cereri ARP pentru aceea&lt;br /&gt;
adresa ca si pentru propria sa adresa: cea mai simpla metoda de a rezolva&lt;br /&gt;
acest lucru este sa creezi un alias pentru adresa IP, de exemplu:&lt;br /&gt;
&lt;br /&gt;
# ip address add 1.2.3.99 dev eth0&lt;br /&gt;
&lt;br /&gt;
3. Daca realizezi SNAT peste o adresa complet diferita, va trebui sa te asiguri&lt;br /&gt;
ca masinile la care vor ajunge pachetele SNAT-atate vor ruta aceasta adresa&lt;br /&gt;
inapoi catre sistemul pe care se realizeaza SNAT-ul. Aceasta este realizata&lt;br /&gt;
deja daca sistemul care realizeaza SNAT-ul este gateway-ul lor default, in caz&lt;br /&gt;
contrar va trebui sa adaugi o ruta pe fiecare sistem prin care trec pachetele&lt;br /&gt;
modificate.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
10. Folosirea DNAT pentru adrese aflate in aceeasi retea.&lt;br /&gt;
&lt;br /&gt;
Daca realizezi forwardare de porturi inapoi in aceeasi retea, trebuie sa fii&lt;br /&gt;
sigur ca atat pachetele viitoare cat si pachetele ce vin in replica vor trece&lt;br /&gt;
prin sistemul ce realizeaza DNAT-ul (pentru ca acestea sa fie modificate).&lt;br /&gt;
Codul NAT va bloca (inca din ver. 2.4.0-test6) pachetele ICMP de redirectare&lt;br /&gt;
care rezulta atunci cand pachetele NAT-ate se indreapta catre aceeasi interfata&lt;br /&gt;
spre care au venit, dar serverul care primeste acele pachete va incerca in&lt;br /&gt;
continuare sa raspunda direct catre client (care nu va recunoaste pachetele&lt;br /&gt;
replica).&lt;br /&gt;
&lt;br /&gt;
Cazul clasic este cand un sistem din reteaua interna incearca sa acceseze&lt;br /&gt;
serverul www &quot;public&quot;, care este defapt DNAT-at de la adresa publica (1.2.3.4)&lt;br /&gt;
catre un sistem din reteaua interna (192.168.1.1), astfel:&lt;br /&gt;
&lt;br /&gt;
# iptables -t nat -A PREROUTING -d 1.2.3.4 \&lt;br /&gt;
-p tcp --dport 80 -j DNAT --to 192.168.1.1&lt;br /&gt;
&lt;br /&gt;
O cale este sa rulezi un server de DNS intern care sa stie adresa IP reala&lt;br /&gt;
(interna) al site-ului public de web, si sa inainteze toate celelate cereri&lt;br /&gt;
catre un server DNS extern. Aceasta inseamna ca va fi folosita o conexiune&lt;br /&gt;
directa catre server-ul de web, fara sa mai fie nevoie de a trece prin&lt;br /&gt;
sistemul care realizeaza NAT.&lt;br /&gt;
&lt;br /&gt;
Cealalta cale este sa realizezi, pe sistemul care face DNAT, mapparea adresei&lt;br /&gt;
sursa spre propria lui adresa pentru conexiunile venind din reteaua interna,&lt;br /&gt;
pacalind serverul de web sa trimita pachetele replica spre masina ce se ocupa&lt;br /&gt;
cu NAT-area. Pentru acest exemplu vom proceda astfel (presupunem ca adresa IP&lt;br /&gt;
al sistemului care realizeaza NAT este 192.168.1.250):&lt;br /&gt;
&lt;br /&gt;
# iptables -t nat -A POSTROUTING -d 192.168.1.1 -s 192.168.1.0/24 \&lt;br /&gt;
-p tcp --dport 80 -j SNAT --to 192.168.1.250&lt;br /&gt;
&lt;br /&gt;
Deoarece regula din chain-ul PREROUTING este executata prima, pachetele vor fi&lt;br /&gt;
deja destinate pentru server-ul de web intern: putem preciza care din pachete&lt;br /&gt;
sunt din reteaua interna dupa adresa IP sursa.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
11. Multumiri&lt;br /&gt;
&lt;br /&gt;
Multumirile sunt in primul rand pentru WatchGuard, si David Bonn, care a&lt;br /&gt;
crezut in ideea netfilter destul pentru a ma sustine sa o tranform in&lt;br /&gt;
realitate. Si pentru toti ceilalti, care m-au suportat cand faceam pe grozavul&lt;br /&gt;
cand am invatat despre uratenia NAT-ului, in special celor ce mi-au citit&lt;br /&gt;
jurnalul.&lt;br /&gt;
&lt;br /&gt;
Rusty.</content><link rel='replies' type='application/atom+xml' href='http://resurse-it.blogspot.com/feeds/3856731062593408962/comments/default' title='Postare comentarii'/><link rel='replies' type='text/html' href='http://resurse-it.blogspot.com/2011/04/cum-sa-realizezi-masquerading.html#comment-form' title='0 comentarii'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4915140777580483380/posts/default/3856731062593408962'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4915140777580483380/posts/default/3856731062593408962'/><link rel='alternate' type='text/html' href='http://resurse-it.blogspot.com/2011/04/cum-sa-realizezi-masquerading.html' title='Cum sa realizezi masquerading, transparent proxy, forwardare de porturi, si alte forme de NAT pentru kernelurile Linux ver 2.4'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4915140777580483380.post-8141406052346735850</id><published>2011-04-11T00:52:00.001-07:00</published><updated>2011-04-11T00:54:10.369-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="filtru de pachete"/><category scheme="http://www.blogger.com/atom/ns#" term="howto"/><category scheme="http://www.blogger.com/atom/ns#" term="interfata"/><category scheme="http://www.blogger.com/atom/ns#" term="ip"/><category scheme="http://www.blogger.com/atom/ns#" term="iptables"/><category scheme="http://www.blogger.com/atom/ns#" term="kernel"/><category scheme="http://www.blogger.com/atom/ns#" term="linux"/><category scheme="http://www.blogger.com/atom/ns#" term="nat"/><category scheme="http://www.blogger.com/atom/ns#" term="protocol"/><category scheme="http://www.blogger.com/atom/ns#" term="proxy"/><category scheme="http://www.blogger.com/atom/ns#" term="tcp"/><title type='text'>Linux, Folosirea lui iptables pentru filtrarea pachetelor in kernelurile versiunea 2.4.</title><content type='html'>traducere ver. 0.6 de catre Riddl&lt;br /&gt;
&lt;br /&gt;
Multumiri tuturor celor care m-au ajutat. Lui Gushterul in special. &lt;br /&gt;
Deasemenea multumiri si lui Little Dragon.&lt;br /&gt;
Observatie f importanta: probabil ca exista unele greseli in acest document.&lt;br /&gt;
Am tradus si eu cum m-am priceput mai bine, daca descoperiti greseli de &lt;br /&gt;
traducere si pentru observatii pertinente mail me (Riddl) at &lt;br /&gt;
&quot;discutzii at gmx dot net&quot;. Nu uitati sa precizati numele documentului.&lt;br /&gt;
Multumesc anticipat.&lt;br /&gt;
Aceasta versiune este putin modificata fata de original, deorece unii termeni&lt;br /&gt;
sunau foarte aiurea in ro.&lt;br /&gt;
Pentru ultima versiune a acestui document verifica&lt;br /&gt;
&amp;lt;http://www.securityorg.net/docs/&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Lecturare placuta!&lt;br /&gt;
&lt;br /&gt;
______________________________________________________________________&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Linux 2.4 Packet Filtering HOWTO&lt;br /&gt;
Rusty Russel, lista de discutii netfilter@lists.samba.org&lt;br /&gt;
$Revision: 1.2 $ $Date: 2002/02/19 11:33:43 $&lt;br /&gt;
&lt;br /&gt;
Acest document descrie folosirea lui iptables pentru filtrarea pachetelor in&lt;br /&gt;
kernelurile versiunea 2.4.&lt;br /&gt;
______________________________________________________________________&lt;br /&gt;
&lt;br /&gt;
Cuprins&lt;br /&gt;
&lt;br /&gt;
1. Introducere&lt;br /&gt;
2. Care este site-ul oficial? Exista vreo lista de discutii?&lt;br /&gt;
3. Deci, ce inseamna filtru de pachete?&lt;br /&gt;
3.1 De ce as vrea sa filtrez pachetele?&lt;br /&gt;
3.2 Cum filtrez pachetele sub linux?&lt;br /&gt;
3.2.1 iptables&lt;br /&gt;
3.2.2 Crearea regulilor permanente&lt;br /&gt;
4. Cine dracu esti tu, si de ce te joci cu kernelul meu?&lt;br /&gt;
5. Ghidul intr-adevar rapid al lui Rusty pentru filtrarea de pachete&lt;br /&gt;
6. Cum traverseaza pachetele filtrele?&lt;br /&gt;
7. Folosirea iptables&lt;br /&gt;
7.1 Ce vei vedea cand porneste calculatorul&lt;br /&gt;
7.2 Operatii pentru o singura regula&lt;br /&gt;
7.3 Optiuni de filtrare&lt;br /&gt;
7.3.1 Specificarea IP-ului sursa si destinatie&lt;br /&gt;
7.3.2 Specificarea inversa&lt;br /&gt;
7.3.3 Specificarea protocolului&lt;br /&gt;
7.3.4 Specificarea unei interfete&lt;br /&gt;
7.3.5 Specificarea fragmentelor&lt;br /&gt;
7.3.6 Optiuni extinse la iptables: Noi potriviri&lt;br /&gt;
7.3.6.1 Optiuni extinse TCP&lt;br /&gt;
7.3.6.1.1 O explicatie pentru flag-urile TCP&lt;br /&gt;
7.3.6.2 Optiuni extinse UDP&lt;br /&gt;
7.3.6.3 Optiuni extinse ICMP&lt;br /&gt;
7.3.6.4 Alte optiuni extinse pentru potrivire&lt;br /&gt;
7.3.6.5 Potrivirea dupa stare&lt;br /&gt;
7.4 Argumente asupra tintei&lt;br /&gt;
7.4.1 Chain-uri definite de utilizator&lt;br /&gt;
7.4.2 Optiuni extinse la iptables: Noi tinte&lt;br /&gt;
7.4.3 Tinte speciale construite default&lt;br /&gt;
7.5 Operatii asupra unui intreg chain&lt;br /&gt;
7.5.1 Creearea unui nou chain&lt;br /&gt;
7.5.2 Stergerea unui chain&lt;br /&gt;
7.5.3 Stergerea tuturor regulilor unui chain&lt;br /&gt;
7.5.4 Listarea unui chain&lt;br /&gt;
7.5.5 Resetarea counter-elor&lt;br /&gt;
7.5.6 Setarea policy-ului&lt;br /&gt;
&lt;br /&gt;
8. Folosirea ipchains si ipfwadm&lt;br /&gt;
9. Folosirea impreuna a NAT-ului si a filtrarii de pachete&lt;br /&gt;
10. Diferente intre iptables si ipchains&lt;br /&gt;
11. Sfaturi asupra designului filtrului de pachete&lt;br /&gt;
&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
______________________________________________________________________&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1. Introducere&lt;br /&gt;
&lt;br /&gt;
Bine ai venit, cititorule. (:))&lt;br /&gt;
&lt;br /&gt;
Se presupune ca stii ce este aceea o adresa IP, adresa de retea, netmask,&lt;br /&gt;
routare si DNS. Daca nu, se recomanda sa citesti Network Concepts Howto.&lt;br /&gt;
Acest HOWTO loveste intre o introducere draguta (care te poate lasa&lt;br /&gt;
increzator pentru moment, dar neprotejat in lumea reala) si o dezvaluire&lt;br /&gt;
total neprelucrata (care ii vor lasa pe toti, mai putin caracterele tari,&lt;br /&gt;
in confuzie, paranoici si in cautarea de arme grele).&lt;br /&gt;
&lt;br /&gt;
Reteaua ta nu este sigura. Problema permiterii comunicarii rapide si&lt;br /&gt;
comode, in acelasi timp cu restrictia acesteia numai pentru bine si nu in&lt;br /&gt;
mod malefic, este asemanatoare cu alte probleme opuse  cum ar fi permiterea&lt;br /&gt;
vorbirii libere in acelasi timp cu refuzarea unui strigat de &quot;FOC!!&quot; intr-un&lt;br /&gt;
teatru aglomerat. Nu va fi rezolvata aceasta problema in spatiul acestui&lt;br /&gt;
HOWTO.&lt;br /&gt;
&lt;br /&gt;
Asa ca doar tu poti sa decizi unde va fi compromisul. Voi incerca sa te&lt;br /&gt;
instruiesc in folosirea unor comenzi disponibile si a unor vulnerabilitati&lt;br /&gt;
de care sa fii constient, in speranta ca vei folosi aceasta in mod pozitiv&lt;br /&gt;
si nu in scopuri malefice. Aceasta este o alta problema asemanatoare.&lt;br /&gt;
&lt;br /&gt;
(C) 2000 Paul &quot;Rusty&quot; Russell.  Cu licenta sub  GNU GPL.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2. Care este site-ul oficial? Exista vreo lista de discutii?&lt;br /&gt;
&lt;br /&gt;
Sunt trei site-uri oficiale:&lt;br /&gt;
&lt;br /&gt;
o  Multumiri lui Filewatcher &amp;lt;http://netfilter.filewatcher.org/&amp;gt;.&lt;br /&gt;
o  Multumiri Echipei Samba si SGI &amp;lt;http://netfilter.samba.org/&amp;gt;.&lt;br /&gt;
o  Multumiri lui Harald Welte &amp;lt;http://netfilter.gnumonks.org/&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Le poti accesa pe toate folosind round-robin DNS la:&lt;br /&gt;
&amp;lt;http://www.netfilter.org/&amp;gt; si  &amp;lt;http://www.iptables.org/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pentru lista de discutii oficiala de la netfilter, vezi:&lt;br /&gt;
&amp;lt;http://www.netfilter.org/contact.html#list&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3. Deci, ce inseamna filtru de pachete?&lt;br /&gt;
&lt;br /&gt;
Un filtru de pachete este o bucatica de software care se uita la header-ul&lt;br /&gt;
pachetelor pe masura ce ele intra, si decid soarta intregului pachet. Acest&lt;br /&gt;
filtru poate decide sa ignore pachetul (DROP) (respinge pachetul ca si cum&lt;br /&gt;
nu l-ar fi primit niciodata), accepta (ACCEPT) pachetul (lasa pachetul sa&lt;br /&gt;
intre), sau alte decizii mai complicate.&lt;br /&gt;
&lt;br /&gt;
Sub linux, filtrarea de pachete este construita in kernel (ca modul sau&lt;br /&gt;
construita in el), si sunt cateva lucruri complicate pe care le putem face cu&lt;br /&gt;
pachetele, dar principiul general de examinare al header-ului pachetului si&lt;br /&gt;
decidere asupra sortii pachetului este inca acolo.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3.1 De ce as vrea sa filtrez pachetele?&lt;br /&gt;
&lt;br /&gt;
Control. Securitate. Vigilenta.&lt;br /&gt;
&lt;br /&gt;
Control:&lt;br /&gt;
cand folosesti un sistem Linux pentru a-ti conecta reteaua interna&lt;br /&gt;
la o alta retea (sa spunem, Internet) ai posibilitatea de a permite&lt;br /&gt;
un anumit tip de trafic, si sa refuzi pe altele. De exemplu,&lt;br /&gt;
header-ul contine adresa destinatie a unui pachet, asa ca poti&lt;br /&gt;
preveni pachetele sa se duca spre o anumita parte a retelei&lt;br /&gt;
exterioare. Ca un alt exemplu, folosesc Netscape pentru accesarea&lt;br /&gt;
arhivelor Dilbert. Sunt reclame pe pagina de la doubleclick.net, si&lt;br /&gt;
Netscape imi pierde timpul incarcandu-le. Spunand filtrului de pachete&lt;br /&gt;
sa nu permita pachete de la sau spre nici una din adresele detinute&lt;br /&gt;
de catre doubleclick.net, rezolva aceasta problema (cu toate acestea&lt;br /&gt;
sunt modalitati mai bune pentru aceasta: vezi Junkbuster).&lt;br /&gt;
&lt;br /&gt;
Securitate:&lt;br /&gt;
cand sistemul tau Linux este singurul intre haosul Internetului&lt;br /&gt;
si reteaua ta ordonata si delicata, este placut sa stii ca poti&lt;br /&gt;
sa restrictionezi ceea ce vine tropaind la usa. De exemplu, poti sa&lt;br /&gt;
permiti la tot sa iasa din retea, dar ai putea fi ingrijorat de&lt;br /&gt;
binecunoscutul &quot;Ping al Mortii&quot; venind de la persoanele din afara rau&lt;br /&gt;
intentionate. Ca un alt exemplu, s-ar putea sa nu doresti ca&lt;br /&gt;
persoanele din afara sa se telnet-uiasca pe sistemul tau Linux, chiar&lt;br /&gt;
daca toate conturile tale au parole. Poate doresti (ca multi oameni)&lt;br /&gt;
sa fii un observator  al Internet-ului, si nu server (de voie, sau in&lt;br /&gt;
alt mod). Pur si simplu nu lasa pe nimeni sa se conecteze, punand&lt;br /&gt;
fitrul de pachete sa respinga pachetele folosite la initierea de&lt;br /&gt;
conexiuni.&lt;br /&gt;
&lt;br /&gt;
Vigilenta:&lt;br /&gt;
uneori o masina prost configurata in reteaua locala va decide sa&lt;br /&gt;
arunce pachete spre lumea din afara. Este dragut sa-i spui filtrului de&lt;br /&gt;
pachete sa te anunte daca se intampla ceva anormal; poate poti face&lt;br /&gt;
ceva cu privire la acel lucru, sau poate esti doar curios.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3.2 Cum filtrez pachetele sub linux?&lt;br /&gt;
&lt;br /&gt;
Kernelurile Linux au avut filtrare de pachete inca de la versiunile 1.1.&lt;br /&gt;
Prima generatie, bazata pe ipfw de la BSD, a fost portata de catre Alan Cox&lt;br /&gt;
spre sfarsitului anului 1994. Aceasta a fost dezvoltata de catre Jos Vos si&lt;br /&gt;
altii pentru Linux 2.0; comanda pentru utilizatori &quot;ipfwadm&quot; controla&lt;br /&gt;
regulile de filtrare ale kernelului. La mijlocului anului 1998, pentru Linux&lt;br /&gt;
2.2, am rescris puternic kernelul cu ajutorul lui Michael Neuling, si am&lt;br /&gt;
introdus comanda pentru utilizatori &quot;ipchains&quot;. In sfarsit, a patra generatie&lt;br /&gt;
de comenzi, &quot;iptables&quot;, si o noua rescriere a kernelului s-a intamplat la &lt;br /&gt;
mijlocul anului 1999 pentru Linux 2.4. Acest HOWTO este centrat pe iptables. &lt;br /&gt;
&lt;br /&gt;
Ai nevoie de un kernel care are infrastructura netfilter in el: netfilter este&lt;br /&gt;
un cadru in interiorul kernelului Linux in care alte lucruri (cum ar fi&lt;br /&gt;
modulul de iptables) se pot introduce. Asta inseamna ca ai nevoie de kernel&lt;br /&gt;
versiune 2.3.15 sau peste, si sa raspunzi &quot;Y&quot; la CONFIG_NETFILTER in&lt;br /&gt;
configurarea kernelului.&lt;br /&gt;
&lt;br /&gt;
Comanda iptables comunica kernelului si ii spune ce pachete sa filtreze.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3.2.1 iptables&lt;br /&gt;
&lt;br /&gt;
Comanda iptables insereaza si sterge reguli din tabela de filtrare a&lt;br /&gt;
pachetelor din kernel. Asta inseamna ca orice vei seta, va fi pierdut dupa&lt;br /&gt;
rebootare; vezi &quot;Crearea regulilor permanente&quot; pentru cum sa fii sigur ca vor&lt;br /&gt;
fi restaurate data urmatoare cand va boota Linuxul.&lt;br /&gt;
&lt;br /&gt;
iptables este un inlocuitor pentru ipfwadm si ipchains: vezi &quot;Folosirea&lt;br /&gt;
ipchains si ipfwadm&quot; pentru a afla cum poti evita fara probleme folosirea  &lt;br /&gt;
iptables daca folosesti una din aceste comenzi.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3.2.2 Crearea regulilor permanente&lt;br /&gt;
&lt;br /&gt;
Setarile firewall-ului tau curent sunt pastrate in kernel, si de aceea vor fi&lt;br /&gt;
pierdute la rebootare. Poti folosi scripturile iptables-save si&lt;br /&gt;
iptables-restore sa le salvezi, sau restaurezi dintr-un fisier.&lt;br /&gt;
&lt;br /&gt;
O alte cale este sa pui comenzile cerute sa iti setezi regulile intr-un&lt;br /&gt;
script de initializare. Ai grija sa faci ceva inteligent in caz ca una din&lt;br /&gt;
comenzi nu ar reusi (de obicei &quot;exec /sbin/sulogin&quot;).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4. Cine dracu esti tu, si de ce te joci cu kernelul meu?&lt;br /&gt;
&lt;br /&gt;
Sunt Rusty Russel; cel ce mentine Linux IP Firewall si doar un alt&lt;br /&gt;
programator care s-a intamplat sa fie in locul potrivit la momentul potrivit.&lt;br /&gt;
Am scris ipchains (vezi mai sus &quot;Cum filtrez pachetele sub linux?&quot; pentru a da&lt;br /&gt;
credit celor care au facut de fapt munca), si am invatat suficient sa fac&lt;br /&gt;
cum trebuie de data asta filtrarea de pachete. Sper.&lt;br /&gt;
&lt;br /&gt;
WatchGuard &amp;lt;http://www.watchguard.com&amp;gt;, o compania excelenta de firewall-uri&lt;br /&gt;
care vinde chiar simpaticul plug-in Firebox, s-a oferit sa ma plateasca sa nu&lt;br /&gt;
fac nimic, pentru a-mi petrece tot timpul meu sa scriu asta, si sa imi&lt;br /&gt;
mentin munca anterioara. Am preconizat 6 luni, si mi-au luat 12, dar la&lt;br /&gt;
sfarsit am simtit ca l-am facut cum trebuie. Multe rescrieri, o cedare a&lt;br /&gt;
unui hardisk, un laptop furat, doua sisteme de fisiere corupte si un&lt;br /&gt;
monitor spart mai tarziu, asta este.&lt;br /&gt;
&lt;br /&gt;
Cat sunt aici, vreau sa indrept niste idei gresite ale unor oameni: nu sunt&lt;br /&gt;
un guru al kernelului. Stiu asta, pentru ca munca mea pe partea din kernel&lt;br /&gt;
m-a adus in contact cu unii din acestia: David S. Miller, Alexey Kuznetsov,&lt;br /&gt;
Andi Kleen, Alan Cox. Oricum, sunt cu totii ocupati sa faca magia din&lt;br /&gt;
interior,  lasandu-ma sa avansez cu greu prin superficialitate unde este&lt;br /&gt;
sigur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
5. Ghidul intr-adevar rapid al lui Rusty pentru filtrarea de pachete&lt;br /&gt;
&lt;br /&gt;
Cei mai multi oameni au o singura conexiune PPP spre Internet, si nu vor ca&lt;br /&gt;
cineva sa intre inapoi in reteaua lor, iata firewall-ul:&lt;br /&gt;
&lt;br /&gt;
## Se insereaza modulele pentru connection-tracking (nu este necesar&lt;br /&gt;
## daca sunt compilate in kernel)&lt;br /&gt;
# insmod ip_conntrack&lt;br /&gt;
# insmod ip_conntrack_ftp&lt;br /&gt;
&lt;br /&gt;
## Se creeaza chain-ul care blocheaza conexiunile noi, cu exceptia celor&lt;br /&gt;
## venite din interior.&lt;br /&gt;
&lt;br /&gt;
# iptables -N block&lt;br /&gt;
# iptables -A block -m state --state ESTABLISHED,RELATED -j ACCEPT&lt;br /&gt;
# iptables -A block -m state --state NEW -i ! ppp0 -j ACCEPT&lt;br /&gt;
# iptables -A block -j DROP&lt;br /&gt;
&lt;br /&gt;
## Se sare la acest chain din chain-urile INPUT si FORWARD&lt;br /&gt;
# iptables -A INPUT -j block&lt;br /&gt;
# iptables -A FORWARD -j block&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
6. Cum traverseaza pachetele filtrele?&lt;br /&gt;
&lt;br /&gt;
Kernelul porneste cu trei liste de reguli in tabela de &quot;filtrare&quot;; aceste&lt;br /&gt;
liste sunt numite chain-uri ale firewall-ului sau pur si simplu chain-uri&lt;br /&gt;
(lanturi). Cele trei chain-uri se numesc INPUT, OUTPUT si FORWARD.&lt;br /&gt;
&lt;br /&gt;
Pentru fanii ASCII, chain-urile sunt aranjate cam in felul urmator: (Nota:&lt;br /&gt;
acesta este un aranjament foarte diferit fata de cel din kernelurile ver.&lt;br /&gt;
2.0 si 2.2 !)&lt;br /&gt;
&lt;br /&gt;
_____&lt;br /&gt;
Incoming                 /     \         Outgoing&lt;br /&gt;
--&amp;gt;[Routing ]---&amp;gt;|FORWARD|-------&amp;gt;&lt;br /&gt;
[Decision]     \_____/        ^&lt;br /&gt;
|                        |&lt;br /&gt;
v                       ____&lt;br /&gt;
___                     /    \&lt;br /&gt;
/   \                   |OUTPUT|&lt;br /&gt;
|INPUT|                   \____/&lt;br /&gt;
\___/                       ^&lt;br /&gt;
|                        |&lt;br /&gt;
----&amp;gt; Local Process ----&lt;br /&gt;
&lt;br /&gt;
Cele trei cercuri reprezinta cele trei chain-uri despre care am vorbit&lt;br /&gt;
anterior. Cand un pachet ajunge la un cerc din diagrama, acel chain este&lt;br /&gt;
examinat pentru a decide soarta pachetului. In cazul in care chain-ul spune sa &lt;br /&gt;
ignore pachetul (DROP), este taiat acolo, daca insa chain-ul spune sa accepte&lt;br /&gt;
pachetul (ACCEPT), atunci pachetul continua sa parcurga diagrama.&lt;br /&gt;
&lt;br /&gt;
Un chain este o lista de verificare cu reguli. Fiecare regula spune &quot;daca&lt;br /&gt;
headerul pachetului arata asa, atunci iata ce sa faci cu pachetul&quot;. Daca&lt;br /&gt;
regula nu se potriveste cu pachetul, atunci urmatoarea regula din chain&lt;br /&gt;
(lant) este examinata. In final, daca nu mai exista reguli de examinat,&lt;br /&gt;
kernelul se uita la politica acelui chain-ului pentru a decide soarta pachetului.&lt;br /&gt;
Intr-un sistem sigur, politica in chain-uri este de obicei sa taie pachetul&lt;br /&gt;
(DROP).&lt;br /&gt;
&lt;br /&gt;
1. Cand un pachet vine (sa zicem, prin placa de retea) kernelul se &lt;br /&gt;
uita intai la destinatia pachetului: aceasta se numeste &quot;routing&quot; &lt;br /&gt;
(rutare).&lt;br /&gt;
&lt;br /&gt;
2. Daca pachetul este destinat pentru aceasta masina, pachetul trece pe&lt;br /&gt;
diagrama in chain-ul INPUT. Daca trece de acest chain, orice proces care&lt;br /&gt;
asteapta acel pachet il va primi.&lt;br /&gt;
&lt;br /&gt;
3. In caz contrar, daca kernelul nu are forwarding-ul pus, sau nu stie&lt;br /&gt;
cum sa forward-eze pachetul, acesta este ignorat. Daca este pus &lt;br /&gt;
forwarding-ul, si pachetul are ca destinatie o alta interfata de &lt;br /&gt;
retea (daca mai ai inca una), atunci pachetul se duce in diagrama&lt;br /&gt;
noastra direct catre chain-ul FORWARD. Daca este acceptat pachetul va&lt;br /&gt;
fi transmis.&lt;br /&gt;
&lt;br /&gt;
4. In final, un program ce ruleaza pe sistem poate trimite pachete. &lt;br /&gt;
Aceste pachete trec direct in chain-ul OUTPUT: daca este acceptat &lt;br /&gt;
pachetul isi continua drumul fara sa conteze interfata spre care este &lt;br /&gt;
destinat.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
7. Folosirea iptables&lt;br /&gt;
&lt;br /&gt;
iptables are o pagina de manual destul de detaliata (man iptables), si daca&lt;br /&gt;
ai nevoie de detalii mai in amanunt. Aceia dintre voi familiarizati cu&lt;br /&gt;
ipchains vor dori poate sa se uite la &quot;Diferente intre iptables si&lt;br /&gt;
ipchains&quot;; sunt comenzi foarte similare.&lt;br /&gt;
&lt;br /&gt;
Sunt mai multe lucruri pe care le poti face cu iptables. Pornesti la drum cu&lt;br /&gt;
trei chainu-ri default care nu pot fi sterse INPUT, OUTPUT si FORWARD. Sa&lt;br /&gt;
privim operatiile care se pot aplica pentru un intreg chain:&lt;br /&gt;
&lt;br /&gt;
1. Creearea unui chain nou (-N).&lt;br /&gt;
2. Stergerea unui chain gol (care nu contine reguli) (-X).&lt;br /&gt;
3. Schimbarea politicii pentru un chain default (-P).&lt;br /&gt;
4. Listarea regulilor dintr-un chain (-L).&lt;br /&gt;
5. Stergerea tuturor regulilor dintr-un chain (-F).&lt;br /&gt;
6. Resetarea counter-elor de pachete si bytes pentru toate regulile&lt;br /&gt;
dintr-un chain (-Z).&lt;br /&gt;
&lt;br /&gt;
Sunt mai multe moduri in care se pot manipula regulile intr-un chain:&lt;br /&gt;
&lt;br /&gt;
1. Adaugarea in coada chain-ului a unei noi reguli (-A).&lt;br /&gt;
2. Insereaza o regula noua la o anumita pozitie in chain (-I). Daca&lt;br /&gt;
nu este precizata pozitia printr-un numar atunci regula este adaugata&lt;br /&gt;
la inceputul chain-ului.&lt;br /&gt;
3. Inlocuieste o regula la o anumita pozitie in chain (-R).&lt;br /&gt;
4. Sterge o regula la o anumita pozitie in chain, sau prima care se&lt;br /&gt;
potriveste (-D).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
7.1 Ce vei vedea cand porneste calculatorul&lt;br /&gt;
&lt;br /&gt;
Iptables poate fi un modul, numit (&quot;iptable_filter.o&quot;), care ar trebui sa fie&lt;br /&gt;
incarcat in mod automat cand rulezi prima oara iptables. Poate fi deasemenea&lt;br /&gt;
compilat in kernel in mod permament.&lt;br /&gt;
&lt;br /&gt;
Inainte de rularea oricarei comenzi iptables (ai grija: unele distributii vor&lt;br /&gt;
rula iptables in scripturile lor de initializare), nu vor fi reguli in nici&lt;br /&gt;
una din chain-urile default (&quot;INPUT&quot;, &quot;OUTPUT&quot; si &quot;FORWARD&quot;), toate&lt;br /&gt;
chain-urile vor avea politica de acceptare a pachetelor (ACCEPT). Poti schimba&lt;br /&gt;
politica default al chain-ului FORWARD prin stipularea optiunii &quot;forward=0&quot;&lt;br /&gt;
modulului iptable_filter. (n.t. sau &quot;echo 0 &amp;gt; /proc/sys/net/ipv4/ip_forward&quot;,&lt;br /&gt;
depinde insa si de distributie, pe redhat default inseamna ca forward-ul&lt;br /&gt;
este 0)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
7.2 Operatii pentru o singura regula&lt;br /&gt;
&lt;br /&gt;
Aceasta este paine-si-untul, sarea si piperul, si ce mai vreti voi, a filtrarii&lt;br /&gt;
de pachete; manipularea regulilor. Cel mai obisnuit, vei folosi probabil &lt;br /&gt;
comenzile de adaugare (-A) si stergere (-D). Celelalte (-I pentru inserare&lt;br /&gt;
si -R pentru inlocuire) sunt doar extensii ale acestor concepte.&lt;br /&gt;
&lt;br /&gt;
Fiecare regula specifica o multime de conditii pe care un pachet trebuie sa le&lt;br /&gt;
indeplineasca si ce sa faca daca acestea sunt indeplinite (o &quot;tinta&quot;&lt;br /&gt;
(target)). De exemplu, s-ar putea sa doresti sa ignori toate pachetele de&lt;br /&gt;
tip ICMP care vin de la adresa 127.0.0.1. Deci, in acest caz conditiile&lt;br /&gt;
noastre sunt ca protocolul sa fie ICMP si ca adresa sursa sa fie 127.0.0.1.&lt;br /&gt;
&quot;tinta&quot; noastra este DROP. 127.0.0.1 este interfata &quot;loopback&quot;, pe care o ai&lt;br /&gt;
chiar daca nu ai conexiune reala de retea. Poti folosi programul &quot;ping&quot;&lt;br /&gt;
pentru a genera acest tip de pachete (pur si simplu trimite pachete ICMP de&lt;br /&gt;
tip 8 (echo request) la care toate host-urile ar trebui sa raspunda cu&lt;br /&gt;
pachete ICMP de tip 0 (echo replay)). Aceast program este foarte folositor &lt;br /&gt;
pentru teste.&lt;br /&gt;
&lt;br /&gt;
# ping -c 1 127.0.0.1&lt;br /&gt;
PING 127.0.0.1 (127.0.0.1): 56 data bytes&lt;br /&gt;
64 bytes from 127.0.0.1: icmp_seq=0 ttl=64 time=0.2 ms&lt;br /&gt;
&lt;br /&gt;
--- 127.0.0.1 ping statistics ---&lt;br /&gt;
1 packets transmitted, 1 packets received, 0% packet loss&lt;br /&gt;
round-trip min/avg/max = 0.2/0.2/0.2 ms&lt;br /&gt;
# iptables -A INPUT -s 127.0.0.1 -p icmp -j DROP&lt;br /&gt;
# ping -c 1 127.0.0.1&lt;br /&gt;
PING 127.0.0.1 (127.0.0.1): 56 data bytes&lt;br /&gt;
&lt;br /&gt;
--- 127.0.0.1 ping statistics ---&lt;br /&gt;
1 packets transmitted, 0 packets received, 100% packet loss&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
Poti vedea aici ca primul ping reuseste (&quot;-c 1&quot; spune sa sa trimita doar un&lt;br /&gt;
singur pachet).&lt;br /&gt;
&lt;br /&gt;
Apoi adaugam in coada (-A) chain-ului &quot;INPUT&quot;, o regula ce spune ca &lt;br /&gt;
pentru pachetele de la 127.0.0.1 (&quot;-s 127.0.0.1&quot;) de tip ICMP (&quot;-p icmp&quot;)&lt;br /&gt;
trebuie sa sarim la &quot;DROP&quot; (&quot;-j DROP&quot;).&lt;br /&gt;
&lt;br /&gt;
Apoi testam regula noastra, folosind al doilea ping. Va fi o pauza pana cand&lt;br /&gt;
programul se da batut sa astepte un raspuns care nu va veni niciodata. (:)),&lt;br /&gt;
cat de DRAMATIC)&lt;br /&gt;
&lt;br /&gt;
Am putea sa stergem regula in  doua moduri. Intai, deoarece stim ca este &lt;br /&gt;
singura regula din chain-ul INPUT, putem folosi o stergere numarata, ca&lt;br /&gt;
in:&lt;br /&gt;
&lt;br /&gt;
# iptables -D INPUT 1&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
Pentru a sterge regula cu numarul 1 in chain-ul de INPUT.&lt;br /&gt;
&lt;br /&gt;
Al doilea mod este sa scriem comanda prin care am introdus regula -A, dar sa&lt;br /&gt;
inlocuim -A cu -D. Aceasta este folositor cand ai un chain complex de reguli&lt;br /&gt;
si nu doresti sa le numeri ca sa iti dai seama ca este a 37-a regula de&lt;br /&gt;
care vrei sa scapi. In aces caz, vom folosi:&lt;br /&gt;
&lt;br /&gt;
# iptables -D INPUT -s 127.0.0.1 -p icmp -j DROP&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
Sintaxa comenzii -D trebuie sa aiba exact aceleasi optiuni cum are comanda -A&lt;br /&gt;
(sau -I, sau -R). Daca sunt reguli identice in acelasi chain, numai prima&lt;br /&gt;
regula va fi stearsa.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
7.3 Optiuni de filtrare&lt;br /&gt;
&lt;br /&gt;
Am vazut folosirea optiunii &quot;-p&quot; pentru a specifica protocolul, si optiunii &lt;br /&gt;
&quot;-s&quot; pentru a specifica adresa sursa, dar sunt alte optiuni pe care le putem &lt;br /&gt;
folosi pentru a preciza caracteristici ale pachetului. Ceea ce urmeaza este&lt;br /&gt;
un compedium complet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
7.3.1 Specificarea IP-ului sursa si destinatie&lt;br /&gt;
&lt;br /&gt;
Adresele IP ale sursei (&quot;-s&quot;, &quot;--source&quot; sau &quot;--src&quot;) si destinatiei (&quot;-d&quot;,&lt;br /&gt;
&quot;--destination&quot; sau &quot;--dst&quot;) pot fi specificate in patru moduri. Cea mai&lt;br /&gt;
obisnuita forma este sa folosesti numele complet, cum ar fi &quot;localhost&quot; sau&lt;br /&gt;
&quot;www.securityorg.net&quot;. Cea de-a doua cale este sa specifici adresa IP cum ar fi&lt;br /&gt;
&quot;127.0.0.1&quot;.&lt;br /&gt;
&lt;br /&gt;
Cea de a treia si a patra cale permite specificarea unui grup de adrese IP,&lt;br /&gt;
cum ar fi &quot;199.95.207.0/24&quot; sau &quot;199.95.207.0/255.255.255.0&quot;. Amandoua&lt;br /&gt;
specifica orice adresa IP de la 199.95.207.0 pana la 199.95.207.255 inclusiv;&lt;br /&gt;
cifrele dupa &quot;/&quot; spun care parti din adresa IP sunt semnificative. &quot;/32&quot; sau&lt;br /&gt;
&quot;/255.255.255.255&quot; este default (se potriveste cu toata adresa IP). Pentru a&lt;br /&gt;
specifica oricare adresa IP &quot;/0&quot; poate fi folosit, astfel:&lt;br /&gt;
&lt;br /&gt;
[ NOTA: &quot;-s 0/0&quot; este redundant aici. ]&lt;br /&gt;
# iptables -A INPUT -s 0/0 -j DROP&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
Aceasta este folosit in mod rar, deoarece efectul de mai sus este asemanator&lt;br /&gt;
cu nespecificare deloc a optiunii &quot;-s&quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
7.3.2 Specificarea inversa&lt;br /&gt;
&lt;br /&gt;
Multe optiuni, inclusiv optiunile &quot;-s&quot; (sau &quot;--source&quot;) si &quot;-d&quot;&lt;br /&gt;
(&quot;--destination&quot;) pot avea argumentele precedate de &quot;!&quot; (pronuntat &quot;nu&quot;)&lt;br /&gt;
pentru a corespunde adreselor care NU sunt egale cu adresele date. De exemplu,&lt;br /&gt;
&quot;-s ! localhost&quot; corespunde oricarui pachet care nu vine de la localhost.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
7.3.3 Specificarea protocolului&lt;br /&gt;
&lt;br /&gt;
Protocolul poate fi specificat prin optiunea &quot;-p&quot; (sau &quot;--protocol&quot;).&lt;br /&gt;
Protocolul poate fi un numar ( daca stii valorile numerice de protocol pentru&lt;br /&gt;
IP) sau un nume pentru cazurile speciale de &quot;TCP&quot;, &quot;UDP&quot; sau &quot;ICMP&quot;. Nu&lt;br /&gt;
conteaza daca se foloseste sau nu CAPS, asa ca &quot;tcp&quot; merge la fel ca si&lt;br /&gt;
&quot;TCP&quot;.&lt;br /&gt;
&lt;br /&gt;
Numele protocolului poate fi precedat de &quot;!&quot;, pentru a inversa, ca si &quot;-p !&lt;br /&gt;
tcp&quot; pentru a specifica pachetele care nu sunt TCP.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
7.3.4 Specificarea unei interfete&lt;br /&gt;
&lt;br /&gt;
Optiunea &quot;-i&quot; (sau &quot;--in-interface&quot;) si &quot;-o&quot; (sau &quot;--out-interface&quot;)&lt;br /&gt;
specifica numele interfatei cu care sa corespunda. O interfata este &lt;br /&gt;
dispozitivul fizic prin care intra pachetul (&quot;-i&quot;) sau prin care iese&lt;br /&gt;
pachetul (&quot;-o&quot;). Poti folosi comanda ifconfig pentru a lista interfetele&lt;br /&gt;
care sunt &quot;sus&quot; (i.e., in stare de functionare in acel moment).&lt;br /&gt;
&lt;br /&gt;
Pachetele care traverseaza chain-ul &quot;INPUT&quot; nu au o interfata de iesire, asa&lt;br /&gt;
ca orice regula care foloseste &quot;-o&quot; in acest chain nu se va potrivi&lt;br /&gt;
niciodata. In mod similar pachetele care travereseaza chain-ul OUTPUT nu au o&lt;br /&gt;
interfata de intrare, asa ca orice regula care foloseste &quot;-i&quot; in acest&lt;br /&gt;
chain nu se va potrivi niciodata.&lt;br /&gt;
&lt;br /&gt;
Doar pachetele care travereseaza chain-ul FORWARD au o interata de intrare si&lt;br /&gt;
de iesire. Este perfect valabil sa specifici o interfata care nu exista;&lt;br /&gt;
regula nu se va potrivi cu nici un pachet pana cand interfata nu este sus.&lt;br /&gt;
Aceasta este extrem de folositor pentru legaturi PPP de dial-up (de obicei&lt;br /&gt;
interfete ppp0) si asemanatoare.&lt;br /&gt;
&lt;br /&gt;
Ca un caz special, un nume de interfata terminandu-se cu &quot;+&quot; se va potrivi cu&lt;br /&gt;
toate interfetele (fie ca exista sau nu) care incep cu acel sir de caractere.&lt;br /&gt;
De exemplu pentru a specifica o regula care sa se potriveasca tuturor&lt;br /&gt;
interfetelor PPP, optiunea -i ppp+ ar fi folosita.&lt;br /&gt;
&lt;br /&gt;
Numele interfetei poate fi precedata de &quot;!&quot; cu spatii in jur, pentru a&lt;br /&gt;
corespunde cu pachetul care nu se potriveste cu intefata specificata, de &lt;br /&gt;
exemplu: -i ! ppp+.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
7.3.5 Specificarea fragmentelor&lt;br /&gt;
&lt;br /&gt;
Uneori un pachet este prea mare pentru a incape cu totul pe conexiune. Cand&lt;br /&gt;
aceasta se intampla, pachetul este divizat in fragmente, si trimis ca pachete&lt;br /&gt;
multiple. Celalalt capat reansambleaza aceste fragmente pentru a construi&lt;br /&gt;
intregul pachet.&lt;br /&gt;
&lt;br /&gt;
Problema cu fragmentele este ca primul fragment are campurile complete in&lt;br /&gt;
header (IP + TCP, UDP si ICMP) pentru a le examina, dar cele care urmeaza au&lt;br /&gt;
doar o submultime a header-elor (IP fara campurile protocolului aditional).&lt;br /&gt;
De aceea privirea in header-e dupa protocol in pachetelor care urmeaza (cum se&lt;br /&gt;
face in cazul  TCP, UDP si ICMP)  nu este posibila.&lt;br /&gt;
&lt;br /&gt;
Daca faci connection tracking sau NAT, atunci toate fragmentele vor fi reunite&lt;br /&gt;
inainte de a ajunge la codul filtrului de pachete, asa ca nu trebuie sa te&lt;br /&gt;
ingrijorezi vreodata pentru fragmente.&lt;br /&gt;
&lt;br /&gt;
Te rog sa retii de asemenea: chain-ul INPUT al tabelei de filtrare (sau a&lt;br /&gt;
oricarei alte tabele care depinde de NF_IP_LOCAL_IN) este traversat dupa&lt;br /&gt;
defragmentarea stivei principale IP.&lt;br /&gt;
&lt;br /&gt;
In caz contrar, este important sa stii cum sunt tratate fragmentele de catre&lt;br /&gt;
regulile de filtrare. Orice regula de filtrare care cere informatii pe care&lt;br /&gt;
nu le avem nu se va potrivi. Aceasta inseamna ca primul fragment este tratat&lt;br /&gt;
ca orice alt pachet. Al doilea si urmatoarele nu vor mai fi. De aceea o&lt;br /&gt;
regula  -p tcp --sport www (specificand un port sursa &quot;www&quot;) nu se vor potrivi&lt;br /&gt;
cu un fragment (altul decat primul). Nici regula opusa nu va face acest lucru&lt;br /&gt;
-p tcp --sport ! www. &lt;br /&gt;
&lt;br /&gt;
Oricum, poti sa specifici o regula special pentru fragmentul al doilea si&lt;br /&gt;
urmatoarele, folosind optiunea &quot;-f&quot; (sau &quot;--fragment&quot;). Este de asemenea&lt;br /&gt;
legal sa specifici ca o regula nu se aplica la al doilea si urmatoarele&lt;br /&gt;
fragmente, prin precedarea lui &quot;-f&quot; cu &quot;!&quot;.&lt;br /&gt;
&lt;br /&gt;
De obicei este considerat sigur sa lasi sa treaca al doilea si urmatoarele&lt;br /&gt;
fragmente, deoarece filtrarea va afecta primul fragment, si de aceea previne&lt;br /&gt;
reansamblarea pe calculatorul destinatie; cu toate acestea, sunt cunoscute&lt;br /&gt;
bug-uri care permit caderea sistemului doar prin simpla trasnmitere de&lt;br /&gt;
fragmente. Este decizia ta.&lt;br /&gt;
&lt;br /&gt;
Nota pentru network-heads: pachetele cu malformatii (pachete TCP, UDP si&lt;br /&gt;
ICMP prea scurte codului de firewall ca sa citeasca tipul portului sau codul&lt;br /&gt;
ICMP si tipul) sunt ignorate cand asemenea examinarii sunt incercate.&lt;br /&gt;
Astfel sunt si fragmentele TCP care pornesc de la pozitia 8.&lt;br /&gt;
&lt;br /&gt;
Ca un exemplu, urmatoarea regula va ignora fragmentele care se duc spre&lt;br /&gt;
192.168.1.1:&lt;br /&gt;
&lt;br /&gt;
# iptables -A OUTPUT -f -d 192.168.1.1 -j DROP&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
7.3.6 Optiuni extinse la iptables: Noi potriviri&lt;br /&gt;
&lt;br /&gt;
iptables este extensibil, asta inseamna ca amandoua, iptables si kernelul pot&lt;br /&gt;
fi extinse pentru a suporta noi optiuni.&lt;br /&gt;
&lt;br /&gt;
Unele dintre aceste optiuni sunt standard, altele sunt mai exotice. Aceste&lt;br /&gt;
optiuni pot fi facute de catre alti oameni si distribuite.&lt;br /&gt;
&lt;br /&gt;
Extensiile kernelului sunt gasite deobicei in subdirectorul de module ale&lt;br /&gt;
kernelului cum ar fi /lib/modules/2.4.0-test10/kernel/net/ipv4/netfilter. Ele&lt;br /&gt;
se incarca automat daca kernelul tau a fost compilat cu optiunea CONFIG_KMOD,&lt;br /&gt;
asa ca nu o sa fie necesar sa le incarci manual.&lt;br /&gt;
&lt;br /&gt;
Extensiile la programul iptables sunt librarii shared care de obicei se gasesc &lt;br /&gt;
in /usr/local/lib/iptables/, deseamenea o distributie poate sa le puna in&lt;br /&gt;
directorul /lib/iptables sau /usr/lib/iptables.&lt;br /&gt;
&lt;br /&gt;
Optiuniile vin in doua feluri: noi tinte si noi potriviri (vom vorbi despre&lt;br /&gt;
tinte ceva mai tarziu). Unele protocoale automat ofera noi teste pentru&lt;br /&gt;
pachete: in mod curent acestea sunt TCP, UDP si ICMP, cum sunt aratate mai jos.&lt;br /&gt;
&lt;br /&gt;
Pentru acestea vei putea sa specifici noile teste in linia de comanda dupa&lt;br /&gt;
optiunea &quot;-p&quot;, care va pune la dispozitie automat optiunile extinse. Pentru &lt;br /&gt;
a preciza teste noi, foloseste optiunea &quot;-m&quot; pentru a incarca extensia, dupa &lt;br /&gt;
care optiunile extinse vor putea fi folosite.&lt;br /&gt;
&lt;br /&gt;
Pentru a vedea help-ul pentru  optiunile extinse foloseste optiunea de&lt;br /&gt;
incarcare (&quot;-p&quot;, &quot;-j&quot; sau &quot;-m&quot;) urmat de &quot;-h&quot; sau &quot;--help&quot;, de exemplu:&lt;br /&gt;
&lt;br /&gt;
# iptables -p tcp --help&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
7.3.6.1 Optiuni extinse TCP&lt;br /&gt;
&lt;br /&gt;
Optiunile extinse TCP sunt disponibile in mod automat daca se specifica&lt;br /&gt;
optiunea &quot;-p tcp&quot;. Aceste optiuni sunt urmatoarele (nici una dintre ele nu&lt;br /&gt;
se vor potrivi cu fragmente):&lt;br /&gt;
&lt;br /&gt;
--tcp-flags&lt;br /&gt;
poate fi urmat de semnul optional &quot;!&quot;, apoi de doua siruri de&lt;br /&gt;
flag-uri, care permite filtrarea dupa anumite flag-uri. Primul sir de&lt;br /&gt;
flag reprezinta mask-ul, flag-urile pe care doresti a le examina. Al&lt;br /&gt;
doilea sir reprezinta care dintre acestea ar trebui sa fie prezente.&lt;br /&gt;
De exemplu:&lt;br /&gt;
&lt;br /&gt;
# iptables -A INPUT --protocol tcp --tcp-flags ALL SYN,ACK -j DROP&lt;br /&gt;
&lt;br /&gt;
Aceasta comanda spune ca toate flag-urile trebuiesc examinate (&quot;ALL&quot;&lt;br /&gt;
este sinonim cu &quot;SYN,ACK,FIN,RST,URG,PSH&quot;), dar doar SYN si ACK&lt;br /&gt;
trebuie sa fie setate. Exista de asemnea un argumente &quot;NONE&quot; similar&lt;br /&gt;
pentru nici unul dintre acestea.&lt;br /&gt;
&lt;br /&gt;
--syn &lt;br /&gt;
In mod optional precedata de semnul &quot;!&quot;, este o prescurtare pentru&lt;br /&gt;
&quot;--tcp-flags  SYN,RST,ACK SYN&quot;&lt;br /&gt;
&lt;br /&gt;
--source-port &lt;br /&gt;
poate fi urmat de un optional &quot;!&quot;, si fie de un singur port, fie&lt;br /&gt;
de o sir de porturi. Porturile pot fi specificate fie folosind numere&lt;br /&gt;
fie folosind nume, asa cum sunt specificate in /etc/services.&lt;br /&gt;
sirurile se specifica prin doua porturi despartite de &quot;:&quot;, sau&lt;br /&gt;
(pentru a specifica o sir de porturi mai mare sau egal cu un port&lt;br /&gt;
dat) un port urmat de &quot;:&quot;, sau (pentru a specifica o lista de porturi&lt;br /&gt;
mai mica sau egala decat un port dat) un port precedat de &quot;:&quot;.&lt;br /&gt;
&lt;br /&gt;
--sport este sinonim cu --source-port&lt;br /&gt;
&lt;br /&gt;
--destination-port&lt;br /&gt;
si &lt;br /&gt;
--dport&lt;br /&gt;
sunt similare cu modul in care se specifica portul sursa numai ca in&lt;br /&gt;
loc de portul sursa se face potrivirea dupa portul destinatie.&lt;br /&gt;
&lt;br /&gt;
--tcp-option&lt;br /&gt;
urmat de un optional &quot;!&quot; si un numar, se potriveste pentru un&lt;br /&gt;
pachet cu optiunea TCP egala cu acel numar. Un pachet care nu are un&lt;br /&gt;
header complet TCP este ignorat automat daca este facuta incercarea&lt;br /&gt;
de a se examina headerele TCP.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
7.3.6.1.1 O explicatie pentru flag-urile TCP&lt;br /&gt;
&lt;br /&gt;
Uneori este folositor sa permiti conexiunile TCP intr-o singura directie, nu&lt;br /&gt;
si in cealalta. De exemplu, ai putea sa permiti conexiuni catre un server&lt;br /&gt;
extern WWW, dar nici o conexiune de la acel server.&lt;br /&gt;
&lt;br /&gt;
Naiv ar fi sa blochezi pachetele TCP dinspre server. Din pacate, conexiunile &lt;br /&gt;
TCP cer pachetele sa circule in ambele directii.&lt;br /&gt;
&lt;br /&gt;
Solutia ar fi sa blochezi numai pachetele folosite pentru a initia&lt;br /&gt;
conexiuni. Aceste pachete sunt numite pachete SYN (ok, tehnic sunt pachete cu&lt;br /&gt;
flag SYN pus si cu flagurile RST si ACK nepuse, dar le numim pe scurt&lt;br /&gt;
pachete SYN). Prin ignorarea acestor pachete, putem sa oprim aceste&lt;br /&gt;
conexiuni.&lt;br /&gt;
&lt;br /&gt;
Optiunea &quot;--syn&quot; este folosita pentru aceasta; este valida numai pentru&lt;br /&gt;
regulile in care specificam tcp ca protocol. De exemplu, pentru a specifica&lt;br /&gt;
incercarile de conexiune de la 192.168.1.1:&lt;br /&gt;
&lt;br /&gt;
-p TCP -s 192.168.1.1 --syn&lt;br /&gt;
&lt;br /&gt;
Aceasta optiune poate fi inversat prin precedarea &quot;--syn&quot; cu semnul &quot;!&quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
7.3.6.2 Optiuni extinse UDP&lt;br /&gt;
&lt;br /&gt;
Aceste optiuni sunt automat disponibile cand se specifica &quot;-p udp&quot;. Acestea&lt;br /&gt;
sunt: &quot;--source-port&quot;, &quot;--sport&quot;,&quot;--destination-port&quot; si &quot;--dport&quot; care au&lt;br /&gt;
fost detaliate mai sus.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
7.3.6.3 Optiuni extinse ICMP&lt;br /&gt;
&lt;br /&gt;
Aceste optiuni sunt automat disponibile cand se specifica &quot;-p icmp&quot;. Este&lt;br /&gt;
doar o singura optiune noua:&lt;br /&gt;
&lt;br /&gt;
--icmp-type&lt;br /&gt;
urmat de un semnul optional &quot;!&quot;, apoi de numele tipului icmp (ex.&lt;br /&gt;
&quot;host-unreachable&quot;), sau tipul numeric (ex. &quot;3&quot;), sau tipul numeric&lt;br /&gt;
si codul separate de &quot;/&quot; (ex. &quot;3/3&quot;). O lista a numelor de tipuri de&lt;br /&gt;
pachete icmp este data folosind &quot;-p icmp --help&quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
7.3.6.4 Alte optiuni extinse pentru potrivire&lt;br /&gt;
&lt;br /&gt;
Alte optiuni extinse in pachtetul de filtrare sunt optiuni demonstrative,&lt;br /&gt;
care (daca sunt instalate) pot fi invocate cu optiunea &quot;-m&quot;.&lt;br /&gt;
&lt;br /&gt;
mac&lt;br /&gt;
&lt;br /&gt;
Acest modul trebuie in mod explicit specificat prin optiunea &quot;-m mac&quot; &lt;br /&gt;
sau &quot;--match mac&quot;. Este folosit pentru a se potrivi cu pachetele ce au o&lt;br /&gt;
anumita adresa ethernet MAC, si de aceea este folositoare numai&lt;br /&gt;
pentru pachetele care traverseaza chain-urile PREROUTING si INPUT.&lt;br /&gt;
Este disponibila o singura optiune noua:&lt;br /&gt;
&lt;br /&gt;
--mac-source &lt;br /&gt;
urmat de semnul optional &quot;!&quot;, apoi de o adresa ethernet in notatie&lt;br /&gt;
hexa separata prin &quot;:&quot;, ex. &quot;--mac-source 00:60:08:91:CC:B7&quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
limit&lt;br /&gt;
&lt;br /&gt;
Acest modul trebuie in mod explicit specificat prin optiunea &quot;-m limit&quot;&lt;br /&gt;
sau cu &quot;--match limit&quot;. Este folosit pentru a restrange rata de &lt;br /&gt;
potriviri, ca de exemplu pentru reprimarea mesajelor in log-uri&lt;br /&gt;
(log-urile sunt fisierele in care sistemul scrie anumite date&lt;br /&gt;
considerate importante, in ideea de a putea fi accesate mai tarziu). Se &lt;br /&gt;
vor potrivi numai un numar dat de pachete pe secunda (default 3&lt;br /&gt;
potriviri pe ora, la un numar maxim de 5 potriviri). Sunt disponibile &lt;br /&gt;
doua optiuni:&lt;br /&gt;
&lt;br /&gt;
--limit&lt;br /&gt;
urmat de un numar; specifica numarul maxim de potriviri permise pe&lt;br /&gt;
secunda. Numarul poate fi specificat pe unitati de timp explicite,&lt;br /&gt;
folosind &quot;/second&quot;, &quot;/minute&quot;, &quot;/hour&quot; or &quot;/day&quot;, sau parti din ele&lt;br /&gt;
(ex. &quot;5/second&quot; este la fel cu &quot;5/s&quot;).&lt;br /&gt;
&lt;br /&gt;
--limit-burst&lt;br /&gt;
urmat de un numar, indica numarul maxim de potriviri dupa care limita&lt;br /&gt;
de mai sus intra in actiune.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Aceasta potrvire poate adesea fi folosita cu tinta LOG pentru a face&lt;br /&gt;
logare limitata dupa o rata. Pentru a intelege cum functioneaza sa ne&lt;br /&gt;
uitam la urmatoarea regula care logheaza cu parametri de limita default:&lt;br /&gt;
&lt;br /&gt;
# iptables -A FORWARD -m limit -j LOG&lt;br /&gt;
&lt;br /&gt;
Prima data cand se ajunge la aceasta regula, pachetul va fi scris in&lt;br /&gt;
log-uri, de fapt, deorece numarul limita este 5, primele 5 pachete vor &lt;br /&gt;
ajunge in log-uri. Dupa aceasta vor trece 20 de minute pana cand alt &lt;br /&gt;
pachet sa ajunga in log-uri datorita acestei reguli, fara sa conteze&lt;br /&gt;
numarul de pachete care ajung la regula. Dupa 20 de minute &lt;br /&gt;
limit-burst-ul, numarul de pachete care vor putea fi primite va fi unu, &lt;br /&gt;
dupa inca 20 de minute va mai creste cu o unitate, daca nici un pachet &lt;br /&gt;
nu s-a potrivit cu regula. Deasemenea, la fiecare 20 de minute care &lt;br /&gt;
trec fara ca pachete sa se potriveasca  regulii, numarul limita va &lt;br /&gt;
creste cu o unitate; daca nici un pachet nu se potriveste cu regula dupa  100 de minute, numarul limita va fi din nou atins, inapoi de unde am &lt;br /&gt;
plecat.&lt;br /&gt;
&lt;br /&gt;
Nota: nu poti crea o regula cu un timp de reincarcare mai mare de 59&lt;br /&gt;
de ore, asa ca daca pui o limita de 1/zi, atunci numarul maxim de&lt;br /&gt;
potriviri (burst-rate) trebuie sa fie mai mic decat 3.&lt;br /&gt;
&lt;br /&gt;
Poti de asemenea sa folosesti acest modul pentru a te feri de&lt;br /&gt;
diferitele atacuri denial of service (DoS) cu o rata mai mare pentru a&lt;br /&gt;
creste sensibilitatea.&lt;br /&gt;
&lt;br /&gt;
Protectie pentru syn-flood:&lt;br /&gt;
&lt;br /&gt;
# iptables -A FORWARD -p tcp --syn -m limit 1/s -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
Pentru scannere de porturi clandestine:&lt;br /&gt;
&lt;br /&gt;
# iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST&lt;br /&gt;
-m limit --limit 1/s -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
Pingul mortii:&lt;br /&gt;
&lt;br /&gt;
# iptables -A FORWARD -p icmp --icmp-type echo-request -m&lt;br /&gt;
-m limit --limit 1/s -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
Acest modul se comporta ca o &quot;usa histeresis&quot;, ca in graficul urmator:&lt;br /&gt;
&lt;br /&gt;
rata (pachete/s)&lt;br /&gt;
^        .---.&lt;br /&gt;
|       / DoS \&lt;br /&gt;
|      /       \&lt;br /&gt;
Limita   DoS -|.....:.........\.......................&lt;br /&gt;
= (limit *  |    /:          \&lt;br /&gt;
limit-burst) |   / :           \         .-.&lt;br /&gt;
|  /  :            \       /   \&lt;br /&gt;
| /   :             \     /     \&lt;br /&gt;
End of DoS  -|/....:..............:.../.......\..../.&lt;br /&gt;
= limit     |     :              :&quot;-&quot;         &quot;--&quot;&lt;br /&gt;
-------------+-----+--------------+------------------&amp;gt; time (s)&lt;br /&gt;
LOGIC =&amp;gt;  Potrivire | Nepotrivire  |  Potrivire&lt;br /&gt;
&lt;br /&gt;
Sa consideram ca avem o potrivire de un pachet pe secunda cu o&lt;br /&gt;
limita maxima de 5 pachete, dar pachetele vin cu o rata de patru pe&lt;br /&gt;
secunda timp de 3 secunde, apoi incep din nou sa vina peste 3 secunde.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;--Flood 1--&amp;gt;           &amp;lt;---Flood 2---&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pachete^                   Line  __--      YNNN&lt;br /&gt;
total  |               Rate  __--      YNNN&lt;br /&gt;
|            mum  __--      YNNN&lt;br /&gt;
10 |        Maxi __--         Y&lt;br /&gt;
|         __--            Y&lt;br /&gt;
|     __--               Y&lt;br /&gt;
| __--    YNNN&lt;br /&gt;
|-    YNNN&lt;br /&gt;
5 |    Y&lt;br /&gt;
|   Y         Legenda:  Y -&amp;gt; se potriveste cu regula&lt;br /&gt;
|  Y               N -&amp;gt; nu se potriveste cu regula&lt;br /&gt;
| Y&lt;br /&gt;
|Y&lt;br /&gt;
0 +---------------------------------------------&amp;gt; timpul in&lt;br /&gt;
secunde&lt;br /&gt;
0   1   2   3   4   5   6   7   8   9  10  11  12&lt;br /&gt;
&lt;br /&gt;
Se poate vedea ca primele 5 pachete sunt permise sa depaseasca limita&lt;br /&gt;
de un pachet pe secunda, apoi limit intervine. Daca este o  pauza de o&lt;br /&gt;
secunda inca un pachet in plus va fi permis sa treaca. Intodeauna&lt;br /&gt;
insa, nu se va permite depasirea de un pachet/secunda dupa ca&lt;br /&gt;
numarul limita (burst-limit) este atins.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
owner&lt;br /&gt;
&lt;br /&gt;
acest modul incearca sa se potriveasca trasaturilor diferite ale&lt;br /&gt;
creatorului pachetului, pentru pachetele generate local. Este valid&lt;br /&gt;
numai in chain-ul OUTPUT, si chiar si atunci unele pachete (cum ar&lt;br /&gt;
fi raspunsurile de tip ICMP) pot sa nu aiba creator, si de aceea sa&lt;br /&gt;
nu se potriveasca.&lt;br /&gt;
&lt;br /&gt;
--uid-owner userid&lt;br /&gt;
se potriveste daca pachetul a fost creat de catre un proces cu&lt;br /&gt;
acelasi id de user.&lt;br /&gt;
&lt;br /&gt;
--gid-owner groupid&lt;br /&gt;
se potriveste daca pachetul a fost creat de catre un proces cu&lt;br /&gt;
acelasi id de group.&lt;br /&gt;
&lt;br /&gt;
--pid-owner processid&lt;br /&gt;
se potriveste daca pachetul a fost creat de catre un proces cu&lt;br /&gt;
acelasi id de proces.&lt;br /&gt;
&lt;br /&gt;
--sid-owner sessionid&lt;br /&gt;
se potriveste daca pachetul a fost creat de catre un proces in grupul&lt;br /&gt;
de sesiune dat.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
unclean&lt;br /&gt;
&lt;br /&gt;
Acest modul experimental trebuie sa fie in mod explicit specificat cu&lt;br /&gt;
optiunea &quot;-m unclean&quot; sau &quot;--match unclean&quot;. Realizeaza niste teste&lt;br /&gt;
variate de sanatate asupra pachetelor. Acest modul nu a fost testat,&lt;br /&gt;
si nu ar trebui sa fie folosit ca o unealta in securitate (probabil&lt;br /&gt;
ca inrautateste lucrurile din cauza ca el insusi s-ar putea sa aiba&lt;br /&gt;
buguri). Nu este disponibila nici o optiune.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
7.3.6.5 Potrivirea dupa stare&lt;br /&gt;
&lt;br /&gt;
Cele mai folositoare optiuni este furnizata de modulul &quot;state&quot;, care&lt;br /&gt;
interpreteaza analizele detectorului de conexiuni ale modulului&lt;br /&gt;
&quot;ip_conntrack&quot;. Aceasta este foarte recomandata.&lt;br /&gt;
&lt;br /&gt;
Specificarea modulului &quot;-m state&quot; permite folosirea unei optiuni&lt;br /&gt;
aditionale de stare  &quot;--state&quot;. Aceste stari sunt:&lt;br /&gt;
&lt;br /&gt;
NEW&lt;br /&gt;
un pachet care creeaza o noua conexiune.&lt;br /&gt;
&lt;br /&gt;
ESTABLISHED&lt;br /&gt;
un pachet care apartine unei conexiuni deja stabilite (un pachet&lt;br /&gt;
replica (replay), sau un pachet care pleaca al unei conexiuni care a primit&lt;br /&gt;
replayuri).&lt;br /&gt;
&lt;br /&gt;
RELATED&lt;br /&gt;
Un pachet care este inrudit, dar care nu este parte a unei conexiuni existente,&lt;br /&gt;
cum ar fi o eroare ICMP, sau (cu modulul FTP introdus), un pachet care&lt;br /&gt;
stabileste o conexiune FTP.&lt;br /&gt;
&lt;br /&gt;
INVALID &lt;br /&gt;
Un pachet care nu a putut fi identificat pentru niste motive: aceasta include&lt;br /&gt;
ramanerea fara memorie sau erori ICMP care nu apartin nici unei conexiuni&lt;br /&gt;
cunoscute. In mod normal aceste pachete ar trebui ignorate.&lt;br /&gt;
&lt;br /&gt;
Un exemplu pentru aceasta puternica optiune de potrivire ar fi:&lt;br /&gt;
&lt;br /&gt;
# iptables -A FORWARD -i ppp0 -m state ! NEW -j DROP&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
7.4 Argumente asupra tintei&lt;br /&gt;
&lt;br /&gt;
Acum stim ce examinare poate fi facuta asupra unui pachet, avem nevoie de o &lt;br /&gt;
cale pentru a preciza ce sa facem cu pachetele care se potrivesc  testelor&lt;br /&gt;
noastre. Aceasta este numita tinta unei reguli.&lt;br /&gt;
&lt;br /&gt;
Exista doua foarte simple tinte incluse: DROP si ACCEPT. Ne-am intalnit deja&lt;br /&gt;
cu aceastea. Daca o regula se potriveste cu un pachet si tinta regulii este&lt;br /&gt;
una din aceste doua, nici una din regulile urmatoare nu  sunt consultate,&lt;br /&gt;
soarta pachetului a fost decisa.&lt;br /&gt;
&lt;br /&gt;
Mai sunt doua tipuri de tinte pe langa acestea incluse: tinte extinse si&lt;br /&gt;
chain-urile definite de catre utilizator.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
7.4.1 Chain-uri definite de utilizator&lt;br /&gt;
&lt;br /&gt;
O caracteristica puternica pe care iptables o mosteneste de la ipchains este&lt;br /&gt;
posibilitatea utilizatorului de a crea chain-uri noi, pe langa cele incluse&lt;br /&gt;
default (INPUT, OUTPUT si FORWARD). Prin conventie, chain-urile definite de&lt;br /&gt;
catre utilizator se scriu cu litera mica pentru a le deosebi (vom descrie&lt;br /&gt;
mai jos cum sa cream acest tip de chain-uri in &quot;7.5 Operatii asupra unui&lt;br /&gt;
intreg chain&quot;).&lt;br /&gt;
&lt;br /&gt;
Cand un pachet se potriveste cu o regula a carei tinta este un chain definit&lt;br /&gt;
de catre utilizator, pachetul incepe sa traverseze chain-ul definit de catre&lt;br /&gt;
utilizator. Daca acel chain-ul nu decide soarta pachetul de indata ce&lt;br /&gt;
pachetul ajunge la sfarsitul chain-ului respectiv, pachetul continua&lt;br /&gt;
traversarea  chain-ului initial.&lt;br /&gt;
&lt;br /&gt;
Este timpul pentru niste arta ASCII. Considera doua chain-uri aiurea: INPUT&lt;br /&gt;
(chain-ul inclus default) si test (un chain definit de utilizator).&lt;br /&gt;
&lt;br /&gt;
&quot;INPUT&quot;                         &quot;test&quot;&lt;br /&gt;
----------------------------    ----------------------------&lt;br /&gt;
| Rule1: -p ICMP -j DROP   |    | Rule1: -s 192.168.1.1    |&lt;br /&gt;
|--------------------------|    |--------------------------|&lt;br /&gt;
| Rule2: -p TCP -j test    |    | Rule2: -d 192.168.1.1    |&lt;br /&gt;
|--------------------------|    ----------------------------&lt;br /&gt;
| Rule3: -p UDP -j DROP    |&lt;br /&gt;
----------------------------&lt;br /&gt;
&lt;br /&gt;
Considera un pachet TCP venind de la 192.168.1.1 si ducandu-se catre 1.2.3.4.&lt;br /&gt;
Acesta intra in chain-ul INPUT. Rule1 nu se potriveste cu el, Rule2 se&lt;br /&gt;
potriveste asa ca urmatoarea regula care este examinata este prima din&lt;br /&gt;
chain-ul test. Rule1 se potriveste dar nu este specificata nici o tinta,&lt;br /&gt;
asa ca urmatoarea regula este examinata. Rule2 nu se potriveste asa ca am&lt;br /&gt;
ajuns la sfarsitul chain-ului. Astfel ne reintoarcem in chain-ul INPUT, unde&lt;br /&gt;
am examinat Rule2, asa ca examinam Rule3 care nici aceasta nu se potriveste.&lt;br /&gt;
&lt;br /&gt;
Deci calea urmata de catre pachet este:&lt;br /&gt;
&lt;br /&gt;
v    __________________________&lt;br /&gt;
&quot;INPUT&quot;                |   /    &quot;test&quot;                v&lt;br /&gt;
------------------------|--/    -----------------------|----&lt;br /&gt;
| Rule1                 | /|    | Rule1                |   |&lt;br /&gt;
|-----------------------|/-|    |----------------------|---|&lt;br /&gt;
| Rule2                 /  |    | Rule2                |   |&lt;br /&gt;
|--------------------------|    -----------------------v----&lt;br /&gt;
| Rule3                 /--+___________________________/&lt;br /&gt;
------------------------|---&lt;br /&gt;
v&lt;br /&gt;
&lt;br /&gt;
Chain-urile definite de catre utilizator pot sari la alte chain-uri definite&lt;br /&gt;
de catre utilizator (dar nu crea trasee in cerc, pachetele tale vor fi&lt;br /&gt;
ignorate daca intra in bucla).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
7.4.2 Optiuni extinse la iptables: Noi tinte&lt;br /&gt;
&lt;br /&gt;
Celalat tip de optiune extinsa este o tinta. O tinta extinsa este formata&lt;br /&gt;
dintr-un modul de kernel si o extensie optionala la iptables pentru a pune&lt;br /&gt;
la dispozitie noi optiuni in linia de comanda. Sunt mai multe optiuni&lt;br /&gt;
extinse in distributia default a netfilter-ului:&lt;br /&gt;
&lt;br /&gt;
LOG&lt;br /&gt;
&lt;br /&gt;
Acest modul permite log-area de catre kernel a pachetelor care se&lt;br /&gt;
potrivesc. Acest modul pune la dispozitie urmatoarele optiuni&lt;br /&gt;
aditionale:&lt;br /&gt;
&lt;br /&gt;
--log-level&lt;br /&gt;
urmat de un numar al nivelului sau de un nume. Numele corecte sunt&lt;br /&gt;
(nu conteaza daca sunt scrise cu litera mare sau nu) &quot;debug&quot;, &quot;info&quot;,&lt;br /&gt;
&quot;notice&quot;, &quot;warning&quot;, &quot;err&quot;, &quot;crit&quot; and &quot;emerg&quot;, corespunzand numerelor&lt;br /&gt;
de la 7 la 0. Citeste man-ul de la syslog.conf pentru o explicatie&lt;br /&gt;
privind aceste niveluri de logare. Nivelul default este &quot;warning&quot;.&lt;br /&gt;
&lt;br /&gt;
--log-prefix&lt;br /&gt;
urmat de un sir de caractere pana la 29 de caractere, acest mesaj&lt;br /&gt;
este pus in fata mesajului care este logat, pentru a-i permite&lt;br /&gt;
identificarea unica.&lt;br /&gt;
&lt;br /&gt;
Acest modul este bun dupa o limita de potrivire, pentru a nu-ti&lt;br /&gt;
flooda fisierele de log.&lt;br /&gt;
&lt;br /&gt;
REJECT&lt;br /&gt;
&lt;br /&gt;
Acest modul are acelasi efect cu &quot;DROP&quot;, cu exceptia faptului ca&lt;br /&gt;
celui ce trimite pachetele ii este trimis mesaj de eroare ICMP &quot;port&lt;br /&gt;
unreachable&quot;. Bagati la cap ca mesajul de eroare ICMP nu este trimis&lt;br /&gt;
daca (citeste RFC 1122):&lt;br /&gt;
- pachetul de il filtrezi a fost de la inceput o eroare ICMP&lt;br /&gt;
sau alt tip de pachet ICMP necunoscut.&lt;br /&gt;
- pachetul ce este filtrat nu este un fragment de inceput.&lt;br /&gt;
- am trimis recent prea multe mesaje de eroare ICMP catre acea&lt;br /&gt;
destinatie ( cat /proc/sys/net/ipv4/icmp_ratelimit).&lt;br /&gt;
REJECT pune de asemenea la dispozitie o noua optiune&lt;br /&gt;
&quot;--reject-with&quot; care modifica pachetul folosit la replay: man&lt;br /&gt;
iptables.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
7.4.3 Tinte speciale construite default&lt;br /&gt;
&lt;br /&gt;
Sunt doua tinte speciale contruite default: RETURN si QUEUE.&lt;br /&gt;
&lt;br /&gt;
RETURN are acelasi efect cu trecerea direct la sfarsitul chain-ului: pentru&lt;br /&gt;
o regula in chain-ul inclus default politica acelui chain-ului este executata.&lt;br /&gt;
Pentru o regula intr-un chain definit de catre utilizator, traversarea continua in&lt;br /&gt;
chain-ul anterior, exact dupa regula care a determinat trecerea la acest&lt;br /&gt;
chain.&lt;br /&gt;
&lt;br /&gt;
QUEUE este o tinta speciala, care pune in rand pachetul pentru procesare de&lt;br /&gt;
catre programe utilizator. Pentru ca aceasta sa fie folositor doua urmatoare&lt;br /&gt;
componente sunt cerute:&lt;br /&gt;
&lt;br /&gt;
- un &quot;gestionar al cozii&quot;, care se ocupa de mecanismele propriu-zise de&lt;br /&gt;
trecere a pachetelor intre kernel si modul utilizator; si&lt;br /&gt;
&lt;br /&gt;
- un program in mod utilizator pentru a primi, posibil a manipula, si a&lt;br /&gt;
da verdicte in ceea ce priveste pachetele.&lt;br /&gt;
&lt;br /&gt;
Gestionarul standard al cozii pentru iptables IPv4 este modulul ip_queue, care&lt;br /&gt;
este distribuit cu kernelul si considerat experimental.&lt;br /&gt;
&lt;br /&gt;
Ceea ce urmeaza este un scurt exemplu despre cum sa folosesti iptables pentru&lt;br /&gt;
a pune in coada pachetele pentru procesare in mod utilizator:&lt;br /&gt;
&lt;br /&gt;
# modprobe iptable_filter&lt;br /&gt;
# modprobe ip_queue&lt;br /&gt;
# iptables -A OUTPUT -p icmp -j QUEUE&lt;br /&gt;
&lt;br /&gt;
Cu aceasta regula, pachetele ICMP  generate local (care sunt create&lt;br /&gt;
, sa zicem, cu ping) sunt pasate modulului ip_queue, care apoi incearca sa&lt;br /&gt;
livreze pachetele unei aplicatii in mod utilizator. Daca nici o&lt;br /&gt;
aplicatie nu asteapta acele pachete, acestea sunt ignorate.&lt;br /&gt;
&lt;br /&gt;
Pentru a scrie o aplicatie in mod utilizator, poti folosi libipq API. Acesta&lt;br /&gt;
este distribuit impreuna cu iptables. Cod exemplu poate fi gasit in programele&lt;br /&gt;
de testare (redirect.c) in CVS.&lt;br /&gt;
&lt;br /&gt;
Starea lui ip_queue poate fi verificata prin:&lt;br /&gt;
&lt;br /&gt;
/proc/net/ip_queue&lt;br /&gt;
&lt;br /&gt;
Marimea maxima a unei cozi (i.e. numarul de pachete livrata modului utilizator&lt;br /&gt;
fara primirea inapoi a unei comfirmari) poate fi controlat prin:&lt;br /&gt;
&lt;br /&gt;
/proc/sys/net/ipv4/ip_queue_maxlen&lt;br /&gt;
&lt;br /&gt;
Marimea default pentru marimea maxima a cozii este 1024. Odata ce aceasta&lt;br /&gt;
limita este atinsa, noile pachete vor fi ignorate pana cand marimea cozii&lt;br /&gt;
scade sub nivelul limita. Protocoale bine gandite ca TCP interpreteaza&lt;br /&gt;
pachetele ignorate ca aglomerare, si din fericire va inceta livrarea de&lt;br /&gt;
pachete cand coada este plina. Cu toate acestea, va lua ceva experimente&lt;br /&gt;
pentru a determina valoare ideala pentru marimea cozii pentru o situatie data&lt;br /&gt;
daca valoarea default este prea mica.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
7.5 Operatii asupra unui intreg chain&lt;br /&gt;
&lt;br /&gt;
O foarte folositoare caracteristica a iptables-ului este posibilitatea de a&lt;br /&gt;
grupa mai multe reguli intr-un chain. Poti numi chain-urile cum doresti, dar&lt;br /&gt;
recomand folosirea literelor mici pentru a evita confuzia cu chain-urile&lt;br /&gt;
incluse default si tinte. Numele de chain-uri pot fi pana la 31 de litere in&lt;br /&gt;
lungime.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
7.5.1 Creearea unui nou chain&lt;br /&gt;
&lt;br /&gt;
Sa cream un nou chain. Pentru ca sunt un tip cu atata imaginatie o sa o&lt;br /&gt;
numesc test. Pentru aceasta folosim optiunea &quot;-N&quot; sau &quot;--new-chain&quot;:&lt;br /&gt;
&lt;br /&gt;
# iptables -N test&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
Este atat de simplu. Acum poti introduce reguli in el cum am aratat mai sus.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
7.5.2 Stergerea unui chain&lt;br /&gt;
&lt;br /&gt;
Si sergerea unui chain este deasemenea simpla, prin folosirea optiunilor &quot;-X&quot;&lt;br /&gt;
sau &quot;--delete-chain&quot;. De ce &quot;-X&quot;? Pai toate literele bune au fost luate.&lt;br /&gt;
&lt;br /&gt;
# iptables -X test&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
Sunt cateva restricitii la stergerea de chain-uri: acestea trebuie sa fie&lt;br /&gt;
goale (vezi &quot;Stergerea tuturor regulilor unui chain&quot; dedesubt) si nu trebuie &lt;br /&gt;
sa fie tinta nici unei reguli. Nu poti sterge nici unul dintre chain-rile &lt;br /&gt;
incluse default.&lt;br /&gt;
&lt;br /&gt;
Daca nu specific numele chain-ului, atunci toate chain-urile definite de catre&lt;br /&gt;
utilizator vor fi sterse daca este posibil.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
7.5.3 Stergerea tuturor regulilor unui chain&lt;br /&gt;
&lt;br /&gt;
Exista un mod simplu de de sterge toate regulile dintr-un chain, folosind&lt;br /&gt;
optiunile &quot;-F&quot; (sau &quot;--flush&quot;).&lt;br /&gt;
&lt;br /&gt;
# iptables -F FORWARD&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
Daca nu este specificat chain-ul atunci toate chain-urile vor fi sterse de&lt;br /&gt;
reguli.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
7.5.4 Listarea unui chain&lt;br /&gt;
&lt;br /&gt;
Poti lista toate regulile dintr-un chain prin folosirea optiunii &quot;-L&quot; (sau&lt;br /&gt;
&quot;--list&quot;).&lt;br /&gt;
&lt;br /&gt;
&quot;refcnt-ul&quot;(reference count) listat pentru fiecare chain definit de catre&lt;br /&gt;
utilizator  este numarul de reguli care au ca tinta acest chain. Acesta&lt;br /&gt;
trebuie sa fie zero (si chain-ul sa fie gol) inainte ca acest chain sa poata&lt;br /&gt;
fi sters.&lt;br /&gt;
&lt;br /&gt;
Daca numele chain-ului este omis, toate chain-urile sunt listate, chiar si&lt;br /&gt;
cele care sunt goale.&lt;br /&gt;
&lt;br /&gt;
Exista trei optiuni care pot fi adaugate la &quot;-L&quot;. Optiunea &quot;-n&quot; (numeric)&lt;br /&gt;
este foarte folositoare deoarece previne iptables in a incerca sa rezolve&lt;br /&gt;
IP-urile in nume, care (daca folosesti DNS ca majoritatea oamenilor) va cauza&lt;br /&gt;
mari intarzieri daca DNS-ul tau nu este setat corect, sau ai filtrat cererile&lt;br /&gt;
catre DNS. Determina deasemenea ca porturile TCP si UDP sa fie afisate ca&lt;br /&gt;
numere in loc de nume.&lt;br /&gt;
&lt;br /&gt;
Optiunea &quot;-v&quot; arata toate detaliile regulilor, cum ar fi counter-ele pentru de&lt;br /&gt;
pachete si bytes, comparatiile TOS, interfata. Altfel aceste detalii sunt&lt;br /&gt;
omise.&lt;br /&gt;
&lt;br /&gt;
Observa faptul urmator: counter-ele pentru pachete si bytes sunt afisate &lt;br /&gt;
folosind sufixele &quot;K&quot;, &quot;M&quot; sau &quot;G&quot; pentru 1000, 1,000,000 si respectiv &lt;br /&gt;
1,000,000,000. Folosirea lui optiunii &quot;-x&quot; (expandare a numerelor) afiseaza&lt;br /&gt;
numerele in formatul maxim, fara sa conteze cat sunt de mari.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
7.5.5 Resetarea counter-elor&lt;br /&gt;
&lt;br /&gt;
Este folositoare posibilitatea de a putea sa resetezi counter-ele. Aceasta&lt;br /&gt;
poate fi facuta cu optiune &quot;-Z&quot; (sau &quot;--zero&quot;).&lt;br /&gt;
&lt;br /&gt;
Considera urmatoarele:&lt;br /&gt;
&lt;br /&gt;
# iptables -L FORWARD&lt;br /&gt;
# iptables -Z FORWARD&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
In exemplul de mai sus, unele pachete au putut sa vina intre cele doua&lt;br /&gt;
comenzi. Pentru acest motiv, poti folosi cele doua optiuni &quot;-L&quot; si &quot;-Z&quot;&lt;br /&gt;
impreuna, pentru a reseta counter-ele in timp ce le afisezi.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
7.5.6 Setarea policy-ului&lt;br /&gt;
&lt;br /&gt;
Am explicat ce se intampla cand un pachet ajunge la capatul unui chain inclus&lt;br /&gt;
default si am discutat mai devreme cum parcurge un pachet chain-urile. In&lt;br /&gt;
acest caz, policy-ul chain-ului determina soarta pachetului. Doar chain-urile&lt;br /&gt;
incluse default (INPUT, OUTPUT si FORWARD) au policy-uri, deoarece daca un&lt;br /&gt;
pachet ajunge la capatul unui chain definit de catre utilizator, traversarea&lt;br /&gt;
continua in chain-ul anterior.&lt;br /&gt;
&lt;br /&gt;
Politica poate fi fie ACCEPT, fie DROP, de exemplu:&lt;br /&gt;
&lt;br /&gt;
# iptables -P FORWARD drop&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
8. Folosirea ipchains si ipfwadm&lt;br /&gt;
&lt;br /&gt;
Sunt module in distributia netfilter pe nume ipchains.o si ipfwadm.o.&lt;br /&gt;
Insereaza unul dintre acestea in kernelul tau ( Observatie: aceste module&lt;br /&gt;
sunt incompatibile cu ip_tables.o). Apoi poti folosi ipchains sau ipfwadm  ca&lt;br /&gt;
in vremurile de alta data.&lt;br /&gt;
&lt;br /&gt;
Aceasta va fi suportata pentru inca un timp. Cred ca o formula rezonabila&lt;br /&gt;
este 2 * [nota inlocuirii - prima versiune stabila], dupa data cand o versiune&lt;br /&gt;
stabila a inlocuirii este disponibila.&lt;br /&gt;
Asta inseamna ca suportul va fi probabil abandonat in Linux 2.6 sau 2.8.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
9. Folosirea impreuna a NAT-ului si a filtrarii de pachete&lt;br /&gt;
&lt;br /&gt;
Este normal sa vrei sa faci NAT (vezi NAT HOWTO) si filtrare de pachete.&lt;br /&gt;
Veste buna este ca se pot folosi impreuna extrem de bine.&lt;br /&gt;
&lt;br /&gt;
Faci filtrarea de pachete ingorand total orice NAT ai deja. Sursa si&lt;br /&gt;
destinatia vazute de catre filtrul de pachete vor fi sursele si destinatiile&lt;br /&gt;
reale. De exemplu daca faci DNAT pentru a trimite orice conexiune pentru&lt;br /&gt;
1.2.3.4 portul 80 spre 10.1.1.1 portul 8080, filtrul de pachete va vedea&lt;br /&gt;
pachetele ducandu-se catre 10.1.1.1 portul 8080 (adresa reala), nu 1.2.3.4&lt;br /&gt;
port 80. In mod similar poti ignora masquerading: pachetele vor parea ca vin&lt;br /&gt;
de la adresa lor IP interna reala (sa zicem 10.1.1.1), si replay-urile vor&lt;br /&gt;
parea ca se duc inapoi acolo.&lt;br /&gt;
&lt;br /&gt;
Poti folosi optiunea extinsa de potrivire &quot;match&quot; fara sa pui filtrul de&lt;br /&gt;
pachete sa faca munca in plus, deoarece NAT cere detectarea de conexiuni&lt;br /&gt;
oricum. Pentru a dezvolta exemplul simplu de masquerading din NAT HOWTO pentru&lt;br /&gt;
a nu permite noi conexiuni pe interfata ppp0, vei face urmatoarele:&lt;br /&gt;
&lt;br /&gt;
# masquerading pentru ppp0&lt;br /&gt;
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE&lt;br /&gt;
&lt;br /&gt;
# refuzarea de pachete NOI sau INVALIDE forwardate sau care vin prin ppp0&lt;br /&gt;
iptables -A INPUT -i ppp0 -m state --state NEW,INVALID -j DROP&lt;br /&gt;
iptables -A FORWARD -i ppp0 -m state --state NEW,INVALID -j DROP&lt;br /&gt;
&lt;br /&gt;
# se da drumu la IP forwarding&lt;br /&gt;
echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
10. Diferente intre iptables si ipchains&lt;br /&gt;
&lt;br /&gt;
o In primul rand, numele chain-urilor predefinite si-au schimbat scrierea din&lt;br /&gt;
litere mici in litere mari, deoarece chain-urile INPUT si OUTPUT primesc acum&lt;br /&gt;
doar pachete cu destinatie locala si pachete generate local. Ele obisnuiau&lt;br /&gt;
sa vada toate pachetele care intrau si respectiv care ieseau.&lt;br /&gt;
&lt;br /&gt;
o Optiunea &quot;-i&quot; acum inseamna interfata de intrare si are sens numai in&lt;br /&gt;
chain-urile INPUT si FORWARD. Regulile in chain-urile OUTPUT si FORWARD care&lt;br /&gt;
foloseau inainte &quot;-i&quot; vor trebuie sa fie schimbate cu &quot;-o&quot;.&lt;br /&gt;
&lt;br /&gt;
o Porturile TCP si UDP trebuie sa fie precizate folosind optiunile&lt;br /&gt;
--source-port  sau --sport (sau --destination-port/--dport), si trebuie&lt;br /&gt;
puse dupa optiunile &quot;-p tcp&quot; sau &quot;-p udp&quot;, deorece acestea incarca optiunile&lt;br /&gt;
disponibile extensiilor TCP si respectiv UDP.&lt;br /&gt;
&lt;br /&gt;
o Argumentul TCP -y a devenit acum --syn si trebuie pus dupa &quot;-p tcp&quot;.&lt;br /&gt;
&lt;br /&gt;
o In cele din urma tinta DENY a deveni DROP.&lt;br /&gt;
&lt;br /&gt;
o Resetarea counter-elor pentru un singur chain in timp concomitent cu&lt;br /&gt;
listarea acestuia este acum posibila.&lt;br /&gt;
&lt;br /&gt;
o Resetara counter-elor pentru chain-urile predefinite resetezeaza desemenea&lt;br /&gt;
counter-ele policy-ului chain-urilor respective.&lt;br /&gt;
&lt;br /&gt;
o Listarea counter-elor iti arata counter-ele instant.&lt;br /&gt;
&lt;br /&gt;
o REJECT si LOG sunt acum tinte extinse, insemnand ca sunt module de kernel&lt;br /&gt;
separate.&lt;br /&gt;
&lt;br /&gt;
o Numele pentru chain-uri pot fi pana la 31 de caractere in lungime.&lt;br /&gt;
&lt;br /&gt;
o MASQ este acum MASQUERADE si foloseste o sintaza diferita. REDIRECT, desi&lt;br /&gt;
si-a pastrat vechiul nume, a suferit deasemenea o schimbare de sintaxa.&lt;br /&gt;
Citeste NAT-HOWTO pentru mai multe informatii despre cum sa le configurezi.&lt;br /&gt;
&lt;br /&gt;
o Optiunea &quot;-o&quot; nu mai este folosita pentru a conduce pachetele in mod&lt;br /&gt;
utilizator (vezi -i de mai sus). Pachetele sunt trimise acum in mod utilizator&lt;br /&gt;
folosind tinta QUEUE.&lt;br /&gt;
&lt;br /&gt;
o Probabil o gramada de alte lucruri pe care le-am uitat.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
11. Sfaturi asupra designului filtrului de pachete&lt;br /&gt;
&lt;br /&gt;
In domeniul securitatii cel mai bun lucru este sa blochezi totul, apoi sa&lt;br /&gt;
deschizi gauri acolo unde este necesar. Aceasta este deobicei spus &quot;ceea ce nu&lt;br /&gt;
este in mod explicit permis este interzis&quot;. Recomand aceasta  daca securitatea&lt;br /&gt;
este grija ta cea mai mare.&lt;br /&gt;
&lt;br /&gt;
Nu rula nici un serviciu de care nu ai nevoie, chiar daca ai blocat accesul la&lt;br /&gt;
el.&lt;br /&gt;
&lt;br /&gt;
Recomand securitatea in adancime: combina tcp-wrappers (pentru conexiuni catre&lt;br /&gt;
insusi filtrul de pachete), proxy-uri (pentru conexiuni ce trec peste filtrul&lt;br /&gt;
de pachete), verificarea routei si filtrare de pachete. Verificarea routei&lt;br /&gt;
este cand un pachet care vine de la o interfata de la care nu poate veni este&lt;br /&gt;
ignorate: de exemplu, daca reteaua ta interna are adresele 10.1.1.0/24, si&lt;br /&gt;
un pachet care are ca sursa o adresa apartinand acelei clase vine pe&lt;br /&gt;
interfata externa, acesta va fi ignorat. Aceasta verificare a routei poate&lt;br /&gt;
fi activate pentru o interfata (ppp0) astfel:&lt;br /&gt;
&lt;br /&gt;
# echo 1 &amp;gt; /proc/sys/net/ipv4/conf/ppp0/rp_filter&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
Sau pentru toate interfetele existente si viitoare astfel:&lt;br /&gt;
&lt;br /&gt;
# for f in /proc/sys/net/ipv4/conf/*/rp_filter; do&lt;br /&gt;
#     echo 1 &amp;gt; $f&lt;br /&gt;
# done&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
Debian realizeaza acest lucru &quot;by default&quot; cand este posibil. Daca ai routare&lt;br /&gt;
asimetrica  (te astepti sa primesti pachete din directii ciudate), vei&lt;br /&gt;
dori sa dezactivezi aceasta filtrare pe interfetele respective.&lt;br /&gt;
&lt;br /&gt;
Logarea pachetelor este folositoare cand configurezi un firewall si ceva nu&lt;br /&gt;
merge, insa pe un sistem in productie, intodeauna foloseste aceasta in&lt;br /&gt;
combinatie cu limitare, pentru a preveni floodarea fisierelor cu log-uri.&lt;br /&gt;
&lt;br /&gt;
Recomand pentru sistemele sigure depistarea conexiunilor (connection&lt;br /&gt;
tracking): determina o incarcare a sistemului, deoarece toate conexiunile sunt&lt;br /&gt;
depistate, dar este foarte folositoare pentru a controla accesul la retelele&lt;br /&gt;
tale. S-ar putea sa trebuiasca sa incarci modulul &quot;ip_conntrack.o&quot; daca&lt;br /&gt;
kernelul tau nu incarca in mod automat modulele si nu este compilat in&lt;br /&gt;
kernel. Daca vrei sa depistezi cu precizie protocoale complexe, va trebui sa&lt;br /&gt;
incarci modulul necesar pentru aceasta (ex. &quot;ip_conntrack_ftp.o&quot;).&lt;br /&gt;
&lt;br /&gt;
# iptables -N no-conns-from-ppp0&lt;br /&gt;
# iptables -A no-conns-from-ppp0 -m state --state ESTABLISHED,RELATED -j ACCEPT  &lt;br /&gt;
# iptables -A no-conns-from-ppp0 -m state --state NEW -i ! ppp0 -j ACCEPT&lt;br /&gt;
# iptables -A no-conns-from-ppp0 -i ppp0 -m limit -j LOG --log-prefix &quot;Bad packet from ppp0:&quot;&lt;br /&gt;
# iptables -A no-conns-from-ppp0 -i ! ppp0 -m limit -j LOG --log-prefix &quot;Bad packet not from ppp0:&quot;&lt;br /&gt;
# iptables -A no-conns-from-ppp0 -j DROP&lt;br /&gt;
# iptables -A INPUT -j no-conns-from-ppp0&lt;br /&gt;
# iptables -A FORWARD -j no-conns-from-ppp0&lt;br /&gt;
&lt;br /&gt;
Construirea unui bun firewall este peste scopul acestui HOWTO, dar sfatul meu&lt;br /&gt;
este ca &quot;intodeauna sa fii minimalist&quot;. Citeste Security HOWTO pentru mai multe&lt;br /&gt;
informatii privind testarea si examinarea sistemului.</content><link rel='replies' type='application/atom+xml' href='http://resurse-it.blogspot.com/feeds/8141406052346735850/comments/default' title='Postare comentarii'/><link rel='replies' type='text/html' href='http://resurse-it.blogspot.com/2011/04/folosirea-lui-iptables-pentru-filtrarea.html#comment-form' title='0 comentarii'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4915140777580483380/posts/default/8141406052346735850'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4915140777580483380/posts/default/8141406052346735850'/><link rel='alternate' type='text/html' href='http://resurse-it.blogspot.com/2011/04/folosirea-lui-iptables-pentru-filtrarea.html' title='Linux, Folosirea lui iptables pentru filtrarea pachetelor in kernelurile versiunea 2.4.'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4915140777580483380.post-3676669368479736218</id><published>2011-04-11T00:50:00.000-07:00</published><updated>2011-04-11T00:51:45.864-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="dialup"/><category scheme="http://www.blogger.com/atom/ns#" term="dns"/><category scheme="http://www.blogger.com/atom/ns#" term="email"/><category scheme="http://www.blogger.com/atom/ns#" term="ftp"/><category scheme="http://www.blogger.com/atom/ns#" term="internet"/><category scheme="http://www.blogger.com/atom/ns#" term="ip"/><category scheme="http://www.blogger.com/atom/ns#" term="netmask"/><category scheme="http://www.blogger.com/atom/ns#" term="network"/><category scheme="http://www.blogger.com/atom/ns#" term="ppp"/><category scheme="http://www.blogger.com/atom/ns#" term="retea"/><category scheme="http://www.blogger.com/atom/ns#" term="Web"/><title type='text'>Ce este o retea de calculatore si cum functioneaza internetul</title><content type='html'>traducere ver. 0.4 de catre Riddl&lt;br /&gt;
&lt;br /&gt;
Multumiri tuturor celor care m-au ajutat,  in special lui Gushterul.&lt;br /&gt;
Observatie f importanta: probabil ca exista unele greseli in acest document.&lt;br /&gt;
Am tradus si eu cum m-am priceput mai bine, daca descoperiti greseli de &lt;br /&gt;
traducere si pentru observatii pertinente trimiteti-mi mail pentru Riddl la &lt;br /&gt;
&quot;discutzii at gmx dot net&quot;. Nu uitati sa precizati numele documentului.&lt;br /&gt;
Multumesc anticipat.&lt;br /&gt;
Aceasta versiune este  putin modificata fata de original, deorece unii termeni &lt;br /&gt;
sunau foarte ciudat in ro.&lt;br /&gt;
Pentru ultima versiune a acestui document verifica&lt;br /&gt;
&amp;lt;http://www.securityorg.net/docs/&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Lecturare placuta!&lt;br /&gt;
&lt;br /&gt;
______________________________________________________________________&lt;br /&gt;
&lt;br /&gt;
Linux Networking-concepts HOWTO&lt;br /&gt;
HOWTO privind conceptele de retea linux&lt;br /&gt;
Rusty Russell&lt;br /&gt;
$Revision: 1.3 $ $Date: 2002/06/05 13:21:56 $&lt;br /&gt;
&lt;br /&gt;
Acest document descrie ce este acea o retea (cum ar fi internetul), si foarte&lt;br /&gt;
primar cum functioneaza acesta.&lt;br /&gt;
&lt;br /&gt;
______________________________________________________________________&lt;br /&gt;
&lt;br /&gt;
Cuprins&lt;br /&gt;
&lt;br /&gt;
1. Introducere&lt;br /&gt;
2. Ce este aceea o &quot;retea de calculatoare&quot;?&lt;br /&gt;
3. Ce este &quot;Internetul&quot;?&lt;br /&gt;
3.1. Cum functioneaza Internetul?&lt;br /&gt;
4. Aceast lucru numit IP&lt;br /&gt;
4.1. Grupuri de adrese IP: Netmask-uri&lt;br /&gt;
5. Nume de computere si Adrese IP&lt;br /&gt;
6. Servici diferite: Email, Web, FTP, DNS&lt;br /&gt;
7. Interfete dialup: PPP&lt;br /&gt;
8. Cum arata pachetele&lt;br /&gt;
9. Sumar&lt;br /&gt;
10. Multumiri&lt;br /&gt;
11. Index&lt;br /&gt;
______________________________________________________________________&lt;br /&gt;
&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
1. Introducere&lt;br /&gt;
&lt;br /&gt;
Bine ai venit! &lt;br /&gt;
Am scris in trecut un numar de howto-uri in ceea ce privesc retelele, si mi-a&lt;br /&gt;
venit in minte ca sunt in fiecare o multime de termeni jargonici. Am avut de&lt;br /&gt;
ales intre trei variante: celelalte doua ignorau problema si explicau&lt;br /&gt;
termenii peste tot. Nici una dintre ele nu era atractiva.&lt;br /&gt;
&lt;br /&gt;
Scopul software-ului liber este faptul ca ar trebui sa ai libertatea sa&lt;br /&gt;
explorezi si sa te joci cu software-ul sistemului pe care il folosesti. Cred&lt;br /&gt;
ca dandu-le posibilitatea oamenilor sa experimenteze aceasta libertate este un&lt;br /&gt;
scop nobil; nu numai fac pe oameni sa se simt puternici printr-o ocupatie (cum&lt;br /&gt;
ar fi reconstruirea unui motor de masina) dar prin natura internetului si&lt;br /&gt;
software-ului liber ti se pune la dispozitie posibilitatea sa partajezi&lt;br /&gt;
experienta ta cu milioane de oameni.&lt;br /&gt;
&lt;br /&gt;
Dar trebuie  sa incepi de undeva, asa ca iata-ne.&lt;br /&gt;
&lt;br /&gt;
(C) 2000 Paul &quot;Rusty&quot; Russell.  Sub licenta GNU GPL.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2. Ce este aceea o &quot;retea de calculatoare&quot;?&lt;br /&gt;
&lt;br /&gt;
O retea de calculatoare sunt mai multe materiale folosite pentru ca nodurile sa&lt;br /&gt;
schimbe informatie intre ele (prin &quot;noduri&quot; inteleg computere, imprimante,&lt;br /&gt;
masini de gatit si orice alceva doresti). Nu conteaza foarte mult cum sunt&lt;br /&gt;
interconectate: pot sa foloseasca fibra optica sau porumbei calatori.&lt;br /&gt;
E clar, unele alegeri sunt mai bune decat altele, mai ales daca ai prin casa&lt;br /&gt;
pisici. :)&lt;br /&gt;
&lt;br /&gt;
In mod normal conectarea a doua calculatoare impreuna nu se poate numi&lt;br /&gt;
retea, este nevoie de trei sau mai multe pentru a deveni retea. Acest lucru&lt;br /&gt;
seamana cu cuvantul &quot;grup&quot;: doi oameni inseamna doar doua persoane, pe cand&lt;br /&gt;
trei persoane formeaza un grup. Deasemenea, retelele sunt adesea prinse&lt;br /&gt;
impreuna, pentru a forma retele mai mari, fiecare retea mai mica  (deobicei&lt;br /&gt;
numita o &quot;sub-retea&quot;) poate fi parte dintr-o retea mai mare.&lt;br /&gt;
&lt;br /&gt;
De fapt conexiunea intre doua computere este adesea denumita &quot;legatura de&lt;br /&gt;
retea&quot;. Daca este ceva cablu in spatele computer-ului tau catre alte&lt;br /&gt;
computere atunci aceea este legatura ta de retea.&lt;br /&gt;
&lt;br /&gt;
Sunt patru lucruri despre care suntem interesati cand vorbim despre o retea de &lt;br /&gt;
calculatoare:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Marimea&lt;br /&gt;
&lt;br /&gt;
Daca pur si simplu conectezi intre ele cele patru calculatoare de&lt;br /&gt;
acasa, ai realizat ceea ce se numeste LAN (Local Area Network - retea&lt;br /&gt;
locala). Daca totul este la distanta de mers pe jos, este denumit&lt;br /&gt;
deobicei LAN, oricate masini ar fi conectate, si din orice&lt;br /&gt;
infrastructura ar fi contruita reteaua.&lt;br /&gt;
&lt;br /&gt;
La celalalt pol se situeaza WAN-ul (Wide Area Network - retea&lt;br /&gt;
intinsa). Daca ai un computer la Bucuresti, Romania, altul in New&lt;br /&gt;
York, SUA, si unul in Lhasa, Tibet, si reusesti sa le conectezi,&lt;br /&gt;
aceasta este atunci un WAN.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Topologia: Forma&lt;br /&gt;
&lt;br /&gt;
Deseneaza harta unei retele: linile sunt &quot;legaturile din retea&quot;,&lt;br /&gt;
si fiecare nod este un punct. Poate ca fiecare linie duce intr-un&lt;br /&gt;
punct central ca o stea, insemnand ca fiecare vorbeste printr-un&lt;br /&gt;
singur punct ( o &quot;topologie stea&quot;):&lt;br /&gt;
&lt;br /&gt;
o   o   o&lt;br /&gt;
\_ | _/&lt;br /&gt;
\|/&lt;br /&gt;
o-----o-----o&lt;br /&gt;
_/|\_&lt;br /&gt;
/  |  \&lt;br /&gt;
o   o   o&lt;br /&gt;
&lt;br /&gt;
Sau poate ca fiecare comunica in linie, astfel:&lt;br /&gt;
&lt;br /&gt;
o------o------o-------o--------o&lt;br /&gt;
|                              |&lt;br /&gt;
|                              |&lt;br /&gt;
|                              o&lt;br /&gt;
|                              |&lt;br /&gt;
o                              |&lt;br /&gt;
o&lt;br /&gt;
&lt;br /&gt;
Sau poate ca ai trei subretele conectate printr-un singur nod:&lt;br /&gt;
&lt;br /&gt;
o&lt;br /&gt;
o           |  o--o--o&lt;br /&gt;
|           |  |&lt;br /&gt;
o--o--o--o--o  o&lt;br /&gt;
\       |&lt;br /&gt;
o------o&lt;br /&gt;
/       |&lt;br /&gt;
o--o--o--o--o  o&lt;br /&gt;
|           |  |&lt;br /&gt;
o           |  o--o&lt;br /&gt;
o&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Vei vedea multe topologii ca acestea in realitate si multe altele mult&lt;br /&gt;
mai complicate.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Fizic: Din ce este facuta reteaua.&lt;br /&gt;
&lt;br /&gt;
Al treilea lucru de care trebuie sa fim interesati este din ce este&lt;br /&gt;
constuita reteaua noastra. Cea mai ieftina este &quot;sneakernet-u&quot;, erau&lt;br /&gt;
oamenii care transportau diskete de la un computer la altul.&lt;br /&gt;
Sneakernet-ul este aproape intodeauna un &quot;LAN&quot;. Disketele costa mai&lt;br /&gt;
putin de 1$ si o pereche de skeakers (incaltaminte care nu face&lt;br /&gt;
zgomot) in jur de 20$.&lt;br /&gt;
&lt;br /&gt;
Cel mai obisnuit sistem folosit pentru a conecta reteaua de acasa&lt;br /&gt;
catre alte retele mai mari este numit &quot;modem&quot;&lt;br /&gt;
(MODulator/DEModulator), care transforma o legatura telefonica intr-o&lt;br /&gt;
legatura de retea. Transforma ceea ce transmite calculatorul in&lt;br /&gt;
sunete, si asculta sunetele venite de la celalalt capat pe care le&lt;br /&gt;
transforma iar in informatie pentru calculator. Dupa cum iti&lt;br /&gt;
imaginezi acest lucru nu este din cale afara de eficient, deoarece&lt;br /&gt;
liniile telefonice nu au fost facute pentru genul acesta de lucruri, dar&lt;br /&gt;
este un sistem raspandit deoarece liniile telefonice sunt atat de&lt;br /&gt;
obisnuite si ieftine: modemurile costa sub 50$ si linia telefonica&lt;br /&gt;
200$ pe an.&lt;br /&gt;
&lt;br /&gt;
Cel mai obisnuit sistem sa conectezi computerele intr-un LAN este sa&lt;br /&gt;
folosesti Ethernet. Ethernetul poate fi de trei tipuri (in ordinea&lt;br /&gt;
in care au fost realizate): Thinwire/Coax/10base2, UTP/10baseT si&lt;br /&gt;
UTP/100baseT. Gigabit ethernet (1000baseT incepe sa sune ciudat)&lt;br /&gt;
este in curs de a fi realizat. 10baseT este deobicei un fir coaxial&lt;br /&gt;
negru care are din loc in loc T-uri pentru a putea fi conectate la&lt;br /&gt;
computere, toti sunt conectati intr-o linie, linie care are la&lt;br /&gt;
capete terminatori speciali. UTP este deobicei un cablu de culoare&lt;br /&gt;
albastru deschis, care au doua capete prevazute cu terminatori din&lt;br /&gt;
plastic similari celor de la telefon, care sunt conectate in&lt;br /&gt;
dispozitivele fizice (placa ethernet, hub, etc.). Cablul costa cativa&lt;br /&gt;
dolari metrul, si placile de retea 10baseT/10base2 (multe au&lt;br /&gt;
connectori pentru ambele tipuri) sunt greu de gasit noi de firma.&lt;br /&gt;
100baseT sunt de 10 ori mai rapide decat 10baseT, sunt compatibile si&lt;br /&gt;
cu acestea, si costa cam 30$.&lt;br /&gt;
&lt;br /&gt;
Tehnologia de varf este insa fibra optica; un fir de sticla subtire&lt;br /&gt;
in camasa protectoare care poate fi folosita pentru a lega in retea&lt;br /&gt;
continente. In general costa mii de dolari.&lt;br /&gt;
&lt;br /&gt;
In mod normal numim fiecare conexiune la un nod &quot;interfata de retea&quot;&lt;br /&gt;
sau pe scurt &quot;interfata&quot;. Linux le numeste astfel &quot;eth0&quot; pentru&lt;br /&gt;
prima interfata ethernet, si &quot;fddi0&quot; pentru prima interfata de&lt;br /&gt;
fibra. Comanda &quot;/sbin/ifconfig&quot; ni le listeaza.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Protocol: Cum comunica.&lt;br /&gt;
Ultimul lucru care te intereseaza este limbajul pe care il folosesc&lt;br /&gt;
doua noduri interconectate. Cand doua modemuri comunica unul cu altul&lt;br /&gt;
printr-o linie telefonica, trebuie sa se puna de acord ce vor insemna&lt;br /&gt;
fiecare sunet, astfel pur si simplu nu vor comunica. Aceasta&lt;br /&gt;
conventie este denumita &quot;protocol&quot;. Pe masura ce oamenii au descoperit&lt;br /&gt;
noi posibilitati de codare astfel incat computerele sa spuna mai&lt;br /&gt;
multe in sunete mai scurte, noi protocoale s-au inventat; sunt cel&lt;br /&gt;
putin o duzina de protocoale diferite, si fiecare modem va incerca&lt;br /&gt;
cateva pana cand va gasi unul care sa fie inteles si de celalalt&lt;br /&gt;
modem.&lt;br /&gt;
&lt;br /&gt;
Un alt exemplu este reteaua 100baseT mentionata mai sus. Aceasta&lt;br /&gt;
foloseste aceeasi legatura fizica  &quot;UTP&quot; ca si 10baseT, dar&lt;br /&gt;
comunica de 10 ori mai rapid.&lt;br /&gt;
&lt;br /&gt;
Aceste doua protocoale sunt denumite protocoale de nivel de legatura&lt;br /&gt;
(link level); care determina cum este transportata informatia intre&lt;br /&gt;
doua puncte pe conexiuni de retea individuale. Cuvantul &quot;protocol&quot; se&lt;br /&gt;
refera si la alte conventii dupa cum vom vedea mai jos.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3. Ce este &quot;Internetul&quot;?&lt;br /&gt;
&lt;br /&gt;
Internetul este o retea de tip WAN, care impanzeste intre globul: este cea&lt;br /&gt;
mai mare retea de calculatorea existenta. &quot;Internetworking&quot; inseamna&lt;br /&gt;
conectarea mai multor retele pentru a crea una mai mare, prin urmare&lt;br /&gt;
internetul este connectarea a o mare ingramadire de subretele.&lt;br /&gt;
&lt;br /&gt;
Asa ca acum uitandu-ne la lista de mai sus, ne punem intrebarea: care este&lt;br /&gt;
marimea Internetului, din ce este formata fizic si care sunt protocoalele&lt;br /&gt;
folosite?&lt;br /&gt;
&lt;br /&gt;
Marimea am spus-o deja. Este globala.&lt;br /&gt;
&lt;br /&gt;
Structura fizica este variata, fiecare subretea este conectata intr-un mod&lt;br /&gt;
diferit. Incercarea de a creea o harta folositoare este sortita deci esecului.&lt;br /&gt;
&lt;br /&gt;
Protocoalele folosite de fiecare legatura este deasemnea diferita: toate&lt;br /&gt;
protocoalele de mai sus pentru nivel de legatura sunt folosite si multe&lt;br /&gt;
altele.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3.1. Cum functioneaza Internetul?&lt;br /&gt;
&lt;br /&gt;
Atunci aceasta intrebare se pune: cum functioneaza? Cum poate fiecare nod sa&lt;br /&gt;
vorbeasca  altor noduri daca folosesc protocoale de nivel legatura diferite?&lt;br /&gt;
&lt;br /&gt;
Raspunsul este simplu:  avem nevoie de un alt protocol care sa controleze cum&lt;br /&gt;
circula informatia prin retea. Protocolul pentru nivel de lagatura descrie&lt;br /&gt;
cum sa circule informatia intre doua noduri care sunt legate direct:&lt;br /&gt;
protocolul pentru nivel de retea face posibila transportul informatie intre&lt;br /&gt;
un nod si un altul peste oricat de mult legaturi de retea.&lt;br /&gt;
&lt;br /&gt;
Pentru internet, protocolul la nivel de retea este INTERNET PROTOCOL&lt;br /&gt;
(versiunea 4) sau &quot;IP&quot;. Nu este singurul protocol existent (Apple&quot;s&lt;br /&gt;
AppleTalk, Novell&quot;s IPX, Digital&quot;s DECNet and Microsoft&quot;s NetBEUI fiind&lt;br /&gt;
altele), dar este cel mai adoptat. A aparut o noua versiune de protocol &quot;IP&quot;&lt;br /&gt;
numit IPv6, dar inca nu este atat de utilizat.&lt;br /&gt;
&lt;br /&gt;
Asa ca pentru a transmite un mesaj dintr-un punct al globului in altul,&lt;br /&gt;
computerul tau foloseste protocolul IP, trimite informatia la modem, care&lt;br /&gt;
foloseste protocol pentru nivel de legatura pentru a trimite informatia&lt;br /&gt;
modemului din celalalt capat, modem care se afla probabil intr-un rack de&lt;br /&gt;
modemuri, care trimite informatia catre un alt nod, nod care la randul sau&lt;br /&gt;
trimite catre altul, si tot asa. Un nod care face lagatura intre doua sau&lt;br /&gt;
mai multe retele este denumit &quot;ruter&quot;: acesta va avea cate o interfata&lt;br /&gt;
pentru fiecare retea.&lt;br /&gt;
&lt;br /&gt;
Numim aceast sir de protocoale o &quot;stiva de protocoale&quot;, de obicei desenata&lt;br /&gt;
asa:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[ Aplicatia: Primeste poze ]      [ Nivelul aplicatie: transmite poze ]&lt;br /&gt;
|                                          ^&lt;br /&gt;
v                                          |&lt;br /&gt;
[ TCP: are grija de trasport ]          [ TCP: are grija de trasport ]&lt;br /&gt;
|                                          ^&lt;br /&gt;
v                                          |&lt;br /&gt;
[ IP: are grija de routare ]          [ IP: are grija de routare ]&lt;br /&gt;
|                                          ^&lt;br /&gt;
v                                          |&lt;br /&gt;
[ Link: doar pentru conexiune directa ]  [ Link: doar pentru conexiune directa ]&lt;br /&gt;
|                                          |&lt;br /&gt;
+------------------------------------------+&lt;br /&gt;
&lt;br /&gt;
Deci, in diagrama, vedem cum netscape (aplicatia din stanga sus) acceseaza&lt;br /&gt;
niste poze de pe un server web (aplicatia din dreapta sus). Pentru a face&lt;br /&gt;
acest lucru aplicatia noastra foloseste nivelul TCP, protocol pentru controlul&lt;br /&gt;
transportului: peste 90% din din traficul internet foloseste TCP, deoarece&lt;br /&gt;
este folosit mai ales pentru serviciile web si mail.&lt;br /&gt;
&lt;br /&gt;
Deci, Netscape-ul trimite o cerere  pentru o conexiune TCP catre serverul&lt;br /&gt;
remote: aceasta cerere este preluata la nivel de protocol de transport TCP,&lt;br /&gt;
care trimite mai departe cererea nivelului protocolului de retea IP, care la &lt;br /&gt;
randul lui transmite informatia mai departe catre nivelul protocolului de&lt;br /&gt;
legatura.&lt;br /&gt;
&lt;br /&gt;
La celalat capat nivelul protocolului de legatura inainteaza informatia catre&lt;br /&gt;
nivelul protocolului IP, care  vede ca informatia este destinata&lt;br /&gt;
computer-ului respectiv (daca nu va inainta informatia nivelului de legatura&lt;br /&gt;
pentru ca informatia sa ajunga la urmatorul nod), care inainteaza informatia&lt;br /&gt;
nivelului protocolului de transport TCP, care o inainteaza server-ului,&lt;br /&gt;
respectiv aplicatiei.&lt;br /&gt;
&lt;br /&gt;
Deci avem urmatoarele trei puncte:&lt;br /&gt;
&lt;br /&gt;
1. Aplicatia (Netscape, sau serveru din capatul celalalt) decide cu cine anume&lt;br /&gt;
doreste sa vorbeasca si ce anume doreste sa trimita&lt;br /&gt;
&lt;br /&gt;
2. Nivelul de transport trimite pachete speciale pentru a incepe conversatia&lt;br /&gt;
cu celalalt capat si apoi impacheteaza informatia intr-un &quot;pachet&quot; TCP: un&lt;br /&gt;
pachet este doar un termen pentru o bucata de date care trece printr-o&lt;br /&gt;
retea. Nivelul de transport TCP paseaza acest pachet catre nivelul de retea &lt;br /&gt;
IP: apoi transmite in continuare pana cand celalat capat la nivel de&lt;br /&gt;
transport TCP transmite receptionarea pachetului. Acest mecanism este numita&lt;br /&gt;
&quot;retransmitere&quot;, si are o multime de reguli complexe care controleaza cand sa&lt;br /&gt;
transmita, cat sa astepte, etc. Ii da deasemenea fiecarui pachet o multime&lt;br /&gt;
de numere, pentru ca la celalalt capat sa fie sortate in ordinea corecta.&lt;br /&gt;
&lt;br /&gt;
3. La nivel de retea IP  se ia in considerare destinatia pachetului si&lt;br /&gt;
se decide urmatorul nod catre care sa se transmita pachetul. Aceasta operatie&lt;br /&gt;
este numita in mod simplu &quot;rutare&quot;(routing), si difera de la foarte simplu&lt;br /&gt;
(daca nu ai decat un singur modem si nici o alta interfata de retea,&lt;br /&gt;
pachetele ar trebui sa iasa numai prin acea interfata) pana la extrem de&lt;br /&gt;
complex (daca ai 15 retele complexe conectata direct prin tine).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4. Aceast lucru numit IP&lt;br /&gt;
&lt;br /&gt;
Asadar rolul nivelului de legatura IP este sa realizeze cum sa &quot;ruteze&quot;&lt;br /&gt;
pachetele catre destinatia finala. Pentru ca acest lucru sa fie posibil,&lt;br /&gt;
fiecare interfata din retea trebuie sa aiba o &quot;adresa IP&quot;. Aceast adresa&lt;br /&gt;
este formata din patru numere separate prin puncte, cum ar fi&lt;br /&gt;
&quot;167.216.245.249&quot;. Fiecare numar trebuie sa fie cuprins intre 0 si 255.&lt;br /&gt;
&lt;br /&gt;
Interfetele in aceeasi retea au tendinta sa aiba adrese Ip vecine. De&lt;br /&gt;
exemplu &quot;1.1.1.19&quot; sta chiar langa sistemul cu adresa IP &quot;1.1.1.20&quot;. Deasemenea&lt;br /&gt;
nu uita ca un ruter este un nod cu interfete pentru mai mult de o retea,&lt;br /&gt;
asa ca ruter-ul va avea cate o adresa Ip pentru fiecare interfata.&lt;br /&gt;
&lt;br /&gt;
Asa ca nivelul de retea IP al kernelului tine un tabel cu &quot;rute&quot; diferite,&lt;br /&gt;
punand la dispozitie calea pentru a ajunge la grupuri variate de adrese IP. &lt;br /&gt;
Cea mai simpla dintre rute este numita &quot;ruta default&quot;: daca nici o alta ruta&lt;br /&gt;
nu se potriveste aceasta este calea pe care o iau pachetele. Poti vedea o &lt;br /&gt;
lista a acestor rute cu ajutorul comenzii &quot;/sbin/route&quot;.&lt;br /&gt;
&lt;br /&gt;
Rutele fie indica o legatura, fie un nod particular care este conectat la o&lt;br /&gt;
alta retea. De exemplu, cand suni la ISP, ruta default va fi catre legatura&lt;br /&gt;
cu modemul, deorece acolo este punctul de acces catre intreaga lume.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Modemul &lt;br /&gt;
Modemul lui          ISP-ului ~~~~~~~~~~~~&lt;br /&gt;
Rusty                     {            }&lt;br /&gt;
o------------------o { Internetul   }&lt;br /&gt;
{            }&lt;br /&gt;
~~~~~~~~~~~~&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dar daca ai un sistem care este in permanenta conectat la lumea din afara,&lt;br /&gt;
este putin mai complicat. In diagrama de mai jos, sistemul meu poate sa&lt;br /&gt;
comunica in mod direct cu computerele lui Paul si Tridge, si cu firewall-ul,&lt;br /&gt;
dar este necesar ca sistemul meu sa stie ca pachetele care trebuiesc livrate&lt;br /&gt;
restului lumii trebuie sa se indrepte catre firewall care le va pasa mai&lt;br /&gt;
incolo. Aceasta inseamna ca vei avea doua rute: una care sa zica &quot;daca&lt;br /&gt;
destinatia este in reteaua mea trimite informatia direct acolo&quot; si apoi o&lt;br /&gt;
ruta default care sa spuna &quot;in caz contrar, trimite-o catre firewall&quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
o  Masina de lucru&lt;br /&gt;
|    a lui Tridge      ~~~~~~~~~~~~&lt;br /&gt;
Masina de lucru        |                     {            }&lt;br /&gt;
a lui Rusty  o--------+-----------------o--{  Internetul  }&lt;br /&gt;
|            Firewall {            }&lt;br /&gt;
|                      ~~~~~~~~~~~~&lt;br /&gt;
o  Masina de lucru&lt;br /&gt;
a lui Paul  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4.1. Grupuri de adrese IP: Netmask-uri&lt;br /&gt;
&lt;br /&gt;
Mai este un ultim detaliu: exista o notatie standard pentru grupuri de adrese&lt;br /&gt;
IP, uneori numita &quot;adresa de retea&quot;. La fel cum un numar de telefon poate fi&lt;br /&gt;
impartit in prefix si restul, la fel putem divide o adresa IP intr-un prefix&lt;br /&gt;
de retea si restul.&lt;br /&gt;
&lt;br /&gt;
Oamenii obisnuiau sa vorbeasca despre &quot;reteaua 1.2.3&quot;, insemnand toate cele&lt;br /&gt;
256 de adrese de la 1.2.3.0 la 1.2.3.255. si daca asta nu era o retea destul&lt;br /&gt;
de mare ar fi putut sa vorbeasca despre &quot;reteaua 1.2&quot; care inseamna toate&lt;br /&gt;
adresele de la 1.2.0.0 la 1.2.255.255.&lt;br /&gt;
&lt;br /&gt;
In mod normal nu scriem  &quot;1.2.0.0-1.2.255.255&quot;. In loc scriem prescurtat&lt;br /&gt;
&quot;1.2.0.0/16&quot;. Notatia ciudata &quot;/16&quot; (numita netmask) cere o mica explicatie.&lt;br /&gt;
&lt;br /&gt;
Fiecare numar despartit prin puncte intr-o adresa IP este defapt un numar&lt;br /&gt;
binar format din 8 cifre (00000000 la 11111111): le scriem in format zecimal&lt;br /&gt;
pentru a putea fi mai usor de citit. &quot;/16&quot; inseamna ca primele 16 cifre&lt;br /&gt;
binare reprezinta adresa retelei, cu alte cuvinte partea &quot;1.2&quot; este reteaua.&lt;br /&gt;
(tine minte fiecare numar reprezinta 8 cifre binare). Aceasta inseamna ca&lt;br /&gt;
orice adresa care incepe cu &quot;1.2&quot; face parte din aceasta retea: &quot;1.2.3.4&quot; si&lt;br /&gt;
&quot;1.2.5.22&quot; fac parte din aceasta retea, dar &quot;1.3.4.2&quot; nu.&lt;br /&gt;
&lt;br /&gt;
Pentru a face viata mai usoara, in mod normal folosim retele care au&lt;br /&gt;
netmask &quot;/8&quot;, &quot;/16&quot; si &quot;/24&quot;. De exemplu, &quot;10.0.0.0/8&quot; este o retea imensa&lt;br /&gt;
care contine orice adresa de la 10.0.0.0 la 10.255.255.255 (peste 16 milioane&lt;br /&gt;
de adrese!). &quot;10.0.0.0/16&quot; este mai mica, continand adresele doar de la&lt;br /&gt;
10.0.0.0 la 10.0.255.255. &quot;10.0.0.0/24&quot; este si mai mica detinand adresele&lt;br /&gt;
de la 10.0.0.0 la 10.0.0.255.&lt;br /&gt;
&lt;br /&gt;
Pentru a face lucrurile si mai confuze, mai este un mod prin care putem sa&lt;br /&gt;
scriem netmask-urile. Putem sa le scriem ca adrese IP:&lt;br /&gt;
&lt;br /&gt;
10.0.0.0/255.0.0.0&lt;br /&gt;
&lt;br /&gt;
In sfarsit, nu valoreaza nimic faptul ca cea mai mare adresa dintr-o retea&lt;br /&gt;
este rezervat ca &quot;adresa de broadcast&quot;, care poate fi folosita pentru a&lt;br /&gt;
transmite un mesaj catre toate host-urile din retea.&lt;br /&gt;
&lt;br /&gt;
Mai jos este un tabel cu netmask-uri:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Forma       Forma           Numarul de      Comentarii&lt;br /&gt;
scurta      lunga           masini maxim&lt;br /&gt;
&lt;br /&gt;
/8      /255.0.0.0         16,777,215  numita in trecut retea de clasa A&lt;br /&gt;
/16     /255.255.0.0       65,535      numita in trecut retea de clasa B&lt;br /&gt;
/17     /255.255.128.0     32,767&lt;br /&gt;
/18     /255.255.192.0     16,383&lt;br /&gt;
/19     /255.255.224.0     8,191&lt;br /&gt;
/20     /255.255.240.0     4,095&lt;br /&gt;
/21     /255.255.248.0     2,047&lt;br /&gt;
/22     /255.255.252.0     1,023&lt;br /&gt;
/23     /255.255.254.0     511&lt;br /&gt;
/24     /255.255.255.0     255         numita in trecut retea de clasa C&lt;br /&gt;
/25     /255.255.255.128   127&lt;br /&gt;
/26     /255.255.255.192   63&lt;br /&gt;
/27     /255.255.255.224   31&lt;br /&gt;
/28     /255.255.255.240   15&lt;br /&gt;
/29     /255.255.255.248   7&lt;br /&gt;
/30     /255.255.255.252   3&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
5. Nume de computere si Adrese IP&lt;br /&gt;
&lt;br /&gt;
In concluzie orice interfata de pe fiecare nod are o adresa IP. Foarte repede&lt;br /&gt;
s-a constatat ca oamenii retin destul de greu numerele, asa ca s-a hotarat&lt;br /&gt;
(la fel ca la numerele de telefon) sa avem un director cu nume. Dar cum&lt;br /&gt;
folosim computere oricum, este mai simplu sa punem computerele sa gaseasca&lt;br /&gt;
numele in mod automat.&lt;br /&gt;
&lt;br /&gt;
Prin urmare avem DNS, sistemul de nume al domeniilor. Sunt noduri cu adrese IP&lt;br /&gt;
bine cunoscute pe care programele le pot interoga trimitand nume pentru a&lt;br /&gt;
primi adrese IP. Aproape toate programele pe care le folosesti pot realiza&lt;br /&gt;
aceasta interogare, de asta poti pune &quot;www.linuxcare.com&quot; in Netscape in loc&lt;br /&gt;
de &quot;167.216.245.249&quot;.&lt;br /&gt;
&lt;br /&gt;
Bineinteles, ai nevoie de adresele de retea a cel putin unuia dintre aceste&lt;br /&gt;
&quot;servere de nume&quot;: in mod normal aceste adrese se gasesc in fisierul&lt;br /&gt;
&quot;/etc/resolv.conf&quot;.&lt;br /&gt;
&lt;br /&gt;
Cum interogarile si raspunsurile DNS sunt relativ mici (1 pachet de fiecare),&lt;br /&gt;
protocolul TCP nu este folosit: acesta pune la dispozitia retransmisie&lt;br /&gt;
automata, ordonare a pachetelor si o siguranta a conexiunii, dar cu costul&lt;br /&gt;
trimiterii de pachete in plus in retea. De aceea folosim foarte simplul&lt;br /&gt;
protocol UDP (protocol pentru datagrame utilizator), care nu ofera extra&lt;br /&gt;
facilitatile pe care le ofera TCP si de care nu avem nevoie.&lt;br /&gt;
&lt;br /&gt;
6. Servici diferite: Email, Web, FTP, DNS&lt;br /&gt;
&lt;br /&gt;
Intr-un exemplu anterior, am arata cum Netscape trimite o cerere TCP catre un&lt;br /&gt;
server de web care ruleaza pe un alt nod. Dar sa ne imaginam ca acel nod care&lt;br /&gt;
este si server de web ruleaza si server de email, un server de ftp si un&lt;br /&gt;
server DNS, cum stie nodul pentru ce server este conexiunea TCP?&lt;br /&gt;
&lt;br /&gt;
Aici TCP si UDP au conceptul de &quot;port&quot;. Fiecare pachet precizat in el &quot;portul&lt;br /&gt;
destinatie&quot; care spune pentru ce serviciu este destinat pachetul. De exemplu,&lt;br /&gt;
portul 25 TCP este pentru server-ul de mail, si portul 80 TCP este server-ul&lt;br /&gt;
de web (deasemenea cateodata poti sa intalnesti servere web pe porturi&lt;br /&gt;
diferite). O lista a porturile poate fi gasita in &quot;/etc/services&quot;.&lt;br /&gt;
&lt;br /&gt;
Deasemenea, daca doua ferestre Netscape, amandoua acceseaza parti diferite din&lt;br /&gt;
acelasi site web, cum face sistemul linux pe care ruleaza Netscape sa sorteze&lt;br /&gt;
pachetele care se intorc de la server?&lt;br /&gt;
&lt;br /&gt;
Aici intervine &quot;portul sursa&quot;: fiecarei conexiune noua TCP ii se atribuie un&lt;br /&gt;
nou port sursa, asa ca sunt separate, chiar daca se duc spre aceeasi&lt;br /&gt;
adresa destinatie IP si acelasi port destinatie. In mod normal primul port&lt;br /&gt;
sursa alocat va fi 1024 si creste odata cu trecerea timpului.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
7. Interfete dialup: PPP&lt;br /&gt;
&lt;br /&gt;
Cand suni cu modemul tau la un ISP, si se conecteaza la modemul lor, kernelul&lt;br /&gt;
nu incepe pur si simplu sa trimita pachete IP prin conexiune. Exista un&lt;br /&gt;
protocol numit PPP (point-to-point protocol),  care este folosit pentru a&lt;br /&gt;
negocia cu celalalt capat inainte de a se permite trimiterea oricaror pachete.&lt;br /&gt;
Acesta este folosit de catre ISP pentru identificarea celui care a sunat: pe&lt;br /&gt;
sistemul tau linux, un program numit  &quot;daemon PPP&quot; se ocupa cu partea ta de&lt;br /&gt;
negociere.&lt;br /&gt;
&lt;br /&gt;
Pentru ca in lume sunt atatia utilizatori de dial-up, de obicei acestia nu&lt;br /&gt;
au propria lor adresa IP: cele mai multe ISP-uri iti vor aloca una din&lt;br /&gt;
adresele lor cand te vei conecta (daemonul PPP va negocia acest lucru). Aceasta&lt;br /&gt;
este adesea numita &quot;adresa IP dinamica&quot;, diferita fata de &quot;adresa IP statica&quot;&lt;br /&gt;
care este cazul normal cand ai propria ta conexiune permanenta. In mod normal&lt;br /&gt;
aceasta adresa este determinata de modem, data urmatoare cand te conectezi,&lt;br /&gt;
probabil ca vei nimeri alt modem, si astfel vei avea alta adresa IP.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
8. Cum arata pachetele&lt;br /&gt;
&lt;br /&gt;
Pentru cei foarte curiosi iata o descriere a structurii unui pachet. Sunt mai&lt;br /&gt;
multe aplicatii care captureaza pachetele care intra sau care ies dintr-un&lt;br /&gt;
sistem linux: cel mai comun este &quot;tcpdump&quot; (care intelege mai multe&lt;br /&gt;
protocoale decat TCP), dar unul mai fain este &quot;ethereal&quot;. Aceste aplicatii&lt;br /&gt;
sunt numite &quot;snifere de pachete&quot;.&lt;br /&gt;
&lt;br /&gt;
Inceputul fiecarui pachet contine informatii cum ar fi destinatia, sursa,&lt;br /&gt;
tipul pachetului, si alte detalii administrative. Aceasta parte a unui pachet&lt;br /&gt;
este numita &quot;header&quot;. Restul pachetului, ce contine datele propriu-zise, este&lt;br /&gt;
in mod uzual numit &quot;corpul pachetului&quot;.&lt;br /&gt;
&lt;br /&gt;
Asa ca orice pachet IP incepe cu un &quot;header IP&quot;: in marime de cel putin 20&lt;br /&gt;
bytes. Arata cam asa (aceasta diagrama fu furata cu nerusinare din RFC 791&lt;br /&gt;
(nu de catre traducator:))):&lt;br /&gt;
&lt;br /&gt;
.-------+-------+---------------+-------------------------------.&lt;br /&gt;
|Version|  IHL  |Type of Service|          Total Length         |&lt;br /&gt;
|-------+-------+---------------+-------------------------------|&lt;br /&gt;
|         Identification        |Flags|      Fragment Offset    |&lt;br /&gt;
|---------------+---------------+-------------------------------|&lt;br /&gt;
|  Time to Live |    Protocol   |         Header Checksum       |&lt;br /&gt;
|---------------+---------------+-------------------------------|&lt;br /&gt;
|                       Source Address                          |&lt;br /&gt;
|---------------------------------------------------------------|&lt;br /&gt;
|                    Destination Address                        |&lt;br /&gt;
&quot;---------------------------------------------------------------&quot;&lt;br /&gt;
&lt;br /&gt;
Campurile importante sunt Protocol, care indica daca pachetul este de tip TCP&lt;br /&gt;
(numarul 6), un pachet UDP (numar 17) sau alceva, adresa IP sursa, si adresa&lt;br /&gt;
IP destinatie.&lt;br /&gt;
&lt;br /&gt;
Acum, daca acel camp referitor protocolului spune ca pachetul este TCP, atunci&lt;br /&gt;
imediat un header TCP va urma imediat header-ului IP: header-ul TCP este&lt;br /&gt;
deasemenea de cel putin 20 bytes marime:&lt;br /&gt;
&lt;br /&gt;
.-------------------------------+-------------------------------.&lt;br /&gt;
|          Source Port          |       Destination Port        |&lt;br /&gt;
|-------------------------------+-------------------------------|&lt;br /&gt;
|                        Sequence Number                        |&lt;br /&gt;
|---------------------------------------------------------------|&lt;br /&gt;
|                    Acknowledgment Number                      |&lt;br /&gt;
|-------------------+-+-+-+-+-+-+-------------------------------|&lt;br /&gt;
|  Data |           |U|A|P|R|S|F|                               |&lt;br /&gt;
| Offset| Reserved  |R|C|S|S|Y|I|            Window             |&lt;br /&gt;
|       |           |G|K|H|T|N|N|                               |&lt;br /&gt;
|-------+-----------+-+-+-+-+-+-+-------------------------------|&lt;br /&gt;
|           Checksum            |         Urgent Pointer        |&lt;br /&gt;
&quot;---------------------------------------------------------------&quot;&lt;br /&gt;
&lt;br /&gt;
Cele mai importante campuri sunt aici campurile reprezentand portul sursa si&lt;br /&gt;
portul destinatie care determina catre ce serviciu este destinat pachetul&lt;br /&gt;
(sau, in cazul pachetelor replica, de la care serviciu provine). Numerele&lt;br /&gt;
&quot;sequence&quot; si &quot;acknowledgment&quot; sunt folosite pentru a tine o ordine in&lt;br /&gt;
pachete si pentru a spune celuilalt capat ce pachete au fost primite.&lt;br /&gt;
Flag-urile ACK, SYN, RST si FIN (scrise pe verticala) sunt biti unici&lt;br /&gt;
folositi pentru negocierea deschiderii (SYN) sau inchiderii (RST sau FIN)&lt;br /&gt;
conexiunilor.&lt;br /&gt;
&lt;br /&gt;
Dupa acest header urmeaza mesajul real pe care il trimite aplicatia (corpul&lt;br /&gt;
pachetului). Un pachet normal are pana la 1500 bytes: aceasta inseamna ca cel&lt;br /&gt;
mai mare spatiu pe care il poate ocupa datele este de 1460 bytes (20 bytes&lt;br /&gt;
header-ul IP, 20 bytes header-ul TCP): peste 97%.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
9. Sumar&lt;br /&gt;
&lt;br /&gt;
In concluzie internetul modern foloseste pachete IP pentru a comunica, si&lt;br /&gt;
cele mai multe dintre aceste pachete folosesc TCP pentru controlul conexiunii.&lt;br /&gt;
Noduri speciale denumite &quot;rutere&quot; conecteaza micile retele in retele mai&lt;br /&gt;
mari, si paseaza pachetele catre destinatia lor finala. Marea majoritatea a&lt;br /&gt;
computerelor sunt parte doar dintr-o retea (au doar o singura interfata),&lt;br /&gt;
spre deosebire de rutere.&lt;br /&gt;
&lt;br /&gt;
Fiecare interfata are o adresa IP unica, care seamana cu &quot;1.2.3.4&quot;:&lt;br /&gt;
interfetele in aceeasi retea vor avea adrese IP inrudite, cu acelasi&lt;br /&gt;
inceput, la fel cum telefoanele dintr-o anumita zona au acelasi prefix.&lt;br /&gt;
Adresele de retea sunt asemanatoare adreselor IP,  urmate insa de semnul &quot;/&quot;&lt;br /&gt;
si un numar pentru a se specifica portiunea din acea adresa care reprezinta &lt;br /&gt;
prefixul, de exemplu &quot;1.12.0.0/24&quot; inseamna ca primele 3 grupuri de cifre &lt;br /&gt;
reprezinta adresa de retea, fiecare cifra reprezinta 8 biti.&lt;br /&gt;
&lt;br /&gt;
Masinile au asignate nume de catre  serviciul de nume pe domenii: programele&lt;br /&gt;
interogheaza serverele de nume adrese IP, furnizand acestora nume de genul:&lt;br /&gt;
&quot;www.lug.ro&quot;. Aceasta adresa IP este apoi folosita ca adresa IP&lt;br /&gt;
destinatie pentru a vorbi cu acel nod.&lt;br /&gt;
&lt;br /&gt;
Rusty este destul de nepriceput pentru a scrie documente, in special pentru&lt;br /&gt;
incepatori.&lt;br /&gt;
&lt;br /&gt;
Enjoy!&lt;br /&gt;
&lt;br /&gt;
Rusty.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
10. Multumiri&lt;br /&gt;
&lt;br /&gt;
Multumiri lui Alison, pentru ca mi-a spus in cel mai frumos mod posibil ce&lt;br /&gt;
tampenii am scris in versiunile de inceput.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
11. Index&lt;br /&gt;
&lt;br /&gt;
o  &quot;100baseT&quot;&lt;br /&gt;
&lt;br /&gt;
o  &quot;10base2&quot;&lt;br /&gt;
&lt;br /&gt;
o  &quot;10baseT&quot;&lt;br /&gt;
&lt;br /&gt;
o  &quot;Broadcast address&quot; - adresa de broadcast&lt;br /&gt;
&lt;br /&gt;
o  &quot;Coax, Coaxial cable&quot;&lt;br /&gt;
&lt;br /&gt;
o  &quot;Computer network&quot; - retea de computere&lt;br /&gt;
&lt;br /&gt;
o  &quot;Default route&quot; - ruta default&lt;br /&gt;
&lt;br /&gt;
o  &quot;Destination port&quot; - port destinatie&lt;br /&gt;
&lt;br /&gt;
o  &quot;DNS, Domain Name Service&quot; - serviciu de nume pe domenii DNS&lt;br /&gt;
&lt;br /&gt;
o  &quot;Dynamic IP address&quot;- adresa IP dinamica&lt;br /&gt;
&lt;br /&gt;
o  &quot;Ethernet&quot;&lt;br /&gt;
&lt;br /&gt;
o  &quot;Fiber&quot; - fibra&lt;br /&gt;
&lt;br /&gt;
o  &quot;Gigabit Ethernet&quot;&lt;br /&gt;
&lt;br /&gt;
o  &quot;Hop&quot;&lt;br /&gt;
&lt;br /&gt;
o  &quot;Hub&quot; &lt;br /&gt;
&lt;br /&gt;
o  &quot;Internet&quot;&lt;br /&gt;
&lt;br /&gt;
o  &quot;IP, Internet Protocol&quot;&lt;br /&gt;
&lt;br /&gt;
o  &quot;IP address&quot; - adresa ip&lt;br /&gt;
&lt;br /&gt;
o  &quot;IP header&quot; - header IP&lt;br /&gt;
&lt;br /&gt;
o  &quot;IPv4, IP version 4&quot;&lt;br /&gt;
&lt;br /&gt;
o  &quot;IPv6, IP version 6&quot;&lt;br /&gt;
&lt;br /&gt;
o  &quot;LAN, Local Area Network&quot; - retea locala&lt;br /&gt;
&lt;br /&gt;
o  &quot;Link-level protocol&quot; - protocol de nivel de legatura&lt;br /&gt;
&lt;br /&gt;
o  &quot;Modem&quot;&lt;br /&gt;
&lt;br /&gt;
o  &quot;Name server&quot; - server de nume&lt;br /&gt;
&lt;br /&gt;
o  &quot;Netmask&quot; - netmask&lt;br /&gt;
&lt;br /&gt;
o  &quot;Network address, network mask&quot; - adresa de retea, mask de retea&lt;br /&gt;
&lt;br /&gt;
o  &quot;Network interface, interface&quot; - interfata de retea, interfata&lt;br /&gt;
&lt;br /&gt;
o  &quot;Network link&quot; - legatura de retea&lt;br /&gt;
&lt;br /&gt;
o  &quot;Network protocol, protocol&quot; - protocol de retea, protocol&lt;br /&gt;
&lt;br /&gt;
o  &quot;Node&quot; - nod&lt;br /&gt;
&lt;br /&gt;
o  &quot;Packet body&quot; - corp al pachetului &lt;br /&gt;
&lt;br /&gt;
o  &quot;Packet header&quot; - header al pachetului&lt;br /&gt;
&lt;br /&gt;
o  &quot;Packet sniffer&quot; - snifer de pachete&lt;br /&gt;
&lt;br /&gt;
o  &quot;Packet&quot; - pachet&lt;br /&gt;
&lt;br /&gt;
o  &quot;Port, TCP port, UDP port&quot; - port, port TCP, port UDP&lt;br /&gt;
&lt;br /&gt;
o  &quot;PPP, Point-to-Point Protocol&quot;&lt;br /&gt;
&lt;br /&gt;
o  &quot;PPP daemon&quot; - daemon PPP&lt;br /&gt;
&lt;br /&gt;
o  &quot;Protocol stack&quot; - stiva de protocoale&lt;br /&gt;
&lt;br /&gt;
o  &quot;Retransmission&quot; - retransmitere&lt;br /&gt;
&lt;br /&gt;
o  &quot;Route&quot; - ruta&lt;br /&gt;
&lt;br /&gt;
o  &quot;Router&quot; - ruter&lt;br /&gt;
&lt;br /&gt;
o  &quot;Routing&quot; - rutare&lt;br /&gt;
&lt;br /&gt;
o  &quot;Sneakernet&quot;&lt;br /&gt;
&lt;br /&gt;
o  &quot;Source port&quot; - port sursa&lt;br /&gt;
&lt;br /&gt;
o  &quot;Star-topology&quot; - topologie in stea&lt;br /&gt;
&lt;br /&gt;
o  &quot;Static IP address&quot; - adresa IP statica&lt;br /&gt;
&lt;br /&gt;
o  &quot;Sub-network&quot; - sub-retea&lt;br /&gt;
&lt;br /&gt;
o  &quot;TCP, Transmission Control Protocol&quot; TCP, protocol cu controlul&lt;br /&gt;
transportului&lt;br /&gt;
&lt;br /&gt;
o  &quot;TCP header&quot; - header TCP&lt;br /&gt;
&lt;br /&gt;
o  &quot;Terminator&quot; - terminator&lt;br /&gt;
&lt;br /&gt;
o  &quot;Topology&quot; - topologie&lt;br /&gt;
&lt;br /&gt;
o  &quot;UDP, User Datagram Protocol&quot; - UDP, protocol pentru datagrame&lt;br /&gt;
utilizator&lt;br /&gt;
&lt;br /&gt;
o  &quot;UTP, Unshielded Twisted Pair&quot;&lt;br /&gt;
&lt;br /&gt;
o  &quot;WAN, Wide Area Network&quot; - retea intinsa</content><link rel='replies' type='application/atom+xml' href='http://resurse-it.blogspot.com/feeds/3676669368479736218/comments/default' title='Postare comentarii'/><link rel='replies' type='text/html' href='http://resurse-it.blogspot.com/2011/04/ce-este-o-retea-de-calculatore-si-cum.html#comment-form' title='0 comentarii'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4915140777580483380/posts/default/3676669368479736218'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4915140777580483380/posts/default/3676669368479736218'/><link rel='alternate' type='text/html' href='http://resurse-it.blogspot.com/2011/04/ce-este-o-retea-de-calculatore-si-cum.html' title='Ce este o retea de calculatore si cum functioneaza internetul'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4915140777580483380.post-8097730633960067469</id><published>2011-04-11T00:47:00.000-07:00</published><updated>2011-04-11T00:47:04.849-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="fibra optica"/><category scheme="http://www.blogger.com/atom/ns#" term="fire torsodate"/><category scheme="http://www.blogger.com/atom/ns#" term="linie inchiriata"/><category scheme="http://www.blogger.com/atom/ns#" term="modem"/><category scheme="http://www.blogger.com/atom/ns#" term="pppd"/><category scheme="http://www.blogger.com/atom/ns#" term="telefonie"/><category scheme="http://www.blogger.com/atom/ns#" term="transformatoare"/><title type='text'>Configurarea modemului si a pppd-ului pentru a   folosi linii inchiriate pe 2 fire</title><content type='html'>Linii inchiriate Mini-HOWTO&lt;br /&gt;
Rob van der Putten, rob@sput.nl&lt;br /&gt;
v2.1, 3 August 2000&lt;br /&gt;
Traducerea: Victor Plugaru(vuk@go.ro). Cu scuzele de rigoare&lt;br /&gt;
pentru eventualele greseli si/sau inadvertente.&lt;br /&gt;
&lt;br /&gt;
Configurarea modemului dumneavoastra si a pppd-ului pentru a&lt;br /&gt;
folosi linii inchiriate pe 2 fire.&lt;br /&gt;
_________________________________________________________________________&lt;br /&gt;
&lt;br /&gt;
Table of Contents&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1. Introducere&lt;br /&gt;
&lt;br /&gt;
1.1 Ce este o linie inchiriata&lt;br /&gt;
1.2 Presupuneri&lt;br /&gt;
&lt;br /&gt;
2. Modemul&lt;br /&gt;
&lt;br /&gt;
2.1 Configuratia modemului&lt;br /&gt;
2.2 Test&lt;br /&gt;
2.3 Exemple&lt;br /&gt;
2.3.1 Hi-Tech&lt;br /&gt;
2.3.2 Tornado FM 228 E&lt;br /&gt;
2.3.3 Tron DF&lt;br /&gt;
2.3.4 US Robotics Courier V-Everything&lt;br /&gt;
&lt;br /&gt;
3. PPPD&lt;br /&gt;
&lt;br /&gt;
3.1 Configurarea&lt;br /&gt;
3.2 Script-uri&lt;br /&gt;
3.2.1 Pornirea lui pppd si mentinerea lui in functiune&lt;br /&gt;
3.2.2 Configurarea rutelor&lt;br /&gt;
3.3 Test&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
______________________________________________________________________&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Cea mai recenta versiune a acestui document poate fi gasita la:&lt;br /&gt;
http://www.sput.nl/software/leased-line/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
1. Introducere&lt;br /&gt;
&lt;br /&gt;
1.1. Ce este o linie inchiriata.&lt;br /&gt;
&lt;br /&gt;
Orice legatura de date punct la punct pentru comunicatie, care este&lt;br /&gt;
permanenta, fixa, inchiriata de la un operator de telefonie sau organizatie&lt;br /&gt;
similara, consituie o linie inchiriata. Linia inchiriata implica cabluri,&lt;br /&gt;
ca perechi torsadate , coaxiale sau fibre optice&lt;br /&gt;
si poate implica tot soiul de alte echipamente, bobine, transformatoare,&lt;br /&gt;
amplificatoare si regeneratoare.&lt;br /&gt;
&lt;br /&gt;
Acest document se ocupa de :&lt;br /&gt;
Configurarea modemului si daemonului pppd pentru a utiliza linii&lt;br /&gt;
inchiriate pe 2 fire torsadate.&lt;br /&gt;
&lt;br /&gt;
Acest document nu se ocupa de:&lt;br /&gt;
SLIP, obtinerea si instalarea lui pppd, comunicatii sincrone de date,&lt;br /&gt;
modemuri in banda de baza, xDSL.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1.2. Presupuneri.&lt;br /&gt;
&lt;br /&gt;
Va trebui sa aveti deja daemonul pppd capabil de a functiona in&lt;br /&gt;
sistemul dvs. De asemenea, trebuie sa aveti Minicom sau un program similar&lt;br /&gt;
pentru a va configura modemul.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2. Modemul&lt;br /&gt;
&lt;br /&gt;
O linie inchiriata nu este conectata la centrala telefonica, nu&lt;br /&gt;
transporta curent continuu, ton de apel, ton de ocupat sau semnal de apel.&lt;br /&gt;
Asta inseamna ca modemurile dvs. sunt pe cont propriu si vor trebui sa fie&lt;br /&gt;
capabile sa functioneze in atare situatie.&lt;br /&gt;
&lt;br /&gt;
Ar trebui sa aveti doua modemuri identice (inclusiv versiunea firmware),&lt;br /&gt;
externe, care sa suporte modurile de lucru pentru linie inchiriata&lt;br /&gt;
si mod &quot;orb&quot;. Asigurati-va ca modemurile dvs. pot functiona astfel. De&lt;br /&gt;
asemenea, asigurati-va ca modemurile sunt bine&lt;br /&gt;
documentate. Mai aveti nevoie de:&lt;br /&gt;
&lt;br /&gt;
- 2 cabluri RS232 ecranate si cablate complet. Ecranul ar trebui&lt;br /&gt;
sa fie conectat la carcasa conectorului la ambele capete (nu la pinul 1 si&lt;br /&gt;
nu doar la un capat).&lt;br /&gt;
&lt;br /&gt;
- Un conector RS232 de test poate fi avantajos daca il aveti.&lt;br /&gt;
&lt;br /&gt;
- 2 cabluri cu mufe RJ11, unul la fiecare capat al liniei inchiriate.&lt;br /&gt;
&lt;br /&gt;
- Cunostinte fundamentale privind comenzile AT.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2.1. Configurarea modemului.&lt;br /&gt;
&lt;br /&gt;
O observatie privind configuratia modemului si sirurile de initializare&lt;br /&gt;
in general: Configurati-va software-ul de modem (Minicom) sau (m)getty,&lt;br /&gt;
pentru a putea folosi cea mai mare viteza posibila: 57600 bps pentru modem&lt;br /&gt;
de 14.4 k si 115200 bps pentru modem de 28.8 k sau mai&lt;br /&gt;
rapid. Multi utilizatori folosesc siruri de initializare lungi&lt;br /&gt;
si complicate, adesea incepand cu sirul AT&amp;amp;F si continand o multime de&lt;br /&gt;
siruri specifice anumitor modemuri. Oricum, acestea sunt inutil de&lt;br /&gt;
complicate. Majoritatea programelor se descurca bine cu cateva configurari&lt;br /&gt;
simple, asa ca de ce sa nu scriem aceste configurari in memoria&lt;br /&gt;
non-volatila pentru toate modemurile dvs. si sa folositi doar comanda ATZ&lt;br /&gt;
ca sir de initializare in programe. Astfel puteti interschimba sau&lt;br /&gt;
imbunatati modemurile fara sa faceti reconfigurari in programe.&lt;br /&gt;
&lt;br /&gt;
Multe programe necesita sa folositi urmatoarele setari:&lt;br /&gt;
&lt;br /&gt;
- Baud-rate fix.&lt;br /&gt;
&lt;br /&gt;
- Contol de flux (flow control) RTS-CTS hardware bidirectional (nu xon-xoff)&lt;br /&gt;
&lt;br /&gt;
- 8 biti, fara paritate, 1 bit de stop&lt;br /&gt;
&lt;br /&gt;
- Modemul va trebui sa genereze starea REALA a semnalului DCD (&amp;amp;C1)&lt;br /&gt;
&lt;br /&gt;
- Modemul va trebui sa NU ignore starea semnalului DTR (&amp;amp;D2 sau &amp;amp;D3)&lt;br /&gt;
&lt;br /&gt;
Verificati acestea cu AT&amp;amp;V sau AT&amp;amp;Ix (consultati documentatia modemului)&lt;br /&gt;
&lt;br /&gt;
Aceste setari nu sunt neaparat implicite din fabrica (&amp;amp;F), asa incat initierea &lt;br /&gt;
modemului cu un sir de initializare cu AT&amp;amp;F nu este intotdeauna o&lt;br /&gt;
idee buna. Un lucru inteligent este probabil folosirea stringului AT&amp;amp;F&lt;br /&gt;
atunci cand avem motive sa credem ca sirul de initializare stocat&lt;br /&gt;
in memoria nevolatila a modemului nu este bun. Daca veti crede&lt;br /&gt;
ca ati gasit sirul potrivit de initializare a modemului, stocati-l&lt;br /&gt;
in memoria nevolatila cu comanda AT&amp;amp;W si testati-l amanuntit cu protocolul&lt;br /&gt;
de transfer Z-modem pentru ambele tipuri de fisiere, atat ASCII cat si&lt;br /&gt;
binar. Daca toate acestea merg perfect, configurati-va astfel modemurile&lt;br /&gt;
pentru linia inchiriata.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Aflati cum sa treceti modemul in modul &quot;dumb&quot; (orb, brut) si, si mai&lt;br /&gt;
important, cum sa scoateti modemul din acest mod. Modemul poate fi&lt;br /&gt;
reconfigurat doar cand nu este in modul &quot;dumb&quot;. Asigurati-va&lt;br /&gt;
ca ati configurat modemul pentru cea mai mare viteza posibila. Odata&lt;br /&gt;
intrat in modul &quot;dumb&quot;, modemul va ignora toate comenzile AT, si nu isi va&lt;br /&gt;
ajusta viteza dupa cea a portului serial, dar va utiliza viteza pentru&lt;br /&gt;
care a fost configurat (aceasta configurare de viteza este stocata intr-un&lt;br /&gt;
registru S, datorita sirului stabilit si stocat in memoria nevolatila).&lt;br /&gt;
&lt;br /&gt;
Acum configurati modemul dupa cum urmeaza:&lt;br /&gt;
&lt;br /&gt;
- Resetati DTR-ul (&amp;amp;D3, uneori e vorba de un registru S). Aceasta &lt;br /&gt;
setare este ceruta uneori de unele ISP-uri.&lt;br /&gt;
&lt;br /&gt;
- Modul linie inchiriata (&amp;amp;L1 sau &amp;amp;L2, consultati documentatia modemului)&lt;br /&gt;
&lt;br /&gt;
- Modemul corespondent pe auto-raspuns (S0=1), modemul local&lt;br /&gt;
pe initiere (S0=0)&lt;br /&gt;
&lt;br /&gt;
- Dezactivati codurile de rezultat (Q1, uneori modul&lt;br /&gt;
&quot;dumb&quot; inlocuieste aceasta)&lt;br /&gt;
&lt;br /&gt;
- Modul &quot;dumb&quot; (\D1 sau %D1, uneori e vorba de un jumper).&lt;br /&gt;
In modul &quot;dumb&quot;, modemul va ignora comenzile AT (uneori va&lt;br /&gt;
trebui chiar sa dezactivati caracterul ESC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Scrieti configuratia in memoria nevolatila (AT&amp;amp;W) &lt;br /&gt;
&lt;br /&gt;
2.2. Test&lt;br /&gt;
&lt;br /&gt;
Conectati modemurile la doua computere folosind 2 cabluri RS232 si&lt;br /&gt;
conectati modemurile intre ele folosind un cablu RJ11. Folositi un program&lt;br /&gt;
pentru modem, cum ar fi Minicom-ul din Linux, Procomm sau Telix (DOS) pe&lt;br /&gt;
ambele calculatoare, pentru a testa modemurile. Ar trebui sa puteti tasta&lt;br /&gt;
si afisa text de pe un calculator pe celalalt si vice-versa. Daca pe&lt;br /&gt;
ecrane apar caractere ciudate, verificati viteza portului serial si alte&lt;br /&gt;
asemenea configurari. Apoi deconectati si reconectati cablul RJ11. Asteptati&lt;br /&gt;
sa se restabileasca conexiunea. Deconectati si reconectati cablurile&lt;br /&gt;
RS232, inchideti si deschideti modemurile, opriti si porniti Minicom-ul.&lt;br /&gt;
Modemurile vor trebui sa se reconecteze intotdeauna la cea mai mare viteza&lt;br /&gt;
posibila (unele modemuri au LED-uri indicatoare a vitezei). Verificati&lt;br /&gt;
daca modemurile ignora intr-adevar caracterul ESC (+++). Daca e necesar,&lt;br /&gt;
dezactivati caracterul ESC.&lt;br /&gt;
&lt;br /&gt;
Daca toate acestea functioneaza, veti dori poate sa reconfigurati modemurile.&lt;br /&gt;
Dezactivati sunetul pentru modemul de la distanta (M0) si setati volumul&lt;br /&gt;
la minim pentru modemul local (L1).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2.3. Exemple&lt;br /&gt;
&lt;br /&gt;
2.3.1. Hi-Tech&lt;br /&gt;
&lt;br /&gt;
Acesta este un modem aproximativ &quot;no name&quot;. Sirul de initializare este&lt;br /&gt;
tipic si ar trebui sa functioneze pentru majoritatea modemurilor.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Initiator (local):&lt;br /&gt;
ATL1&amp;amp;C1&amp;amp;D3&amp;amp;L2%D1&amp;amp;W&amp;amp;W1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Raspuns (la distanta):&lt;br /&gt;
ATM0L1&amp;amp;C1&amp;amp;D3&amp;amp;L2%D1S0=1&amp;amp;W&amp;amp;W1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2.3.2.  Tornado FM 228 E&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Asta ar trebui sa mearga:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Originate (local):&lt;br /&gt;
ATB15L1Q1&amp;amp;C1&amp;amp;D3&amp;amp;L2&amp;amp;W&amp;amp;W1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Answer (remote):&lt;br /&gt;
ATM0B15M0Q1&amp;amp;C1&amp;amp;D3&amp;amp;L2S0=1&amp;amp;W&amp;amp;W1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mutati jumperul pentru modul &quot;dumb&quot; de la 2-3 la 1-2.&lt;br /&gt;
&lt;br /&gt;
Datorita unui bug in firmware, modemurile se vor conecta abia dupa&lt;br /&gt;
un reset hard (alimentare curent oprit si pornit) cand DTR este high.&lt;br /&gt;
Am pus la punct un circuit care reseteaza hard modemul la trecerea lui DTR&lt;br /&gt;
de pe low pe high. Daemonul pppd din BSD nu e prea &quot;incantat&quot; de&lt;br /&gt;
aceasta. Combinand setarea &amp;amp;D0 cu un circuit care reseteaza la&lt;br /&gt;
trecerea din starea high in low, problema poate fi evitata.&lt;br /&gt;
&lt;br /&gt;
2.3.3.  Tron DF&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Caracterul ESC ar trebui dezactivat, setand S2 &amp;gt; 127 ;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Initiator:&lt;br /&gt;
ATL1&amp;amp;L1Q1&amp;amp;C1&amp;amp;D3S2=171\D1&amp;amp;W&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Raspuns:&lt;br /&gt;
ATM0&amp;amp;L2Q1&amp;amp;C1&amp;amp;D3S0=1S2=171\D1&amp;amp;W&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2.3.4.  US Robotics Courier V-Everything&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
USR Sportster si USR Courier-I nu suporta linii inchiriate. Va&lt;br /&gt;
trebuie versiunea Courier V-everything pentru aceasta. Exista o pagina WEB&lt;br /&gt;
pe site-ul USR care &quot;explica&quot; cum se configureaza Courier-ul&lt;br /&gt;
pentru linie inchiriata. Daca veti urma aceastei instructiuni veti&lt;br /&gt;
sfarsi prin a aduce modemul in &quot;moarte cerebrala&quot; , care nu poate fi&lt;br /&gt;
controlata sau monitorizata de pppd. &lt;br /&gt;
&lt;br /&gt;
USR Courier poate fi configurat din DIP-switch-uri&lt;br /&gt;
(comutatoare). Oricum, trebuie sa ii furnizati sir de initializare&lt;br /&gt;
intai. Asigurati-va ca folositi setarea de fabrica potrivita.&lt;br /&gt;
Spre deosebire de alte modemuri, acesta are trei setari de fabrica: &amp;amp;F0, &amp;amp;F1&lt;br /&gt;
si &amp;amp;F2. Daca ii dati comanda AT&amp;amp;F va incarca setarea &amp;amp;F0. Pentru a&lt;br /&gt;
reseta comutarea DTR, trebuie sa setati bitul 0 in registrul&lt;br /&gt;
S13. Aceasta inseamna ca trebuie sa setati S13=1. Mai departe, trebuie sa&lt;br /&gt;
il setati pentru lucrul pe linie inchiriata cu &amp;amp;L1:  ATS13=1&amp;amp;L1&amp;amp;W .&lt;br /&gt;
Microcomutatoarele sunt in starea implicita, cu urmatoarele exceptii:&lt;br /&gt;
&lt;br /&gt;
3  OFF Dezactiveaza codurile de rezultat&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4  ON  Dezactiveaza comenzile off-line&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
5  ON  pentru initiere, OFF pentru raspuns&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
8  OFF Dumb mode&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3. PPPD&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Aveti nevoie de daemonul pppd (Point to Point Protocol) si de oarece&lt;br /&gt;
cunostinte despre cum lucreaza. Consultati RFC-urile potrivite sau PPP-HOWTO &lt;br /&gt;
din Linux daca este necesar. Cum nu veti folosi vreo procedura de login,&lt;br /&gt;
nu folositi (m)getty nu veti furniza vreun utilizator fals&lt;br /&gt;
pentru autentificare pppd. Nu veti forma numar de telefon, asa ca nu aveti&lt;br /&gt;
nevoie nici de script chat. De fapt, configuratia si circuitul de modem pe&lt;br /&gt;
care tocmai l-ati pus la punct seamana cu o legatura seriala null-modem.&lt;br /&gt;
&lt;br /&gt;
Pentru o legatura fiabila, ar trebui sa indepliniti urmatoarele criterii:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Imediat dupa boot-area sistemului de operare, pppd ar trebui&lt;br /&gt;
sa &quot;ridice&quot; semnalul DTR in portul RS232, sa astepte semnalul&lt;br /&gt;
DCD, sa intre in starea &quot;sus&quot;, si sa negocieze legatura.&lt;br /&gt;
&lt;br /&gt;
- Daca sistemul de la distanta este oprit, pppd ar trebui sa&lt;br /&gt;
astepte pana este pornit din nou.&lt;br /&gt;
&lt;br /&gt;
- Daca legatura functioneaza si intamplator se opreste, pppd&lt;br /&gt;
ar trebui sa reseteze modemul (prin &quot;coborarea&quot; si &quot;ridicarea&quot;&lt;br /&gt;
semnalului DTR) dupa care sa incerce sa se reconecteze.&lt;br /&gt;
&lt;br /&gt;
- Daca calitatea legaturii se deterioreaza prea mult, pppd ar&lt;br /&gt;
trebui sa reseteze modemul si sa restabileasca legatura.&lt;br /&gt;
&lt;br /&gt;
- Daca pppd &quot;crapa&quot;, un program watchdog (&quot;caine de paza&quot;) ar&lt;br /&gt;
trebui sa il reporneasca.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3.1. Configurarea.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sa presupunem ca modemul este conectat la COM2, adresa iP locala&lt;br /&gt;
este &quot;Loc_Ip&quot; si adresa IP distanta este &quot;Rem_Ip&quot;. Vrem sa folosim MTU&lt;br /&gt;
(Maximum Transmit Unit) cu valoarea 576. Fisierul /etc/ppp/options.ttyS1&lt;br /&gt;
ar arata cam asa:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
crtscts&lt;br /&gt;
mru 576&lt;br /&gt;
mtu 576&lt;br /&gt;
passive&lt;br /&gt;
Loc_Ip:Rem_Ip&lt;br /&gt;
-chap&lt;br /&gt;
modem&lt;br /&gt;
#noauth&lt;br /&gt;
-pap&lt;br /&gt;
persist&lt;br /&gt;
&lt;br /&gt;
Parametri ca &quot;Asyncmap 0&quot;, &quot;Lock&quot;, &quot;Modem&quot; and &quot;-detach&quot; sunt probabil&lt;br /&gt;
deja specificati in fisierul /etc/ppp/options. Daca nu sunt , adaugati-i&lt;br /&gt;
in fisierul /etc/ppp/options.ttyS1. Asa ca, daca sistemul local este&lt;br /&gt;
192.168.1.1 si sistemul de la distanta este 10.1.1.1, fisierul&lt;br /&gt;
/etc/ppp/options.ttyS1 este:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
crtscts&lt;br /&gt;
mru 576&lt;br /&gt;
mtu 576&lt;br /&gt;
passive&lt;br /&gt;
192.168.1.1:10.1.1.1&lt;br /&gt;
-chap&lt;br /&gt;
modem&lt;br /&gt;
#noauth&lt;br /&gt;
-pap&lt;br /&gt;
persist&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Fisierul options.ttyS1 de pe sistemul de la distanta este:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
crtscts&lt;br /&gt;
mru 576&lt;br /&gt;
mtu 576&lt;br /&gt;
passive&lt;br /&gt;
10.1.1.1:192.168.1.1&lt;br /&gt;
-chap&lt;br /&gt;
modem&lt;br /&gt;
#noauth&lt;br /&gt;
-pap&lt;br /&gt;
persist&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Optiunea &quot;passive&quot; limiteaza numarul de incercari de reconectare. Optiunea&lt;br /&gt;
&quot;persist&quot; va mentine pppd in stare de functionare in caz de deconectare sau&lt;br /&gt;
cand nu se poate conecta de prima data. Daca folositi intens telnet in&lt;br /&gt;
timp ce faceti transfer de fisiere (FTP sau web), va trebui sa&lt;br /&gt;
folositi valori mai mici pentru MTU si MRU, cum ar fi 296. Aceasta va face&lt;br /&gt;
sistemul de la distanta sa raspunda mai rapid. Daca nu va pasa&lt;br /&gt;
de telnet, puteti folosi valori de 1500 pentru MTU si MRU. Aveti in vedere&lt;br /&gt;
oricum ca pachetele UDP nu pot fi fragmentate. Programul Speakfreely&lt;br /&gt;
foloseste de pilda pachete UDP de 512 bytes. Deci MTU minim pentru&lt;br /&gt;
Speakfreely este 552 bytes. Optiunea &quot;noauth&quot; poate fi necesara in&lt;br /&gt;
distributiile noi.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3.2. Script-uri&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3.2.1 Pornirea lui pppd si mentinerea lui in functiune&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ati putea porni pppd dintr-un script (rc) de boot. Oricum, daca faceti&lt;br /&gt;
asta, si pppd moare, ramaneti fara legatura. O solutie mult mai stabila&lt;br /&gt;
este aceea de a porni pppd din fisierul /etc/inittab:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
s1:23:respawn:/usr/sbin/pppd /dev/ttyS1 115200&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Astfel, pppd va fi restartat daca &quot;moare&quot;. Asigurati-va ca aveti optiunea &lt;br /&gt;
&quot;-detach&quot; (&quot;nodetach&quot; in distributiile mai noi), altfel inittab&lt;br /&gt;
va porni mai multe pppd-uri, &quot;plangandu-se&quot; cu mesaje de genul &quot;respawning&lt;br /&gt;
too fast&quot;.&lt;br /&gt;
&lt;br /&gt;
NOTA: unele sisteme mai vechi nu accepta viteza de 115200.&lt;br /&gt;
In acest caz folositi 38400 si parametrul &quot;spd_vhi&quot; pentru comanda&lt;br /&gt;
&quot;setserial&quot;. Unele sisteme se asteapta sa folositi dispozitivul /dev/cua&lt;br /&gt;
in loc de /dev/ttySx.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3.3.2. Configurarea rutelor.&lt;br /&gt;
&lt;br /&gt;
Ruta implicita poate fi configurata cu optiunea &quot;defaultroute&quot; sau cu&lt;br /&gt;
scriptul /etc/ppp/ip-up;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
case $2 in&lt;br /&gt;
/dev/ttyS1)&lt;br /&gt;
/sbin/route add -net 0.0.0.0 gw Rem_Ip netmask 0.0.0.0&lt;br /&gt;
;;&lt;br /&gt;
esac&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ip-up poate fi folosit de asemeni pentru a va sincroniza ceasul calculatorului&lt;br /&gt;
cu comanda &quot;netdate&quot;. &lt;br /&gt;
&lt;br /&gt;
Bineinteles, ruta setata cu ip-up nu este in mod necesar ruta implicita.&lt;br /&gt;
Ip-up seteaza ruta catre reteaua de la distanta in timp ce scriptul ip-up&lt;br /&gt;
de la distanta seteaza ruta catre reteaua locala. Daca reteaua dvs&lt;br /&gt;
locala este 192.168.1.0 si interfata dvs ppp este 192.168.1.1,&lt;br /&gt;
scriptul ip-up de pe masina de la distanta arata cam asa:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
case $2 in&lt;br /&gt;
/dev/ttyS1)&lt;br /&gt;
/sbin/route add -net 192.168.1.0 gw 192.168.1.1 netmask 255.255.255.0&lt;br /&gt;
;;&lt;br /&gt;
esac&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Bitii &quot;case $2&quot; si &quot;/dev/ttyS1)&quot; apar in caz ca folositi mai multe conexiuni&lt;br /&gt;
ppp. Ip-up va rula ori de cate ori apare o conexiune, dar doar partea&lt;br /&gt;
dintre &quot;/dev/ttySx)&quot; si &quot;;;&quot; va fi executata, stabilind ruta potrivita&lt;br /&gt;
pentru fiecare dispozitiv ttySx potrivit. Puteti afla mai multe despre&lt;br /&gt;
rutare in documentul Linux Networking HOWTO la sectiunea rutare.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3.3. Test&lt;br /&gt;
&lt;br /&gt;
Testati toata configuratia exact ca in cazul modemurlor.&lt;br /&gt;
Daca functioneaza, luati bicicleta si porniti sistemul de la distanta.&lt;br /&gt;
Daca nu functioneaza, verificati viteza portului COM. De obicei o greseala&lt;br /&gt;
frecventa este de a configura legatura cu Minicom cu o viteza si&lt;br /&gt;
apoi configurarea pppd cu alta viteza . Asa NU va functiona.&lt;br /&gt;
Folositi aceiasi viteza permanent.</content><link rel='replies' type='application/atom+xml' href='http://resurse-it.blogspot.com/feeds/8097730633960067469/comments/default' title='Postare comentarii'/><link rel='replies' type='text/html' href='http://resurse-it.blogspot.com/2011/04/configurarea-modemului-si-pppd-ului.html#comment-form' title='0 comentarii'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4915140777580483380/posts/default/8097730633960067469'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4915140777580483380/posts/default/8097730633960067469'/><link rel='alternate' type='text/html' href='http://resurse-it.blogspot.com/2011/04/configurarea-modemului-si-pppd-ului.html' title='Configurarea modemului si a pppd-ului pentru a   folosi linii inchiriate pe 2 fire'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4915140777580483380.post-1371654119334555765</id><published>2011-04-11T00:34:00.000-07:00</published><updated>2011-04-11T00:34:38.185-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="filtrare pachete"/><category scheme="http://www.blogger.com/atom/ns#" term="firewall"/><category scheme="http://www.blogger.com/atom/ns#" term="ip"/><category scheme="http://www.blogger.com/atom/ns#" term="ipchains"/><category scheme="http://www.blogger.com/atom/ns#" term="masquerading"/><category scheme="http://www.blogger.com/atom/ns#" term="proxz"/><category scheme="http://www.blogger.com/atom/ns#" term="retea"/><category scheme="http://www.blogger.com/atom/ns#" term="softwa"/><title type='text'>Cum sa obtii, instalezi si configurezi software-ul ipchains pentru realizarea de firewall sub Linux, precum si cateva  posibilitati de folosire al acestuia</title><content type='html'>traducere ver. 0.2 de catre Riddl&lt;br /&gt;
&lt;br /&gt;
Documentul a fost tradus intr-un ritm foarte alert.&lt;br /&gt;
Nu este o traducere profesionala. Deasemenea nu este o traducere mot-a-mot. &lt;br /&gt;
Am incercat sa respect versiunea originala. &lt;br /&gt;
Multumiri lui Gushterul. Daca gasiti greseli sau aveti obervatii dati-mi&lt;br /&gt;
un mail pentru Riddl la &quot;discutii at gmx dot net&quot;. Nu uitati sa precizati&lt;br /&gt;
numele documentului.&lt;br /&gt;
Multumesc anticipat.&lt;br /&gt;
Pentru ultima versiune a acestei traduceri verifica&lt;br /&gt;
&amp;lt;http://www.securityorg.net/docs/&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Lecturare placuta!&lt;br /&gt;
&lt;br /&gt;
______________________________________________________________________&lt;br /&gt;
Rusty Russell&lt;br /&gt;
v1.0.8, Tue Jul  4 14:20:53 EST 2000&lt;br /&gt;
&lt;br /&gt;
Acest document descrie cum sa obtii, instalezi si configurezi software-ul&lt;br /&gt;
ipchains pentru realizarea de firewall sub Linux, precum si cateva &lt;br /&gt;
posibilitati de folosire al acestuia.&lt;br /&gt;
______________________________________________________________________&lt;br /&gt;
&lt;br /&gt;
Cuprins &lt;br /&gt;
&lt;br /&gt;
1. Introducere&lt;br /&gt;
1.1. La ce foloseste?&lt;br /&gt;
1.2. De ce?&lt;br /&gt;
1.3. Cum?&lt;br /&gt;
1.4. De unde?&lt;br /&gt;
2. Bazele teoretice ale filtrarii de pachete&lt;br /&gt;
2.1. La ce foloseste?&lt;br /&gt;
2.2. De ce?&lt;br /&gt;
2.3. Cum?&lt;br /&gt;
2.3.1. Un kernel ce are compilat suport pentru filtrare de&lt;br /&gt;
pachete&lt;br /&gt;
2.3.2. ipchains&lt;br /&gt;
2.3.3. Crearea regulilor permanente&lt;br /&gt;
3. Sunt derutat! Rutare, masqueradare, forwardare de pachete, ipautofw....&lt;br /&gt;
3.1. Ghidul de trei linii al lui Rusty privind masqueradarea&lt;br /&gt;
3.2. Promovare gratuita: regulile WatchGuard&lt;br /&gt;
3.3. Firewall-uri obisnuite&lt;br /&gt;
3.3.1. Retea privata: Proxy-uri traditionale&lt;br /&gt;
3.3.2. Retea privata: Proxy-uri transparente&lt;br /&gt;
3.3.3. Retea privata: Masquerading&lt;br /&gt;
3.3.4. Retea publica&lt;br /&gt;
3.3.5. Servicii interne limitate&lt;br /&gt;
3.4. Mai multe informatii despre masquerading&lt;br /&gt;
&lt;br /&gt;
4. Filtrul de pachete&lt;br /&gt;
4.1. Cum travereseaza pachetele filtrele&lt;br /&gt;
4.1.1. Folosirea ipchains&lt;br /&gt;
4.1.2. Ce vei vedea cand porneste computerul&lt;br /&gt;
4.1.3. Operatii pentru o singura regula&lt;br /&gt;
4.1.4. Optiuni de filtrare&lt;br /&gt;
4.1.4.1. Specificarea adreselor IP sursa si destinatie&lt;br /&gt;
4.1.4.2. Specificarea inversa&lt;br /&gt;
4.1.4.3. Specificarea protocolului&lt;br /&gt;
4.1.4.3.1. Specificarea porturilor TCP si UDP&lt;br /&gt;
4.1.4.3.2. Specificarea tipului si codului&lt;br /&gt;
ICMP&lt;br /&gt;
4.1.4.4. Specificarea interfetei&lt;br /&gt;
4.1.4.5. Specificarea doar a pachetelor TCP SYN&lt;br /&gt;
4.1.4.6. Despre fragmente&lt;br /&gt;
4.1.5. Efectele filtrarii de pachete&lt;br /&gt;
4.1.5.1. Specificarea unei tinte&lt;br /&gt;
4.1.5.2. Logarea pachetelor&lt;br /&gt;
4.1.5.3. Schimbarea tos (type of service)&lt;br /&gt;
4.1.5.4. Marcarea unui pachet&lt;br /&gt;
4.1.5.5. Operatii pentru un chain&lt;br /&gt;
4.1.5.6. Crearea unui chain nou&lt;br /&gt;
4.1.5.7. Stergerea unui chain&lt;br /&gt;
4.1.5.8. Stergerea tuturor regulilor unui chain&lt;br /&gt;
4.1.5.9. Listarea regulilor unui chain&lt;br /&gt;
4.1.5.10. Resetarea (aducerea la 0) a counter-elor&lt;br /&gt;
4.1.5.11. Setarea policy-ului&lt;br /&gt;
4.1.6. Operatii pentru masquerading&lt;br /&gt;
4.1.7. Verificarea unui pachet&lt;br /&gt;
4.1.8. Mai multe reguli dintr-o data si ceea ce se intampla &lt;br /&gt;
atunci&lt;br /&gt;
4.2. Exemple folositoare&lt;br /&gt;
4.2.1. Folosirea ipchains-save&lt;br /&gt;
4.2.2. Folosirea ipchains-restore&lt;br /&gt;
5. Diverse&lt;br /&gt;
5.1. Cum sa iti organizezi regulile firewall-ului&lt;br /&gt;
5.2. Ce anume sa nu filtrezi spre afara&lt;br /&gt;
5.2.1. Pachete icmp&lt;br /&gt;
5.2.2. Conexiunile TCP catre servere DNS (servere de nume)&lt;br /&gt;
5.2.3. FTP&lt;br /&gt;
5.3. Filtrarea Pingului Mortii&lt;br /&gt;
5.4. Filtrarea pentru Teardrop si Bonk&lt;br /&gt;
5.5. Filtrarea fragmentelor in masa&lt;br /&gt;
5.6. Schimbarea regulilor din firewall&lt;br /&gt;
5.7. Cum realizez protectia impotriva spoofarii IP&lt;br /&gt;
5.8. Proiecte mai avansate&lt;br /&gt;
5.8.1. SPF: filtrare dupa starea pachetului (stateful packet&lt;br /&gt;
filtering)&lt;br /&gt;
5.8.2. &quot;Hack-ul&quot; ftp-data al lui Michael Hasenstein&lt;br /&gt;
5.9. Planuri de viitor&lt;br /&gt;
6. Probleme des intalnite&lt;br /&gt;
6.1. ipchains -L ingheata!&lt;br /&gt;
6.2. Specificarea inversa nu poate fi realizata!&lt;br /&gt;
6.3. Masqueradarea/Forwardarea nu se realizeaza!&lt;br /&gt;
6.4. Tinta -j REDIR nu merge!&lt;br /&gt;
6.5. Specificare mai multor interfete (ex &quot;-i ppp+&quot;) nu merge! &lt;br /&gt;
6.6. TOS nu merge!&lt;br /&gt;
6.7. ipautofw si ipportfw nu merg!&lt;br /&gt;
6.8. xosview este stricat!&lt;br /&gt;
6.9. Segmentation Fault din cauza tintei &quot;-j REDIRECT&quot;!&lt;br /&gt;
6.10. Nu pot preciza valori de timeout pentru masquerading!&lt;br /&gt;
6.11. Vreau sa filtrez IPX!&lt;br /&gt;
7. Un exemplu serios&lt;br /&gt;
7.1. Topologia retelei&lt;br /&gt;
7.2. Scopurile&lt;br /&gt;
7.3. Inainte de realizarea filtrarii de pachete&lt;br /&gt;
7.4. Filtrarea de pachete pentru pachetele directe&lt;br /&gt;
7.4.1. Trecerea spre alte chain-uri din chain-ul forward&lt;br /&gt;
7.4.2. Definirea chain-ului icmp-acc&lt;br /&gt;
7.4.3. Reguli pentru conexiuni reteaua interna ==&amp;gt; DMZ&lt;br /&gt;
(servere)&lt;br /&gt;
7.4.4. Reguli pentru conexiuni din reteaua externa ==&amp;gt; DMZ&lt;br /&gt;
(servere)&lt;br /&gt;
7.4.5. Reguli pentru conexiuni din reteaua interna ==&amp;gt; reteaua &lt;br /&gt;
externa&lt;br /&gt;
7.4.6. Reguli pentru conexiuni din DMZ ==&amp;gt; reteaua interna&lt;br /&gt;
7.4.7. Reguli pentru conexiuni din DMZ ==&amp;gt; reteaua externa&lt;br /&gt;
7.4.8. Reguli pentru conexiuni din reteaua externa ==&amp;gt; reteaua&lt;br /&gt;
interna&lt;br /&gt;
7.4.9. Filtrul de pachete pentru insusi sistemul care este&lt;br /&gt;
ruter&lt;br /&gt;
7.4.9.1. Interfata catre reteaua externa&lt;br /&gt;
7.4.9.2. Interfata catre reteaua de servere (DMZ)&lt;br /&gt;
7.4.9.3. Interfata catre reteaua interna&lt;br /&gt;
7.5. In final&lt;br /&gt;
8. Anexa: Diferente intre ipchains si ipfwadm&lt;br /&gt;
8.1. Tabel pentru informare rapida&lt;br /&gt;
8.2. Exemple de comenzi ipfwadm translatate in ipchains&lt;br /&gt;
9. Anexa: Folosirea scriptului ipfwadm-wrapper&lt;br /&gt;
10. Anexa: Multumiri.&lt;br /&gt;
10.1. Traduceri&lt;br /&gt;
&lt;br /&gt;
______________________________________________________________________&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1. Introducere&lt;br /&gt;
&lt;br /&gt;
Aceste este IPCHAINS-HOWTO pentru Linux; citeste capitolul &quot;De unde?&quot;&lt;br /&gt;
pentru site-ul principal care contine ultima veriune. Ar trebui sa citesti&lt;br /&gt;
deasemenea NET-3-HOWTO. IP-Masquerading HOWTO, PPP-HOWTO, Ethernet-HOWTO si&lt;br /&gt;
Firewall HOWTO ar fi deasemenea interesante de citit (la fel ar putea sa fie&lt;br /&gt;
intesante si FAQ-ul alt.fan.bigfoot).&lt;br /&gt;
&lt;br /&gt;
Daca filtrarea de pachete este ok pentru tine, citeste sectiunea &quot;De ce?&quot;,&lt;br /&gt;
sectiunea &quot;Cum?&quot;, si citeste printre randuri sectiunea &quot;Reguli pentru&lt;br /&gt;
firewall&quot;.&lt;br /&gt;
&lt;br /&gt;
Daca faci trecerea de la ipfwadm, citeste sectiunea &quot;Introducere&quot;,&quot;Cum?&quot;,&lt;br /&gt;
anexa &quot;Diferente intre ipchains si ipfwadm&quot; si sectiunea &quot;Folosirea&lt;br /&gt;
scriptului ipfwadm-wrapper&quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1.1. La ce foloseste?&lt;br /&gt;
&lt;br /&gt;
Ipchains pentru linux este o rescriere a codului pentru firewall IPv4 pentru&lt;br /&gt;
Linux (care a fost in mare preluat de la BSD) si o rescriere a ipfwadm, care&lt;br /&gt;
este o rescriere a ipfw apartinand BSD-ului. Ipchains este cerut pentru&lt;br /&gt;
administrarea filtrelor de pachete in kernelurile Linux versiunea 2.1.102 si&lt;br /&gt;
mai avansate.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1.2. De ce?&lt;br /&gt;
&lt;br /&gt;
Deoarece: codul mai vechi pentru firewall nu intelegea fragmentele, avea&lt;br /&gt;
counter-e pe 32 biti (cel putin pe Intel), nu suporta alte protocoale in afara&lt;br /&gt;
TCP, UDP si ICMP, nu putea sa realizeze schimbari mari rapid, nu stia sa&lt;br /&gt;
specifice reguli inverse, are cateva inflorituri, si poate fi greu de manevrat&lt;br /&gt;
(facandu-l predispus la erori din partea utilizatorului).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1.3. Cum?&lt;br /&gt;
&lt;br /&gt;
In mod curent codul pentru filtrarea de pachete este inclus in kernelurile de&lt;br /&gt;
la versiunea 2.1.102.. Pentru versiunile 2.0 va trebui sa aplici un patch&lt;br /&gt;
pe care il downloadezi de pe pagina web. Daca kernelul 2.0 este mai recent&lt;br /&gt;
decat patch-ul respectiv, ar trebui sa mearga; aceasta parte de cod din kernel&lt;br /&gt;
este destul de stabila (ex. patch pentru kernel 2.0.34 este bun si pentru&lt;br /&gt;
kernel 2.0.35). Deoarece patch-ul pentru ver. 2.0 este incompatibil cu&lt;br /&gt;
patch-urile pentru ipportfw si ipautofw, nu recomand aplicarea acestuia decat&lt;br /&gt;
in cazul in care ai mare nevoie de functionalitatea oferita de ipchains.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1.4. De unde?&lt;br /&gt;
&lt;br /&gt;
Pagina oficiala poate fi gasita in trei locuri:&lt;br /&gt;
Multumiri lui Penguin Computing  &amp;lt;http://netfilter.filewatcher.org/ipchains&amp;gt;&lt;br /&gt;
Multumiri echipei SAMBA &amp;lt;http://www.samba.org/netfilter/ipchains&amp;gt;&lt;br /&gt;
Multumiri lui Jim Pick   &amp;lt;http://netfilter.kernelnotes.org/ipchains&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Exista o lista de discutii pentru rapoarte privind bug-uri, discutii,&lt;br /&gt;
dezvoltare si folosire. Subscrie-te pe aceasta lista trimitand la subscribe at&lt;br /&gt;
east.balius.com un mesaj avand in corpul mesajului &quot;subscribe ipchains-list&quot;. &lt;br /&gt;
Pentru a trimite mail la toti cei care sunt subscrisi pe lista foloseste &lt;br /&gt;
adresa ipchains-list at east.balius.com.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2. Bazele teoretice ale filtrarii de pachete&lt;br /&gt;
&lt;br /&gt;
2.1. La ce foloseste?&lt;br /&gt;
&lt;br /&gt;
Intreg traficul dintr-o retea este transmis sub forma de pachete. De exemplu,&lt;br /&gt;
downloadarea unui fisier (sa zicem, in marime de 50K) va cauza primirea a in&lt;br /&gt;
jur de 36 de pachete cu o marime de 1460 bytes fiecare.&lt;br /&gt;
&lt;br /&gt;
Partea de inceput a oricarui pachet spune unde se duce, de unde a venit, tipul&lt;br /&gt;
pachetului, si alte asemenea detalii. Aceasta parte de inceput a pachetului se&lt;br /&gt;
numeste header. Restul pachetului care contine informatia propriu-zisa este&lt;br /&gt;
numita body (corp).&lt;br /&gt;
&lt;br /&gt;
Unele protcoale, cum ar fi TCP, care este folosit pentru trafic web, mail, si&lt;br /&gt;
conectarea de la distanta pe alte sisteme, folosesc termenul de &quot;conexiune&quot; --&lt;br /&gt;
inainte de transmiterea oricaror informatii cu date propriu-zise, pachete&lt;br /&gt;
diferite (cu headere speciale) sunt schimbate, spunand  &quot;Vreau sa ma&lt;br /&gt;
conectez&quot;, &quot;OK&quot;, si &quot;Mersi&quot;. Apoi pachete normale sunt schimbate.&lt;br /&gt;
&lt;br /&gt;
Un filtru de pachete este o portiune de cod care se uita la headerul&lt;br /&gt;
pachetelor pe masura ce acestea trec, si decid soarta intregului pachet. Poate&lt;br /&gt;
sa decida sa ignore pachetul (ignora pachetul ca si cum nu ar fi fost&lt;br /&gt;
primit), accepta pachetul (lasa pachetul sa intre), sau sa respinga pachetul&lt;br /&gt;
(asemanator cu ignorarea pachetul cu deosebira ca spune sistemului care l-a&lt;br /&gt;
trimis acest lucru).&lt;br /&gt;
&lt;br /&gt;
Sub linux, filtrarea de pachete este compilata in kernel, si sunt cateva&lt;br /&gt;
smecherii pe care le putem face cu pachetele, dar ramane valabil principiul &lt;br /&gt;
general al examinarii headerelor si determinarea sortii pachetului.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2.2. De ce?&lt;br /&gt;
&lt;br /&gt;
Control. Securitate. Vigilenta.&lt;br /&gt;
&lt;br /&gt;
Control:&lt;br /&gt;
cand folosesti un sistem Linux pentru a-ti conecta reteaua interna&lt;br /&gt;
la o alta retea (sa spunem, Internet) ai posibilitatea de a permite&lt;br /&gt;
un anumit tip de trafic, si sa refuzi pe altele. De exemplu,&lt;br /&gt;
header-ul contine adresa destinatie a unui pachet, asa ca poti&lt;br /&gt;
preveni pachetele sa se duca spre o anumita parte a retelei&lt;br /&gt;
exterioare. Ca un alt exemplu, folosesc Netscape pentru accesarea&lt;br /&gt;
arhivelor Dilbert. Sunt reclame pe pagina de la doubleclick.net, si&lt;br /&gt;
Netscape imi pierde timpul incarcandu-le. Spunand filtrului de pachete&lt;br /&gt;
sa nu permita pachete de la sau spre nici una din adresele detinute&lt;br /&gt;
de catre doubleclick.net rezolva aceasta problema (cu toate acestea&lt;br /&gt;
sunt modalitati mai bune pentru aceasta: vezi Junkbuster).&lt;br /&gt;
&lt;br /&gt;
Securitate:&lt;br /&gt;
cand sistemul tau Linux este singurul intre haosul Internetului&lt;br /&gt;
si reteaua ta ordonata si delicata, este placut sa stii ca poti&lt;br /&gt;
sa restrictionezi ceea ce vine tropaind la usa. De exemplu, poti sa&lt;br /&gt;
permiti la tot sa iasa din retea, dar ai putea fi ingrijorat de&lt;br /&gt;
binecunoscutul &quot;Ping al Mortii&quot; venind de la persoanele din afara rau&lt;br /&gt;
intentionate. Ca un alt exemplu, s-ar putea sa nu doresti ca&lt;br /&gt;
persoanele din afara sa se telnet-uiasca pe sistemul tau Linux, chiar&lt;br /&gt;
daca toate conturile tale au parole. Poate doresti (ca multi oameni)&lt;br /&gt;
sa fii un observator  al Internet-ului, si nu server (de voie, sau in&lt;br /&gt;
alt mod). Pur si simplu nu lasa pe nimeni sa se conecteze, punand&lt;br /&gt;
fitrul de pachete sa respinga pachetele folosite la initierea de&lt;br /&gt;
conexiuni.&lt;br /&gt;
&lt;br /&gt;
Vigilenta:&lt;br /&gt;
uneori o masina prost configurata in reteaua locala va decide sa&lt;br /&gt;
arunce pachete spre lumea din afara. Este dragut sa spui filtrului de&lt;br /&gt;
pachete sa te anunte daca se intampla ceva anormal; poate poti face&lt;br /&gt;
ceva cu privire la acel lucru, sau poate esti doar curios.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2.3. Cum?&lt;br /&gt;
&lt;br /&gt;
2.3.1. Un kernel ce are compilat suport pentru filtrare de pachete&lt;br /&gt;
&lt;br /&gt;
Ai nevoie de un kernel care sa aiba suport compilat pentru IP firewall chains.&lt;br /&gt;
Poti sa iti dai seama daca ai kernelul care iti trebuie verificand existenta&lt;br /&gt;
fisierului &quot;/proc/net/ip_fwchains&quot;. Daca acesta exista, este ok.&lt;br /&gt;
&lt;br /&gt;
Daca nu, trebuie sa compilezi un kernel cu suport pentru IP firewall chains.&lt;br /&gt;
Intai downloadeaza sursele kernelului pe care il doresti. Daca ai sursele&lt;br /&gt;
pentru kernel peste versiunea 2.1.102, inclusiv, nu va fi necesar sa ii aplici &lt;br /&gt;
patch. In caz contrar, aplica un patch de pe pagina web listata mai sus, si&lt;br /&gt;
realizeaza configuratia cum este detaliat mai jos. Daca nu stii cum sa faci&lt;br /&gt;
asta nu intra in panica -- citeste Kernel-HOWTO.&lt;br /&gt;
&lt;br /&gt;
Optiunile de configurarea ce trebuie facute pentru kernel ver 2.0 sunt:&lt;br /&gt;
&lt;br /&gt;
______________________________________________________________________&lt;br /&gt;
CONFIG_EXPERIMENTAL=y&lt;br /&gt;
CONFIG_FIREWALL=y&lt;br /&gt;
CONFIG_IP_FIREWALL=y&lt;br /&gt;
CONFIG_IP_FIREWALL_CHAINS=y&lt;br /&gt;
______________________________________________________________________&lt;br /&gt;
&lt;br /&gt;
Pentru kernelurile ver. 2.1 sau 2.2:&lt;br /&gt;
&lt;br /&gt;
______________________________________________________________________&lt;br /&gt;
CONFIG_FIREWALL=y&lt;br /&gt;
CONFIG_IP_FIREWALL=y&lt;br /&gt;
______________________________________________________________________&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Comanda ipchains cumunica kernelului si ii spune ce pachete sa filtreze. Mai&lt;br /&gt;
jos este prezentat cum vei realiza filtrarea de pachete.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2.3.2. ipchains&lt;br /&gt;
&lt;br /&gt;
Comanda ipchains introduce si sterge reguli din portiunea din kernel&lt;br /&gt;
referitoare la filtrarea de pachete. Aceasta inseamna ca orice vei realiza va&lt;br /&gt;
fi pierdut dupa rebootare, citeste &quot;Crearea regulilor permanente&quot; pentru a&lt;br /&gt;
vedea cum sa faci regulile permanente.&lt;br /&gt;
&lt;br /&gt;
ipchains inlocuieste ipfwadm, care a fost folosit pentru vechiul cod de&lt;br /&gt;
firewall IP. Exista o multime de scripturi folositoare de pe site-ul ftp al&lt;br /&gt;
ipchains-ului:&lt;br /&gt;
&lt;br /&gt;
http://netfilter.filewatcher.org/ipchains/ipchains-scripts-1.1.2.tar.gz&lt;br /&gt;
&lt;br /&gt;
Aceasta arhiva contine un script numit ipfwadm-wrapper care iti permite sa&lt;br /&gt;
realizezi filtrarea de pachete exact cum era inainte. Probabil ca nu ar trebui&lt;br /&gt;
sa folosesti acest scipt in afara de cazul cand doresti o cale rapida de a &lt;br /&gt;
upgrada un sistem ce foloseste ipfwadm (este mai incet, nu verifica&lt;br /&gt;
argumentele, etc.). In acest caz nu ai nevoie nici de acest HOWTO.&lt;br /&gt;
&lt;br /&gt;
Vezi anexa &quot;Diferente intre ipchains si ipfwadm&quot; si anexa &quot;Folosirea scriptului&lt;br /&gt;
ipfwadm-wrapper&quot; pentru mai multe detalii  privind ipfwadm.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2.3.3. Crearea regulilor permanente&lt;br /&gt;
&lt;br /&gt;
Regulile curente ale firewall-ului se afla in kernel, si de aceea vor fi&lt;br /&gt;
pierdute la rebootare. Recomand folosirea scripturile &quot;ipchains-save&quot; si&lt;br /&gt;
&quot;ipchains-restore&quot; pentru a face regulile permanente. Pentru a realiza&lt;br /&gt;
aceasta, seteazati regulile, apoi ruleaza (ca root):&lt;br /&gt;
&lt;br /&gt;
# ipchains-save &amp;gt; /etc/ipchains.rules&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
Creaza un script astfel:&lt;br /&gt;
&lt;br /&gt;
#! /bin/sh&lt;br /&gt;
# Script to control packet filtering.&lt;br /&gt;
&lt;br /&gt;
# If no rules, do nothing.&lt;br /&gt;
[ -f /etc/ipchains.rules ] || exit 0&lt;br /&gt;
&lt;br /&gt;
case &quot;$1&quot; in&lt;br /&gt;
start)&lt;br /&gt;
echo -n &quot;Turning on packet filtering:&quot;&lt;br /&gt;
/sbin/ipchains-restore &amp;lt; /etc/ipchains.rules || exit 1&lt;br /&gt;
echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
echo &quot;.&quot;&lt;br /&gt;
;;&lt;br /&gt;
stop)&lt;br /&gt;
echo -n &quot;Turning off packet filtering:&quot;&lt;br /&gt;
echo 0 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
/sbin/ipchains -F&lt;br /&gt;
/sbin/ipchains -X&lt;br /&gt;
/sbin/ipchains -P input ACCEPT&lt;br /&gt;
/sbin/ipchains -P output ACCEPT&lt;br /&gt;
/sbin/ipchains -P forward ACCEPT&lt;br /&gt;
echo &quot;.&quot;&lt;br /&gt;
;;&lt;br /&gt;
*)&lt;br /&gt;
&lt;br /&gt;
echo &quot;Usage: /etc/init.d/packetfilter {start|stop}&quot;&lt;br /&gt;
exit 1&lt;br /&gt;
;;&lt;br /&gt;
esac&lt;br /&gt;
&lt;br /&gt;
exit 0&lt;br /&gt;
&lt;br /&gt;
Asigura-te ca acest script este rulat devreme in procesul de incarcare al&lt;br /&gt;
sistemului.  In cazul meu (Debian 2.1), am facut o legatura simbolica numita&lt;br /&gt;
&quot;S39packetfilter&quot; in directorul &quot;/etc/rcS.d&quot; (acesta va fi rulat inainte de&lt;br /&gt;
S40network).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3. Sunt derutat! Rutare, masqueradare, forwardare de pachete, ipautofw....&lt;br /&gt;
&lt;br /&gt;
Acest HOWTO este dedicat filtrarii de pachete. Aceasta inseamna a decide ce&lt;br /&gt;
pachete sa lasi sa treaca sau nu. Cu toate acestea, Linux-ul fiind terenul de&lt;br /&gt;
joaca al hackerilor probabil ca doresti sa realizezi mai multe de atat.&lt;br /&gt;
&lt;br /&gt;
O problema este faptul ca aceeasi comanda &quot;ipchains&quot; este folosita sa&lt;br /&gt;
controlezi masqueradingul cat si realizarea de proxy transparent, deasemenea&lt;br /&gt;
aceastea sunt diferite fata de filtrarea de pachete (implementarea Linux&lt;br /&gt;
curenta le pune una langa celelalte,  lasand impresia ca sunt strans&lt;br /&gt;
inrudite).&lt;br /&gt;
&lt;br /&gt;
Realizarea de masquerading si proxy transparent sunt detaliate in HOWTO-uri&lt;br /&gt;
separate, si auto forwardarea si fowardarea de porturi sunt controlate de&lt;br /&gt;
comenzi diferite, dar cum multa lume ma intreaba despre acestea, voi include o&lt;br /&gt;
multime de scenarii posibile si voi indica momentul cand trebuie aplicat &lt;br /&gt;
fiecare. Meritele de securitate ale fiecarei configuratii nu va fi discutat &lt;br /&gt;
aici.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3.1. Ghidul de trei linii al lui Rusty privind masqueradarea&lt;br /&gt;
&lt;br /&gt;
Se presupune ca interfata ta externa este &quot;ppp0&quot;. Foloseste comanda &quot;ifconfig&quot;&lt;br /&gt;
pentru a afla interfata, si modifica dupa caz:&lt;br /&gt;
&lt;br /&gt;
# ipchains -P forward DENY&lt;br /&gt;
# ipchains -A forward -i ppp0 -j MASQ&lt;br /&gt;
# echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3.2. Promovare gratuita: regulile WatchGuard&lt;br /&gt;
&lt;br /&gt;
Poti sa cumperi firewall-uri gata facute. Unul excelent este FireBox de la &lt;br /&gt;
WatchGuard. Este excelent pentru ca imi place, este sigur, este bazat pe&lt;br /&gt;
Linux, si pentru ca au finantat suportul pentru ipchains cat si pentru noul&lt;br /&gt;
cod de firewall (pentru 2.4). Pe scurt, WatchGuard ma platesc pe mine pentru a&lt;br /&gt;
avea ce manca in timp ce muncesc pentru voi. Asa ca ia in considere produsul&lt;br /&gt;
lor.&lt;br /&gt;
&lt;br /&gt;
http://www.watchguard.com &amp;lt;http://www.watchguard.com&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3.3. Firewall-uri obisnuite&lt;br /&gt;
&lt;br /&gt;
Te ocupi de littlecorp.com. Ai o retea interna, si o conexiune PPP catre&lt;br /&gt;
internet (de pe ruterul firewall.littlecorp.com care are adresa 1.2.3.4).&lt;br /&gt;
Folosesti ethernet pentru reteaua locala, si sistemul tau se numeste &quot;myhost&quot;.&lt;br /&gt;
Sectiunea care urmeaza va ilustra diferite scenarii care sunt obisnuite.&lt;br /&gt;
Cititi cu atentie, pentru ca sunt fiecare usor diferite.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3.3.1. Retea privata: Proxy-uri traditionale&lt;br /&gt;
&lt;br /&gt;
In acest scenariu, pachetele din reteaua privata nu vor ajunge pe Internet si&lt;br /&gt;
viceversa. Adresele IP pentru reteaua privata ar trebui sa fie asignate din&lt;br /&gt;
clasa de IP-uri pentru retele private conform cu RFC1918 (ex: 10.*.*.*,&lt;br /&gt;
172.16.*.*-172.31.*.* or 192.168.*.*).&lt;br /&gt;
&lt;br /&gt;
Singurul mod prin care te conecteazi la Internet este prin conectare la &lt;br /&gt;
firewall, care este singurul sistem comun celor doua retele, pe care le &lt;br /&gt;
conecteaza. Pentru a realiza acest lucru folosesti (pe firewall) o aplicatie &lt;br /&gt;
numita proxy (exista proxy-uri pentru FTP, www, telnet, RealAudio, Usenet News &lt;br /&gt;
si alte servicii). Citeste Firewall HOWTO.&lt;br /&gt;
&lt;br /&gt;
Orice servicii pe care le doresti accesibile de pe Internet trebuie sa fie pe&lt;br /&gt;
firewall. (insa vezi &quot;Servicii interne limitate&quot;).&lt;br /&gt;
&lt;br /&gt;
Exemplu: Permiterea acesului web din reteaua privata catre Internet&lt;br /&gt;
&lt;br /&gt;
1. Reteaua privata are asignate adresele 192.168.1.*, myhost fiind sistemul cu&lt;br /&gt;
adresa 192.168.1.100, iar interfata ethernet a firewall-ului avand asignata&lt;br /&gt;
adresa 192.168.1.1.&lt;br /&gt;
&lt;br /&gt;
2. Un proxy pentru web (ex. squid) este instalat si configurat pe firewall, sa&lt;br /&gt;
spunem ca asculta pe portul 8080.&lt;br /&gt;
&lt;br /&gt;
3. Netscape-ul din reteaua privata este configurat sa foloseasca drept proxy&lt;br /&gt;
portul 8080 de pe firewall.&lt;br /&gt;
&lt;br /&gt;
4. DNS nu trebuie sa fie configurat in reteaua privata.&lt;br /&gt;
&lt;br /&gt;
5. DNS trebuie sa fie configurat pe firewall.&lt;br /&gt;
&lt;br /&gt;
6. Nici o ruta default (gateway) nu trebuie sa fie configurata in reteaua&lt;br /&gt;
privata.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Netscape de pe myhost citeste http://slashdot.org&lt;br /&gt;
&lt;br /&gt;
1. Netscape se conecteaza la portul 8080 de pe firewall, folosind portul 1050&lt;br /&gt;
de pe myhost. Intreaba de pagina web a adresei &quot;http://slashdot.org&quot;.&lt;br /&gt;
&lt;br /&gt;
2. Proxy-ul se uita dupa numele &quot;slashdot.org&quot;, si gaseste 207.218.152.131.&lt;br /&gt;
Apoi deschide o conexiune catre acea adresa IP (folosind portul 1025 de pe&lt;br /&gt;
interfata externa a firewall-ului), si intreaba serverul web (portul 80) de&lt;br /&gt;
pagina web.&lt;br /&gt;
&lt;br /&gt;
3. Pe masura ce primeste pagina web prin conexiunea cu serverul de web,&lt;br /&gt;
firewall-ul copiaza informatia catre conexiunea cu Netscape.&lt;br /&gt;
&lt;br /&gt;
4. Netscape afiseaza pagina&lt;br /&gt;
&lt;br /&gt;
Din punctul de vede al slashdot.org, conexiunea este facuta de la 1.2.3.4,&lt;br /&gt;
portul 1025 catre 207.218.152.131 (slashdot.org), portul 80. Din punctul de&lt;br /&gt;
vedere al myhost conexiunea este realizata de la 192.168.1.100 (myhost),&lt;br /&gt;
portul 1050, catre 192.168.1.1 (interfata ethernet a firewall-ului), portul&lt;br /&gt;
8080.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3.3.2. Retea privata: Proxy-uri transparente&lt;br /&gt;
&lt;br /&gt;
In acest scenariu, pachetele din reteaua privata nu vor ajunge pe Internet si&lt;br /&gt;
viceversa. Adresele IP pentru reteaua privata ar trebui sa fie asignate din&lt;br /&gt;
clasa de IP-uri pentru retele private conform cu RFC1918 (ex: 10.*.*.*,&lt;br /&gt;
172.16.*.*-172.31.*.* or 192.168.*.*).&lt;br /&gt;
&lt;br /&gt;
Singurul mod prin care te conectezi la Internet este prin conectare la&lt;br /&gt;
firewall, care este singurul sistem comun celor doua retele, pe care le &lt;br /&gt;
conecteaza. In acest scop rulezi o aplicatie (pe firewall) numita proxy&lt;br /&gt;
transparent; kernelul schimba destinatia pachetele din reteaua privata care ar&lt;br /&gt;
fi trebuit sa fie trimise spre Internet catre proxy-ul transparent. (modifica&lt;br /&gt;
rutarea).&lt;br /&gt;
&lt;br /&gt;
Proxy transparent insemna ca hosturile din reteaua privata nu au nevoie sa&lt;br /&gt;
shtie ca este implicat un proxy.&lt;br /&gt;
&lt;br /&gt;
Orice servicii pe care le doresti accesibile de pe Internet trebuie sa fie pe&lt;br /&gt;
firewall. (insa vezi &quot;Servicii interne limitate&quot;).&lt;br /&gt;
&lt;br /&gt;
Exemplu: Permiterea acesului web din reteaua privata catre Internet&lt;br /&gt;
&lt;br /&gt;
1. Reteaua privata are asignate adresele 192.168.1.*, myhost fiind sistemul cu&lt;br /&gt;
adresa 192.168.1.100, iar interfata ethernet a firewall-ului avand asignata&lt;br /&gt;
adresa 192.168.1.1.&lt;br /&gt;
&lt;br /&gt;
2. Un proxy de web transparent (cred ca sunt patch-uri pentru squid, pentru ai&lt;br /&gt;
permite sa lucreze in acest mod, sau incerca &quot;transproxy&quot;) este instalat si&lt;br /&gt;
configurat pe firewall, sa spunem ca asculta pe portul 8080.&lt;br /&gt;
&lt;br /&gt;
3. Kernelului ii este spus, folosind ipchains, sa redirecteze conexiunile&lt;br /&gt;
catre portul 80 spre proxy.&lt;br /&gt;
&lt;br /&gt;
4. Netscape din reteaua privata este configurat sa se conecteze direct.&lt;br /&gt;
&lt;br /&gt;
5. DNS trebuie sa fie configurat in reteaua privata (trebuie sa rulezi un&lt;br /&gt;
server DNS pentru reteaua locala, ca un proxy, pe firewall).&lt;br /&gt;
&lt;br /&gt;
6. Ruta default (gateway) trebuie sa fie configurata in reteaua privata,&lt;br /&gt;
pentru a trimite pachetele catre firewall.&lt;br /&gt;
&lt;br /&gt;
Netscape de pe myhost citeste http://slashdot.org.&lt;br /&gt;
&lt;br /&gt;
1. Netscape rezolva numele &quot;slashdot.org&quot; in adresa 207.218.152.131. Apoi&lt;br /&gt;
deschide o conexiune catre aceea adresa folosind portul local 1050, si&lt;br /&gt;
cere serverului de web (portul 80) pagina web.&lt;br /&gt;
&lt;br /&gt;
2. Pe masura ce pachetele de la myhost (portul 1050) catre slashdot.org&lt;br /&gt;
(portul 80, trec prin firewall, ele sunt redirectate catre proxy-ul&lt;br /&gt;
transparent ce asculta pe portul 8080. Proxy-ul transparent deschide o&lt;br /&gt;
conexiune (folosind portul local 1025) catre 207.218.152.131, portul 80 (care&lt;br /&gt;
este adresa reala catre care se indreptau pachetele originale).&lt;br /&gt;
&lt;br /&gt;
3. Pe masura ce primeste pagina web prin conexiunea cu serverul de web,&lt;br /&gt;
firewall-ul copiaza informatia catre conexiunea cu Netscape.&lt;br /&gt;
&lt;br /&gt;
4. Netscape afiseaza pagina.&lt;br /&gt;
&lt;br /&gt;
Din punctul de vedere al slashdot.org, conexiunea este facuta de la 1.2.3.4&lt;br /&gt;
(interfata PPP a firewall-ului), portul 1025 catre 207.218.152.131 &lt;br /&gt;
(slashdot.org), portul 80. Din punctul de vedere al myhost conexiunea este &lt;br /&gt;
realizata de la 192.168.1.100 (myhost), portul 1050, catre 207.218.152.131&lt;br /&gt;
(slashdot.org) portul 80, dar defapt vorbeste cu proxy-ul transparent.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3.3.3. Retea privata: Masquerading&lt;br /&gt;
&lt;br /&gt;
In acest scenariu, pachetele din reteaua privata nu vor ajunge pe Internet&lt;br /&gt;
fara o modificare in prealabil si viceversa. Adresele IP pentru reteaua &lt;br /&gt;
privata ar trebui sa fie asignate din clasa de IP-uri pentru retele private&lt;br /&gt;
conform cu RFC1918 (ex: 10.*.*.*, 172.16.*.*-172.31.*.* sau 192.168.*.*).&lt;br /&gt;
&lt;br /&gt;
In loc sa folosim un proxy, folosim o facilitate speciala a kernelului numita&lt;br /&gt;
&quot;masquerading&quot;. Masqueradarea recreeaza pachetele pe masura ce acestea trec&lt;br /&gt;
prin firewall, in asa fel incat intodeauna par ca vin de la insusi firewall-ul.&lt;br /&gt;
Apoi rescrie raspunsurile in asa fel incat apar ca si cum ar veni de la insasi&lt;br /&gt;
destinatia originala.&lt;br /&gt;
&lt;br /&gt;
Masquerading are module speciale pentru unele protocoale mai speciale, cum ar&lt;br /&gt;
fi FTP, RealAudio, Quake, etc. Pentru protocoale pentru care nu se poate &lt;br /&gt;
realiza acest lucru, facilitatea &quot;forwardare automata&quot; care poate manipula&lt;br /&gt;
unele dintre aceste protocoale prin realizarea automata de forwardare pentru&lt;br /&gt;
porturile necesare. Vezi &quot;ipportfw&quot; (kernelurile 2.0) sau &quot;ipmasqadm&quot;&lt;br /&gt;
(kernelurile 2.1).&lt;br /&gt;
&lt;br /&gt;
Orice servicii pe care le doresti accesibile de pe Internet trebuie sa fie pe&lt;br /&gt;
firewall. (insa vezi &quot;Servicii interne limitate&quot;).&lt;br /&gt;
&lt;br /&gt;
Exemplu: Permiterea accesului la web din reteaua privata catre Internet.&lt;br /&gt;
&lt;br /&gt;
1. Adresa privata are asignate adresele 192.168.1.*, myhost fiind sistemul cu&lt;br /&gt;
adresa 192.168.1.100, iar interfata ethernet a firewall-ului avand asignata&lt;br /&gt;
adresa 192.168.1.1.&lt;br /&gt;
&lt;br /&gt;
2. Firewall-ul este configurat sa realizeze masquerading pentru pachetele care&lt;br /&gt;
pleaca din reteaua privata spre Internet, portul 80.&lt;br /&gt;
&lt;br /&gt;
3. Netscape este configurat sa se conecteze direct.&lt;br /&gt;
&lt;br /&gt;
4. DNS trebuie configurat corect in reteaua privata.&lt;br /&gt;
&lt;br /&gt;
5. Firewall-ul ar trebui sa fie ruta default (gateway) pentru reteaua privata.&lt;br /&gt;
&lt;br /&gt;
Netscape de pe myhost citeste http://slashdot.org&lt;br /&gt;
&lt;br /&gt;
1. Netscape rezolva numele &quot;slashdot.org&quot; in adresa IP 207.218.152.131. Apoi&lt;br /&gt;
deschide o conexiune catre acea adresa IP, folosind portul local 1050, si cere&lt;br /&gt;
serverului de web (portul 80) pagina web.&lt;br /&gt;
&lt;br /&gt;
2. Pe masura ce pachetele de la myhost (portul 1050) catre slashdot.org&lt;br /&gt;
(portul 80) trec prin firewall, acestea sunt rescrie pentru a parea ca vin de&lt;br /&gt;
pe interfata PPP a firewall-ului, portul 65000. Firewall-ul are o adresa&lt;br /&gt;
internet valida (1.2.3.4) asa ca pachetele replica de la slashdot.org sunt&lt;br /&gt;
rutate inapoi corect.&lt;br /&gt;
&lt;br /&gt;
3. Pe masura ce pachetele de la slashdot.org (portul 80) sunt rutate inapoi&lt;br /&gt;
catre firewall.littlecorp.com (portul 65000), acestea sunt rescrise pentru a&lt;br /&gt;
se inapoia catre myhost, portul 1050. Aceasta este reala magie a&lt;br /&gt;
masqueradingului: tine minte cand rescrie pachetele ce ies pentru ca sa poata&lt;br /&gt;
rescrie pachetele replica pe masura ce acestea vin.&lt;br /&gt;
&lt;br /&gt;
4. Netscape afiseaza pagina.&lt;br /&gt;
&lt;br /&gt;
Din punctul de vedere al slashdot.org, conexiunea este realizata de la adresa&lt;br /&gt;
IP 1.2.3.4 (interfata PPP a firewall-ului) portul 65000, catre &lt;br /&gt;
207.218.152.131 (slashdot.org) portul 80.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3.3.4. Retea publica&lt;br /&gt;
&lt;br /&gt;
In acest scenariu,  reteaua ta personala este parte din Internet: pachetele&lt;br /&gt;
pot sa circule fara nici o modificare intre ambele retele. Adresele IP ale&lt;br /&gt;
retelei interne trebuie sa fie asignate printr-o cerere pentru un bloc de&lt;br /&gt;
adrese IP, astfel incat restul Internetului sa stie cum sa ruteze pachetele &lt;br /&gt;
catre aceasta. Aceasta implica o conexiune permanenta.&lt;br /&gt;
&lt;br /&gt;
In acest caz, filtrul de pachete este folosit pentru a decide ce pachete sa fie&lt;br /&gt;
forwardate intre reteaua ta si restul Internetului, de exemplu sa permiti&lt;br /&gt;
restului Internetului accesul numai la serverele interne de web.&lt;br /&gt;
&lt;br /&gt;
Exemplu: Permiterea accesului web din reteaua personala catre Internet&lt;br /&gt;
&lt;br /&gt;
1. Reteaua interna are adresele IP asignate conform cu blocul de adrese IP pe&lt;br /&gt;
care le-ai inregistrat. (sa zicem 1.2.3.*)&lt;br /&gt;
&lt;br /&gt;
2. Firewall-ul este configurat sa permita traficul.&lt;br /&gt;
&lt;br /&gt;
3. Netscape este configurat sa se conecteze direct.&lt;br /&gt;
&lt;br /&gt;
4. DNS trebuie sa fie corect configurat in reteaua ta.&lt;br /&gt;
&lt;br /&gt;
5. Firewall-ul trebuie sa fie ruta default (gateway) pentru reteaua ta.&lt;br /&gt;
&lt;br /&gt;
Netscape de pe myhost citeste http://slashdot.org&lt;br /&gt;
&lt;br /&gt;
1. Netscape rezolva numele &quot;slashdot.org&quot; in adresa IP 207.218.152.131.&lt;br /&gt;
Deschide apoi o conexiune catre aceea adresa IP, folosind portul local 1050,&lt;br /&gt;
si cere serverului de web (portul 80) pagina web.&lt;br /&gt;
&lt;br /&gt;
2. Pachetele trec prin firewall-ul tau la fel cum trec prin multe alte rutere&lt;br /&gt;
intre tine si slashdot.org.&lt;br /&gt;
&lt;br /&gt;
3. Netscape afiseaza pagina.&lt;br /&gt;
&lt;br /&gt;
Exista doar o singura conexiune: de la 1.2.3.4 (myhost) portul 1050, la&lt;br /&gt;
207.218.152.131 (slashdot.org) portul 80.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3.3.5. Servicii interne limitate&lt;br /&gt;
&lt;br /&gt;
Sunt cateva lucruri pe care le poti intreprinde pentru a permite accesul din&lt;br /&gt;
afara Internetului catre servicile interne, decat sa rulezi acele servici pe&lt;br /&gt;
firewall. Aceast lucru este posibil printr-o solutie pentru conexiunile &lt;br /&gt;
externe in gen proxy sau masquerading.&lt;br /&gt;
&lt;br /&gt;
Cea mai simpla abordare este sa rulezi aplicatia &quot;redirector&quot;, care este un&lt;br /&gt;
proxy care asteapta o conexiune pe un port dat, si apoi deschide o conexiune&lt;br /&gt;
interna catre un host intern, pe un anumit port, si copiaza datele intre cele&lt;br /&gt;
doua conexiuni. Din punctul de vedere al Internetului, conexiunea este facuta&lt;br /&gt;
pe firewall. Din punctul de vedere al serverului intern, conexiunea este&lt;br /&gt;
facuta intre interfata interna a firewall-ului si serverul intern.&lt;br /&gt;
&lt;br /&gt;
O alta cale (care, pentru kernel ver. 2.0 este necesar un patch pentru&lt;br /&gt;
ipportwf, sau un kernel versiunea 2.1 sau peste) este sa folosesti forwardarea&lt;br /&gt;
de porturi din kernel. Aceasta realizeaza acelasi lucru ca &quot;redirector&quot;&lt;br /&gt;
intr-un mod diferit: kernelul rescrie pachetele pe masura ce ele trec,&lt;br /&gt;
schimbandu-le adresa si portul destinatie catre un host si port anumit din&lt;br /&gt;
reteaua interna. Din punctul de vedere al Internetului conexiunea este facuta&lt;br /&gt;
cu firewall-ul. Din punctul de vedere al serverului intern, conexiunea este&lt;br /&gt;
una directa intre serverul intern si hostul din Internet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3.4. Mai multe informatii despre masquerading&lt;br /&gt;
&lt;br /&gt;
David Ranch a scris un excelent nou HOWTO despre masquerading, care se&lt;br /&gt;
suprapune mult peste acest HOWTO. Poti sa gasesti acest HOWTO la &lt;br /&gt;
&lt;br /&gt;
http://www.linuxdoc.org/HOWTO/IP-Masquerade-HOWTO.html&lt;br /&gt;
&lt;br /&gt;
Pagina oficiala pentru Masquerading este la:&lt;br /&gt;
&lt;br /&gt;
http://ipmasq.cjb.net &amp;lt;http://ipmasq.cjb.net&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4. Filtrul de pachete&lt;br /&gt;
&lt;br /&gt;
Aceasta sectiune descrie tot ceea ce trebuie sa stii cu adevarat pentru a&lt;br /&gt;
realiza un filtru de pachete ca sa iti indeplineasca cerintele.&lt;br /&gt;
&lt;br /&gt;
4.1. Cum travereseaza pachetele filtrele&lt;br /&gt;
&lt;br /&gt;
Kernelul porneste cu trei liste de reguli; aceste liste se numesc chain-uri.&lt;br /&gt;
Aceste trei chain-uri incluse default sunt: input, output si forward. Cand un&lt;br /&gt;
pachet soseste (sa zicem, prin placa Ethernet) kernelul foloseste chain-ul&lt;br /&gt;
input pentru a decide soarta pachetului. Daca trece de acest chain, kernelul&lt;br /&gt;
decide unde sa trimita pachetul (aceasta este numita rutare). Daca este&lt;br /&gt;
destinat pentru o alta masina, pachetul trece prin chain-ul forward. In final,&lt;br /&gt;
chiar inainte ca un pachet sa plece, kernelul verifica chain-ul output.&lt;br /&gt;
&lt;br /&gt;
Un chain este o lista cu reguli ce trebuie verificate. Fiecare regula spune&lt;br /&gt;
&quot;daca headerul pachetului arata asa, atunci iata ce sa faci cu pachetul&quot;. Daca&lt;br /&gt;
regula nu se potriveste cu pachetul, atunci urmatoarea regula din chain este&lt;br /&gt;
examinata. In final, daca nu mai exista reguli de verificat, atunci kernelul&lt;br /&gt;
verifica politica (policy-ul) pe care o are chain-ul. Intr-un sistem in care &lt;br /&gt;
se pune baza pe securitate, de obicei politica este sa ignore pachetul sa sa &lt;br /&gt;
ii dea reject.&lt;br /&gt;
&lt;br /&gt;
Pentru fanii ASCII, aceasta este calea pe care o parcurge un pachet:&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
|            ACCEPT/                              interfata lo |&lt;br /&gt;
v           REDIRECT                  _______                  |&lt;br /&gt;
--&amp;gt; C --&amp;gt; S --&amp;gt; ______ --&amp;gt; D --&amp;gt; ~~~~~~~~ --&amp;gt;|Chain-ul|---&amp;gt; _________--&amp;gt;&lt;br /&gt;
h     a  |Chain-ul|    e    {Decizie  }  |forward |    |Chain-ul |ACCEPT&lt;br /&gt;
e     n  |input   |    m    {de rutare}  |________|---&amp;gt;|output   |&lt;br /&gt;
c     i  |________|    a     ~~~~~~~~        |     | -&amp;gt;|_________|&lt;br /&gt;
k     t       |        s       |             |     | |     |&lt;br /&gt;
s     y       |        q       |             v     | |     |&lt;br /&gt;
u     |       v        e       v            DENY/  | |     v&lt;br /&gt;
m     |     DENY/      r   Proces Local    REJECT  | |   DENY/&lt;br /&gt;
|     v    REJECT      a       |                   | |  REJECT&lt;br /&gt;
|   DENY               d       --------------------- |&lt;br /&gt;
v                      e -----------------------------&lt;br /&gt;
DENY&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Iata o descriere a fiecarui pas:&lt;br /&gt;
&lt;br /&gt;
Checksum: Acesta este un test pentru a vedea daca pachetul a fost corupt in&lt;br /&gt;
vreun fel. Daca da, atunci este ignorat.&lt;br /&gt;
&lt;br /&gt;
Normalitate (sanity): Acest test defapt exista inainte fiecarui chain, dar &lt;br /&gt;
acela care se face inainte chain-ului input este cel mai important. Pachetele &lt;br /&gt;
malformate ar putea sa incurce codul de verificare al regulilor, aceastea sunt &lt;br /&gt;
ignorate aici (daca acest lucru se intampla, un mesaj este trimis catre&lt;br /&gt;
syslog).&lt;br /&gt;
&lt;br /&gt;
Chain-ul input: Acesta este primul chain din firewall unde pachetul va fi&lt;br /&gt;
verificat. Daca decizia chain-ului nu este DENY (ignora) sau REJECT, pachetul &lt;br /&gt;
isi continua drumul.&lt;br /&gt;
&lt;br /&gt;
Demasquerade:Daca pachetul este o replica la un pachet asupra caruia a fost&lt;br /&gt;
realizata masquerading, se realizeaza asupra acestuia demasquradare, iar apoi&lt;br /&gt;
se indreapta direct catre chain-ul output. Daca nu folosesti Masquerading IP,&lt;br /&gt;
poti sa stergi mental aceasta din diagrama.&lt;br /&gt;
&lt;br /&gt;
Decizie de rutare: Campul privind destinatia este examinat de catre codul ce&lt;br /&gt;
realizeaza rutarea, pentru a decide daca pachetul trebuie sa se indrepte catre&lt;br /&gt;
un proces local (vezi &quot;Procesul local&quot; de mai jos) sau forwardat catre o &lt;br /&gt;
masina la distanta (vezi &quot;Chain-ul forward&quot; de mai jos).&lt;br /&gt;
&lt;br /&gt;
Procesul local: Un proces ruland pe masina poate primi pachete dupa pasul&lt;br /&gt;
deciziei privind rutarea pachetelor, si poate trimite pachete (care trec prin&lt;br /&gt;
pasul deciziei rutarii, apoi travereseaza chain-ul output)&lt;br /&gt;
&lt;br /&gt;
Interfata lo: Daca pachetele unui proces local, sunt destinate pentru un&lt;br /&gt;
proces local, acestea vor iesi prin chain-ul output cu interfata setata &quot;lo&quot;,&lt;br /&gt;
apoi se vor intoarce prin chain-ul input cu interfata deasemenea &quot;lo&quot;.&lt;br /&gt;
Interfata &quot;lo&quot; este numita interfata loopback.&lt;br /&gt;
&lt;br /&gt;
local: daca pachetul nu a fost creat de un proces local, atunci chain-ul&lt;br /&gt;
forward este verificat, in caz contrar pachetul se duce catre chain-ul output.&lt;br /&gt;
&lt;br /&gt;
Chain-ul forward: Acest chain este traversat de orice pachet care incearca sa&lt;br /&gt;
treaca prin aceasta masina catre alta.&lt;br /&gt;
&lt;br /&gt;
Chain-ul output: Acest chain este traversat de toate pachetele chiar inainte&lt;br /&gt;
de a iesi.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4.1.1. Folosirea ipchains&lt;br /&gt;
&lt;br /&gt;
In primul rand, asigurate ca ai versiunea de ipchains la care se refera acest&lt;br /&gt;
document.&lt;br /&gt;
&lt;br /&gt;
$ ipchains --version&lt;br /&gt;
ipchains 1.3.9, 17-Mar-1999&lt;br /&gt;
&lt;br /&gt;
Observatie: recomand 1.3.4 (care nu are optiuni in format lung, cum ar fi&lt;br /&gt;
&quot;--sport&quot;), 1.3.8 sau mai avansate; acestea fiind foarte stabile.&lt;br /&gt;
&lt;br /&gt;
ipchains are o destul de detaliata pagina de manual (man ipchains), si daca&lt;br /&gt;
ai nevoie de mai multe detalii in particular, poti sa verifici interfata&lt;br /&gt;
pentru programare (man 4 ipfw), sau fisierul net/ipv4/ip_fw.c in sursele&lt;br /&gt;
kernelului 2.1.x, care este (bineinteles) o sursa de incredere.&lt;br /&gt;
&lt;br /&gt;
Mai exista deasemenea o fisa de referinta rapida creata de catre Scott Bronson&lt;br /&gt;
in arhiva surselor, in format US Letter PostScript(TM) si A4.&lt;br /&gt;
&lt;br /&gt;
Sunt mai multe lucruri diferite pe care le poti face cu ipchains. In primul&lt;br /&gt;
rand comenzi prin care poti administra un chain intreg. Incepi cu trei&lt;br /&gt;
chain-uri compilate default pe care nu le poti sterge: input, output si&lt;br /&gt;
forward.&lt;br /&gt;
&lt;br /&gt;
1. Creaza un chain nou (-N).&lt;br /&gt;
2. Sterge un chain gol (-X).&lt;br /&gt;
3. Schimba policy-ul (politica) pentru unul din chain-urile default (-P).&lt;br /&gt;
4. Listeaza regulile dintr-un chain (-L).&lt;br /&gt;
5. Sterge regulile dintr-un chain (-F)&lt;br /&gt;
6. Reseteaza counter-ele pentru pachete si bytes pentru toate regulile&lt;br /&gt;
dintr-un chain (-Z).&lt;br /&gt;
&lt;br /&gt;
Sunt mai multe moduri de a manipula regulile dintr-un chain:&lt;br /&gt;
&lt;br /&gt;
1. Adauga o noua regula intr-un chain (-A).&lt;br /&gt;
2. Introduce o noua regula la o pozitia anumita intr-un chain (-I) (default&lt;br /&gt;
adauga la inceput).&lt;br /&gt;
3. Inlocuieste o regula la o anumita pozitie din chain (-R).&lt;br /&gt;
4. Sterge o regula la o anumita pozitie din chain (-D).&lt;br /&gt;
5. Sterge prima regula care se potriveste din chain (-D).&lt;br /&gt;
&lt;br /&gt;
Sunt cateva operatii si pentru masquerading:&lt;br /&gt;
&lt;br /&gt;
1. Listeaza conexiunile pentru care se fac in mod curent masquerading &lt;br /&gt;
(-M -L).&lt;br /&gt;
2. Stabileste valori de timeout pentru masquerading (-M -S). (Dar citeste si&lt;br /&gt;
&quot;Nu pot preciza valori de timeout pentru masquerading!&quot;)&lt;br /&gt;
&lt;br /&gt;
Ultima (si poate cea mai folositoare) functie iti permite sa verifici ce s-ar&lt;br /&gt;
intampla cu un pachet dat daca ar traversa un chain dat.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4.1.2. Ce vei vedea cand porneste computerul&lt;br /&gt;
&lt;br /&gt;
Inainte de rularea oricarei comenzi ipchains (fii atent, unele distributii&lt;br /&gt;
ruleaza ipchains in scripturile de initializare), nu vor exista nici un fel de&lt;br /&gt;
reguli in nici unul dintre chain-urile incluse default (&quot;input&quot;, &quot;output&quot; si&lt;br /&gt;
&quot;forward&quot;), si fiecare din aceste chain-uri va avea un policy de ACCEPT.&lt;br /&gt;
Aceasta inseamna ca nu exista filtrare de pachete.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4.1.3. Operatii pentru o singura regula&lt;br /&gt;
&lt;br /&gt;
Acesta este unul dintre cele mai importante lucruri; manipularea regulilor.&lt;br /&gt;
Cel mai obisnuit, vei folosi probabil comenzile de adaugare (-A) si de&lt;br /&gt;
stergere (-D). Celelalte (-I pentru introducere si -R pentru inlocuire) sunt&lt;br /&gt;
doar prelungiri ale comenzilor precedente.&lt;br /&gt;
&lt;br /&gt;
Fiecare regula specifica o multime de conditii pe care un pachet trebuie sa le&lt;br /&gt;
indeplineasca, si ce sa faca daca regulile sunt indeplinite (o &quot;tinta&quot;). De&lt;br /&gt;
exemplu, s-ar putea sa doresti sa ignori toate pachetele ICMP venind de la &lt;br /&gt;
adresa 127.0.0.1. Deci, in acest caz conditiile sunt ca protocolul sa fie&lt;br /&gt;
ICMP si adresa sursa sa fie 127.0.0.1. Tinta noastra este &quot;DENY&quot;.&lt;br /&gt;
&lt;br /&gt;
127.0.0.1 este interfata &quot;loopback&quot;, care exista chiar daca nu ai legatura&lt;br /&gt;
reala la o retea. Poti folosi programul &quot;ping&quot; pentru a genera acest tip de&lt;br /&gt;
pachete (pur si simplu trimite pachete ICMP de tip 8 (echo request) la care &lt;br /&gt;
toate host-urile ar trebui sa raspunda cu pachete ICMP de tip 0 (echo replay)). Aceast program este foarte folositor pentru teste.&lt;br /&gt;
&lt;br /&gt;
# ping -c 1 127.0.0.1&lt;br /&gt;
PING 127.0.0.1 (127.0.0.1): 56 data bytes&lt;br /&gt;
64 bytes from 127.0.0.1: icmp_seq=0 ttl=64 time=0.2 ms&lt;br /&gt;
&lt;br /&gt;
--- 127.0.0.1 ping statistics ---&lt;br /&gt;
1 packets transmitted, 1 packets received, 0% packet loss&lt;br /&gt;
round-trip min/avg/max = 0.2/0.2/0.2 ms&lt;br /&gt;
# iptables -A input -s 127.0.0.1 -p icmp -j DENY&lt;br /&gt;
# ping -c 1 127.0.0.1&lt;br /&gt;
PING 127.0.0.1 (127.0.0.1): 56 data bytes&lt;br /&gt;
&lt;br /&gt;
--- 127.0.0.1 ping statistics ---&lt;br /&gt;
1 packets transmitted, 0 packets received, 100% packet loss&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
Poti vedea aici ca primul ping reuseste (&quot;-c 1&quot; spune sa sa trimita doar un&lt;br /&gt;
singur pachet).&lt;br /&gt;
&lt;br /&gt;
Apoi adaugam in coada (-A) chain-ului &quot;input&quot;, o regula ce spune ca&lt;br /&gt;
pentru pachetele de la 127.0.0.1 (&quot;-s 127.0.0.1&quot;) de tip ICMP (&quot;-p icmp&quot;)&lt;br /&gt;
trebuie sa sarim la &quot;DENY&quot; (&quot;-j DENY&quot;).&lt;br /&gt;
&lt;br /&gt;
Apoi testam regula noastra, folosind al doilea ping. Va fi o pauza pana cand&lt;br /&gt;
programul se da batut sa astepte un raspuns care nu va veni niciodata. &lt;br /&gt;
&lt;br /&gt;
Am putea sa stergem regula in  doua moduri. Intai, deoarece stim ca este&lt;br /&gt;
singura regula din chain-ul input, putem folosi o stergere numarata, ca&lt;br /&gt;
in:&lt;br /&gt;
&lt;br /&gt;
# iptables -D input 1&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
Pentru a sterge regula cu numarul 1 din chain-ul input.&lt;br /&gt;
&lt;br /&gt;
Al doilea mod este sa scriem comanda prin care am introdus regula -A, dar sa&lt;br /&gt;
inlocuim -A cu -D. Aceasta este folositor cand ai un chain complex de reguli&lt;br /&gt;
si nu doresti sa le numeri ca sa iti dai seama ca este a 37-a regula de&lt;br /&gt;
care vrei sa scapi. In aces caz, vom folosi:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# ipchains -D input -s 127.0.0.1 -p icmp -j DENY&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
Sintaxa comenzii -D trebuie sa aiba exact aceleasi optiuni cum are comanda -A&lt;br /&gt;
(sau -I, sau -R). Daca sunt reguli identice in acelasi chain, numai prima&lt;br /&gt;
regula va fi stearsa.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4.1.4. Optiuni de filtrare&lt;br /&gt;
&lt;br /&gt;
Am vazut folosirea optiunii &quot;-p&quot; pentru a specifica protocolul, si optiunii&lt;br /&gt;
&quot;-s&quot; pentru a specifica adresa sursa, dar sunt alte optiuni pe care le putem&lt;br /&gt;
folosi pentru a preciza caracteristici ale pachetului. Ceea ce urmeaza este&lt;br /&gt;
un compedium complet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4.1.4.1. Specificarea adreselor IP sursa si destinatie&lt;br /&gt;
&lt;br /&gt;
Adresele IP ale sursei (&quot;-s&quot;) si destinatiei (&quot;-d&quot;) pot fi specificate in &lt;br /&gt;
patru moduri. Cea mai obisnuita forma este sa folosesti numele complet, cum &lt;br /&gt;
ar fi &quot;localhost&quot; sau &quot;www.securityorg.net&quot;. Cea de-a doua cale este sa &lt;br /&gt;
specifici adresa IP cum ar fi &quot;127.0.0.1&quot;.&lt;br /&gt;
&lt;br /&gt;
Cea de a treia si a patra cale permite specificarea unui grup de adrese IP,&lt;br /&gt;
cum ar fi &quot;199.95.207.0/24&quot; sau &quot;199.95.207.0/255.255.255.0&quot;. Amandoua&lt;br /&gt;
specifica orice adresa IP de la 199.95.207.0 pana la 199.95.207.255 inclusiv;&lt;br /&gt;
cifrele dupa &quot;/&quot; spun care parti din adresa IP sunt semnificative. &quot;/32&quot; sau&lt;br /&gt;
&quot;/255.255.255.255&quot; este default (se potriveste cu toata adresa IP). Pentru a&lt;br /&gt;
specifica oricare adresa IP &quot;/0&quot; poate fi folosit, astfel:&lt;br /&gt;
&lt;br /&gt;
# ipchains -A input -s 0/0 -j DENY&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
Aceasta este folosit in mod rar, deoarece efectul de mai sus este asemanator&lt;br /&gt;
cu nespecificare deloc a optiunii &quot;-s&quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4.1.4.2. Specificarea inversa&lt;br /&gt;
&lt;br /&gt;
Multe optiuni, inclusiv optiunile &quot;-s&quot; si &quot;-d&quot; pot avea argumentele precedate &lt;br /&gt;
de &quot;!&quot; (pronuntat &quot;nu&quot;) pentru a corespunde adreselor care NU sunt egale cu &lt;br /&gt;
adresele date. De exemplu, &quot;-s ! localhost&quot; corespunde oricarui pachet care &lt;br /&gt;
nu vine de la localhost.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4.1.4.3. Specificarea protocolului&lt;br /&gt;
&lt;br /&gt;
Protocolul poate fi specificat prin optiunea &quot;-p&quot;. Protocolul poate fi un &lt;br /&gt;
numar ( daca stii valorile numerice de protocol pentru IP) sau un nume pentru &lt;br /&gt;
cazurile speciale de &quot;TCP&quot;, &quot;UDP&quot; sau &quot;ICMP&quot;. Nu conteaza daca se foloseste &lt;br /&gt;
sau nu CAPS, asa ca &quot;tcp&quot; merge la fel ca si &quot;TCP&quot;.&lt;br /&gt;
&lt;br /&gt;
Numele protocolului poate fi precedat de &quot;!&quot;, pentru a inversa, ca si &quot;-p !&lt;br /&gt;
tcp&quot; pentru a specifica pachetele care nu sunt TCP.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4.1.4.3.1. Specificarea porturilor TCP si UDP&lt;br /&gt;
&lt;br /&gt;
Pentru cazul special cand este specificat un protocol TCP si UDP, poate fi&lt;br /&gt;
precizat un argument in plus insemnand portul TCP sau UDP, sau un sir&lt;br /&gt;
(inclusiv capetele sirului) de porturi (citeste insa mai jos &quot;Despre&lt;br /&gt;
fragmente&quot;). Un sir este reprezentat prin caracterul &quot;:&quot;, cum ar fi&lt;br /&gt;
&quot;6000:6010&quot; care acopera 11 numere de porturi, de la 6000 la 6010 inclusiv.&lt;br /&gt;
Daca limita de jos este omisa, atunci este considerata 0. Daca limita de sus&lt;br /&gt;
este omisa, atunci este considerata 65535. Deci, pentru a specifica&lt;br /&gt;
conexiunile TCP venind de la porturile sub 1024, sintaxa ar fi urmatoarea&lt;br /&gt;
&quot;-p TCP -s 0.0.0.0/0 :1023&quot;. Numerele de porturi pot fi specificate si prin&lt;br /&gt;
nume, exemplu &quot;www&quot;.&lt;br /&gt;
&lt;br /&gt;
Observatie: sensul regulii poate fi inversat si in cazul porturilor daca se&lt;br /&gt;
pune in fata acestui argument semnul &quot;!&quot;. Deci, pentru a specifica orice&lt;br /&gt;
pachet care este pachet TCP dar nu este WWW, ai scrie astfel:&lt;br /&gt;
&lt;br /&gt;
-p TCP -d 0.0.0.0/0 ! www&lt;br /&gt;
&lt;br /&gt;
Este important sa realizezi ca &lt;br /&gt;
&lt;br /&gt;
-p TCP -d ! 192.168.1.1 www&lt;br /&gt;
&lt;br /&gt;
este foarte diferit de &lt;br /&gt;
&lt;br /&gt;
-p TCP -d 192.168.1.1 ! www&lt;br /&gt;
&lt;br /&gt;
Prima regula se potriveste cu toate pachetele care sunt de tip TCP, spre&lt;br /&gt;
portul 80 si care nu au ca destinatie adresa 192.168.1.1. Iar, cea de a doua &lt;br /&gt;
regula se potriveste cu toate pachetele de tip TCP care au ca destinatie&lt;br /&gt;
192.168.1.1, fara sa fie spre portul 80.&lt;br /&gt;
&lt;br /&gt;
In sfarsit, pentru regula urmatoare se potrivesc pachetele care nu au ca&lt;br /&gt;
destinatie adresa 192.168.1.1 si nici portul 80.&lt;br /&gt;
&lt;br /&gt;
-p TCP -d ! 192.168.1.1 ! www&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4.1.4.3.2. Specificarea tipului si codului ICMP&lt;br /&gt;
&lt;br /&gt;
Cand este precizat tipul de protocol ICMP, exista deasemenea argumente ce pot&lt;br /&gt;
fi precizate in plus. ICMP nu are porturi. ICMP are un tip si un cod.&lt;br /&gt;
&lt;br /&gt;
Poti sa le specifici folosind nume ICMP (vezi ipchains -h icmp pentru a lista&lt;br /&gt;
aceste nume) dupa optiunea &quot;-s&quot;, sau ca numere insemnand tipul ICMP si codul,&lt;br /&gt;
unde tipul urmeaza dupa optiunea &quot;-s&quot;, iar codul dupa optiunea &quot;-d&quot;.&lt;br /&gt;
&lt;br /&gt;
Numele ICMP sunt destul de lungi: trebuie sa folosesti doar destul de multe&lt;br /&gt;
litere astfel incat sa se deosebeasca unele de altele.&lt;br /&gt;
&lt;br /&gt;
Iata o mica tabela pentru cele mai intalnite tipuri de pachete ICMP:&lt;br /&gt;
&lt;br /&gt;
Numar   Nume                     Cerut de catre&lt;br /&gt;
&lt;br /&gt;
0       echo-reply               ping&lt;br /&gt;
3       destination-unreachable  Any TCP/UDP traffic.&lt;br /&gt;
5       redirect                 routing if not running routing daemon&lt;br /&gt;
8       echo-request             ping&lt;br /&gt;
11      time-exceeded            traceroute&lt;br /&gt;
&lt;br /&gt;
Observatie: numele ICMP nu pot fi precedate deocamdata de semnul &quot;!&quot;.&lt;br /&gt;
&lt;br /&gt;
Sub nici o forma sa nu blochezi toate pachetele ICMP de tip 3! Citeste mai jos&lt;br /&gt;
&quot;Pachete icmp&quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4.1.4.4. Specificarea interfetei&lt;br /&gt;
&lt;br /&gt;
Optiunea &quot;-i&quot; specifica numele interfatei cu care sa corespunda. O interfata&lt;br /&gt;
este dispozitivul fizic prin care intra pachetul sau prin care iese pachetul.&lt;br /&gt;
Poti folosi comanda ifconfig pentru a lista interfetele care sunt &quot;sus&quot;. &lt;br /&gt;
(in stare de functionare in acel moment).&lt;br /&gt;
&lt;br /&gt;
Interfata pentru pentru pachete ce sosesc (pachetele ce traverseaza chain-ul&lt;br /&gt;
input) este considerata interfata prin care au intrat. In mod logic, interfata&lt;br /&gt;
pentru pachetele care pleaca (pachetele ce traverseaza chain-ul output) este&lt;br /&gt;
interfata prin care vor iesi. Interfata pentru pachetele ce traverseaza&lt;br /&gt;
chain-ul forward este deasemenea interfata prin care vor iesi pachetele.&lt;br /&gt;
&lt;br /&gt;
Este perfect valabil sa specifici o interfata care nu exista;&lt;br /&gt;
regula nu se va potrivi cu nici un pachet pana cand interfata nu este sus.&lt;br /&gt;
Aceasta este extrem de folositor pentru legaturi PPP de dial-up (de obicei&lt;br /&gt;
interfete ppp0) si asemanatoare.&lt;br /&gt;
&lt;br /&gt;
Ca un caz special, un nume de interfata terminandu-se cu &quot;+&quot; se va potrivi cu&lt;br /&gt;
toate interfetele (fie ca exista sau nu) care incep cu acel sir de caractere.&lt;br /&gt;
De exemplu pentru a specifica o regula care sa se potriveasca tuturor&lt;br /&gt;
interfetelor PPP, optiunea -i ppp+ ar fi folosita.&lt;br /&gt;
&lt;br /&gt;
Numele interfetei poate fi precedata de &quot;!&quot;, pentru a corespunde cu pachetul &lt;br /&gt;
care nu se potriveste cu intefata specificata.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4.1.4.5. Specificarea doar a pachetelor TCP SYN&lt;br /&gt;
&lt;br /&gt;
Uneori este folositor sa permiti conexiunile TCP intr-o singura directie, nu&lt;br /&gt;
si in cealalta. De exemplu, ai putea sa permiti conexiuni catre un server&lt;br /&gt;
extern WWW, dar nici o conexiune de la acel server.&lt;br /&gt;
&lt;br /&gt;
Naiv ar fi sa blochezi pachetele TCP dinspre server. Din pacate, conexiunile&lt;br /&gt;
TCP cer ca pachetele sa circule in ambele directii.&lt;br /&gt;
&lt;br /&gt;
Solutia ar fi sa blochezi numai pachetele folosite pentru a initia&lt;br /&gt;
conexiuni. Aceste pachete sunt numite pachete SYN (ok, tehnic sunt pachete cu&lt;br /&gt;
flag SYN pus si cu flagurile RST si ACK nepuse, dar le numim pe scurt&lt;br /&gt;
pachete SYN). Prin ignorarea acestor pachete, putem sa oprim aceste&lt;br /&gt;
conexiuni.&lt;br /&gt;
&lt;br /&gt;
Optiunea &quot;-y&quot; este folosita pentru aceasta; este valida numai pentru&lt;br /&gt;
regulile in care specificam tcp ca protocol. De exemplu, pentru a specifica&lt;br /&gt;
incercarile de conexiune de la 192.168.1.1:&lt;br /&gt;
&lt;br /&gt;
-p TCP -s 192.168.1.1 -y&lt;br /&gt;
&lt;br /&gt;
Aceasta optiune poate fi inversat prin precedarea &quot;-y&quot; cu semnul &quot;!&quot;, care se&lt;br /&gt;
potriveste pentru toate pachetele care nu initiaza conexiuni.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4.1.4.6. Despre fragmente&lt;br /&gt;
&lt;br /&gt;
Uneori un pachet este prea mare pentru a incape cu totul pe conexiune. Cand&lt;br /&gt;
aceasta se intampla, pachetul este divizat in fragmente, si trimis ca pachete&lt;br /&gt;
multiple. Celalalt capat reansambleaza aceste fragmente pentru a construi&lt;br /&gt;
intregul pachet.&lt;br /&gt;
&lt;br /&gt;
Problema cu fragmentele este ca unele dintre argumentele descrise mai sus (in&lt;br /&gt;
particular portul sursa, portul destinatie, tipul ICMP, codul ICMP, flagul syn&lt;br /&gt;
TCP) cere kernelului sa verifice inceputul pachetului, care exista numai in&lt;br /&gt;
primul pachet.&lt;br /&gt;
&lt;br /&gt;
Daca sistemul tau este singura conexiune catre o retea externa, atunci poti&lt;br /&gt;
spune kernelului Linux sa reansambleze toate pachetele care trec prin el, prin&lt;br /&gt;
compilarea kernelului cu optiunea &quot;IP: always defragment set&quot; egala cu &quot;Y&quot;.&lt;br /&gt;
&lt;br /&gt;
In caz contrar, este important sa stii cum sunt tratate fragmentele de catre&lt;br /&gt;
regulile de filtrare. Orice regula de filtrare care cere informatii pe care&lt;br /&gt;
nu le avem nu se va potrivi. Aceasta inseamna ca primul fragment este tratat&lt;br /&gt;
ca orice alt pachet. Al doilea si urmatoarele nu vor mai fi. De aceea o&lt;br /&gt;
regula  -p tcp -s 192.168.1.1 www (specificand un port sursa &quot;www&quot;) nu se vor&lt;br /&gt;
potrivi cu un fragment (altul decat primul). Nici regula opusa nu va face &lt;br /&gt;
acest lucru -p TCP -s 192.168.1.1 ! www.&lt;br /&gt;
&lt;br /&gt;
Oricum, poti sa specifici o regula special pentru fragmentul al doilea si&lt;br /&gt;
urmatoarele, folosind optiunea &quot;-f&quot;. Evident, nu este corect sa specifici&lt;br /&gt;
porturi TCP sau UDP, tip ICMP, cod ICMP, sau flag syn TCP, intr-o asemenea&lt;br /&gt;
regula cu referire la fragmente.&lt;br /&gt;
&lt;br /&gt;
Este de asemenea legal sa specifici ca o regula nu se aplica la al doilea si &lt;br /&gt;
urmatoarele fragmente, prin precedarea lui &quot;-f&quot; cu &quot;!&quot;.&lt;br /&gt;
&lt;br /&gt;
De obicei este considerat sigur sa lasi sa treaca al doilea si urmatoarele&lt;br /&gt;
fragmente, deoarece filtrarea va afecta primul fragment, si de aceea previne&lt;br /&gt;
reansamblarea pe calculatorul destinatie; cu toate acestea, sunt cunoscute&lt;br /&gt;
bug-uri care permit caderea sistemului doar prin simpla trasnmitere de&lt;br /&gt;
fragmente. Este decizia ta.&lt;br /&gt;
&lt;br /&gt;
Nota pentru network-heads: pachetele cu malformatii (pachete TCP, UDP si&lt;br /&gt;
ICMP prea scurte codului de firewall ca sa citeasca tipul portului sau codul&lt;br /&gt;
ICMP si tipul) sunt tratate ca fragmente de asemenea. Doar fragmentele TCP&lt;br /&gt;
care incep de la pozitia 8 sunt ignorate de catre kernel (un mesaj este trimis&lt;br /&gt;
catre syslog, daca acest lucru se intampla). De exemplu, urmatoarea regula va&lt;br /&gt;
ignora toate fragmentele ce au ca destinatie 192.168.1.1:&lt;br /&gt;
&lt;br /&gt;
# ipchains -A output -f -d 192.168.1.1 -j DENY&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4.1.5. Efectele filtrarii de pachete&lt;br /&gt;
&lt;br /&gt;
Acum stim toate modurile in care putem sa folosim o regula pentru a se potrivi&lt;br /&gt;
anumitor pachete. Daca un pachet se potriveste cu o regula, urmatoarele&lt;br /&gt;
lucruri se intampla:&lt;br /&gt;
&lt;br /&gt;
1. Counter-ul de byte pentru acea regula creste cu o valoare egala cu&lt;br /&gt;
marimea pachetului (header si restul pachetului)&lt;br /&gt;
2. Counter-ul de pachete pentru acea regula este incrementat.&lt;br /&gt;
3. Daca regula o cere, informatii despre pachet sunt scrise in fisierele de&lt;br /&gt;
log.&lt;br /&gt;
4. Daca regula o cere, TOS al pachetului este schimbat.&lt;br /&gt;
5. Daca regula o cere, pachetul este marcat (acest lucru nu este posibil in&lt;br /&gt;
kernelurile ver. 2.0).&lt;br /&gt;
6. Tinta regulii este examinata pentru a decide soarta acelui pachet.&lt;br /&gt;
&lt;br /&gt;
Pentru varietate le voi examina in ordinea importantei.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4.1.5.1. Specificarea unei tinte&lt;br /&gt;
&lt;br /&gt;
O tinta spune kernelului ce sa faca pachetului care se potriveste unei&lt;br /&gt;
reguli. ipchains foloseste &quot;-j&quot; (in sensul &quot;sare la&quot;) pentru argumentul&lt;br /&gt;
tintei. Numele tintei trebuie sa fie mai mic decat 8 caractere, si conteaza&lt;br /&gt;
daca este scris cu litere mici sau mari: &quot;RETURN&quot; sau &quot;return&quot; sunt lucruri&lt;br /&gt;
diferite.&lt;br /&gt;
&lt;br /&gt;
Cel mai simplu caz este atunci cand nu este nici o tinta specificata. Acest&lt;br /&gt;
tip de regula (numita uneori &quot;accounting rule&quot;) este folositoare cand dorim &lt;br /&gt;
sa avem o evidenta a numarului de pachete care indeplinesc anumite conditii.&lt;br /&gt;
Chiar daca se potriveste sau nu kernelul examineaza urmatoarea regula din&lt;br /&gt;
chain. De exemplu, pentru a numara pachetele care vin de la 192.168.1.1:&lt;br /&gt;
&lt;br /&gt;
# ipchains -A input -s 192.168.1.1&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
(Folosind &quot;ipchains -L -v&quot; putem vedea counter-ele de pachete si bytes&lt;br /&gt;
asociate fiecarei reguli.)&lt;br /&gt;
&lt;br /&gt;
Exista sase tinte speciale. Primele trei sunt destul de simple: ACCEPT,&lt;br /&gt;
REJECT si DENY. ACCEPT lasa pachetul sa treaca. DENY ignora pachetul ca si&lt;br /&gt;
cand nu ar fi fost primit. REJECT ignora pachetul, insa (daca nu a fost un&lt;br /&gt;
pachet ICMP) trimite un pachet replica ICMP catre sursa care spune ca&lt;br /&gt;
destinatia nu poate fi atinsa (destination unreachable).&lt;br /&gt;
&lt;br /&gt;
Urmatoarea regula, MASQ spune kernelului sa masqueradeze pachetul. Pentru ca&lt;br /&gt;
aceasta tinta sa poate fi folosita trebuie sa fie compilat kernelul cu suport&lt;br /&gt;
pentru &quot;IP Masquerading&quot;. Pentru detalii privind masquerading citeste&lt;br /&gt;
Masquerading-HOWTO si anexa &quot;Diferente intre ipchains si ipfwadm&quot;. Aceasta&lt;br /&gt;
tinta este corecta numai pentru pachetele ce traverseaza chain-ul forward.&lt;br /&gt;
&lt;br /&gt;
O alta tinta importnta este REDIRECT care comunica kernelului sa trimita un&lt;br /&gt;
pachet catre un port local in loc de destinatia spre care se indrepta.&lt;br /&gt;
Aceasta poate fi specificata doar pentru regulile in care se specifica&lt;br /&gt;
protocolul TCP sau UDP. Optional, poate fi specificat un port, sub forma de&lt;br /&gt;
nume sau numar, in continuare la &quot;-j REDIRECT&quot; care va determina ca pachetul&lt;br /&gt;
sa fie redirectat catre un anumit port, nu spre portul spre care se indrepta.&lt;br /&gt;
Aceasta tinta este valabila doar pentru pachetele ce traverseaza chain-ul&lt;br /&gt;
input.&lt;br /&gt;
&lt;br /&gt;
Ultima tinta este RETURN, care este similar cu ajungerea pachetului direct la&lt;br /&gt;
sfarsitul chain-ului (citeste &quot;Setarea policy-ului&quot; de mai jos).&lt;br /&gt;
&lt;br /&gt;
Orice alta tinta indica un chain definit de catre utilizator (cum este descris&lt;br /&gt;
in &quot;Operatii pentru un chain&quot; de mai jos). Pachetul va incepe traversarea&lt;br /&gt;
regulilor in acel chain. Daca acel chain nu decide soarta pachetului, odata&lt;br /&gt;
traversarea terminata in acel chain, traversarea este continuata de la&lt;br /&gt;
urmatoarea regula din chain-ul anterior.&lt;br /&gt;
&lt;br /&gt;
Considera doua chain-uri: input (chain-ul predefinit) si test (un chain&lt;br /&gt;
definit de catre utitlizator).&lt;br /&gt;
&lt;br /&gt;
`input&#39;                         `Test&#39;&lt;br /&gt;
----------------------------    ----------------------------&lt;br /&gt;
| Rule1: -p ICMP -j REJECT |    | Rule1: -s 192.168.1.1    |&lt;br /&gt;
|--------------------------|    |--------------------------|&lt;br /&gt;
| Rule2: -p TCP -j Test    |    | Rule2: -d 192.168.1.1    |&lt;br /&gt;
|--------------------------|    ----------------------------&lt;br /&gt;
| Rule3: -p UDP -j DENY    |&lt;br /&gt;
----------------------------&lt;br /&gt;
&lt;br /&gt;
Considera un pachet TCP venind de la 192.168.1.1 si ducandu-se catre 1.2.3.4.&lt;br /&gt;
Acesta intra in chain-ul INPUT. Rule1 nu se potriveste cu el, Rule2 se&lt;br /&gt;
potriveste asa ca urmatoarea regula care este examinata este prima din&lt;br /&gt;
chain-ul test. Rule1 se potriveste dar nu este specificata nici o tinta,&lt;br /&gt;
asa ca urmatoarea regula este examinata. Rule2 nu se potriveste asa ca am&lt;br /&gt;
ajuns la sfarsitul chain-ului. Astfel ne reintoarcem in chain-ul INPUT, unde&lt;br /&gt;
am examinat Rule2, asa ca examinam Rule3 care nici aceasta nu se potriveste.&lt;br /&gt;
&lt;br /&gt;
Deci calea urmata de catre pachet este:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
v    __________________________&lt;br /&gt;
`input&#39;                |   /    `Test&#39;                v&lt;br /&gt;
------------------------|--/    -----------------------|----&lt;br /&gt;
| Rule1                 | /|    | Rule1                |   |&lt;br /&gt;
|-----------------------|/-|    |----------------------|---|&lt;br /&gt;
| Rule2                 /  |    | Rule2                |   |&lt;br /&gt;
|--------------------------|    -----------------------v----&lt;br /&gt;
| Rule3                 /--+___________________________/&lt;br /&gt;
------------------------|---&lt;br /&gt;
v&lt;br /&gt;
&lt;br /&gt;
Citeste sectiunea &quot;Cum sa iti organizezi regulile firewall-ului&quot; pentru&lt;br /&gt;
modalitati efective de a folosi chain-uri definite de catre utilizator.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4.1.5.2. Logarea pachetelor&lt;br /&gt;
(nt. log= jurnal,logare=scriere in fisiere de log) &lt;br /&gt;
&lt;br /&gt;
Aceasta este un efect secundare pe care il poate avea faptul ca un pachet sa&lt;br /&gt;
se potriveasca cu o regula, poti sa decizi ca informatii despre pachetul &lt;br /&gt;
respectiv sa fie scris in fisierele de log prin folosirea optiunii &quot;-l&quot;. In&lt;br /&gt;
mod normal nu vei dori acest lucru pentru pachetele normale, dar aceasta este&lt;br /&gt;
o optiune folositoare in cazul unor anumite pachete.&lt;br /&gt;
&lt;br /&gt;
Kernelul scrie aceste informatii astfel:&lt;br /&gt;
&lt;br /&gt;
Packet log: input DENY eth0 PROTO=17 192.168.2.1:53 192.168.1.1:1025&lt;br /&gt;
L=34 S=0x00 I=18 F=0x0000 T=254&lt;br /&gt;
&lt;br /&gt;
Mesajul din loguri este special conceput concis, continand informatii&lt;br /&gt;
folositoare. Contine urmatoarele:&lt;br /&gt;
&lt;br /&gt;
1. &quot;input&quot; este chain-ul care a continut regula care s-a potrivit cu pachetul,&lt;br /&gt;
cauzand mesajul din loguri.&lt;br /&gt;
&lt;br /&gt;
2. &quot;DENY&quot; este ceea ce a decis regula privind soarta pachetului. Daca aceasta&lt;br /&gt;
este &quot;-&quot; atunci regula nu a afectat deloc pachetul (o regula de&lt;br /&gt;
contabilizare).&lt;br /&gt;
&lt;br /&gt;
3. &quot;eth0&quot; este numele interfetei. Cum pachetul a fost logat in chain-ul input,&lt;br /&gt;
inseamna ca &quot;eth0&quot; este numele interfetei de intrare.&lt;br /&gt;
&lt;br /&gt;
4. &quot;PROTO=17&quot; insemna ca pachetul apartine protocolului 17. O lista cu&lt;br /&gt;
numerele de protocoale este data in fisierul &quot;/etc/protocols&quot;. Cele mai&lt;br /&gt;
intalnite sunt 1 (ICMP), 6 (TCP) si 17 (UDP).&lt;br /&gt;
&lt;br /&gt;
5. &quot;192.168.2.1&quot; este sursa IP al pachetului.&lt;br /&gt;
&lt;br /&gt;
6. &quot;:53&quot; reprezinta portul sursa al pachetului. Uitandu-ne in fisierul&lt;br /&gt;
&quot;/etc/services&quot; vedem ca acest numar corespunde portului &quot;domain&quot; (probabil ca&lt;br /&gt;
este un pachet replica de la serverul DNS). Pentru TCP si UDP, acest numar&lt;br /&gt;
reprezinta portul sursa. Pentru ICMP, este tipul ICMP. Pentru alte protocoale&lt;br /&gt;
va fi 65535.&lt;br /&gt;
&lt;br /&gt;
7. &quot;192.168.1.1&quot; este adresa IP destinatie.&lt;br /&gt;
&lt;br /&gt;
8. &quot;:1025&quot; inseamna ca portul destinatie este 1025. Pentru UDP si TCP acesta&lt;br /&gt;
reprezinta portul destinatie. Pentru ICMP reprezinta codul. Pentru altele va&lt;br /&gt;
fi 65535.&lt;br /&gt;
&lt;br /&gt;
9. &quot;L=34&quot; inseamna ca pachetul este in marime totala de 34 bytes.&lt;br /&gt;
&lt;br /&gt;
10. &quot;S=0x00&quot; reprezinta tos (type of service). Imparte la 4 aceasta valoare&lt;br /&gt;
pentru a avea tos in formatul folosit de catre ipchains.&lt;br /&gt;
&lt;br /&gt;
11. &quot;I=18&quot; reprezinta IP ID.&lt;br /&gt;
&lt;br /&gt;
12. &quot;F=0x0000&quot; reprezinta offset-ul de fragment pe 16 biti plus flaguri. O&lt;br /&gt;
valoare ce incepe cu &quot;0x4&quot; sau &quot;0x5&quot; inseamna ca bit-ul &quot;Don&#39;t Fragment&quot;&lt;br /&gt;
este pus. &quot;0x2&quot; sau &quot;0x3&quot; inseamna ca bitul &quot;More Fragments&quot; este pus;&lt;br /&gt;
asteapta-te sa urmeze fragmente dupa acesta. Restul numarului reprezinta&lt;br /&gt;
offsetul pentru acest fragment, impartit la 8.&lt;br /&gt;
&lt;br /&gt;
13. &quot;T=254&quot; reprezinta Time To Live (ttl, timpul de existenta) al pachetului.&lt;br /&gt;
Aceasta valoare este decrementata la fiecare link pe care il trece, si incepe&lt;br /&gt;
deobicei la 15 sau 255.&lt;br /&gt;
&lt;br /&gt;
14. &quot;(#5)&quot; in kernelurile mai recente (versiunile peste 2.2.9, inclusiv)&lt;br /&gt;
reprezinta numarul reguli care a determinat mesajul.&lt;br /&gt;
&lt;br /&gt;
Pe sisteme standard Linux, mesajul kernelului este preluat de klogd (daemonul&lt;br /&gt;
de logare al kernelului) care paseaza mai departe mesajul catre syslogd&lt;br /&gt;
(deamonul pentru logare al sistemului). Fisierul &quot;/etc/syslog.conf&quot;&lt;br /&gt;
controleaza comportamentul deamonului syslogd, specificand unde sa afiseze&lt;br /&gt;
mesajele primite de la un anumit proces si nivelul de loggare al mesajului&lt;br /&gt;
respectiv.&lt;br /&gt;
&lt;br /&gt;
De exemplu, pe sistemul meu, &quot;/etc/syslog.conf&quot; contine doua linii care&lt;br /&gt;
specifica afisare mesajelor care se potrivesc cu &quot;kern.info&quot;.&lt;br /&gt;
&lt;br /&gt;
kern.*                          -/var/log/kern.log&lt;br /&gt;
*.=info;*.=notice;*.=warn;\&lt;br /&gt;
auth,authpriv.none;\&lt;br /&gt;
cron,daemon.none;\&lt;br /&gt;
mail,news.none          -/var/log/messages&lt;br /&gt;
&lt;br /&gt;
Aceasta inseamna ca mesajele sunt duplicate in &quot;/var/log/kern.log&quot; si in&lt;br /&gt;
&quot;/var/log/messages&quot;. Pentru mai multe detalii, vezi &quot;man syslogd.conf&quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4.1.5.3. Schimbarea tos (type of service)&lt;br /&gt;
&lt;br /&gt;
Exista patru biti rar folositi in headerul IP, numiti biti tipul serviciului &lt;br /&gt;
(TOS). Valorea acestor biti determina modul in care vor fi tratate pachetele;&lt;br /&gt;
cei patru biti sunt &quot;intarziere minima&quot;, &quot;transmitere maxima&quot;, &quot;maxima&lt;br /&gt;
siguranta&quot; si &quot;cost minim&quot;. Doar unul dintre acesti biti este permis sa fie&lt;br /&gt;
setat. Rob van Nieuwkerk, autorul codul de modificare al TOS, exemplifica:&lt;br /&gt;
&lt;br /&gt;
In special &quot;intarziere minima&quot; este important pentru mine. L-am setat&lt;br /&gt;
pentru pachetele &quot;interactive&quot; de pe ruterul linux. Sunt in spatele&lt;br /&gt;
unei legaturi de 33.6K. Linux da prioritate pachetelor in trei cozi de&lt;br /&gt;
asteptare. In acest mod am o performanta pentru traficul interactiv in&lt;br /&gt;
timp ce fac download-uri (ar fi putut merge mai repede, daca nu ar fi&lt;br /&gt;
fost o asa coada de asteptare in driver-ul pentru portul serial, &lt;br /&gt;
dar intarziere este acum de numai 1.5 secunde).&lt;br /&gt;
&lt;br /&gt;
Nota: evident, nu ai nici un control asupra pachetelor care vin; poti controla&lt;br /&gt;
numai prioritatea pachetelor care pleaca. Pentru a negocia prioritatile cu&lt;br /&gt;
celalalt capat este necesar un protocol ca RSVP (nu ma intrebati, nu cunosc&lt;br /&gt;
nimic despre el).&lt;br /&gt;
&lt;br /&gt;
Cea mai intalnita folosire este setarea conexiunilor ftp si telnet &quot;intarziere&lt;br /&gt;
minima&quot; si datelor FTP &quot;transmitere maxima&quot;. Aceasta ar putea fi realizata&lt;br /&gt;
dupa cum urmeaza:&lt;br /&gt;
&lt;br /&gt;
ipchains -A output -p tcp -d 0.0.0.0/0 telnet -t 0x01 0x10&lt;br /&gt;
ipchains -A output -p tcp -d 0.0.0.0/0 ftp -t 0x01 0x10&lt;br /&gt;
ipchains -A output -p tcp -s 0.0.0.0/0 ftp-data -t 0x01 0x08&lt;br /&gt;
&lt;br /&gt;
Optiunea &quot;-t&quot; are doi parametri, amandoi in format hexazecimal. Aceaste&lt;br /&gt;
argumete permite modificarea compleza a bitilor TOS: prima valoare si&lt;br /&gt;
valoarea curenta a TOS-ului sunt adunate pe biti, apoi a doua valoare este&lt;br /&gt;
XOR-uita cu aceasta. Daca aceasta este prea confuz, foloseste urmatoarea&lt;br /&gt;
tabela:&lt;br /&gt;
&lt;br /&gt;
TOS Name                    Value           Typical Uses&lt;br /&gt;
&lt;br /&gt;
Minimum Delay     - intarziere minima   0x01 0x10       ftp, telnet&lt;br /&gt;
Maximum Throughput - transmitere maxima  0x01 0x08       ftp-data&lt;br /&gt;
Maximum Reliability - maxima siguranta  0x01 0x04       snmp&lt;br /&gt;
Minimum Cost        - cost minim  0x01 0x02       nntp&lt;br /&gt;
&lt;br /&gt;
Andi Kleen precizeaza urmatoarele:&lt;br /&gt;
&lt;br /&gt;
Poate ar fi folositor sa  facem legatura cu parametrul txqueue-len al ifconfig&lt;br /&gt;
in discutia despre biti TOS. Lungimea default a cozii de asteptare pentru&lt;br /&gt;
interfata este optimizata pentru placile ethernet, pentru modemuri aceasta&lt;br /&gt;
este prea lunga rezultand un randament scazut al planificarii in 3 benzi (in &lt;br /&gt;
care punerea in lista de asteptare este realizata de catre TOS). Este o idee&lt;br /&gt;
buna sa o setezi cu o valoare optima intre 4-10 pentru modem sau legaturi&lt;br /&gt;
simple ISDN; pentru mai multe interfete o coada de asteptare mai lunga este&lt;br /&gt;
necesara. Aceasta este o problema pentru kernelurile 2.0 si 2.1, dar in 2.1&lt;br /&gt;
este disponibila o optiune pentru ifconfig (cu o versiune recenta de&lt;br /&gt;
nettools), pe cand in 2.0 sunt necesare patch-uri pentru codul sursa al&lt;br /&gt;
driverelor.&lt;br /&gt;
&lt;br /&gt;
Deci, pentru a avea beneficii maxime din manipularea TOS pentru conexiuni PPP,&lt;br /&gt;
da comanda &quot;ifconfig $1 txqueuelen&quot; in scriptul /etc/ppp/ip-up. Numarul care&lt;br /&gt;
trebuie folosit depinde de viteza modemului si marimea bufferului; dupa cum&lt;br /&gt;
spune si Andi:&lt;br /&gt;
&lt;br /&gt;
Cea mai optima valoare pentru o configuratie data trebuie experimentata. Daca&lt;br /&gt;
listele de asteptare sunt prea scurte pe un ruter, atunci pachetele vor fi&lt;br /&gt;
ignorate. Deasemenea exista beneficii chiar fara rescrierea TOS, rescriere TOS&lt;br /&gt;
este folositoare pentru programele necooperante (dar toate programele standard&lt;br /&gt;
ce folosesc Linux sunt cooperante).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4.1.5.4. Marcarea unui pachet&lt;br /&gt;
&lt;br /&gt;
Acest lucru permite interctiuni puternice si complexe cu noua implemetare &lt;br /&gt;
Quality of Service apartinand lui Alex Kuznetsov, la fel ca si forwardarea&lt;br /&gt;
bazata pe marcarea pachetelor in kernelurile versiunea 2.1 si mai avansate. &lt;br /&gt;
Aceasta optiune este ignorata in ver. 2.0.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4.1.5.5. Operatii pentru un chain&lt;br /&gt;
&lt;br /&gt;
O foarte folositoare caracteristica a ipchains-ului este posibilitatea&lt;br /&gt;
gruparii regulilor in chain-uri. Poti sa denumesti chain-urile cum doresti,&lt;br /&gt;
atata timp cat nu intra in conflict cu chain-urile predefinite  (input,&lt;br /&gt;
output, forward) sau cu tintele (MASQ, REDIRECT, ACCEPT, DENY, REJECT sau &lt;br /&gt;
RETURN). Recomand sa folosesti numirea chain-urile cu litere mari, deoarece&lt;br /&gt;
voi folosi numele mari pentru viitoare extensii. Numele unui chain poate fi in&lt;br /&gt;
lungime de pana la 8 caractere.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4.1.5.6. Crearea unui chain nou&lt;br /&gt;
&lt;br /&gt;
Sa creeam un chain nou cu numele de test.&lt;br /&gt;
&lt;br /&gt;
# ipchains -N test&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
Este simplu. Acum poti sa pui reguli in el in felul in care este prezentat mai&lt;br /&gt;
sus.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4.1.5.7. Stergerea unui chain&lt;br /&gt;
&lt;br /&gt;
Stergerea unui chain este simpla de asemenea.&lt;br /&gt;
&lt;br /&gt;
# ipchains -X test&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
De ce &quot;-X&quot;, pentru ca toate literele bune au fost folosite.&lt;br /&gt;
&lt;br /&gt;
Exista doua restrictii in ceea ce priveste stergerea de chain-uri: chain-ul&lt;br /&gt;
trebuie sa fie gol (vezi &quot;Stergerea tuturor regulilor unui chain&quot; de mai jos)&lt;br /&gt;
si nu trebuie sa fie tinta nici unei reguli. Nu poti sterge nici unul dintre&lt;br /&gt;
chain-urile predefinite.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4.1.5.8. Stergerea tuturor regulilor unui chain&lt;br /&gt;
&lt;br /&gt;
Si acest lucru este simplu de realizat prin optiunea &quot;-F&quot;, de exemplu:&lt;br /&gt;
&lt;br /&gt;
# ipchains -F forward&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
Daca nu specifici un chain atunci toate regulile vor fi sterse.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4.1.5.9. Listarea regulilor unui chain&lt;br /&gt;
&lt;br /&gt;
Poti lista toate regulile dintr-un chain folosind comanda &quot;-L&quot;:&lt;br /&gt;
&lt;br /&gt;
# ipchains -L input&lt;br /&gt;
Chain input (refcnt = 0): (policy ACCEPT)&lt;br /&gt;
target     prot opt    source                destination           ports&lt;br /&gt;
ACCEPT     icmp -----  anywhere              anywhere              any&lt;br /&gt;
# ipchains -L test&lt;br /&gt;
Chain test (refcnt = 1):&lt;br /&gt;
target     prot opt    source                destination           ports&lt;br /&gt;
DENY       icmp -----  localnet/24           anywhere              any&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
&quot;Refcnt-ul&quot; afisat la listarea regulilor din chain-ul test, indica numarul de&lt;br /&gt;
reguli care au ca tinta chain-ul test. Valoarea acesteia trebuie sa fie 0 (si&lt;br /&gt;
chain-ul sa fie gol) inainte ca acest chain sa poata fi sters.&lt;br /&gt;
&lt;br /&gt;
Daca numele chain-ului este omis atunci toate chain-urile sunt listate chiar&lt;br /&gt;
si cele goale.&lt;br /&gt;
&lt;br /&gt;
Sunt trei optiuni care pot fi folosite impreuna cu &quot;-L&quot;. Optiunea &quot;-n&quot;&lt;br /&gt;
(numeric) este foarte folositoare deorece impiedica ipchains sa incerce&lt;br /&gt;
rezolvarea IP-lor in nume, care (daca folosesti ca majoritatea oamenilor DNS)&lt;br /&gt;
va cauza mari intarzieri daca DNS-ul tau nu este configurat corect, sau ai&lt;br /&gt;
filtrat cererile catre serverele DNS. Cauzeaza deasemenea afisarea porturilor&lt;br /&gt;
sub forma de numere, mai degraba decat nume.&lt;br /&gt;
&lt;br /&gt;
Optiunea &quot;-v&quot; iti arata toate detaliile regulii, cum ar fii counter-ele de&lt;br /&gt;
pachete si bytes, mask-urile TOS, interfetele si marcajul pachetelor. In caz&lt;br /&gt;
contrar aceste optiuni sunt omise. De exemplu:&lt;br /&gt;
&lt;br /&gt;
# ipchains -v -L input&lt;br /&gt;
Chain input (refcnt = 1): (policy ACCEPT)&lt;br /&gt;
pkts bytes target     prot opt   tosa tosx  ifname    mark        source                destination           ports&lt;br /&gt;
10   840 ACCEPT     icmp ----- 0xFF 0x00  lo                    anywhere              anywhere              any&lt;br /&gt;
&lt;br /&gt;
Observati ca valoarea countere-lor pentru pachete si bytes sunt afisate cu&lt;br /&gt;
ajutorul sufixelor &quot;K&quot;, &quot;M&quot; sau &quot;G&quot; pentru 1000, 1.000.000 si respectiv&lt;br /&gt;
1.000.000.000. Folosirea optiunii &quot;-x&quot; (expandeaza numerele) afiseaza numerele&lt;br /&gt;
in format lung in ca bytes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4.1.5.10. Resetarea (aducerea la 0) a counter-elor&lt;br /&gt;
&lt;br /&gt;
Este folositor sa ai posibilitatea de a reseta counter-ele. Aceasta se&lt;br /&gt;
realizeaza cu ajutorul optiunii &quot;-Z&quot;. De exemplu:&lt;br /&gt;
&lt;br /&gt;
# ipchains -v -L input&lt;br /&gt;
Chain input (refcnt = 1): (policy ACCEPT)&lt;br /&gt;
pkts bytes target     prot opt   tosa tosx  ifname    mark        source                destination           ports&lt;br /&gt;
10   840 ACCEPT     icmp ----- 0xFF 0x00  lo                    anywhere              anywhere              any&lt;br /&gt;
# ipchains -Z input&lt;br /&gt;
# ipchains -v -L input&lt;br /&gt;
Chain input (refcnt = 1): (policy ACCEPT)&lt;br /&gt;
pkts bytes target     prot opt   tosa tosx  ifname    mark        source                destination           ports&lt;br /&gt;
0     0 ACCEPT     icmp ----- 0xFF 0x00  lo                    anywhere              anywhere              any&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
Problema cand abordezi lucrurile in acest mod este ca uneori doresti sa vezi&lt;br /&gt;
valorile counter-elor chiar inainte de a le reseta. In exemplul de mai sus,&lt;br /&gt;
este posibil ca unele pachete sa fii trecut intre comenzile &quot;-L&quot; si &quot;-Z&quot;. Din&lt;br /&gt;
acest motiv este posibila folosirea impreuna a acestor comenzi, sa resetezi&lt;br /&gt;
valoarea counter-elor chiar in momentul afisarii acestora. Din nefericire,&lt;br /&gt;
daca faci asta, nu poti sa actionezi doar asupra unui singur chain, trebuie sa&lt;br /&gt;
listezi si resetezi counter-ele pentru toate chain-urile.&lt;br /&gt;
&lt;br /&gt;
# ipchains -L -v -Z&lt;br /&gt;
Chain input (policy ACCEPT):&lt;br /&gt;
pkts bytes target     prot opt   tosa tosx  ifname    mark        source                destination           ports&lt;br /&gt;
10   840 ACCEPT     icmp ----- 0xFF 0x00  lo                    anywhere              anywhere              any&lt;br /&gt;
Chain forward (refcnt = 1): (policy ACCEPT)&lt;br /&gt;
Chain output (refcnt = 1): (policy ACCEPT)&lt;br /&gt;
Chain test (refcnt = 0):&lt;br /&gt;
0     0 DENY       icmp ----- 0xFF 0x00  ppp0                  localnet/24           anywhere              any&lt;br /&gt;
# ipchains -L -v&lt;br /&gt;
Chain input (policy ACCEPT):&lt;br /&gt;
pkts bytes target     prot opt   tosa tosx  ifname    mark        source                destination           ports&lt;br /&gt;
10   840 ACCEPT     icmp ----- 0xFF 0x00  lo                    anywhere              anywhere              any&lt;br /&gt;
Chain forward (refcnt = 1): (policy ACCEPT)&lt;br /&gt;
Chain output (refcnt = 1): (policy ACCEPT)&lt;br /&gt;
Chain test (refcnt = 0):&lt;br /&gt;
0     0 DENY       icmp ----- 0xFF 0x00  ppp0                  localnet/24           anywhere              any&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4.1.5.11. Setarea policy-ului&lt;br /&gt;
&lt;br /&gt;
Am atins in treacat ce se intampla cand un pachet ajunge la capatul unuia&lt;br /&gt;
dintre chain-urile predefinite, cand am discutat modul in care pachetele&lt;br /&gt;
circula prin chain-uri, in capitolul de mai sus &quot;Specificarea unei tinte&quot;.&lt;br /&gt;
In acest caz, politica (policy-ul) chain-ului determina soarta pachetului.&lt;br /&gt;
Doar chain-urile predefinite (input, output si forward) au policy, deoarece&lt;br /&gt;
in chain-urile definite de catre utilizator cand se ajunge la capatul &lt;br /&gt;
acestora, traversarea continua din chain-ul anterior.&lt;br /&gt;
&lt;br /&gt;
Policy-ul poate fi unul din primele patru tinte speciale: ACCEPT, DENY,&lt;br /&gt;
REJECT  sau MASQ. MASQ este valid doar pentru chain-ul &quot;forward&quot;.&lt;br /&gt;
&lt;br /&gt;
Este deasemenea important sa observi ca tinta RETURN intr-o regula intr-unul&lt;br /&gt;
din chain-urile predefinite este folositoare pentru a se folosi in mod special&lt;br /&gt;
policy-ul chain-ului, cand un pachet se potriveste cu regula.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4.1.6. Operatii pentru masquerading&lt;br /&gt;
&lt;br /&gt;
Sunt cativa parametri pe care ii poti modifica in cazul masquerading-ului. &lt;br /&gt;
Sunt legate de ipchains, pentru ca nu se merita scrierea unei noi comenzi &lt;br /&gt;
pentru aceasta.&lt;br /&gt;
&lt;br /&gt;
Comanda pentru masqueradare este &quot;-M&quot;, si poate fi combinata cu &quot;-L&quot; pentru a&lt;br /&gt;
lista conexiunile care sunt in mod curent masqueradate, sau cu &quot;-S&quot; pentru a&lt;br /&gt;
seta parametrii pentru masquerading.&lt;br /&gt;
&lt;br /&gt;
Comanda &quot;-L&quot; poate fi insotita de &quot;-n&quot; (afisarea de numere in loc de nume&lt;br /&gt;
pentru adrese IP si porturi)  sau &quot;-v&quot; (afiseaza deltas in numere succesive&lt;br /&gt;
pentru conexiunile masquradate, doar in caz daca te intereseaza).&lt;br /&gt;
&lt;br /&gt;
Comanda &quot;-S&quot; ar trebui urmata de trei valori pentru timeout, fiecare valoare&lt;br /&gt;
in secunde: pentru sesiunile TCP, pentru sesiunile TCP dupa un pachet FIN, si&lt;br /&gt;
pentru pachete UDP. Daca nu doresti una din aceste valori, pur si simplu pune&lt;br /&gt;
valoarea 0.&lt;br /&gt;
&lt;br /&gt;
Valorile default sunt listate in &quot;/usr/src/linux/include/net/ip_masq.h&quot; si&lt;br /&gt;
sunt  15 minute, 2 minute si respectiv 5 minute.&lt;br /&gt;
&lt;br /&gt;
Cea mai intalnita valoare ce trebuie schimbata este prima, pentru FTP (vezi&lt;br /&gt;
mai jos &quot;FTP&quot;).&lt;br /&gt;
&lt;br /&gt;
Observa problemele legate de setarea valorile pentru timeout in &quot;Nu pot&lt;br /&gt;
preciza timeout-uri pentru masquerading&quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4.1.7. Verificarea unui pachet&lt;br /&gt;
&lt;br /&gt;
Uneori doresti sa vezi ce se intampla cand intra un anumit pachet, cum ar fi&lt;br /&gt;
pentru testarea regulilor firewall-ului. ipchains are comanda &quot;-C&quot;, ce&lt;br /&gt;
permite acest lucru, folosind exact aceleasi rutine pe care le foloseste&lt;br /&gt;
kernelul pentru diagnosticarea pachetelor reale.&lt;br /&gt;
&lt;br /&gt;
Poti stipula care chain sa testeze pachetul cu optiunea &quot;-C&quot; urmat de&lt;br /&gt;
numele pachetului. In timp ce kernelul incepe intodeauna traversarea in&lt;br /&gt;
chain-urile input, output sau forward, ai puterea sa incepi traversarea in&lt;br /&gt;
orice chain in scopul testarii.&lt;br /&gt;
&lt;br /&gt;
Detaliile in ceea ce priveste &quot;pachetul&quot; sunt specificate folosind aceeasi&lt;br /&gt;
sintaxa din specificarea regulilor. In special, protocolul &quot;-p&quot;, adresa sursa&lt;br /&gt;
&quot;-s&quot;, adresa destinatie &quot;-d&quot;, si interfata &quot;-i&quot; sunt obligatorii. Daca&lt;br /&gt;
protocolul este TCP sau UDP, atunci un singur port destinatie si un singur&lt;br /&gt;
port sursa trebuie specificat, daca protocolul este ICMP atunci trebuie&lt;br /&gt;
specificat tipul si codul (doar daca nu este specificata optiunea &quot;-f&quot; pentru&lt;br /&gt;
a preciza un fragment, caz in care aceste optiuni sunt ilegale).&lt;br /&gt;
&lt;br /&gt;
Daca protocolul este TCP (si optiunea &quot;-f&quot; nu este specificata), optiunea &quot;-y&quot;&lt;br /&gt;
poate fi specificata, pentru a indica faptul ca pachetul de test are bitul SYN &lt;br /&gt;
pus.&lt;br /&gt;
&lt;br /&gt;
Dam mai jos un exemplu de testare a unui pachet ce vine de la 192.168.1.1,&lt;br /&gt;
portul 60000 catre 192.168.1.2, portul www, intrand prin interfata eth0, in&lt;br /&gt;
chain-ul &quot;input&quot;. Acesta este un caz clasic de initiere a unei conexiuni www:&lt;br /&gt;
&lt;br /&gt;
# ipchains -C input -p tcp -y -i eth0 -s 192.168.1.1 60000 -d 192.168.1.2 www  &lt;br /&gt;
packet accepted&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4.1.8. Mai multe reguli dintr-o data si ceea ce se intampla atunci&lt;br /&gt;
&lt;br /&gt;
Uneori o singura linie de comanda poate produce mai multe efecte. Aceasta se&lt;br /&gt;
realizeaza in doua moduri. Intai, poti sa specifici un hostname care este&lt;br /&gt;
rezolvat (folosind DNS) in mai multe adrese IP, ipchains se va comporta ca si&lt;br /&gt;
cum ai fi dat mai multe comenzi pentru fiecare adresa IP in parte.&lt;br /&gt;
&lt;br /&gt;
De exemplu, daca hostname-ul &quot;www.foo.com&quot; este rezolvat in trei adrese IP,&lt;br /&gt;
si hostname-ul &quot;www.bar.com&quot; in doua adrese IP, atunci comanda &lt;br /&gt;
&quot;ipchains -A input -j reject -s www.bar.com -d www.foo.com&quot; ar fi echivalenta&lt;br /&gt;
cu introducerea a sase reguli diferite in chain-ul input, daca s-ar folosi&lt;br /&gt;
adrese IP.&lt;br /&gt;
&lt;br /&gt;
Un alt mod prin care sa determini ipchains sa realizeze mai multe actiuni este&lt;br /&gt;
prin folosirea optiunii bidirectionale &quot;-b&quot;. Aceasta optiune determina&lt;br /&gt;
ipchains sa se comporte ca si cum ai fi dat comanda de doua ori, insa a doua&lt;br /&gt;
oara cu parametrii de la sursa si destinatie inversati. De exemplu, pentru a&lt;br /&gt;
evita forwardarea catre sau de la 192.168.1.1:&lt;br /&gt;
&lt;br /&gt;
# ipchains -b -A forward -j reject -s 192.168.1.1&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
Personal, nu imi place prea mult aceasta optiune &quot;-b&quot;; daca doresti utilitate&lt;br /&gt;
citeste &quot;Folosirea ipchains-save&quot; de mai jos.&lt;br /&gt;
&lt;br /&gt;
Optiunea &quot;-b&quot; poate fi folosita langa comenzile de introducere de reguli&lt;br /&gt;
(&quot;-I&quot;), stergere (&quot;-D&quot;) (dar nu varianta care accepta un numar al unei &lt;br /&gt;
reguli), adaugare (&quot;-A&quot;) si verificare (&quot;-C&quot;).&lt;br /&gt;
&lt;br /&gt;
O alta optiune folositoare este &quot;-v&quot; care iti afiseaza exact ceea ce ipchains&lt;br /&gt;
realizeaza prin comenzile date. Acest lucru este folositor daca folosesti&lt;br /&gt;
comenzi ce pot avea efectul a mai multor reguli. De exemplu, aici verificam&lt;br /&gt;
comportamentul fragmentelor intre 192.168.1.1 si 192.168.1.2.&lt;br /&gt;
&lt;br /&gt;
# ipchains -v -b -C input -p tcp -f -s 192.168.1.1 -d 192.168.1.2 -i lo&lt;br /&gt;
tcp opt   ---f- tos 0xFF 0x00  via lo    192.168.1.1  -&amp;gt; 192.168.1.2&lt;br /&gt;
* -&amp;gt;   *&lt;br /&gt;
packet accepted&lt;br /&gt;
tcp opt   ---f- tos 0xFF 0x00  via lo    192.168.1.2  -&amp;gt; 192.168.1.1&lt;br /&gt;
* -&amp;gt;   *&lt;br /&gt;
packet accepted&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4.2. Exemple folositoare&lt;br /&gt;
&lt;br /&gt;
Am o conexiune dialup PPP (-i ppp0). Citesc stirile (-p TCP -s  &lt;br /&gt;
news.virtual.net.au nntp) si mail-ul (-p TCP -s mail.virtual.net.au pop-3) de&lt;br /&gt;
fiecare data cand ma conectez. Folosesc metoda de FTP a Debianului pentru a-mi&lt;br /&gt;
updata sistemul regulat (-p TCP -y -s ftp.debian.org.au ftp-data). Navighez pe&lt;br /&gt;
web cu ajutorul proxy-ului ISP-ului atata timp cat acesta merge (-p TCP -d&lt;br /&gt;
proxy.virtual.net.au 8080), dar nu suport bannerele de la doubleclick.net in&lt;br /&gt;
arhivele Dilbert (-p TCP -y -d 199.95.207.0/24 and -p TCP -y -d &lt;br /&gt;
199.95.208.0/24).&lt;br /&gt;
&lt;br /&gt;
Nu ma deranjeaza ca oameni sa incerce sa faca ftp pe masina mea cat timp sunt&lt;br /&gt;
online (-p TCP -d $LOCALIP ftp), dar nu vreau ca nimeni din exterior sa&lt;br /&gt;
pretinda ca are una din adresele retelei mele interne (-s 192.168.1.0/24).&lt;br /&gt;
Acest lucru este numit spoofare IP, si exista o modalitate mai buna de a te&lt;br /&gt;
proteja impotriva acesteia in kernelurile 2.1.x si mai avansate: citeste &quot;Cum&lt;br /&gt;
realizez protectia impotriva spoofarii IP&quot;.&lt;br /&gt;
&lt;br /&gt;
Aceasta configurare este destul de simpla, pentru ca nu sunt in mod curent&lt;br /&gt;
alte hosturi in reteaua mea interna.&lt;br /&gt;
&lt;br /&gt;
Doresc ca nici un proces local (ex. lynx, netscape) sa se conecteze la&lt;br /&gt;
doubleclick.net:&lt;br /&gt;
&lt;br /&gt;
# ipchains -A output -d 199.95.207.0/24 -j REJECT&lt;br /&gt;
# ipchains -A output -d 199.95.208.0/24 -j REJECT&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
Acum doresc sa realizez prioritati asupra a pachete variate ce pleaca (nu prea&lt;br /&gt;
are sens sa fac acest lucru pentru pachetele ce intra). Cum am un numar mai&lt;br /&gt;
mare de acest tip de reguli, are sens sa le pun pe toate intr-un singur chain,&lt;br /&gt;
numit ppp-out.&lt;br /&gt;
&lt;br /&gt;
# ipchains -N ppp-out&lt;br /&gt;
# ipchains -A output -i ppp0 -j ppp-out&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Intarziere minima pentru traficul www si telnet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# ipchains -A ppp-out -p TCP -d proxy.virtual.net.au 8080 -t 0x01 0x10&lt;br /&gt;
# ipchains -A ppp-out -p TCP -d 0.0.0.0/0 telnet -t 0x01 0x10&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Cost minim pentru canalul de date ftp, nntp, si pop3:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# ipchains -A ppp-out -p TCP -d 0.0.0.0/0 ftp-data -t 0x01 0x02&lt;br /&gt;
# ipchains -A ppp-out -p TCP -d 0.0.0.0/0 nntp -t 0x01 0x02&lt;br /&gt;
# ipchains -A ppp-out -p TCP -d 0.0.0.0/0 pop-3 -t 0x01 0x02&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sunt cateva restrictii pentru pachetele ce vin prin interfata ppp0: se cream&lt;br /&gt;
atunci un chain numit &quot;ppp-in&quot;:&lt;br /&gt;
&lt;br /&gt;
# ipchains -N ppp-in&lt;br /&gt;
# ipchains -A input -i ppp0 -j ppp-in&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
Acum, nici un pachet care vine prin interfata ppp0, nu are voie sa pretinda ca&lt;br /&gt;
are adresa sursa 192.168.1.*, asa ca le igoram si le logam:&lt;br /&gt;
&lt;br /&gt;
# ipchains -A ppp-in -s 192.168.1.0/24 -l -j DENY&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
Permit pachetele catre DNS (rulez un server de nume care inainteaza toate &lt;br /&gt;
cererile catre 203.29.16.1, asa ca ma astept la pachete replica DNS doar de&lt;br /&gt;
acolo, pachete catre portul ftp, si doar canalul de date pentru conexiunile&lt;br /&gt;
ftp in exterior (care ar trebui sa fie doar pe un port peste 1023, si pe&lt;br /&gt;
porturile pentru X11 in jur de 6000).&lt;br /&gt;
&lt;br /&gt;
# ipchains -A ppp-in -p UDP -s 203.29.16.1 -d $LOCALIP dns -j ACCEPT&lt;br /&gt;
# ipchains -A ppp-in -p TCP -s 0.0.0.0/0 ftp-data -d $LOCALIP 1024:5999 -j ACCEPT&lt;br /&gt;
# ipchains -A ppp-in -p TCP -s 0.0.0.0/0 ftp-data -d $LOCALIP 6010: -j ACCEPT&lt;br /&gt;
# ipchains -A ppp-in -p TCP -d $LOCALIP ftp -j ACCEPT&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
Accept replay-urile la pachetele TCP:&lt;br /&gt;
&lt;br /&gt;
# ipchains -A ppp-in -p TCP ! -y -j ACCEPT&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
In sfarsit conexiunile locale sunt ok:&lt;br /&gt;
&lt;br /&gt;
# ipchains -A input -i lo -j ACCEPT&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
Acum, politica default in chain-ul input este DENY, astfel incat orice altceva&lt;br /&gt;
este ignorat:&lt;br /&gt;
&lt;br /&gt;
# ipchains -P input DENY&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
Observatie: Nu mi-as configura chain-urile in aceasta ordine, deoarece&lt;br /&gt;
pachetele ar putea sa treaca in timp ce introduc regulile. Cel mai sigur este&lt;br /&gt;
sa setezi politica DENY intai, apoi sa introduci regulile. Bineinteles, daca&lt;br /&gt;
regulile tale au nevoie de cereri DNS pentru a rezolva numele, s-ar putea sa&lt;br /&gt;
fi in necaz.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4.2.1. Folosirea ipchains-save&lt;br /&gt;
&lt;br /&gt;
Configurarea regulilor pentru firewall in modul in care doresti, si apoi sa&lt;br /&gt;
incerci sa memorezi comenzile pe care le-ai folosit ca sa faci acelasi lucru&lt;br /&gt;
din nou este chinuitor.&lt;br /&gt;
&lt;br /&gt;
Asa ca, ipchains-save este un script care citeste configuratia curenta a&lt;br /&gt;
chain-urilor si le salveaza intr-un fisier. Deocamdata te tin in suspans cu&lt;br /&gt;
privire la ce realizeaza ipchains-retore.&lt;br /&gt;
&lt;br /&gt;
ipchains-save poate salva un singur chain, sau toate chain-urile (daca nici un&lt;br /&gt;
nume de chain, nu este specificat). Singura optiune permisa este &quot;-v&quot; care&lt;br /&gt;
afiseaza regulile pe masura ce acestea sunt salvate. Politica acestor chain-uri&lt;br /&gt;
este deasemenea salvata pentru chain-urile input, output si forward.&lt;br /&gt;
&lt;br /&gt;
# ipchains-save &amp;gt; my_firewall&lt;br /&gt;
Saving `input&#39;.&lt;br /&gt;
Saving `output&#39;.&lt;br /&gt;
Saving `forward&#39;.&lt;br /&gt;
Saving `ppp-in&#39;.&lt;br /&gt;
Saving `ppp-out&#39;.&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4.2.2. Folosirea ipchains-restore&lt;br /&gt;
&lt;br /&gt;
ipchains-restore restaureaza chain-urile salvate cu ipchains-save. Poate avea&lt;br /&gt;
doua optiuni: &quot;-v&quot; care afiseaza fiecare regula pe masura ce este adaugata, si&lt;br /&gt;
&quot;-f&quot; care obliga stergerea chain-urile definite de catre utilizator daca&lt;br /&gt;
exista, in modul descris mai jos.&lt;br /&gt;
&lt;br /&gt;
Daca este gasit un chain definit de utilizator este gasit in fisierul din care&lt;br /&gt;
se restaureaza regulile, ipchains verifica daca nu exista deja acel chain.&lt;br /&gt;
Daca exista, atunci vei fi intrebat daca fie chain-ul respectiv sa fie golit&lt;br /&gt;
de reguli, fie sa fie sarit. Daca specifici &quot;-f&quot; in linia de comanda, nu vei&lt;br /&gt;
mai fi intrebat, chain-ul va fi golit de reguli.&lt;br /&gt;
&lt;br /&gt;
De exemplu:&lt;br /&gt;
&lt;br /&gt;
# ipchains-restore &amp;lt; my_firewall&lt;br /&gt;
Restoring `input&#39;.&lt;br /&gt;
Restoring `output&#39;.&lt;br /&gt;
Restoring `forward&#39;.&lt;br /&gt;
Restoring `ppp-in&#39;.&lt;br /&gt;
Chain `ppp-in&#39; already exists. Skip or flush? [S/f]? s&lt;br /&gt;
Skipping `ppp-in&#39;.&lt;br /&gt;
Restoring `ppp-out&#39;.&lt;br /&gt;
Chain `ppp-out&#39; already exists. Skip or flush? [S/f]? f&lt;br /&gt;
Flushing `ppp-out&#39;.&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
5. Diverse&lt;br /&gt;
&lt;br /&gt;
Aceasta parte contine toate informatiile si FAQ-urile pe care nu am putut sa&lt;br /&gt;
le introduc in structura de mai sus.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
5.1. Cum sa iti organizezi regulile firewall-ului&lt;br /&gt;
&lt;br /&gt;
Aceasta intrebare cere putina gandire. Poti incerca sa le organizezi pentru a&lt;br /&gt;
optimiza viteza (minimizezi numarul de reguli pentru cele mai comune pachete)&lt;br /&gt;
sau sa cresti manevrabilitatea.&lt;br /&gt;
&lt;br /&gt;
Daca ai o legatura care se intrerupe, sa spunem o conexiune PPP, ai putea dori&lt;br /&gt;
ca prima regula in chain-ul input sa fie &quot;-i ppp0 -j DENY&quot; in timpul bootarii,&lt;br /&gt;
apoi sa ai ceva de genul acesta in scriptul ip-up:&lt;br /&gt;
&lt;br /&gt;
# Re-create the `ppp-in&#39; chain.&lt;br /&gt;
ipchains-restore -f &amp;lt; ppp-in.firewall&lt;br /&gt;
&lt;br /&gt;
# Replace DENY rule with jump to ppp-handling chain.&lt;br /&gt;
ipchains -R input 1 -i ppp0 -j ppp-in&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Scriptul ip-down ar arata astfel:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ipchains -R input 1 -i ppp0 -j DENY&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
5.2. Ce anume sa nu filtrezi spre afara&lt;br /&gt;
&lt;br /&gt;
Sunt cateva lucruri de care trebuie sa fi constient inainte de a incepe&lt;br /&gt;
filtrarea pachetelor pe care nu le doresti.&lt;br /&gt;
&lt;br /&gt;
5.2.1. Pachete icmp&lt;br /&gt;
&lt;br /&gt;
ICMP este folosit (printre alte lucruri) pentru a indica esecul alte&lt;br /&gt;
protocoale (cum ar fi TCP si UDP). Pachetele &quot;destination-unreachable&quot; in&lt;br /&gt;
special. Blocarea acestor pachete inseamna ca niciodata nu vei avea erori de&lt;br /&gt;
genul &quot;Host unreachable&quot; sau &quot;No route to host&quot;; orice conexiune doar va&lt;br /&gt;
astepta o replica (replay) care nu va veni niciodata. Aceasta este iritabil,&lt;br /&gt;
dar rar fatal.&lt;br /&gt;
&lt;br /&gt;
O problema mai grava este rolul ICMP in descoperirea MTU-ului. Toate&lt;br /&gt;
implementarile bune TCP (Linux este inclus) folosesc descoperirea MTU pentru a&lt;br /&gt;
incerca sa isi dea seama care este marimea maxima a unui pachet care poate&lt;br /&gt;
ajunge la destinatie fara sa fie fragmentat (fragmentarea incetineste&lt;br /&gt;
performanta, in special cand fragmente ocazionale sunt pierdute). Descoperirea&lt;br /&gt;
MTU functioneaza prin transmiterea de pachete cu bit &quot;nu fragmenta&quot; pus, si&lt;br /&gt;
apoi transmiterea de pachete mai mici daca primeste replica ICMP indicand ca&lt;br /&gt;
este necesarea fragmentarea. Acesta este un tip de pachet&lt;br /&gt;
&quot;destination-unreachable&quot;, si daca nu este primit, sistemul nu isi va reduce&lt;br /&gt;
MTU-ul, si performantele nu vor exista.&lt;br /&gt;
&lt;br /&gt;
Observa faptul ca este comun sa blochezi toate pachetele ICMP de redirectare&lt;br /&gt;
(de tip 5); aceastea pot fi folosite pentru a manvevra rutarea (deasemenea&lt;br /&gt;
stive bune IP au masuri de protectie), asa ca sunt vazute ca risc minim.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
5.2.2. Conexiunile TCP catre servere DNS (servere de nume)&lt;br /&gt;
&lt;br /&gt;
Daca incerci sa blochezi conexiunile TCP catre exterior, tine minte ca DNS nu&lt;br /&gt;
foloseste intodeauna UDP; daca raspunsul de la server depaseste 512 bytes,&lt;br /&gt;
clientul foloseste o conexiune TCP (tot spre portul 53) pentru date.&lt;br /&gt;
&lt;br /&gt;
Aceasta poate fi o capcana deoarece DNS va merge in mare parte. Daca nu&lt;br /&gt;
permiti asemenea transferuri TCP; este posibil sa experimentezi intarzieri&lt;br /&gt;
mari si alte probleme ocazionale DNS.&lt;br /&gt;
&lt;br /&gt;
Daca aceste cereri DNS sunt intodeauna catre aceeasi sursa externa (fie direct&lt;br /&gt;
prin folosirea liniei de nameserver din /etc/resolv.conf, fie folosind un&lt;br /&gt;
nameserver pentru cache in mod forward), atunci ai nevoie doar sa permiti&lt;br /&gt;
conexiunile TCP catre portul 53 pe acel nameserver de la portul local 53 (in&lt;br /&gt;
caz in care folosesti nameserver pentru cache) sau de la un port local (&amp;gt;1023)&lt;br /&gt;
daca folosesti /etc/resolv.conf.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
5.2.3. FTP&lt;br /&gt;
&lt;br /&gt;
Problema clasica a filtrului de pachete este FTP. FTP are doua moduri; cel&lt;br /&gt;
traditional care este numit mod activ, si cel mai recent care este numit ftp&lt;br /&gt;
pasiv. Browsere-le web folosesc de obicei default modul pasiv, pe cand&lt;br /&gt;
ftp-urile din linia de comanda modul activ. &lt;br /&gt;
&lt;br /&gt;
In mod activ, cand celalalt capat doreste sa trimita un fisier (sau chiar ca&lt;br /&gt;
rezultat a unei comenzi ls sau dir) incerca sa deschida o conexiune TCP catre&lt;br /&gt;
masina locala. Asta inseamna ca nu poti sa filtrezi aceste conexiuni TCP fara sa&lt;br /&gt;
impiedici conexiunile ftp active.&lt;br /&gt;
&lt;br /&gt;
Daca ai posibilitatea sa folosesti ftp pasiv, atunci este bine;  modul pasiv&lt;br /&gt;
creaza conexiuni TCP de la client la server, chiar si pentru datele care vin.&lt;br /&gt;
In caz contrar, este recomandat sa lasi conexiunile TCP pe porturile locale &lt;br /&gt;
mai mari de 1024 si nu intre 6000 si 6010 (6000 este folosit de X).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
5.3. Filtrarea Pingului Mortii&lt;br /&gt;
&lt;br /&gt;
Sistemele Linux sunt acum imune la celebrul Ping al Mortii, care presupune&lt;br /&gt;
trimiterea de pachetele ICMP anormal de mari care umple bufferele in stiva TCP&lt;br /&gt;
de pe sistem cauzand blocarea acestuia.&lt;br /&gt;
&lt;br /&gt;
Daca protejezi sisteme care ar putea fi vulnerabile, poti in mod simplu sa&lt;br /&gt;
ignori fragmentele ICMP. In mod normal pachetele ICMP nu sunt atat de mari&lt;br /&gt;
pentru a fi nevoie de fragmentarea acestora, asa ca nu va influenta nimic in &lt;br /&gt;
rau, exceptand ping-urile cu pachete de marime mare. Am auzit (neconfimat)&lt;br /&gt;
rapoarte cum ca pentru unele sisteme ar fi suficient numai ultimul fragment al&lt;br /&gt;
unui asemenea pachet ICMP, pentru a bloca sistemul, deci blocarea numai a&lt;br /&gt;
primului fragment nu este recomandata.&lt;br /&gt;
&lt;br /&gt;
In timp ce exploiturile pe care le-am vazut foloseau numai protocolul ICMP&lt;br /&gt;
pentru aceste atacuri, nu exista nici un motiv pentru care TCP si UDP sa nu&lt;br /&gt;
fie folosit in acelasi mod, asa ca blocarea fragmentelor ICMP este doar o&lt;br /&gt;
solutie temporara.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
5.4. Filtrarea pentru Teardrop si Bonk&lt;br /&gt;
&lt;br /&gt;
Teardrop si Bonk sunt doua tipuri de atacuri (in principal asupra masinilor ce&lt;br /&gt;
ruleaza Windows NT) care se bazeaza pe fragmente ce se suprapun partial.&lt;br /&gt;
Acestea pot fi oprite prin configurarea sistemului Linux sa realizeze&lt;br /&gt;
defragmentare sau sa nu permita fragmente catre sistemele vulnerabile.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
5.5. Filtrarea fragmentelor in masa&lt;br /&gt;
&lt;br /&gt;
Cateva stive TCP mai putin sigure se spune ca au probleme in ceea ce priveste&lt;br /&gt;
numarul mare de fragmente de pachete, atunci cand nu primesc toate&lt;br /&gt;
fragmentele. Linux nu are aceasta problema. Poti filtra aceste fragmente (care&lt;br /&gt;
pot sa impiedice folosirea lor legitima) sau sa compilezi kernelul cu optiunea&lt;br /&gt;
&quot;IP: always defragment&quot; setata &quot;Y&quot; (doar daca sistemul tau linux este singura&lt;br /&gt;
ruta pentru aceste pachete).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
5.6. Schimbarea regulilor din firewall&lt;br /&gt;
&lt;br /&gt;
Sunt cateva probleme legate de viteza cu care pot fi schimbate regulile din &lt;br /&gt;
firewall. Daca nu esti atent, poti sa lasi pachete sa intre cand esti la &lt;br /&gt;
jumatatea acestor modificari. O rezolvare simpla ar fi:&lt;br /&gt;
&lt;br /&gt;
# ipchains -I input 1 -j DENY&lt;br /&gt;
# ipchains -I output 1 -j DENY&lt;br /&gt;
# ipchains -I forward 1 -j DENY&lt;br /&gt;
&lt;br /&gt;
... realizeaza modificari ...&lt;br /&gt;
&lt;br /&gt;
# ipchains -D input 1&lt;br /&gt;
# ipchains -D output 1&lt;br /&gt;
# ipchains -D forward 1&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
Se ignora astfel toate pachetele pe durata modificarilor.&lt;br /&gt;
&lt;br /&gt;
Daca schimbarile tale sunt doar intr-un singur chain, ai putea crea un nou&lt;br /&gt;
chain cu noile reguli, si apoi sa inlocuiesti (&quot;-R&quot;) regula care facea &lt;br /&gt;
referire la vechiul chain  cu o noua regula catre noul chain: apoi poti sa&lt;br /&gt;
stergi vechiul chain. Aceasta inlocuire va fi automata.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
5.7. Cum realizez protectia impotriva spoofarii IP&lt;br /&gt;
&lt;br /&gt;
Spoofarea IP este o tehnica in care un host trimite pachete care pretind ca&lt;br /&gt;
sunt de la un alt host. Cum filtrarea de pachete ia decizii bazandu-se pe&lt;br /&gt;
adresa sursa, spoofarea IP este folosita pentru a pacali filtrele de pachete.&lt;br /&gt;
Este folosita deasemenea pentru a ascunde identitatea atacatorilor care&lt;br /&gt;
folosesc atacuri SYN, Teardrop, Ping of Death si similare (nu iti face griji&lt;br /&gt;
daca nu stii ce inseamna).&lt;br /&gt;
&lt;br /&gt;
Cea mai buna cale de a te proteja contra spoofarii este  Verificarea adresei &lt;br /&gt;
sursa, si este realizata de catre codul de rutare, si deloc de catre cel al &lt;br /&gt;
firewall-ului. Verifica existenta fisierului&lt;br /&gt;
/proc/sys/net/ipv4/conf/all/rp_filter. Daca exista, atunci pornirea&lt;br /&gt;
Verificarii adresei sursa este solutia potrivita pentru tine. Pentru a realiza&lt;br /&gt;
acest lucru, introduce urmatoarele linii undeva in scripturile de pornire,&lt;br /&gt;
inainte de initializarea oricarei interfete de retea:&lt;br /&gt;
&lt;br /&gt;
# Aceastea este cea mai buna metoda: &lt;br /&gt;
# da drumu la Verificarea adresei sursa si ai protectie anti-spoof&lt;br /&gt;
# pentru toate interfetele curente si viitoare.&lt;br /&gt;
if [ -e /proc/sys/net/ipv4/conf/all/rp_filter ]; then&lt;br /&gt;
echo -n &quot;Setting up IP spoofing protection...&quot;&lt;br /&gt;
for f in /proc/sys/net/ipv4/conf/*/rp_filter; do&lt;br /&gt;
echo 1 &amp;gt; $f&lt;br /&gt;
done&lt;br /&gt;
echo &quot;done.&quot;&lt;br /&gt;
else&lt;br /&gt;
echo PROBLEMS SETTING UP IP SPOOFING PROTECTION.  BE WORRIED.&lt;br /&gt;
echo &quot;CONTROL-D will exit from this shell and continue system startup.&quot;&lt;br /&gt;
echo&lt;br /&gt;
# Start a single user shell on the console&lt;br /&gt;
/sbin/sulogin $CONSOLE&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
(nt. sau in fisierul sysctl.conf adauga:&lt;br /&gt;
# Controls source route verification&lt;br /&gt;
net.ipv4.conf.default.rp_filter = 1&lt;br /&gt;
)&lt;br /&gt;
&lt;br /&gt;
Daca nu poti realiza acest lucru, atunci poti in mod manual sa introduci&lt;br /&gt;
reguli pentru a proteja fiecare interfata. Aceasta cere insa cunoasterea&lt;br /&gt;
fiecarei interfete. Kernelurile 2.1 rejecteaza automat pachetele care pretind&lt;br /&gt;
a veni de la adresele 127.* (rezervate pentru interfata loopback, lo).&lt;br /&gt;
&lt;br /&gt;
De exemplu, sa presupunem ca avem trei interfete, eth0, eth1 si ppp0. Folosim&lt;br /&gt;
ifconfig pentru a vedea adresele interfetelor si netmaskul acestora. Sa zicem&lt;br /&gt;
ca eth0 este atasata unei retele 192.168.1.0 cu netmask-ul 255.255.255.0, eth1&lt;br /&gt;
apartine unei retele 10.0.0.0 cu netmask 255.0.0.0, si ppp0 este conectata la&lt;br /&gt;
Internet (unde orice adrese, exceptand cele din clasele private, sunt&lt;br /&gt;
permise). Introducem regulile:&lt;br /&gt;
&lt;br /&gt;
# ipchains -A input -i eth0 -s ! 192.168.1.0/255.255.255.0 -j DENY&lt;br /&gt;
# ipchains -A input -i ! eth0 -s 192.168.1.0/255.255.255.0 -j DENY&lt;br /&gt;
# ipchains -A input -i eth1 -s ! 10.0.0.0/255.0.0.0 -j DENY&lt;br /&gt;
# ipchains -A input -i ! eth1 -s 10.0.0.0/255.0.0.0 -j DENY&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
Aceasta rezolvare a problemei nu este atat de buna cum este Verificarea&lt;br /&gt;
adresei sursa, deoarece daca reteaua se schimba, trebuie sa iti modifici&lt;br /&gt;
regulile din firewall.&lt;br /&gt;
&lt;br /&gt;
Daca ai un kernel ver 2.0, ai dori sa iti protejezi chiar si interfata&lt;br /&gt;
loopback:&lt;br /&gt;
&lt;br /&gt;
# ipchains -A input -i ! lo -s 127.0.0.0/255.0.0.0 -j DENY&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
5.8. Proiecte mai avansate&lt;br /&gt;
&lt;br /&gt;
Exista o biblioteca pe care am scris-o, inclusa in distributia surselor numita&lt;br /&gt;
&quot;libfw&quot;. Aceasta foloseste posibilitatea din IP Chains ver 1.3 si peste, de&lt;br /&gt;
a copia un pachet pentru a putea fi folosit in mediul utilizator (folosind&lt;br /&gt;
optiunea IP_FIREWALL_NETLINK).&lt;br /&gt;
&lt;br /&gt;
Valorea cu care este marcat pachetul poate fi folosita pentru a specifica&lt;br /&gt;
parametrii de Calitate a serviciului pentru pachete, sau pentru a specifica&lt;br /&gt;
cum ar trebui sa fie facuta forwardarea de porturi pentru pachete. Nu am&lt;br /&gt;
folosit nici una dintre acestea, dar daca ai vreo observatie contacteaza-ma.&lt;br /&gt;
&lt;br /&gt;
Lucuri cum ar fi verificarea dupa stare (prefer termenul de firewall dinamic)&lt;br /&gt;
pot fi implementate in mediul utilizator prin folosirea acestei biblioteci.&lt;br /&gt;
Alta idee mai interesanta ar fi controlarea pachetelor intr-un mediu&lt;br /&gt;
utilizator cu ajutorul unui daemon, destul de usor de realizat.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
5.8.1. SPF: filtrare dupa starea pachetului (stateful packet filtering)&lt;br /&gt;
&lt;br /&gt;
ftp://ftp.interlinx.bc.ca/pub/spf &amp;lt;ftp://ftp.interlinx.bc.ca/pub/spf&amp;gt; este&lt;br /&gt;
site-ul proiectului SPF, apartinand lui Brian Murrell, care realizeaza&lt;br /&gt;
urmarirea conexiunile in mediu utilizator. Se adauga astfel securitate&lt;br /&gt;
simnificativa pentru site-uri cu banda limitata.&lt;br /&gt;
&lt;br /&gt;
In prezent nu este disponibila multa documentatie, dar iata postari pe o lista&lt;br /&gt;
de discutii in care Brian raspunde la niste intrebari:&lt;br /&gt;
&lt;br /&gt;
&amp;gt; cred ca se realizeaza exact ce doresc. Intra in functiune o regula&lt;br /&gt;
&amp;gt; temporara pentru a permite intrarea pachetele ce vin ca raspuns la o&lt;br /&gt;
&amp;gt; cerere anterioara&lt;br /&gt;
Da, exact asta se realizeaza. Cu cat este mai compatibil cu mai multe&lt;br /&gt;
protocoale, cu atat regula temporara este corecta. Pentru moment&lt;br /&gt;
suporta (din cate imi amintesc, scuzati eventualele erori sau&lt;br /&gt;
omisiuni) FTP (atat activ, cat si pasiv, inautru sau spre exterior),&lt;br /&gt;
RealAudio, traceroute, ICMP si ICQ simplu (conexiuni dinspre servere&lt;br /&gt;
ICQ, si conexiuni TCP directe, dar conexiuni secundare directe TCP&lt;br /&gt;
pentru lucruri ca transferul de fisiere, nu sunt inca realizate)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;gt; este un inlocuitor pentru ipchains sau un lucru suplimentar?&lt;br /&gt;
Este un lucru suplimentar. Gandeste-te la ipchains ca la un engine&lt;br /&gt;
care permite sau interzice pachetelor traversarea printr-un sistem&lt;br /&gt;
linux. SPF este driver-ul, care monitorizeaza constant traficul si&lt;br /&gt;
comunica ipchains-ului ce anume sa schimbe in reguli pentru a permite&lt;br /&gt;
un anumit tip de trafic.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
5.8.2. &quot;Hack-ul&quot; ftp-data al lui Michael Hasenstein&lt;br /&gt;
&lt;br /&gt;
Michael Hasenstein, de la SuSE, a scris un patch de kernel care adauga&lt;br /&gt;
urmarirea conexiunilor ftp pentru ipchains. Poate fi gasit la&lt;br /&gt;
http://www.suse.de/~mha/patch.ftp-data-2.gz&lt;br /&gt;
&amp;lt;http://www.suse.de/~mha/patch.ftp-data-2.gz&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
5.9. Planuri de viitor&lt;br /&gt;
&lt;br /&gt;
Realizarea de firewall si NAT-ul au fost rescrise pentru 2.4. Planuri si&lt;br /&gt;
discutii sunt disponibile pe lista de discutii de la netfilter (vezi&lt;br /&gt;
http://lists.samba.org &amp;lt;http://lists.samba.org&amp;gt;). Aceste versiuni noi ar&lt;br /&gt;
trebui sa rezolve multe dintre problemele actuale de utilizare (realizarea de &lt;br /&gt;
masquerading si firewall nu ar trebui sa fie asa de grea) si sa permite&lt;br /&gt;
dezvoltarea de firewall-uri mai flexibile.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
6. Probleme des intalnite&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
6.1. ipchains -L ingheata!&lt;br /&gt;
&lt;br /&gt;
Probabil ca ai blocate cererile catre DNS; eventual va da timeout. Incearca sa&lt;br /&gt;
folosesti optiunea &quot;-n&quot; (numeric), care previne ipchains sa rezolve numele.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
6.2. Specificarea inversa nu poate fi realizata!&lt;br /&gt;
&lt;br /&gt;
Trebuie sa pui semnul &quot;!&quot; singur, cu spatii de o parte si de alta. O greseala&lt;br /&gt;
clasica este:&lt;br /&gt;
&lt;br /&gt;
# ipchains -A input -i !eth0 -j DENY&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
Nu va exista niciodata o interfata numita &quot;!eth0&quot;, dar ipchains nu isi da&lt;br /&gt;
seama de acest lucru.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
6.3. Masqueradarea/Forwardarea nu se realizeaza!&lt;br /&gt;
&lt;br /&gt;
Verifica daca forwardarea pentru pachete este setata (in kernelurile recente&lt;br /&gt;
default este scos, insemnand ca pachetele nici macar nu vor incerca sa&lt;br /&gt;
traverseze chain-ul &quot;forward&quot;). Poti sa ii pornesti aceasta facilitate prin:&lt;br /&gt;
&lt;br /&gt;
# echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
Daca aceasta comanda functioneaza, o poti pune intr-unul din scripturile ce&lt;br /&gt;
ruleaza la bootare, pentru a avea tot timpul aceasta facilitate; desi vei dori &lt;br /&gt;
sa iti configurezi firewall-ul, in caz contrar exista posibilitatea ca unele&lt;br /&gt;
pachete sa treaca.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
6.4. Tinta -j REDIR nu merge!&lt;br /&gt;
&lt;br /&gt;
Trebuie sa permiti forwardarea de pachete (citeste mai sus) pentru ca&lt;br /&gt;
redirectarea sa fie posibila; altfel codul de rutare ignora pachetul. Asa ca&lt;br /&gt;
daca folosesti doar redirect, si nu ai forwarding-ul setat, ar trebui sa iti&lt;br /&gt;
dai seama ca este de la asta.&lt;br /&gt;
&lt;br /&gt;
Observa ca REDIR (fiind in chain-ul input) nu afecteaza conexiunile catre&lt;br /&gt;
procesele locale.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
6.5. Specificare mai multor interfete (ex &quot;-i ppp+&quot;) nu merge!&lt;br /&gt;
&lt;br /&gt;
Exista un defect de programare in kernelurile ver. 2.1.102 si 2.1.103 (si&lt;br /&gt;
in unele patch-uri mai vechi pe care le-am relizat) care determina&lt;br /&gt;
comanda ipchains de specificare a mai multor interfete (ex &quot;-i ppp+&quot;) sa nu &lt;br /&gt;
mearga.&lt;br /&gt;
&lt;br /&gt;
Acest lucru a fost indreptat in kernelurile recente si in patch-ul 2.0.34 de&lt;br /&gt;
pe site-ul web. Poti deasemenea sa il indrepti manual, in sursele kernelului&lt;br /&gt;
modificand linia 63 din fisierul include/linux/ip_fw.h:&lt;br /&gt;
&lt;br /&gt;
#define IP_FW_F_MASK    0x002F  /* All possible flag bits mask   */&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In loc de 0x002F ar trebui sa fie &quot;0x003F&quot;. Modifica si recompileaza kernelul.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
6.6. TOS nu merge!&lt;br /&gt;
&lt;br /&gt;
Aceasta este greseala mea: setarea campului TOS nu a setat in realitate TOS &lt;br /&gt;
in kernelurile ver. 2.1.102 pana la 2.1.111. Aceasta problema a fost rezolvata&lt;br /&gt;
in 2.1.112.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
6.7. ipautofw si ipportfw nu merg!&lt;br /&gt;
&lt;br /&gt;
Pentru 2.0.x, aceasta este adevarat; nu am avut timp pentru a crea si mentine&lt;br /&gt;
un patch pentru ipchains si ipautofw/ipportfw.&lt;br /&gt;
&lt;br /&gt;
Pentru 2.1.x, downloadeaza ipmasqadm al lui Juan Ciarlante de la:&lt;br /&gt;
&amp;lt;url url=&quot;http://juanjox.linuxhq.com/&quot;&lt;br /&gt;
name=&quot;http://juanjox.linuxhq.com/&quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
si foloseste-l la fel ca si cum ai fi folosit ipautofw si ipportfw, cu&lt;br /&gt;
exceptia faptului ca in loc de ipportfw tastezi ipmasqadm portfw, si in loc de&lt;br /&gt;
ipautofw tastezi ipmasqadm autofw.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
6.8. xosview este stricat!&lt;br /&gt;
&lt;br /&gt;
Fa upgrade la versiunea 1.6.0 sau mai avansata, unde nu este necesar nici un&lt;br /&gt;
fel de reguli in firewall pentru kernelurile 2.1.x. Se pare ca iar nu&lt;br /&gt;
functioneaza in ver. 1.6.1.; te rog contacteaza autorul (nu este greseala&lt;br /&gt;
mea!).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
6.9. Segmentation Fault din cauza tintei &quot;-j REDIRECT&quot;!&lt;br /&gt;
&lt;br /&gt;
Acesta este o eroare de programare in ipchains, ver. 1.3.3. Upgrade.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
6.10. Nu pot preciza valori de timeout pentru masquerading!&lt;br /&gt;
&lt;br /&gt;
Este adevarat (pentru kernelurile 2.1.x) pana la ver. 2.1.123. In 2.1.124,&lt;br /&gt;
incercarea de a seta valori pentru timeout-ul din masqueradig cauza o blocare&lt;br /&gt;
a kernelului (schimba return cu ret la linia 1328 din fisierul&lt;br /&gt;
net/ipv4/ip_fw.c). In 2.1.125, functioneaza cum trebuie.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
6.11. Vreau sa filtrez IPX!&lt;br /&gt;
&lt;br /&gt;
Asta se pare ca vor si altii. Din pacate codul meu acopera doar IP. Insa,&lt;br /&gt;
exista posibilitatea pentru a filtra IPX! Trebuie doar sa scrii codul, te voi&lt;br /&gt;
ajuta unde este posibil.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
7. Un exemplu serios&lt;br /&gt;
&lt;br /&gt;
Acest exemplu a fost luat de la Michael Neuling si tutorialul meu din&lt;br /&gt;
LinuxWorld din Martie 1999; acesta nu este singura cale pentru a rezova&lt;br /&gt;
problema data, dar este probabil cea mai simpla. Sper ca o sa o gasesti&lt;br /&gt;
interesanta.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
7.1. Topologia retelei&lt;br /&gt;
&lt;br /&gt;
- O retea interna masqueradata (sisteme de operare variate), pe care o numim&lt;br /&gt;
&quot;GOOD&quot;.&lt;br /&gt;
&lt;br /&gt;
- Servere expuse intr-o retea separata (numita &quot;DMZ&quot; de la zona&lt;br /&gt;
demilitarizata).&lt;br /&gt;
&lt;br /&gt;
- Conexiunea PPP catre Internet (numita &quot;BAD&quot;).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Retea externa    (BAD)&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
ppp0|&lt;br /&gt;
---------------&lt;br /&gt;
| 192.84.219.1|           Reteaua de servere (DMZ)&lt;br /&gt;
|             |eth0&lt;br /&gt;
|             |----------------------------------------------&lt;br /&gt;
|             |192.84.219.250 |             |              |&lt;br /&gt;
|             |               |             |              |&lt;br /&gt;
|192.168.1.250|               |             |              |&lt;br /&gt;
---------------          --------       -------        -------&lt;br /&gt;
| eth1            | SMTP |       | DNS |        | WWW |&lt;br /&gt;
|                 --------       -------        -------&lt;br /&gt;
|              192.84.219.128  192.84.219.129  192.84.218.130&lt;br /&gt;
|&lt;br /&gt;
Retea interna    (GOOD)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
7.2. Scopurile&lt;br /&gt;
&lt;br /&gt;
Filtrul de pachete de pe ruter: &lt;br /&gt;
&lt;br /&gt;
PING orice retea&lt;br /&gt;
Aceasta este folositor pentru a verifica daca un sistem este oprit.&lt;br /&gt;
&lt;br /&gt;
TRACEROUTE orice retea&lt;br /&gt;
Inca odata, folositor pentru analize.&lt;br /&gt;
&lt;br /&gt;
Acces DNS&lt;br /&gt;
Pentru a face ping-ul si DNS-ul mai folositor&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In cadrul DMZ:&lt;br /&gt;
Serverul de mail (SMTP):&lt;br /&gt;
&lt;br /&gt;
- SMTP catre exterior&lt;br /&gt;
- Permiterea accesului SMTP din interior si exterior&lt;br /&gt;
- Permiterea accesului POP3 din interior.&lt;br /&gt;
&lt;br /&gt;
Serverul de nume (DNS):&lt;br /&gt;
&lt;br /&gt;
- Trimitere de pachete DNS catre exterior &lt;br /&gt;
- Permiterea accesului DNS din reteaua interna, externa si de pe ruter.&lt;br /&gt;
&lt;br /&gt;
Serverul WWW:&lt;br /&gt;
&lt;br /&gt;
- Permiterea accesului http din exterior si interior&lt;br /&gt;
- Permiterea accesului rsync din interior&lt;br /&gt;
&lt;br /&gt;
Reteaua interna:&lt;br /&gt;
&lt;br /&gt;
Permiterea accesului www, ftp, ssh si traceroute&lt;br /&gt;
Aceastea sunt lucruri permise destul de standard, in unele&lt;br /&gt;
locuri sistemele au voie sa faca orice, dar aici vom fi mai&lt;br /&gt;
restrictivi.&lt;br /&gt;
&lt;br /&gt;
Permiterea accesului SMTP catre serverul de mail&lt;br /&gt;
Evident, dorim ca sa aiba posibilitatea sa trimita mailuri.&lt;br /&gt;
&lt;br /&gt;
Permiterea accesului POP3 catre serverul de mail&lt;br /&gt;
In acest mod isi pot citi mail-ul.&lt;br /&gt;
&lt;br /&gt;
Permiterea accesului DNS catre nameserver&lt;br /&gt;
Au nevoie de posibilitatea de a rezolva numele externe pentru&lt;br /&gt;
www, ssh, ftp, si traceroute.&lt;br /&gt;
&lt;br /&gt;
Permiterea accesului rsync catre serverul de web&lt;br /&gt;
Acesta este modul prin care vor sincroniza serverul extern de&lt;br /&gt;
web cu cel intern.&lt;br /&gt;
&lt;br /&gt;
Permiterea accesului WWW catre serverul de WEB&lt;br /&gt;
Evident, trebuie sa poata fi accesat serverul nostru extern &lt;br /&gt;
de web.&lt;br /&gt;
&lt;br /&gt;
Permiterea ping-ului catre ruter&lt;br /&gt;
Pentru a realiza daca este jos ruterul, ca sa nu dea vina pe&lt;br /&gt;
noi daca un server extern este jos.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
7.3. Inainte de realizarea filtrarii de pachete&lt;br /&gt;
&lt;br /&gt;
- Anti-spoofing&lt;br /&gt;
Cum nu avem de a face cu rutare asimetrica, putem in mod simplu sa dam&lt;br /&gt;
drumul la anti-spoofing pentru toate interfetele.&lt;br /&gt;
&lt;br /&gt;
# for f in /proc/sys/net/ipv4/conf/*/rp_filter; do echo 1 &amp;gt; $f; done&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
- Configurarea filtrului de pachete sa interzica (DENY) toate pachetele&lt;br /&gt;
Permitem insa traficul pentru interfata loopback, dar nu permiterm&lt;br /&gt;
nimic alceva.&lt;br /&gt;
&lt;br /&gt;
# ipchains -A input -i ! lo -j DENY&lt;br /&gt;
# ipchains -A output -i ! lo -j DENY&lt;br /&gt;
# ipchains -A forward -j DENY&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
- Configurarea interfetelor &lt;br /&gt;
Aceasta este de obicei realizata in scripturile de initializare. Fii&lt;br /&gt;
sigur ca pasii de mai sus sunt realizati inainte de configurarea&lt;br /&gt;
interfetelor, pentru a preveni scaparea eventualelor pachete.&lt;br /&gt;
&lt;br /&gt;
- Introduce modulele de masquerading specifice protocolului&lt;br /&gt;
Este necesar sa introducem modulul de masquerading pentru FTP, astfel&lt;br /&gt;
incat ftp activ si pasiv sa fie disponibile din reteaua interna.&lt;br /&gt;
&lt;br /&gt;
# insmod ip_masq_ftp&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
7.4. Filtrarea de pachete pentru pachetele directe&lt;br /&gt;
&lt;br /&gt;
Deorece se realizeaza masquerading, cel mai bine este sa le filtrezi in&lt;br /&gt;
chain-ul forward.&lt;br /&gt;
&lt;br /&gt;
Imparte chain-ul forward in diferite chain-uri definite de catre utilizator in&lt;br /&gt;
functie de interfata sursa/destinatie; aceasta abordare imparte problema in&lt;br /&gt;
bucati.&lt;br /&gt;
&lt;br /&gt;
ipchains -N good-dmz&lt;br /&gt;
ipchains -N bad-dmz&lt;br /&gt;
ipchains -N good-bad&lt;br /&gt;
ipchains -N dmz-good&lt;br /&gt;
ipchains -N dmz-bad&lt;br /&gt;
ipchains -N bad-good&lt;br /&gt;
&lt;br /&gt;
Acceptarea erorile standard ICMP este un lucru obisnuit, asa ca specificam un&lt;br /&gt;
chain pentru acestea.&lt;br /&gt;
&lt;br /&gt;
ipchains -N icmp-acc&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
7.4.1. Trecerea spre alte chain-uri din chain-ul forward&lt;br /&gt;
&lt;br /&gt;
Din nefericire, in chain-ul forward cunoastem doar interfata de iesire. De&lt;br /&gt;
aceea, pentru a realiza interfata pe unde a intrat pachetul, ne folosim de&lt;br /&gt;
adresa sursa (facilitatea anti-spoofing previne adresele sursa false).&lt;br /&gt;
&lt;br /&gt;
Observa ca logam toate pachetele cu adresa sursa falsa (evident, aceasta nu ar&lt;br /&gt;
trebui sa se intample niciodata).&lt;br /&gt;
&lt;br /&gt;
ipchains -A forward -s 192.168.1.0/24 -i eth0 -j good-dmz&lt;br /&gt;
ipchains -A forward -s 192.168.1.0/24 -i ppp0 -j good-bad&lt;br /&gt;
ipchains -A forward -s 192.84.219.0/24 -i ppp0 -j dmz-bad&lt;br /&gt;
ipchains -A forward -s 192.84.219.0/24 -i eth1 -j dmz-good&lt;br /&gt;
ipchains -A forward -i eth0 -j bad-dmz&lt;br /&gt;
ipchains -A forward -i eth1 -j bad-good&lt;br /&gt;
ipchains -A forward -j DENY -l&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
7.4.2. Definirea chain-ului icmp-acc&lt;br /&gt;
&lt;br /&gt;
Pachetele care sunt erori ICMP sunt acceptate, in caz contrar, traversarea va&lt;br /&gt;
continua din chain-ul anterior.&lt;br /&gt;
&lt;br /&gt;
ipchains -A icmp-acc -p icmp --icmp-type destination-unreachable -j ACCEPT&lt;br /&gt;
ipchains -A icmp-acc -p icmp --icmp-type source-quench -j ACCEPT&lt;br /&gt;
ipchains -A icmp-acc -p icmp --icmp-type time-exceeded -j ACCEPT&lt;br /&gt;
ipchains -A icmp-acc -p icmp --icmp-type parameter-problem -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
7.4.3. Reguli pentru conexiuni reteaua interna ==&amp;gt; DMZ&lt;br /&gt;
&lt;br /&gt;
Restrictii interne:&lt;br /&gt;
&lt;br /&gt;
- Este permis accesul WWW, ftp, traceroute, ssh catre exterior&lt;br /&gt;
- Este permis accesul accesul SMTP catre serverul de mail&lt;br /&gt;
- Este permis accesul pop3 catre serverul de mail&lt;br /&gt;
- Este permis accesul DNS la namerserver&lt;br /&gt;
- Este permis rsync catre serverul de Web&lt;br /&gt;
- Este permis accesul WWW catre serverul de Web&lt;br /&gt;
- Este permis ping catre ruter&lt;br /&gt;
&lt;br /&gt;
Am putea sa realizam masquerading din reteaua interna catre DMZ, dar nu facem&lt;br /&gt;
acest lucru. Cum nimeni din reteaua interna nu ar trebui sa incerce sa faca&lt;br /&gt;
lucruri rele, logam toate pachetele ce sunt interzise.&lt;br /&gt;
&lt;br /&gt;
Observati ca in versiunile mai vechi de Debian numesc &quot;pop3&quot; &quot;pop-3&quot; care nu&lt;br /&gt;
respecta RFC1700.&lt;br /&gt;
&lt;br /&gt;
ipchains -A good-dmz -p tcp -d 192.84.219.128 smtp -j ACCEPT&lt;br /&gt;
ipchains -A good-dmz -p tcp -d 192.84.219.128 pop3 -j ACCEPT&lt;br /&gt;
ipchains -A good-dmz -p udp -d 192.84.219.129 domain -j ACCEPT&lt;br /&gt;
ipchains -A good-dmz -p tcp -d 192.84.219.129 domain -j ACCEPT&lt;br /&gt;
ipchains -A good-dmz -p tcp -d 192.84.218.130 www -j ACCEPT&lt;br /&gt;
ipchains -A good-dmz -p tcp -d 192.84.218.130 rsync -j ACCEPT&lt;br /&gt;
ipchains -A good-dmz -p icmp -j icmp-acc&lt;br /&gt;
ipchains -A good-dmz -j DENY -l&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
7.4.5. Reguli pentru conexiuni din reteaua interna ==&amp;gt; reteaua externa&lt;br /&gt;
&lt;br /&gt;
Restrictionare in reteaua DMZ numai la:&lt;br /&gt;
- serverul de mail:&lt;br /&gt;
- SMTP catre exterior&lt;br /&gt;
- acceptare acces SMTP din interior si exterior&lt;br /&gt;
- acceptare acces pop3 din interior&lt;br /&gt;
&lt;br /&gt;
- serverul de nume:&lt;br /&gt;
- trimitere cereri DNS catre exterior&lt;br /&gt;
- acceptarea acces DNS din reteaua interna, externa si ruter&lt;br /&gt;
&lt;br /&gt;
- serverul de web:&lt;br /&gt;
- acceptare acces HTTP din exterior si interior&lt;br /&gt;
- acceptare acces rsync din interior&lt;br /&gt;
&lt;br /&gt;
Lucruri pe care le permitem din Internet catre DMZ&lt;br /&gt;
&lt;br /&gt;
- nu logam  violarile, deoarece se pot intampla.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ipchains -A bad-dmz -p tcp -d 192.84.219.128 smtp -j ACCEPT&lt;br /&gt;
ipchains -A bad-dmz -p udp -d 192.84.219.129 domain -j ACCEPT&lt;br /&gt;
ipchains -A bad-dmz -p tcp -d 192.84.219.129 domain -j ACCEPT&lt;br /&gt;
ipchains -A bad-dmz -p tcp -d 192.84.218.130 www -j ACCEPT&lt;br /&gt;
ipchains -A bad-dmz -p icmp -j icmp-acc&lt;br /&gt;
ipchains -A bad-dmz -j DENY&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
7.4.5. Reguli pentru conexiuni din reteaua interna ==&amp;gt; reteaua externa&lt;br /&gt;
&lt;br /&gt;
Restrictionare in reteaua interna numai la:&lt;br /&gt;
- permiterea in exterior traficului WWW, ftp, traceroute, ssh&lt;br /&gt;
- acceptare acces SMTP catre serverul de mail&lt;br /&gt;
- acceptare acces POP-3 catre serverul de mail&lt;br /&gt;
- acceptare acces DNS catre nameserver&lt;br /&gt;
- acceptare acces rsync catre nameserver&lt;br /&gt;
- acceptare acces WWW catre serverul de web&lt;br /&gt;
- acceptare ping catre ruter&lt;br /&gt;
- logare a violarilor&lt;br /&gt;
- porturile UDP destinatie 33434 sunt permise si folosite de&lt;br /&gt;
traceroute&lt;br /&gt;
&lt;br /&gt;
Multi oameni permit totul din reteaua locala, noi nu.&lt;br /&gt;
Ftp pasiv este utilizat cu ajutorul modulului de masquerading.&lt;br /&gt;
&lt;br /&gt;
ipchains -A good-bad -p tcp --dport www -j MASQ&lt;br /&gt;
ipchains -A good-bad -p tcp --dport ssh -j MASQ&lt;br /&gt;
ipchains -A good-bad -p udp --dport 33434:33500 -j MASQ&lt;br /&gt;
ipchains -A good-bad -p tcp --dport ftp -j MASQ&lt;br /&gt;
ipchains -A good-bad -p icmp --icmp-type ping -j MASQ&lt;br /&gt;
ipchains -A good-bad -j REJECT -l&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
7.4.6. Reguli pentru conexiuni din DMZ ==&amp;gt; reteaua interna&lt;br /&gt;
&lt;br /&gt;
Restrictionare in reteaua interna numai la:&lt;br /&gt;
- permiterea in exterior traficului WWW, ftp, traceroute, ssh&lt;br /&gt;
- acceptare acces SMTP catre serverul de mail&lt;br /&gt;
- acceptare acces POP-3 catre serverul de mail&lt;br /&gt;
- acceptare acces DNS catre nameserver&lt;br /&gt;
- acceptare acces rsync catre nameserver&lt;br /&gt;
- acceptare acces WWW catre serverul de web&lt;br /&gt;
- acceptare ping catre ruter&lt;br /&gt;
&lt;br /&gt;
Daca realizam masquerading din reteaua interna catre DMZ, pur si si&lt;br /&gt;
simplu refuzam pachetele ce vin din cealalta parte. Astfel, permitem&lt;br /&gt;
pachetele care nu pot fi decat parte a unei conexiuni stabilite.&lt;br /&gt;
&lt;br /&gt;
ipchains -A dmz-good -p tcp ! -y -s 192.84.219.128 smtp -j ACCEPT&lt;br /&gt;
ipchains -A dmz-good -p udp -s 192.84.219.129 domain -j ACCEPT&lt;br /&gt;
ipchains -A dmz-good -p tcp ! -y -s 192.84.219.129 domain -j ACCEPT&lt;br /&gt;
ipchains -A dmz-good -p tcp ! -y -s 192.84.218.130 www -j ACCEPT&lt;br /&gt;
ipchains -A dmz-good -p tcp ! -y -s 192.84.218.130 rsync -j ACCEPT&lt;br /&gt;
ipchains -A dmz-good -p icmp -j icmp-acc&lt;br /&gt;
ipchains -A dmz-good -j DENY -l&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
7.4.7. Reguli pentru conexiuni din DMZ ==&amp;gt; reteaua externa&lt;br /&gt;
&lt;br /&gt;
Restrictionare in reteaua DMZ numai la:&lt;br /&gt;
- serverul de mail:&lt;br /&gt;
- SMTP catre exterior&lt;br /&gt;
- acceptare acces SMTP din interior si exterior&lt;br /&gt;
- acceptare acces pop3 din interior&lt;br /&gt;
&lt;br /&gt;
- serverul de nume:&lt;br /&gt;
- trimitere cereri DNS catre exterior&lt;br /&gt;
- acceptarea acces DNS din reteaua interna, externa si ruter&lt;br /&gt;
&lt;br /&gt;
- serverul de web:&lt;br /&gt;
- acceptare acces HTTP din exterior si interior&lt;br /&gt;
- acceptare acces rsync din interior&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ipchains -A dmz-bad -p tcp -s 192.84.219.128 smtp -j ACCEPT&lt;br /&gt;
ipchains -A dmz-bad -p udp -s 192.84.219.129 domain -j ACCEPT&lt;br /&gt;
ipchains -A dmz-bad -p tcp -s 192.84.219.129 domain -j ACCEPT&lt;br /&gt;
ipchains -A dmz-bad -p tcp ! -y -s 192.84.218.130 www -j ACCEPT&lt;br /&gt;
ipchains -A dmz-bad -p icmp -j icmp-acc&lt;br /&gt;
ipchains -A dmz-bad -j DENY -l&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
7.4.8. Reguli pentru conexiuni din reteaua externa ==&amp;gt; reteaua interna&lt;br /&gt;
&lt;br /&gt;
- Nu permitem nici o conexiune nemasqueradata din reteaua externa catre&lt;br /&gt;
reteaua interna&lt;br /&gt;
&lt;br /&gt;
ipchains -A bad-good -j REJECT&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
7.4.9. Filtrul de pachete pentru insusi sistemul care este ruter&lt;br /&gt;
&lt;br /&gt;
- Daca doresti sa filtrezi pachetele ce au ca destinatie insusi ruterul,&lt;br /&gt;
aceasta sa realizeaza in chain-ul input. Cream cate un chain pentru fiecare&lt;br /&gt;
interfata destinatie.&lt;br /&gt;
&lt;br /&gt;
ipchains -N bad-if&lt;br /&gt;
ipchains -N dmz-if&lt;br /&gt;
ipchains -N good-if&lt;br /&gt;
&lt;br /&gt;
- Cream reguli pentru a sari la aceste chain-uri&lt;br /&gt;
&lt;br /&gt;
ipchains -A input -d 192.84.219.1 -j bad-if&lt;br /&gt;
ipchains -A input -d 192.84.219.250 -j dmz-if&lt;br /&gt;
ipchains -A input -d 192.168.1.250 -j good-if&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
7.4.9.1. Interfata catre reteaua externa&lt;br /&gt;
&lt;br /&gt;
Restrictionarea ruterului numai la:&lt;br /&gt;
- PING catre orice retea&lt;br /&gt;
- TRACEROUTE catre orice retea&lt;br /&gt;
- acces catre DNS&lt;br /&gt;
- Interfata externa primeste deasemenea replay-uri la pachetele&lt;br /&gt;
masqueradate (masquerading foloseste porturile sursa 61000 si&lt;br /&gt;
65095), erorile ICMP pentru acestea si replay-urile la PING.&lt;br /&gt;
&lt;br /&gt;
ipchains -A bad-if -i ! ppp0 -j DENY -l&lt;br /&gt;
ipchains -A bad-if -p TCP --dport 61000:65095 -j ACCEPT&lt;br /&gt;
ipchains -A bad-if -p UDP --dport 61000:65095 -j ACCEPT&lt;br /&gt;
ipchains -A bad-if -p ICMP --icmp-type pong -j ACCEPT&lt;br /&gt;
ipchains -A bad-if -j icmp-acc&lt;br /&gt;
ipchains -A bad-if -j DENY&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
7.4.9.2. Interfata catre reteaua de servere (DMZ)&lt;br /&gt;
&lt;br /&gt;
Restrictionarea ruterului numai la:&lt;br /&gt;
- PING catre orice retea&lt;br /&gt;
- TRACEROUTE catre orice retea&lt;br /&gt;
- acces catre DNS&lt;br /&gt;
- interfata catre DMZ primeste replay-uri DNS, ping si erori ICMP&lt;br /&gt;
&lt;br /&gt;
ipchains -A dmz-if -i ! eth0 -j DENY&lt;br /&gt;
ipchains -A dmz-if -p TCP ! -y -s 192.84.219.129 53 -j ACCEPT&lt;br /&gt;
ipchains -A dmz-if -p UDP -s 192.84.219.129 53 -j ACCEPT&lt;br /&gt;
ipchains -A dmz-if -p ICMP --icmp-type pong -j ACCEPT&lt;br /&gt;
ipchains -A dmz-if -j icmp-acc&lt;br /&gt;
ipchains -A dmz-if -j DENY -l&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
7.4.9.3. Interfata catre reteaua interna&lt;br /&gt;
&lt;br /&gt;
Restrictionarea ruterului numai la:&lt;br /&gt;
- PING catre orice retea&lt;br /&gt;
- TRACEROUTE catre orice retea&lt;br /&gt;
- acces catre DNS&lt;br /&gt;
&lt;br /&gt;
Restrictionarea retelei interne numai la:&lt;br /&gt;
- permiterea in exterior traficului WWW, ftp, traceroute, ssh&lt;br /&gt;
- acceptare acces SMTP catre serverul de mail&lt;br /&gt;
- acceptare acces POP-3 catre serverul de mail&lt;br /&gt;
- acceptare acces DNS catre nameserver&lt;br /&gt;
- acceptare acces rsync catre nameserver&lt;br /&gt;
- acceptare acces WWW catre serverul de web&lt;br /&gt;
- acceptare ping catre ruter&lt;br /&gt;
- interfata interna primeste ping-uri, replay-uri la ping si erori ICMP&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ipchains -A good-if -i ! eth1 -j DENY&lt;br /&gt;
ipchains -A good-if -p ICMP --icmp-type ping -j ACCEPT&lt;br /&gt;
ipchains -A good-if -p ICMP --icmp-type pong -j ACCEPT&lt;br /&gt;
ipchains -A good-if -j icmp-acc&lt;br /&gt;
ipchains -A good-if -j DENY -l&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
7.5. In final&lt;br /&gt;
&lt;br /&gt;
- Stergerea regulilor ce blocheaza pachetele:&lt;br /&gt;
&lt;br /&gt;
ipchains -D input 1&lt;br /&gt;
ipchains -D forward 1&lt;br /&gt;
ipchains -D output 1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
8. Anexa: Diferente intre ipchains si ipfwadm&lt;br /&gt;
&lt;br /&gt;
Unele dintre aceste modificari sunt un rezultat al schimbarilor din kernel, si&lt;br /&gt;
unele al faptului ca ipchains este diferit de ipfwadm&lt;br /&gt;
&lt;br /&gt;
1. Multe argumente au fost schimbate: literele mari indica o comanda, literele&lt;br /&gt;
mici indica o optiune.&lt;br /&gt;
&lt;br /&gt;
2. Chain-uri arbitrare sunt posibile, deci chiar si chain-urile predefinite&lt;br /&gt;
au nume intregi in loc de argumente (ex. &quot;input&quot; in loc de &quot;-I&quot;).&lt;br /&gt;
&lt;br /&gt;
3. Optiunea &quot;-k&quot; a disparut: foloseste &quot;! -y&quot;.&lt;br /&gt;
&lt;br /&gt;
4. Optiunea &quot;-b&quot; defapt introduce/sterge/adauga doua reguli, ma degraba decat&lt;br /&gt;
o singura regula bidirectionala.&lt;br /&gt;
&lt;br /&gt;
5. Optiunea &quot;-b&quot; poate fi folosita impreauna cu &quot;-C&quot; pentru a realiza doua&lt;br /&gt;
verificari (cate una in fiecare directie).&lt;br /&gt;
&lt;br /&gt;
6. Optiunea &quot;-x&quot; in folosire cu &quot;-l&quot; a fost inlocuit cu &quot;-v&quot;.&lt;br /&gt;
&lt;br /&gt;
7. Porturi multiple sursa si destinatie nu mai sunt suportate. Din fericire&lt;br /&gt;
faptul ca se pot nega siruri de porturi a indreptat pe undeva acest lucru.&lt;br /&gt;
&lt;br /&gt;
8. Interfetele pot fi specificate numai prin nume (nu si prin adrese). Vechea&lt;br /&gt;
sintaxa s-a schimbat in liniste oricum pentru kernelurile versiunea 2.1.&lt;br /&gt;
&lt;br /&gt;
9. Fragmentele sunt examinate, nu mai sunt permise automat.&lt;br /&gt;
&lt;br /&gt;
10. Accounting chain-urile explicite au fost inlaturate&lt;br /&gt;
&lt;br /&gt;
11. Protocoale diferite peste IP pot fi testate.&lt;br /&gt;
&lt;br /&gt;
12. Comportamentul vechi pentru potrivirea SYN si ACK (care inainte a fost&lt;br /&gt;
ignorat pentru pachetele non-TCP) s-a schimbat; optiunea SYN nu este valida&lt;br /&gt;
pentru reguli care nu sunt specifice TCP.&lt;br /&gt;
&lt;br /&gt;
13. Counterele sunt acum pe 64 de biti pentru masini pe 32 de bit, nu pe 32 de&lt;br /&gt;
biti.&lt;br /&gt;
&lt;br /&gt;
14. Inversarea optiunilor este posibila.&lt;br /&gt;
&lt;br /&gt;
15. Codurile ICMP sunt suportate acum.&lt;br /&gt;
&lt;br /&gt;
16. Definirea mai multe interfete odata este suportata.&lt;br /&gt;
&lt;br /&gt;
17. Manipularea TOS este acum verificata: inainte kernelul te oprea in&lt;br /&gt;
liniste, acum ipchains returneaza o eroare pentru cazurile invalide.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
8.1. Tabel pentru informare rapida&lt;br /&gt;
&lt;br /&gt;
[ In principal, argumentele pentru comenzi sunt cu litere mari, si argumentele&lt;br /&gt;
pentru optiuni sunt cu litere mici ]&lt;br /&gt;
&lt;br /&gt;
Inca un lucru de observat, masquerading este specificat prin &quot;-j MASQ&quot;, este&lt;br /&gt;
complet diferit fata de &quot;-j ACCEPT&quot;, si nu tratat doar ca un efect secundar,&lt;br /&gt;
cum face ipfwadm.&lt;br /&gt;
&lt;br /&gt;
================================================================&lt;br /&gt;
| ipfwadm      | ipchains              | Note&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
| -A [both]    | -N acct               | Creeaza un chain &quot;acct&quot;&lt;br /&gt;
|              |&amp;amp; -I 1 input -j acct   | si determina pachetele din&lt;br /&gt;
|              |&amp;amp; -I 1 output -j acct  | chain-ul input si output&lt;br /&gt;
|              |&amp;amp; acct                 | sa il traverseze&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
| -A in        | input                 | O regula fara nici o tinta&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
| -A out       | output                | O regula fara nici o tinta&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
| -F           | forward               | Foloseste acesta ca [chain].&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
| -I           | input                 | Foloseste acesta ca [chain].&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
| -O           | output                | Foloseste acesta ca [chain].&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
| -M -l        | -M -L                 |&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
| -M -s        | -M -S                 |&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
| -a policy    | -A [chain] -j POLICY  | (dar vezi -r si -m).&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
| -d policy    | -D [chain] -j POLICY  | (dar vezi -r si -m).&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
| -i policy    | -I 1 [chain] -j POLICY| (dar vezi -r si -m).&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
| -l           | -L                    |&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
| -z           | -Z                    |&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
| -f           | -F                    |&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
| -p           | -P                    |&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
| -c           | -C                    |&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
| -P           | -p                    |&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
| -S           | -s                    | Accepta un port sau un sir&lt;br /&gt;
|              |                       | nu valori multiple.&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
| -D           | -d                    | Accepta un port sau un sir&lt;br /&gt;
|              |                       | nu valori multiple.&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
| -V           | &amp;lt;none&amp;gt;                | Foloseste -i [nume].&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
| -W           | -i                    |&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
| -b           | -b                    | Acum sunt defapt 2 reguli.&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
| -e           | -v                    |&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
| -k           | ! -y                  | Nu functioneaza daca nu &lt;br /&gt;
|              |                       | este specificat -p tcp.&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
| -m           | -j MASQ               |&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
| -n           | -n                    |&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
| -o           | -l                    |&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
| -r [redirpt] | -j REDIRECT [redirpt] |&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
| -t           | -t                    |&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
| -v           | -v                    |&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
| -x           | -x                    |&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
| -y           | -y                    | Nu functioneaza daca nu&lt;br /&gt;
|              |                       | este specificat -p tcp.&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
8.2. Exemple de comenzi ipfwadm translatate in ipchains&lt;br /&gt;
&lt;br /&gt;
Comanda veche: ipfwadm -F  -p deny&lt;br /&gt;
&lt;br /&gt;
Comanda noua: ipchains -P forward DENY&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Comanda veche: ipfwadm -F -a m -S 192.168.0.0/24 -D 0.0.0.0/0&lt;br /&gt;
&lt;br /&gt;
Comanda noua: ipchains -A forward -j MASQ -s 192.168.0.0/24 -d&lt;br /&gt;
0.0.0.0/0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Comanda veche: ipfwadm -I -a accept -V 10.1.2.1 -S 10.0.0.0/8 -D&lt;br /&gt;
0.0.0.0/0&lt;br /&gt;
&lt;br /&gt;
Comanda noua: ipchains -A input -j ACCEPT -i eth0 -s 10.0.0.0/8 -d&lt;br /&gt;
0.0.0.0/0&lt;br /&gt;
&lt;br /&gt;
(Observa ca nu exista nici un echivalent pentru a specifica interfata prin&lt;br /&gt;
adresa: foloseste numele interfetei. Pe aceasta masina, 10.1.2.1 corespunde cu&lt;br /&gt;
eth0).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
9. Anexa: Folosirea scriptului ipfwadm-wrapper&lt;br /&gt;
&lt;br /&gt;
Scriptul ipfwadm-wrapper ar trebui sa fie un inlocuitor pentru ipfwadm pentru&lt;br /&gt;
compatibilitate cu ipfwadm 2.3a.&lt;br /&gt;
&lt;br /&gt;
Singura optiune pe care nu o poate folosi este &quot;-V&quot;. Cand aceasta este&lt;br /&gt;
folosita un avertisment este afisat. Daca optiunea &quot;-W&quot; este deasemenea &lt;br /&gt;
folosita, optiunea &quot;-V&quot; este ignorata. In caz contrar, scriptul incearca sa&lt;br /&gt;
gaseasca numele interfetei asociata cu aceea adresa folosind ifconfig. Daca&lt;br /&gt;
acest lucru nu reuseste (cum ar fi din cauza ca interfata nu este activata)&lt;br /&gt;
atunci scriptul se opreste cu un mesaj de eroare.&lt;br /&gt;
&lt;br /&gt;
Acest avertizment poate fi ascuns daca se inlocuieste &quot;-V&quot; cu &quot;-W&quot;, sau&lt;br /&gt;
redirectand output-ul scriptului catre /dev/null.&lt;br /&gt;
&lt;br /&gt;
Daca gasesti greseli in acest script, sau lucruri care sunt diferite intre&lt;br /&gt;
realul ipfwadm si acest script, te rog sa imi trimiti bug-ul: trimite un&lt;br /&gt;
e-mail la rusty@linuxcare.com cu &quot;BUG-REPORT&quot; in campul subiectului. Te rog sa&lt;br /&gt;
listezi versiunea ta de ipfwadm  (ipfwadm -h), versiunea de ipchains (ipchains&lt;br /&gt;
--version) si versiunea scriptului ipfwadm wrapper (ipfwadm-wrapper&lt;br /&gt;
--version). Trimite de asemenea output-ul pentru ipchains-save. Multumiri&lt;br /&gt;
anticipate.&lt;br /&gt;
&lt;br /&gt;
Folosirea impreuna a acestui script si ipchains este riscul tau.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
10. Anexa: Multumiri.&lt;br /&gt;
&lt;br /&gt;
Multe multumiri pentru Michael Neuling, care a realizat prima versiune de cod&lt;br /&gt;
pentru IP chains in timp ce lucra pentru mine. Imi cer scuze in mod public&lt;br /&gt;
pentru ca nu am luat in considerare ideea sa de result-caching, pe care a &lt;br /&gt;
propus-o mai tarziu Alan Cox, si pe care in final am inceput sa o implementez,&lt;br /&gt;
observand greselile mele.&lt;br /&gt;
&lt;br /&gt;
Multumiri lui Alan Cox, pentru tech suport de 24 de ore prin e-mail, si pentru&lt;br /&gt;
incurajari.&lt;br /&gt;
&lt;br /&gt;
Multumiri tuturor autorilor codului ipfwadm si ipfw, in special lui Jos Vos.&lt;br /&gt;
&lt;br /&gt;
Multumiri pentru beta-testeri si vanatorii de bug-uri in special lui: Jordan&lt;br /&gt;
Mendelson, Shaw Carruthers, Kevin Moule, Dr. Liviu Daia, Helmut Adams,&lt;br /&gt;
Franck Sicard, Kevin Littlejohn, Matt Kemner, John D. Hardin, Alexey&lt;br /&gt;
Kuznetsov, Leos Bitto, Jim Kunzman, Gerard Gerritsen, Serge Sivkov,&lt;br /&gt;
Andrew Burgess, Steve Schmidtke, Richard Offer, Bernhard Weisshuhn,&lt;br /&gt;
Larry Auton, Ambrose Li, Pavel Krauz, Steve Chadsey, Francesco&lt;br /&gt;
Potorti`, Alain Knaff, Casper Boden-Cummins and Henry Hollenberg.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
10.1. Traduceri&lt;br /&gt;
&lt;br /&gt;
Oamenii care realizeaza traduceri ar trebui sa se puna la inceputul paginii de&lt;br /&gt;
Multumiri, astfel:&quot;Multe multumiri lui XXX, pentru traducerea exacta din&lt;br /&gt;
engleza. Apoi spune-mi despre traducere ta, pentru a putea sa te includ aici.&lt;br /&gt;
&lt;br /&gt;
Arnaud Launay, asl@launay.org:&lt;br /&gt;
http://www.freenix.fr/unix/linux/HOWTO/IPCHAINS-HOWTO.html&lt;br /&gt;
&amp;lt;http://www.freenix.fr/unix/linux/HOWTO/IPCHAINS-HOWTO.html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Giovanni Bortolozzo, borto@pluto.linux.it:&lt;br /&gt;
http://www.pluto.linux.it/ildp/HOWTO/IPCHAINS-HOWTO.html&lt;br /&gt;
&amp;lt;http://www.pluto.linux.it/ildp/HOWTO/IPCHAINS-HOWTO.html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Herman Rodrнguez, herman@maristas.dhis.org:&lt;br /&gt;
http://netfilter.kernelnotes.org/ipchains/spanish/HOWTO.html&lt;br /&gt;
&amp;lt;http://netfilter.kernelnotes.org/ipchains/spanish/HOWTO.html&amp;gt;</content><link rel='replies' type='application/atom+xml' href='http://resurse-it.blogspot.com/feeds/1371654119334555765/comments/default' title='Postare comentarii'/><link rel='replies' type='text/html' href='http://resurse-it.blogspot.com/2011/04/cum-sa-obtii-instalezi-si-configurezi.html#comment-form' title='0 comentarii'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4915140777580483380/posts/default/1371654119334555765'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4915140777580483380/posts/default/1371654119334555765'/><link rel='alternate' type='text/html' href='http://resurse-it.blogspot.com/2011/04/cum-sa-obtii-instalezi-si-configurezi.html' title='Cum sa obtii, instalezi si configurezi software-ul ipchains pentru realizarea de firewall sub Linux, precum si cateva  posibilitati de folosire al acestuia'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4915140777580483380.post-6803049858307227933</id><published>2011-02-01T23:49:00.001-08:00</published><updated>2011-02-14T03:35:20.443-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Biblioteci"/><category scheme="http://www.blogger.com/atom/ns#" term="module"/><category scheme="http://www.blogger.com/atom/ns#" term="Pascal"/><category scheme="http://www.blogger.com/atom/ns#" term="programare"/><category scheme="http://www.blogger.com/atom/ns#" term="units"/><title type='text'>Unit-uri în Pascal</title><content type='html'>&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 150%; text-align: justify; text-indent: 35.4pt;&quot;&gt;&lt;span lang=&quot;RO&quot; style=&quot;font-size: 14.0pt; line-height: 150%;&quot;&gt;Construirea şi gestiunea bibliotecilor utilizator şi gestiunea bibliotecilor standard se realizează cu programul utilitar &lt;b style=&quot;mso-bidi-font-weight: normal;&quot;&gt;&lt;i style=&quot;mso-bidi-font-style: normal;&quot;&gt;tpumover&lt;/i&gt;&lt;/b&gt;.&lt;b style=&quot;mso-bidi-font-weight: normal;&quot;&gt;&lt;i style=&quot;mso-bidi-font-style: normal;&quot;&gt;exe&lt;/i&gt;&lt;/b&gt; care lansează printr-o linie de comandă de forma: &lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 150%; text-align: justify;&quot;&gt;&lt;b style=&quot;mso-bidi-font-weight: normal;&quot;&gt;&lt;i style=&quot;mso-bidi-font-style: normal;&quot;&gt;&lt;span lang=&quot;FR&quot; style=&quot;font-size: 14.0pt; line-height: 150%; mso-ansi-language: FR;&quot;&gt;tpumover&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;span lang=&quot;FR&quot; style=&quot;font-size: 14.0pt; line-height: 150%; mso-ansi-language: FR;&quot;&gt;.&lt;b style=&quot;mso-bidi-font-weight: normal;&quot;&gt;&lt;i style=&quot;mso-bidi-font-style: normal;&quot;&gt;exe&lt;/i&gt;&lt;/b&gt; &lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;&lt;i&gt;fişier-1 [[optiune]fişier-2]] ...&lt;/i&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 150%; text-align: justify;&quot;&gt;&lt;span lang=&quot;FR&quot; style=&quot;font-size: 14.0pt; line-height: 150%; mso-ansi-language: FR;&quot;&gt;Prin&lt;b&gt; fişier-1&lt;/b&gt; este desemnată o bibliotecă, iar prin&lt;b&gt; fişier-2&lt;/b&gt; o unitate compilată (extensiile implicite ale celor două fişiere sunt .&lt;i style=&quot;mso-bidi-font-style: normal;&quot;&gt;tpl&lt;/i&gt;, respectiv .&lt;i style=&quot;mso-bidi-font-style: normal;&quot;&gt;tpu&lt;/i&gt;). În absenţa informaţiilor pentru al doilea parametru, se listează conţinutul bibliotecii specificate. De exemplu, pentru listarea bibliotecii standard, considerînd că aceasta se află în directorul D:\TP\BIN, iar&lt;b style=&quot;mso-bidi-font-weight: normal;&quot;&gt;&lt;i style=&quot;mso-bidi-font-style: normal;&quot;&gt; tpumover&lt;/i&gt;&lt;/b&gt;.&lt;b style=&quot;mso-bidi-font-weight: normal;&quot;&gt;&lt;i style=&quot;mso-bidi-font-style: normal;&quot;&gt;exe&lt;/i&gt;&lt;/b&gt; &lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&lt;/span&gt;la fel se află în directorul D:\TP\BIN, se va folosi comanda: &lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 150%; text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Arial&amp;quot;, &amp;quot;sans-serif&amp;quot;; font-size: 14pt; line-height: 150%;&quot;&gt;D:\TP\BIN&amp;gt;&lt;/span&gt;&lt;i style=&quot;mso-bidi-font-style: normal;&quot;&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;Arial&amp;quot;, &amp;quot;sans-serif&amp;quot;; font-size: 14pt; line-height: 150%;&quot;&gt; tpumover&lt;/span&gt;&lt;/i&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;Arial&amp;quot;, &amp;quot;sans-serif&amp;quot;; font-size: 14pt; line-height: 150%;&quot;&gt;.&lt;i style=&quot;mso-bidi-font-style: normal;&quot;&gt;exe&lt;/i&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Arial&amp;quot;, &amp;quot;sans-serif&amp;quot;; font-size: 14pt; line-height: 150%;&quot;&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&lt;/span&gt;\TP\BIN\TURBO&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Arial&amp;quot;, &amp;quot;sans-serif&amp;quot;; font-size: 14pt; line-height: 150%;&quot;&gt; &lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 150%; text-align: justify;&quot;&gt;&lt;span lang=&quot;RO&quot; style=&quot;font-size: 14.0pt; line-height: 150%;&quot;&gt;ş&lt;/span&gt;&lt;span lang=&quot;FR&quot; style=&quot;font-size: 14.0pt; line-height: 150%; mso-ansi-language: FR;&quot;&gt;i se va obţine o listă de forma:&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 150%; text-align: justify;&quot;&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;Arial&amp;quot;, &amp;quot;sans-serif&amp;quot;; font-size: 14pt; line-height: 150%;&quot;&gt;TPU MOVER Version 7.0 Copyright (c) 1992 Borland International&lt;/span&gt;&lt;/div&gt;&lt;table border=&quot;0&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;MsoTableGrid&quot; style=&quot;border-collapse: collapse; border: none; margin-left: 14.4pt; mso-border-insideh: none; mso-border-insidev: none; mso-padding-alt: 0cm 5.4pt 0cm 5.4pt; mso-yfti-tbllook: 480;&quot;&gt;&lt;tbody&gt;
&lt;tr style=&quot;mso-yfti-firstrow: yes; mso-yfti-irow: 0;&quot;&gt;   &lt;td style=&quot;padding: 0cm 5.4pt 0cm 5.4pt; width: 99.0pt;&quot; valign=&quot;top&quot; width=&quot;132&quot;&gt;&lt;div align=&quot;center&quot; class=&quot;MsoNormal&quot; style=&quot;line-height: 150%; text-align: center;&quot;&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;Arial&amp;quot;, &amp;quot;sans-serif&amp;quot;; font-size: 14pt; line-height: 150%;&quot;&gt;Unit&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style=&quot;padding: 0cm 5.4pt 0cm 5.4pt; width: 81.0pt;&quot; valign=&quot;top&quot; width=&quot;108&quot;&gt;&lt;div align=&quot;center&quot; class=&quot;MsoNormal&quot; style=&quot;line-height: 150%; text-align: center;&quot;&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;Arial&amp;quot;, &amp;quot;sans-serif&amp;quot;; font-size: 14pt; line-height: 150%;&quot;&gt;Code&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style=&quot;padding: 0cm 5.4pt 0cm 5.4pt; width: 81.0pt;&quot; valign=&quot;top&quot; width=&quot;108&quot;&gt;&lt;div align=&quot;center&quot; class=&quot;MsoNormal&quot; style=&quot;line-height: 150%; text-align: center;&quot;&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;Arial&amp;quot;, &amp;quot;sans-serif&amp;quot;; font-size: 14pt; line-height: 150%;&quot;&gt;Data&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style=&quot;padding: 0cm 5.4pt 0cm 5.4pt; width: 180.0pt;&quot; valign=&quot;top&quot; width=&quot;240&quot;&gt;&lt;div align=&quot;center&quot; class=&quot;MsoNormal&quot; style=&quot;line-height: 150%; text-align: center;&quot;&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;Arial&amp;quot;, &amp;quot;sans-serif&amp;quot;; font-size: 14pt; line-height: 150%;&quot;&gt;Uses&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;
&lt;tr style=&quot;mso-yfti-irow: 1;&quot;&gt;   &lt;td style=&quot;padding: 0cm 5.4pt 0cm 5.4pt; width: 99.0pt;&quot; valign=&quot;top&quot; width=&quot;132&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 150%; text-align: justify;&quot;&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;Arial&amp;quot;, &amp;quot;sans-serif&amp;quot;; font-size: 14pt; line-height: 150%;&quot;&gt;System&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style=&quot;padding: 0cm 5.4pt 0cm 5.4pt; width: 81.0pt;&quot; valign=&quot;top&quot; width=&quot;108&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;line-height: 150%; text-align: right;&quot;&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;Arial&amp;quot;, &amp;quot;sans-serif&amp;quot;; font-size: 14pt; line-height: 150%;&quot;&gt;22757&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style=&quot;padding: 0cm 5.4pt 0cm 5.4pt; width: 81.0pt;&quot; valign=&quot;top&quot; width=&quot;108&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;line-height: 150%; text-align: right;&quot;&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;Arial&amp;quot;, &amp;quot;sans-serif&amp;quot;; font-size: 14pt; line-height: 150%;&quot;&gt;702&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style=&quot;padding: 0cm 5.4pt 0cm 5.4pt; width: 180.0pt;&quot; valign=&quot;top&quot; width=&quot;240&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 150%; text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;
&lt;tr style=&quot;mso-yfti-irow: 2;&quot;&gt;   &lt;td style=&quot;padding: 0cm 5.4pt 0cm 5.4pt; width: 99.0pt;&quot; valign=&quot;top&quot; width=&quot;132&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 150%; text-align: justify;&quot;&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;Arial&amp;quot;, &amp;quot;sans-serif&amp;quot;; font-size: 14pt; line-height: 150%;&quot;&gt;Overlay&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style=&quot;padding: 0cm 5.4pt 0cm 5.4pt; width: 81.0pt;&quot; valign=&quot;top&quot; width=&quot;108&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;line-height: 150%; text-align: right;&quot;&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;Arial&amp;quot;, &amp;quot;sans-serif&amp;quot;; font-size: 14pt; line-height: 150%;&quot;&gt;1859&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style=&quot;padding: 0cm 5.4pt 0cm 5.4pt; width: 81.0pt;&quot; valign=&quot;top&quot; width=&quot;108&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;line-height: 150%; text-align: right;&quot;&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;Arial&amp;quot;, &amp;quot;sans-serif&amp;quot;; font-size: 14pt; line-height: 150%;&quot;&gt;26&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style=&quot;padding: 0cm 5.4pt 0cm 5.4pt; width: 180.0pt;&quot; valign=&quot;top&quot; width=&quot;240&quot;&gt;&lt;div align=&quot;center&quot; class=&quot;MsoNormal&quot; style=&quot;line-height: 150%; text-align: center;&quot;&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;Arial&amp;quot;, &amp;quot;sans-serif&amp;quot;; font-size: 14pt; line-height: 150%;&quot;&gt;System&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;
&lt;tr style=&quot;mso-yfti-irow: 3;&quot;&gt;   &lt;td style=&quot;padding: 0cm 5.4pt 0cm 5.4pt; width: 99.0pt;&quot; valign=&quot;top&quot; width=&quot;132&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 150%; text-align: justify;&quot;&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;Arial&amp;quot;, &amp;quot;sans-serif&amp;quot;; font-size: 14pt; line-height: 150%;&quot;&gt;Crt&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style=&quot;padding: 0cm 5.4pt 0cm 5.4pt; width: 81.0pt;&quot; valign=&quot;top&quot; width=&quot;108&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;line-height: 150%; text-align: right;&quot;&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;Arial&amp;quot;, &amp;quot;sans-serif&amp;quot;; font-size: 14pt; line-height: 150%;&quot;&gt;1567&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style=&quot;padding: 0cm 5.4pt 0cm 5.4pt; width: 81.0pt;&quot; valign=&quot;top&quot; width=&quot;108&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;line-height: 150%; text-align: right;&quot;&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;Arial&amp;quot;, &amp;quot;sans-serif&amp;quot;; font-size: 14pt; line-height: 150%;&quot;&gt;20&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style=&quot;padding: 0cm 5.4pt 0cm 5.4pt; width: 180.0pt;&quot; valign=&quot;top&quot; width=&quot;240&quot;&gt;&lt;div align=&quot;center&quot; class=&quot;MsoNormal&quot; style=&quot;line-height: 150%; text-align: center;&quot;&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;Arial&amp;quot;, &amp;quot;sans-serif&amp;quot;; font-size: 14pt; line-height: 150%;&quot;&gt;System&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;
&lt;tr style=&quot;mso-yfti-irow: 4;&quot;&gt;   &lt;td style=&quot;padding: 0cm 5.4pt 0cm 5.4pt; width: 99.0pt;&quot; valign=&quot;top&quot; width=&quot;132&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 150%; text-align: justify;&quot;&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;Arial&amp;quot;, &amp;quot;sans-serif&amp;quot;; font-size: 14pt; line-height: 150%;&quot;&gt;Dos&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style=&quot;padding: 0cm 5.4pt 0cm 5.4pt; width: 81.0pt;&quot; valign=&quot;top&quot; width=&quot;108&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;line-height: 150%; text-align: right;&quot;&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;Arial&amp;quot;, &amp;quot;sans-serif&amp;quot;; font-size: 14pt; line-height: 150%;&quot;&gt;1591&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style=&quot;padding: 0cm 5.4pt 0cm 5.4pt; width: 81.0pt;&quot; valign=&quot;top&quot; width=&quot;108&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;line-height: 150%; text-align: right;&quot;&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;Arial&amp;quot;, &amp;quot;sans-serif&amp;quot;; font-size: 14pt; line-height: 150%;&quot;&gt;6&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style=&quot;padding: 0cm 5.4pt 0cm 5.4pt; width: 180.0pt;&quot; valign=&quot;top&quot; width=&quot;240&quot;&gt;&lt;div align=&quot;center&quot; class=&quot;MsoNormal&quot; style=&quot;line-height: 150%; text-align: center;&quot;&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;Arial&amp;quot;, &amp;quot;sans-serif&amp;quot;; font-size: 14pt; line-height: 150%;&quot;&gt;System&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;
&lt;tr style=&quot;mso-yfti-irow: 5; mso-yfti-lastrow: yes;&quot;&gt;   &lt;td style=&quot;padding: 0cm 5.4pt 0cm 5.4pt; width: 99.0pt;&quot; valign=&quot;top&quot; width=&quot;132&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 150%; text-align: justify;&quot;&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;Arial&amp;quot;, &amp;quot;sans-serif&amp;quot;; font-size: 14pt; line-height: 150%;&quot;&gt;printer&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style=&quot;padding: 0cm 5.4pt 0cm 5.4pt; width: 81.0pt;&quot; valign=&quot;top&quot; width=&quot;108&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;line-height: 150%; text-align: right;&quot;&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;Arial&amp;quot;, &amp;quot;sans-serif&amp;quot;; font-size: 14pt; line-height: 150%;&quot;&gt;54&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style=&quot;padding: 0cm 5.4pt 0cm 5.4pt; width: 81.0pt;&quot; valign=&quot;top&quot; width=&quot;108&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;line-height: 150%; text-align: right;&quot;&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;Arial&amp;quot;, &amp;quot;sans-serif&amp;quot;; font-size: 14pt; line-height: 150%;&quot;&gt;256&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style=&quot;padding: 0cm 5.4pt 0cm 5.4pt; width: 180.0pt;&quot; valign=&quot;top&quot; width=&quot;240&quot;&gt;&lt;div align=&quot;center&quot; class=&quot;MsoNormal&quot; style=&quot;line-height: 150%; text-align: center;&quot;&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;Arial&amp;quot;, &amp;quot;sans-serif&amp;quot;; font-size: 14pt; line-height: 150%;&quot;&gt;System&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 150%; text-align: justify; text-indent: 35.4pt;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 150%; text-align: justify; text-indent: 35.4pt;&quot;&gt;&lt;span lang=&quot;FR&quot; style=&quot;font-size: 14.0pt; line-height: 150%; mso-ansi-language: FR;&quot;&gt;Lista conţine unităţile din biblioteca standard, dimensiunea parţii de cod si de date asociate lor, precum şi uniturile pe care le utulizează. Se remarcă faptul că toate unităţile standard se referă la unitatea System. Pentru construirea bibliotecilor proprii, utilizatorul va lansa programul cu precizarea unui nume pentru fişierul bibliotecă, urmat de numele fişierelor .&lt;i style=&quot;mso-bidi-font-style: normal;&quot;&gt;tpu&lt;/i&gt; precedate de opţiunea &quot;+&quot; (adăugare). De exemplu, directorul BIN conţine toate fişierele .&lt;i style=&quot;mso-bidi-font-style: normal;&quot;&gt;tpu&lt;/i&gt; ale unităţilor create de utilizator, în acest caz pentru crearea bibliotecii personale &lt;b style=&quot;mso-bidi-font-weight: normal;&quot;&gt;My&lt;i style=&quot;mso-bidi-font-style: normal;&quot;&gt;_&lt;/i&gt;bibl&lt;/b&gt; se va scrie: &lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 150%; text-align: justify;&quot;&gt;&lt;span lang=&quot;FR&quot; style=&quot;font-family: &amp;quot;Arial&amp;quot;, &amp;quot;sans-serif&amp;quot;; font-size: 14pt; line-height: 150%;&quot;&gt;D:\TP\BIN&amp;gt;&lt;/span&gt;&lt;i style=&quot;mso-bidi-font-style: normal;&quot;&gt;&lt;span lang=&quot;FR&quot; style=&quot;font-family: &amp;quot;Arial&amp;quot;, &amp;quot;sans-serif&amp;quot;; font-size: 14pt; line-height: 150%;&quot;&gt;tpumover&lt;/span&gt;&lt;/i&gt;&lt;span lang=&quot;FR&quot; style=&quot;font-family: &amp;quot;Arial&amp;quot;, &amp;quot;sans-serif&amp;quot;; font-size: 14pt; line-height: 150%;&quot;&gt;.&lt;i style=&quot;mso-bidi-font-style: normal;&quot;&gt;exe&lt;/i&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;mso-bidi-font-weight: bold;&quot;&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&lt;/span&gt;My_bibl&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp; &lt;/span&gt;+sisteme.tpu +matrix.tpu +Interpol.tpu&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 150%; text-align: justify;&quot;&gt;&lt;span lang=&quot;FR&quot; style=&quot;font-family: &amp;quot;Arial&amp;quot;, &amp;quot;sans-serif&amp;quot;; font-size: 14pt; line-height: 150%;&quot;&gt;D:\TP\BIN&amp;gt;&lt;/span&gt;&lt;i style=&quot;mso-bidi-font-style: normal;&quot;&gt;&lt;span lang=&quot;FR&quot; style=&quot;font-family: &amp;quot;Arial&amp;quot;, &amp;quot;sans-serif&amp;quot;; font-size: 14pt; line-height: 150%;&quot;&gt;tpumover&lt;/span&gt;&lt;/i&gt;&lt;span lang=&quot;FR&quot; style=&quot;font-family: &amp;quot;Arial&amp;quot;, &amp;quot;sans-serif&amp;quot;; font-size: 14pt; line-height: 150%;&quot;&gt;.&lt;i style=&quot;mso-bidi-font-style: normal;&quot;&gt;exe&lt;/i&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;mso-bidi-font-weight: bold;&quot;&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&lt;/span&gt;My_bibl&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp; &lt;/span&gt;+ecuatii.tpu +functie.tpu +integr.tpu&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 150%; text-align: justify; text-indent: 35.4pt;&quot;&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-size: 14.0pt; line-height: 150%; mso-ansi-language: EN-GB; mso-bidi-font-weight: bold;&quot;&gt;După realizarea acestor comenzi ân directoriul BIN se va crea un fişier cu numele My_bibl.tpl.&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 150%; text-align: justify;&quot;&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;Arial&amp;quot;, &amp;quot;sans-serif&amp;quot;; font-size: 14pt; line-height: 150%;&quot;&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;mso-tab-count: 1;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span lang=&quot;FR&quot; style=&quot;font-size: 14.0pt; line-height: 150%; mso-ansi-language: FR;&quot;&gt;Pentru ştergerea unit-ului &lt;i style=&quot;mso-bidi-font-style: normal;&quot;&gt;ecuatii&lt;/i&gt;.&lt;i style=&quot;mso-bidi-font-style: normal;&quot;&gt;tpu&lt;/i&gt; din biblioteca &lt;b style=&quot;mso-bidi-font-weight: normal;&quot;&gt;My_bibl&lt;/b&gt;, se scrie comanda: &lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 150%; text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Arial&amp;quot;, &amp;quot;sans-serif&amp;quot;; font-size: 14pt; line-height: 150%;&quot;&gt;D:\TP\BIN&amp;gt;&lt;/span&gt;&lt;i style=&quot;mso-bidi-font-style: normal;&quot;&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;Arial&amp;quot;, &amp;quot;sans-serif&amp;quot;; font-size: 14pt; line-height: 150%;&quot;&gt; tpumover&lt;/span&gt;&lt;/i&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;Arial&amp;quot;, &amp;quot;sans-serif&amp;quot;; font-size: 14pt; line-height: 150%;&quot;&gt;.&lt;i style=&quot;mso-bidi-font-style: normal;&quot;&gt;exe&lt;/i&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;Arial&amp;quot;, &amp;quot;sans-serif&amp;quot;; font-size: 14pt; line-height: 150%;&quot;&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Arial&amp;quot;, &amp;quot;sans-serif&amp;quot;; font-size: 14pt; line-height: 150%;&quot;&gt;My_bibl –ecuatii.tpu&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Arial&amp;quot;, &amp;quot;sans-serif&amp;quot;; font-size: 14pt; line-height: 150%;&quot;&gt; &lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 150%; text-align: justify; text-indent: 35.4pt;&quot;&gt;&lt;span lang=&quot;FR&quot; style=&quot;font-size: 14.0pt; line-height: 150%; mso-ansi-language: FR;&quot;&gt;La o comandă de forma:&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 150%; text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Arial&amp;quot;, &amp;quot;sans-serif&amp;quot;; font-size: 14pt; line-height: 150%;&quot;&gt;D:\TP\BIN&amp;gt;&lt;/span&gt;&lt;i style=&quot;mso-bidi-font-style: normal;&quot;&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;Arial&amp;quot;, &amp;quot;sans-serif&amp;quot;; font-size: 14pt; line-height: 150%;&quot;&gt; tpumover&lt;/span&gt;&lt;/i&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;font-family: &amp;quot;Arial&amp;quot;, &amp;quot;sans-serif&amp;quot;; font-size: 14pt; line-height: 150%;&quot;&gt;.&lt;i style=&quot;mso-bidi-font-style: normal;&quot;&gt;exe&lt;/i&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Arial&amp;quot;, &amp;quot;sans-serif&amp;quot;; font-size: 14pt; line-height: 150%;&quot;&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&lt;/span&gt;\TP\BIN\My_bibl&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Arial&amp;quot;, &amp;quot;sans-serif&amp;quot;; font-size: 14pt; line-height: 150%;&quot;&gt; &lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 150%; text-align: justify;&quot;&gt;&lt;span lang=&quot;FR&quot; style=&quot;font-size: 14.0pt; line-height: 150%; mso-ansi-language: FR;&quot;&gt;se vor afişa informaţii despre conţinutul bibliotecii&amp;nbsp;:&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://resurse-educationale.uv.ro/&quot;&gt;http://resurse-educationale.uv.ro&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://resurse-it.blogspot.com/feeds/6803049858307227933/comments/default' title='Postare comentarii'/><link rel='replies' type='text/html' href='http://resurse-it.blogspot.com/2011/02/unit-uri-in-pascal.html#comment-form' title='0 comentarii'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4915140777580483380/posts/default/6803049858307227933'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4915140777580483380/posts/default/6803049858307227933'/><link rel='alternate' type='text/html' href='http://resurse-it.blogspot.com/2011/02/unit-uri-in-pascal.html' title='Unit-uri în Pascal'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4915140777580483380.post-4217005763575791425</id><published>2011-02-01T03:11:00.000-08:00</published><updated>2011-02-01T05:53:48.409-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="download"/><category scheme="http://www.blogger.com/atom/ns#" term="Pascal"/><category scheme="http://www.blogger.com/atom/ns#" term="programare"/><category scheme="http://www.blogger.com/atom/ns#" term="Programming"/><category scheme="http://www.blogger.com/atom/ns#" term="string"/><category scheme="http://www.blogger.com/atom/ns#" term="tipuri de date"/><title type='text'>Tipul de date string în Pascal</title><content type='html'>Elaborarea cursurilor multimedia instructive prin aplicarea tehnologiilor multimedia nu necesită abilităţi şi cunoştinţe de specialitate în informatică şi sunt accesibile tuturor ce deţin o cultură informaţională adecvată. Dat fiind faptul că sistemele şi tehnologiile multimedia sunt în continuă dezvoltare, cresc şi performanţele fiecărui tip de programe, fiind mai interesante şi mai captivante.&lt;br/&gt;&lt;br/&gt;Un &lt;em&gt;modul&lt;/em&gt; este un element simplu şi autonom, care însă poate intra în calitate de componentă într-un ansamblu mai complex.&lt;br/&gt;&lt;br/&gt;Se numeşte &lt;em&gt;curs multimedia instructiv&lt;/em&gt; (CMI) o reţea de module, create pe baza tehnologiilor multimedia, reprezentînd informaţii multimedia, pentru acumularea cunoştinţelor în orice domeniu disciplinar.&lt;br/&gt;&lt;br/&gt;La elaborarea unui curs instructiv asistat de calculator trebuie de pacurs următoarele etape:&lt;br/&gt;&lt;br/&gt;După cum s-a meţionat mai sus una din priorităţile instruirii asistate de calculator este aplicarea elementelor multimedia: imagini grafice, imagini 3D, elemente de sunet (voce, mizică), clipuri-video, filme, animaţie. Ele oferă posibilitatea explicării proceselor complexe prin adăugarea efectelor ilustrative multimedia.&lt;br/&gt;&lt;br/&gt;&lt;em&gt;Obietivul de bază&lt;/em&gt; al implementării lecţiilor electronice, incluse în cursurile multimedia instructive este asistarea şi înlocuirea patţială a materiei studiate în mod tradiţional. Deaceea la crearea cursurilor de instruire electronice autorul trebuie să selecteze minuţios temele ce vor fi incluse în curs. Cursul creat trebuie să fie consecutiv şi integru.&lt;br/&gt;&lt;br/&gt;Utlizarea tehnologiilor informaţionale asigură instruirea computerizată cu acomodarea la viteza de asimilare a informaţiei pentru fiecare utilizator în parte.&lt;br/&gt;&lt;br/&gt;Modulele cursului multimedia elaborat trebuie să conţină un număr suficient de obiecte de navigare, hottascuri (combinaţii de taste), pauze, posibilităţi de anulare (ESC) a unor acţiuni etc. Modumele informaţionale şi paginile cursului pot fi legate prin cuvinte-cheie, legături definite de autor.&lt;br/&gt;&lt;br/&gt;E necesar să oferim posibilitatea alegerii de către utilizator a oricărei teme pentru strudiere. Trebuie să asigurăm ieşirea către începutul programului (meniul de bază), cît şi către pagina primară a oricărui modul...&lt;br/&gt;&lt;br/&gt;&lt;em&gt;Sugestii şi recomadări&lt;/em&gt; de creare a cursului:&lt;br/&gt;&lt;br/&gt;Este bine de folosit nu mai mult de trei culori pe o pagină. Alte efecte pot fi obţinute prin schimbarea temporară a culorii fragmentului, care apoi revine la culoarea iniţială.&lt;br/&gt;&lt;br/&gt;Documentele grafice sunt informaţii în formă de imagini fixe reprezentînd grafice, schiţe tehnice, desene, imagini foto. Utilizarea imaginilor la crearea unui curs multimedia insctructiv îl face mai explicit, mai interesant, mai captivant&lt;br/&gt;&lt;br/&gt;Secvenţele video sunt informaţii în formă de imagini în mişcare – filme etc. Pregătirea benzilor animate este un proces mai complicat, dar în unele cazuri poate fi necesar. O deosebire clară între video-clipuri şi animaţie nu este reliefată. Cu filme sunt reflectate imagini din lumea reală, iar cu animaţii şi vedeo-clipuri – imagini din lumea virtuală.&lt;br/&gt;&lt;br/&gt;Există mai multe forme de proiectare a unui dialog. Din cele mai cunoscute tipuri de dialog sunt:&lt;br/&gt;&lt;br/&gt;&lt;strong&gt;- &lt;/strong&gt;selectarea cu ajutorul mause-lui a opţiunii necesare din meniu;&lt;br/&gt;&lt;br/&gt;- înscrierea opţiunii necesare, sau a abrevierii acesteia;&lt;br/&gt;&lt;br/&gt;- activarea unei taste corespunzătoare funcţiei date.&lt;br/&gt;&lt;br/&gt;Cea mai eficientă este selectarea cu ajutorul mouse-lui.&lt;br/&gt;&lt;br/&gt;Secvenţele audio sunt informaţii în formă acustică: voce, muzică,sunet, etc. În cadrul creării unui curs multimedia instructiv sunetul reprezintă un mijloc eficient de influenţare. Cu ajutorul sunetului putem contribui la focalizarea atenţiei către un obiect de pe ecran. Secvenţele audio ocupă un volum mare, deaceea se vor utiliza doar în caz de strictă necesitate.&lt;br/&gt;&lt;br/&gt;O valoare psihologică înaltă o are maniera sau tonul de expunere a informaţiei de studiu. Pentru ca expunerea informaţiei să fie mai accesibilă este necesar să fie ales un ton agreabil. O abordare aproblemei de-o manieră autoritară va avea o expunere severă şi neatractivă, deaceea poate duce la plictiseală şi la scăderea interesului faţă de studiu, pînă la abandonarea cursului. Folosirea binevoinţei, nuanţelor de umor contribuie la stabilirea unui &lt;em&gt;feedback&lt;/em&gt; (conexiune inversă)sănătos între utilizator şi CMI&lt;br/&gt;&lt;br/&gt;&lt;a rel=&quot;attachment wp-att-103&quot; href=&quot;http://resurse-educationale.uv.ro/?attachment_id=103&quot;&gt;Download Tipul de date string&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://resurse-it.blogspot.com/feeds/4217005763575791425/comments/default' title='Postare comentarii'/><link rel='replies' type='text/html' href='http://resurse-it.blogspot.com/2011/02/tipul-de-date-string-in-pascal.html#comment-form' title='0 comentarii'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4915140777580483380/posts/default/4217005763575791425'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4915140777580483380/posts/default/4217005763575791425'/><link rel='alternate' type='text/html' href='http://resurse-it.blogspot.com/2011/02/tipul-de-date-string-in-pascal.html' title='Tipul de date string în Pascal'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4915140777580483380.post-1623070715822687272</id><published>2011-02-01T03:08:00.000-08:00</published><updated>2011-02-01T05:53:48.396-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="arraz"/><category scheme="http://www.blogger.com/atom/ns#" term="Didactică"/><category scheme="http://www.blogger.com/atom/ns#" term="download"/><category scheme="http://www.blogger.com/atom/ns#" term="Pascal"/><category scheme="http://www.blogger.com/atom/ns#" term="programare"/><category scheme="http://www.blogger.com/atom/ns#" term="Programming"/><category scheme="http://www.blogger.com/atom/ns#" term="tipuri de date"/><title type='text'>Tipuri de date Array (Tablou) în Pascal.</title><content type='html'>Un &lt;strong&gt;&lt;em&gt;array&lt;/em&gt;&lt;/strong&gt; (masiv) este un bloc continuu de celule din memoria calculatorului, reunit sub un nume comun. &lt;strong&gt;&lt;em&gt;Array&lt;/em&gt;&lt;/strong&gt;-ul descrie o structură de entităţi (componente) care, geometric, sunt atît de regulate încît oricare dintre ele pot fi specificate în mod unic prin precizarea coordonatelor. Aceste coordonate sunt numite indici. În limbajul Pascal indicii sunt listaţi în paranteze drepte care urmeaza numelui &lt;strong&gt;&lt;em&gt;array&lt;/em&gt;&lt;/strong&gt;-ului ca în &lt;strong&gt;a[3]&lt;/strong&gt; (se citeşte a de 3) şi &lt;strong&gt;b[i,j]&lt;/strong&gt; (se citeşte b de i şi j!). Deşi [3] şi [i,j] nu pot apărea ca indici, ei sunt versiuni liniarizate ale indicilor folosiţi în notaţii ca a&lt;sub&gt;3&lt;/sub&gt; şi b&lt;sub&gt;i,j&lt;/sub&gt;. Din moment ce &lt;strong&gt;&lt;em&gt;array&lt;/em&gt;&lt;/strong&gt;-urile sunt stocate în memorie, orice componente ale acestora pot fi accesate (regăsite) foarte repede, timpul de acces fiind independent de locaţia componentei (&lt;strong&gt;&lt;em&gt;array&lt;/em&gt;&lt;/strong&gt;-ului).&lt;br/&gt;&lt;br/&gt;&lt;strong&gt;&lt;em&gt;Array&lt;/em&gt;&lt;/strong&gt;-urile ale căror componente pot fi identificate folosind un singur indice sunt numite &lt;strong&gt;&lt;em&gt;array&lt;/em&gt;&lt;/strong&gt;-uri unidimensionale, &lt;strong&gt;&lt;em&gt;array&lt;/em&gt;&lt;/strong&gt;-urile ca b[i,j] cu doi indici sunt numite bidimensionale, iar cele cu mai mult de doi indici sunt numite multidimensionale.&lt;br/&gt;&lt;br/&gt;Matematicienii şi oamenii de ştiinţă folosesc frecvent &lt;strong&gt;&lt;em&gt;array&lt;/em&gt;&lt;/strong&gt;-uri bidimensionale pe care le numesc &lt;strong&gt;matrici&lt;/strong&gt;. Toate &lt;strong&gt;&lt;em&gt;array&lt;/em&gt;&lt;/strong&gt;-urile ilustrate mai jos respectă definitia unui &lt;strong&gt;&lt;em&gt;array&lt;/em&gt;&lt;/strong&gt;, dar ele nu sunt în egală masură acceptate de  Pascal&lt;br/&gt;&lt;br/&gt;&lt;strong&gt;&lt;em&gt;Array&lt;/em&gt;&lt;/strong&gt;-urile sunt folositoare, dar nu necesare pentru însumarea numerelor. Consideram urmatorul program pentru adunarea a cinci valori întregi:&lt;br/&gt;&lt;br/&gt;&lt;strong&gt;PROGRAM&lt;/strong&gt; suma5;&lt;br/&gt;&lt;br/&gt;&lt;strong&gt;&lt;em&gt;var&lt;/em&gt;&lt;/strong&gt;&lt;br/&gt;&lt;br/&gt;a,b,c,d,e,suma:integer;&lt;br/&gt;&lt;br/&gt;&lt;strong&gt;&lt;em&gt;begin&lt;/em&gt;&lt;/strong&gt;&lt;br/&gt;&lt;br/&gt;writeln(&#39;Introduceti a,b,c,d,e &#39;);&lt;br/&gt;&lt;br/&gt;readln(a,b,c,d,e);&lt;br/&gt;&lt;br/&gt;suma:=a+b+c+d+e;&lt;br/&gt;&lt;br/&gt;writeln(&#39;Suma este: &#39;,suma)&lt;br/&gt;&lt;br/&gt;&lt;strong&gt;&lt;em&gt;end&lt;/em&gt;&lt;/strong&gt; {suma5}.&lt;br/&gt;&lt;br/&gt;Acum, presupunem ca în loc de cinci valori de intrare avem 50, 500 sau 5000! Evident, tehnica utilizată în programul &lt;em&gt;suma5&lt;/em&gt; nu &quot;prea ţine&quot;; cine este dispus să inventeze 5000 de nume diferite de variabile? Altfel stau lucrurile dacă vom folosi un &lt;strong&gt;&lt;em&gt;array&lt;/em&gt;&lt;/strong&gt;, ca în programul &lt;em&gt;nouasuma5&lt;/em&gt;.&lt;br/&gt;&lt;br/&gt;&lt;strong&gt; &lt;/strong&gt;&lt;br/&gt;&lt;br/&gt;&lt;strong&gt;PROGRAM&lt;/strong&gt; nouasuma5;&lt;br/&gt;&lt;br/&gt;&lt;strong&gt;&lt;em&gt;const&lt;/em&gt;&lt;/strong&gt;&lt;br/&gt;&lt;br/&gt;n=5000;&lt;br/&gt;&lt;br/&gt;&lt;strong&gt;&lt;em&gt;var&lt;/em&gt;&lt;/strong&gt;&lt;br/&gt;&lt;br/&gt;a:&lt;strong&gt;&lt;em&gt;array&lt;/em&gt;&lt;/strong&gt;[1..n] &lt;strong&gt;&lt;em&gt;of&lt;/em&gt;&lt;/strong&gt; integer;&lt;br/&gt;&lt;br/&gt;i,suma:integer;&lt;br/&gt;&lt;br/&gt;&lt;strong&gt;&lt;em&gt;begin&lt;/em&gt;&lt;/strong&gt;&lt;br/&gt;&lt;br/&gt;suma:=0; { initializare suma }&lt;br/&gt;&lt;br/&gt;&lt;strong&gt;&lt;em&gt;for&lt;/em&gt;&lt;/strong&gt; i:=1 &lt;strong&gt;&lt;em&gt;to&lt;/em&gt;&lt;/strong&gt; n &lt;strong&gt;&lt;em&gt;do&lt;/em&gt;&lt;/strong&gt;&lt;br/&gt;&lt;br/&gt;&lt;strong&gt;&lt;em&gt;begin&lt;/em&gt;&lt;/strong&gt;&lt;br/&gt;&lt;br/&gt;read(a[i]);&lt;br/&gt;&lt;br/&gt;suma:=suma+a[i];&lt;br/&gt;&lt;br/&gt;&lt;strong&gt;&lt;em&gt;end&lt;/em&gt;&lt;/strong&gt;;&lt;br/&gt;&lt;br/&gt;write(suma);&lt;br/&gt;&lt;br/&gt;&lt;strong&gt;&lt;em&gt;end&lt;/em&gt;&lt;/strong&gt; {nouasuma5}.&lt;br/&gt;&lt;br/&gt;Se pune următoarea întrebare: a fost necesară definirea unui &lt;strong&gt;&lt;em&gt;array&lt;/em&gt;&lt;/strong&gt;? Raspunsul este: nu. Argumentul este simplu - nu a fost exploatată proprietatea de acces direct a &lt;strong&gt;&lt;em&gt;array&lt;/em&gt;&lt;/strong&gt;-ului. Pentru această problemă, soluţia preferată este cea ilustrată în programul prezentat mai jos, care foloseşte o singură variabilă de intrare &lt;strong&gt;a&lt;/strong&gt;:&lt;br/&gt;&lt;br/&gt;&lt;strong&gt;PROGRAM&lt;/strong&gt; suma;&lt;br/&gt;&lt;br/&gt;&lt;strong&gt;&lt;em&gt;var&lt;/em&gt;&lt;/strong&gt;&lt;br/&gt;&lt;br/&gt;s,a:integer;&lt;br/&gt;&lt;br/&gt;&lt;strong&gt;&lt;em&gt;begin&lt;/em&gt;&lt;/strong&gt;&lt;br/&gt;&lt;br/&gt;s:=0;&lt;br/&gt;&lt;br/&gt;&lt;strong&gt;&lt;em&gt;while&lt;/em&gt;&lt;/strong&gt; &lt;strong&gt;NOT&lt;/strong&gt; eof &lt;strong&gt;&lt;em&gt;do&lt;/em&gt;&lt;/strong&gt;&lt;br/&gt;&lt;br/&gt;&lt;strong&gt;&lt;em&gt;begin&lt;/em&gt;&lt;/strong&gt;&lt;br/&gt;&lt;br/&gt;read(a);&lt;br/&gt;&lt;br/&gt;s:=s+a;&lt;br/&gt;&lt;br/&gt;&lt;strong&gt;&lt;em&gt;end&lt;/em&gt;&lt;/strong&gt;;&lt;br/&gt;&lt;br/&gt;write(s);&lt;br/&gt;&lt;br/&gt;&lt;strong&gt;&lt;em&gt;end&lt;/em&gt;&lt;/strong&gt;&lt;strong&gt; &lt;/strong&gt;{suma}.&lt;br/&gt;&lt;br/&gt;&lt;em&gt;§3. Managementul indicilor&lt;/em&gt;&lt;br/&gt;&lt;br/&gt;Presupunem că &lt;strong&gt;a&lt;/strong&gt; este de tip &lt;strong&gt;&lt;em&gt;array&lt;/em&gt;&lt;/strong&gt; [0..n] &lt;strong&gt;&lt;em&gt;of&lt;/em&gt;&lt;/strong&gt; integer; unde &lt;strong&gt;n&lt;/strong&gt; este o constantă, iar &lt;strong&gt;i&lt;/strong&gt; un &lt;em&gt;înteger&lt;/em&gt;. Pentru a atribui fiecărui element a[i] valoarea indicelui este usor.&lt;br/&gt;&lt;br/&gt;&lt;strong&gt;&lt;em&gt;for&lt;/em&gt;&lt;/strong&gt; i:=0 &lt;strong&gt;&lt;em&gt;to&lt;/em&gt;&lt;/strong&gt; n &lt;strong&gt;&lt;em&gt;do&lt;/em&gt;&lt;/strong&gt;&lt;br/&gt;&lt;br/&gt;a[i]:=i;&lt;br/&gt;&lt;br/&gt;Pentru a atribui fiecărui element a[i] valoarea n-i procedam ca în exemplul urmator:&lt;br/&gt;&lt;br/&gt;&lt;strong&gt;Exemplu:&lt;/strong&gt;&lt;br/&gt;&lt;br/&gt;&lt;strong&gt;&lt;em&gt;for&lt;/em&gt;&lt;/strong&gt; i:=0 &lt;strong&gt;&lt;em&gt;to&lt;/em&gt;&lt;/strong&gt; n &lt;strong&gt;&lt;em&gt;do&lt;/em&gt;&lt;/strong&gt;&lt;br/&gt;&lt;br/&gt;a[i]:=n-i;&lt;br/&gt;&lt;br/&gt;&lt;strong&gt;&lt;em&gt;for&lt;/em&gt;&lt;/strong&gt; i:=0 &lt;strong&gt;&lt;em&gt;to&lt;/em&gt;&lt;/strong&gt; n &lt;strong&gt;&lt;em&gt;do&lt;/em&gt;&lt;/strong&gt;&lt;br/&gt;&lt;br/&gt;a[n-i]:=i;&lt;br/&gt;&lt;br/&gt;În fiecare caz a trebuit să  descoperim cîte o relaţie între &lt;strong&gt;a[i]&lt;/strong&gt;, &lt;strong&gt;a[n-i]&lt;/strong&gt; şi &lt;strong&gt;i&lt;/strong&gt; şi între &lt;strong&gt;a[i]&lt;/strong&gt; şi &lt;strong&gt;n-i&lt;/strong&gt;.&lt;br/&gt;&lt;br/&gt;Iata un exemplu mai interesant.&lt;br/&gt;&lt;br/&gt;Presupunem că procedura &lt;strong&gt;exchange&lt;/strong&gt; este corespunzător definită ca un &lt;strong&gt;&lt;em&gt;array&lt;/em&gt;&lt;/strong&gt; ce conţine cîteva valori şi că dorim să inversăm ordinea acelor valori.&lt;br/&gt;&lt;br/&gt;&lt;strong&gt;a[0]&amp;lt;-&amp;gt;a[n]&lt;/strong&gt;&lt;br/&gt;&lt;br/&gt;&lt;strong&gt;a[1]&amp;lt;-&amp;gt;a[n-1]&lt;/strong&gt;&lt;br/&gt;&lt;br/&gt;&lt;strong&gt;a[2]&amp;lt;-&amp;gt;a[n-2]&lt;/strong&gt;&lt;br/&gt;&lt;br/&gt;Relaţia dintre indicii succesivi este uşor de stabilit:&lt;br/&gt;&lt;br/&gt;&lt;strong&gt;a[i]&amp;lt;-&amp;gt;a[n-i]&lt;/strong&gt;&lt;br/&gt;&lt;br/&gt;Dar ce limită superioară ar trebui să fie folosită de ciclul &lt;strong&gt;&lt;em&gt;for&lt;/em&gt;&lt;/strong&gt; astfel încît să minimalizăm numărul de schimbări necesare ?&lt;br/&gt;&lt;br/&gt;Exprimarea din exemplul urmator, dupa cum se poate constata uşor, nu face mai nimic!&lt;br/&gt;&lt;br/&gt;&lt;strong&gt;Exemplu:&lt;/strong&gt;&lt;br/&gt;&lt;br/&gt;&lt;strong&gt;&lt;em&gt;for&lt;/em&gt;&lt;/strong&gt; i:=0 &lt;strong&gt;&lt;em&gt;to&lt;/em&gt;&lt;/strong&gt; n &lt;strong&gt;&lt;em&gt;do&lt;/em&gt;&lt;/strong&gt;&lt;br/&gt;&lt;br/&gt;&lt;strong&gt;&lt;em&gt;exchange&lt;/em&gt;&lt;/strong&gt;(a[i],a[n-i]);&lt;br/&gt;&lt;br/&gt;Ceea ce ne trebuie este soluţia următoare, care lucrează atît pentru o valoare para a lui n, cît şi pentru o valoare impară.&lt;br/&gt;&lt;br/&gt;&lt;strong&gt;Exemplu:&lt;/strong&gt;&lt;br/&gt;&lt;br/&gt;&lt;strong&gt;&lt;em&gt;for&lt;/em&gt;&lt;/strong&gt; i:=0 &lt;strong&gt;&lt;em&gt;to&lt;/em&gt;&lt;/strong&gt; (n-1) &lt;strong&gt;div&lt;/strong&gt; 2 &lt;strong&gt;&lt;em&gt;do&lt;/em&gt;&lt;/strong&gt;&lt;br/&gt;&lt;br/&gt;&lt;strong&gt;&lt;em&gt;exchange&lt;/em&gt;&lt;/strong&gt;(a[i],a[n-i]);&lt;br/&gt;&lt;br/&gt;Exemplele prezentate sunt tipice utilizării &lt;strong&gt;&lt;em&gt;array&lt;/em&gt;&lt;/strong&gt;-ului cu o dimensiune. Cheia succesului constă în managementul indicilor.&lt;br/&gt;&lt;br/&gt;&lt;a rel=&quot;attachment wp-att-99&quot; href=&quot;http://resurse-educationale.uv.ro/?attachment_id=99&quot;&gt;Tipuri de date array&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://resurse-it.blogspot.com/feeds/1623070715822687272/comments/default' title='Postare comentarii'/><link rel='replies' type='text/html' href='http://resurse-it.blogspot.com/2011/02/tipuri-de-date-array-tablou-in-pascal.html#comment-form' title='0 comentarii'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4915140777580483380/posts/default/1623070715822687272'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4915140777580483380/posts/default/1623070715822687272'/><link rel='alternate' type='text/html' href='http://resurse-it.blogspot.com/2011/02/tipuri-de-date-array-tablou-in-pascal.html' title='Tipuri de date Array (Tablou) în Pascal.'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4915140777580483380.post-2204049185817423854</id><published>2011-02-01T03:04:00.000-08:00</published><updated>2011-02-01T05:53:48.382-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="dinamică"/><category scheme="http://www.blogger.com/atom/ns#" term="download"/><category scheme="http://www.blogger.com/atom/ns#" term="Pascal"/><category scheme="http://www.blogger.com/atom/ns#" term="programare"/><category scheme="http://www.blogger.com/atom/ns#" term="programe rezolvate"/><category scheme="http://www.blogger.com/atom/ns#" term="Programming"/><title type='text'>Programare dinamică. Programe rezolvate.</title><content type='html'>Datorită faptului că este una din cele mai complexe tehnici de programare, vom acorda o atenţie mărită acestei modalităţi de tratare a programelor, atenţie însoţită de un număr mare de exemple. Ele sunt în majoritate de facturi diferite, şi constituie un bun punct de pornire în formarea unei gândiri dinamice.&lt;br/&gt;&lt;br/&gt;Datorită  frecvenţei folosirii aceluiaşi termen, vom nota noţiunea de programare dinamică prin iniţialele &lt;strong&gt;PD&lt;/strong&gt;.&lt;br/&gt;&lt;br/&gt;&lt;strong&gt;PD&lt;/strong&gt; este o tehnică de programare de nivel înalt în sens că necesită o îmbinare între intuiţie şi rigurozitate matematică. Expunem, într-un mod intuitiv, ideile acestei tehnici.&lt;br/&gt;&lt;br/&gt;&lt;strong&gt; &lt;/strong&gt;În general, termenul de &quot;principiul optimalităţii&quot; semnifică următoarele: atunci când vrem să obţinem o situaţie favorabilă dintr-un anumit punct de vedere, este bine ca ea să rezulte tot din spaţii favorabile. Un exemplu intuitiv este acel al distanţelor:&lt;br/&gt;&lt;br/&gt;Într-un cartier sînt mai multe case, pe care le vom nota cu litere: A,….,Z. Dacă există un drum minim de la A  la Z şi acest drum trece de exemplu prin D, atunci porţiunile din acest drum situate între A şi D, respectiv D şi Z sunt minime.&lt;br/&gt;&lt;br/&gt;Pentru a justifica aceasta, să presupunem prin absurd că drumul A-α-D nu ar fi minim. Înseamnă că există alt traseu A-β-D mai scurt decât acesta; dacă luăm atunci drumul A- β - D - Z, el va fi evident mai scurt decât drumul A  - α - D - Z, care este considerat ca fiind drum minim, contradicţie.&lt;br/&gt;&lt;br/&gt;Deci, dacă traseul A-Z este optim, atunci orice subtraseu al său este optim.&lt;br/&gt;&lt;br/&gt;Principiul optimalităţii are 3 variante:&lt;br/&gt;&lt;br/&gt;s1,  s2, …, si să fie optim.&lt;br/&gt;&lt;br/&gt;De precizat că reciproca nu este adevărată totdeauna: din îmbinarea a două optime nu rezultă neapărat un optim; doar dacă avem un optim, putem fi siguri că el este compus din două optime. Deci trebuie să facem toate combinaţiile di soluţii parţiale optime pentru a găsi acea pereche de optime care alăturate conduc la un optim. Am folosit mai sus termenul de optim, dar nu am precizat în ce sens. Criteriul ales nu este valabil pentru orice problemă, ci va fi un criteriu specific problemei pe care o tratăm. În exemplu anterior criteriul era distanţa dintre două puncte (de exemplu A şi Z). Deci noţiunea abstractă cu care se lucra în problemă era ceia de distanţă, iar optim înseamnă lungimea ei, măsurată în anumite unităţi.&lt;br/&gt;&lt;br/&gt;Dacă - spre exemplu - vom aborda o problemă care necesită să evaluăm ce preţ trebuie plătit pentru a duce un sistem dintr-o stare în alta, noţiunea cu care se va lucra este banul, iar optim va însemna cît mai puţini.  După cum se poate intui, întotdeauna se va găsi o cuantificare a realităţii astfel în cît optimalitatea să se refere la numere.&lt;br/&gt;&lt;br/&gt;Rezolvările folosind &lt;strong&gt;PD&lt;/strong&gt; sunt în general bazate pe realizarea unei optimizări, de aflare a unui şir optim de transformări conform criteriului care ne intersectează.&lt;br/&gt;&lt;br/&gt;Deficienţa acestei metode este că depinde de experienţa personală şi de capacitatea de a intui. Şi încă un lucru: să nu vă speriaţi; de obicei programele de &lt;strong&gt;PD &lt;/strong&gt;sunt extrem de scurte şi neaşteptat de simple.&lt;br/&gt;&lt;br/&gt;&lt;a rel=&quot;attachment wp-att-94&quot; href=&quot;http://resurse-educationale.uv.ro/?attachment_id=94&quot;&gt;Programare dinamica&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://resurse-it.blogspot.com/feeds/2204049185817423854/comments/default' title='Postare comentarii'/><link rel='replies' type='text/html' href='http://resurse-it.blogspot.com/2011/02/programare-dinamica-programe-rezolvate.html#comment-form' title='0 comentarii'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4915140777580483380/posts/default/2204049185817423854'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4915140777580483380/posts/default/2204049185817423854'/><link rel='alternate' type='text/html' href='http://resurse-it.blogspot.com/2011/02/programare-dinamica-programe-rezolvate.html' title='Programare dinamică. Programe rezolvate.'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4915140777580483380.post-4535490992942828220</id><published>2011-02-01T03:00:00.000-08:00</published><updated>2011-02-01T05:53:48.371-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="download"/><category scheme="http://www.blogger.com/atom/ns#" term="hexa"/><category scheme="http://www.blogger.com/atom/ns#" term="integer"/><category scheme="http://www.blogger.com/atom/ns#" term="numere mari"/><category scheme="http://www.blogger.com/atom/ns#" term="Pascal"/><category scheme="http://www.blogger.com/atom/ns#" term="programare"/><category scheme="http://www.blogger.com/atom/ns#" term="Programming"/><category scheme="http://www.blogger.com/atom/ns#" term="real"/><category scheme="http://www.blogger.com/atom/ns#" term="sistem binar"/><title type='text'>Programarea numerelor mari în Pascal</title><content type='html'>Reprezentarea zecimală codificată binar se realizează prin exprimarea fiecărei cifre zecimale într-o tetradă binară conform unui anumit cod numeric. Cel mai utilizat este &lt;strong&gt;&lt;em&gt;codul zecimal codificat binar, BCD &lt;/em&gt;&lt;/strong&gt;(&lt;strong&gt;B&lt;/strong&gt;&lt;em&gt;inary &lt;strong&gt;C&lt;/strong&gt;oded &lt;strong&gt;D&lt;/strong&gt;ecimal&lt;/em&gt;). Cifrele de la 0 la 9 sunt reprezentate prin valori binare echivalente, pe cîte 4 poziţii binare: 0 – 0000, 1 – 0001, ..., 9 – 1001. Se observă că din cele 16 valori distincte ce se pot reprezenta pe 4 poziţii binare, doar primele 10 sunt utilizate. Avantajul aceste codificări este corespondenţa  directă între cifra zecimală şi valoarea sa.  Reprezentarea numerelor zecimale se realizează în grupuri de cîte 8 cifre binare în două forme:  Drept exemplu, în figura 10 sunt redate reprezentările numărului 3278 în forma împachetată şi despachetată.  Numerele negative pot fi reprezentate prin cod direct (mărime şi semn) sau prin coduri mai sofisticate: cod zecimal invers sau cod zecimal complementar. Semnul pentru astfel de numere se reprezintă printr-o combinaţie de 4 biţi, care nu se utilizează pentru reprezentarea cifrelor zecimale, de „+” prin 1100, iar „-” prin 1111.  Reprezentarea zecimală codificată binar se utilizează pentru aplicaţiile în care se prelucrează, cu operaţii simple, un număr foarte mare de numere: calcule electronice, calculatoare încorporate în aparate de măsură ş.a. Deoarece în aceste cazuri timpul de prelucrare ar fi mai mic decît timpul necesar conversiei din zecimal în binar şi invers (dacă prelucrarea s-ar face în binar), se preferă efectuarea calculelor, folosind reprezentarea zecimală codificată binar. Astfel, nu mai este necesară conversia datelor la introducerea şi extragerea acestora în şi din calculator.  §2. Tipuri de date  O caracteristică importantă a datelor este &lt;strong&gt;tipul&lt;/strong&gt; acestora. Prin &lt;strong&gt;tip&lt;/strong&gt; se înţelege o &lt;em&gt;mulţime de valori căreia i se poate ataşa un nume&lt;/em&gt;, valorile reprezintă constante de acest tip. Tipul stabileşte atît semnificaţia datelor cît şi restricţiile impuse în folosirea lor. Principalele tipuri de date ale limbajului Pascal sunt:  În plus programatorul are posibilitatea definirii unor noi tipuri.  Una dintre caracteristicile limbajelor de nivel înalt este aceea că, în cazul lor, compilatorul realizează o verificare a tipului astfel încît să existe certitudinea că tipurile de date implicate în calcul sunt compatibile cu operaţiile ce trebuie realizate.  În afara calculatorului, valorile de orice tip se reprezintă ca texte, adică printr-o secvenţă de caractere. De exemplu, numerele întregi se pot reprezenta prin secvenţe de cifre zecimale, numerele reale prin cifre şi punct zecimal, iar caracterele prin ele însele.  În interiorul calculatorului, însă, lucrurile stau cu totul altfel. Hard-ware-ul unui calculator electronic este format din dispozitive ce se pot afla în două stări fizice distincte. De exemplu, un tranzistor poate conduce sau nu curent electric. Se spune că un dispozitiv cu două stări memorizează o cifră binară sau un &lt;strong&gt;bit&lt;/strong&gt;. Unui grup de N astfel de dispozitive îi corespund 2&lt;sup&gt;N&lt;/sup&gt; stări diferite şi el memorizează n biţi. O astfel de entitate se va numi &lt;strong&gt;cuvînt de N biţi&lt;/strong&gt;. Un cuvînt de 8 biţi poate avea 26 stări diferite, suficiente pentru a putea asocia cîte o stare fiecărui caracter dintr-un set de caractere uzual. Vom spune în acest caz că, fiecare stare codifică un caracter. Un cuvînt de 16 biţi poate avea 65536 stări diferite, adică suficient pentru a putea codifica toate numerele întregi cuprinse între –32768 şi +32767. Celelalte date pot fi codificate în mod asemănător.  3.1.Tipuri de date întregi  În Pascal tipurile întregi permit reprezentarea, memorarea şi prelucrarea numerelor întregi. Teoretic, acestea  pot avea valori absolute oricît de mari, dar reprezentarea datelor în cadrul calculatorului nu permite existenţa seturilor de numere infinite. Limbajul Pascal implementează această restricţie furnizînd în mod automat un identificator de constantă, MaxInt, a cărui valoare reprezintă cel mai mare număr ce poate fi conţinut de o variabilă de tip integer. MaxLongInt=2147483647  Operaţiile aritmetice efectuate asupra valorilor de tip întreg vor fi executate corect de către calculator numai dacă toţi operanzii şi toate rezultatele intermediare sunt cuprinse în intervalul –MaxInt şi MaxInt. Dacă aceste valori sunt depăşite, rezultatul devine impredictibil, caz în care se spune că a apărut o „depăşire”  (overflow) şi programul eşuează. Anumite calculatoare semnalizează o asemenea situaţie generînd mesaje de eroare şi determinînd oprirea imediată a execuţiei programului. Există însă şi sisteme de calcul în care depăşirile nu sunt detectate, iar programul poate furniza rezultate eronate, fără ca utilizatorul uman să fie atenţionat. Din acest motiv se consideră că eliminarea posibilităţii apariţiei depăşirilor reprezintă o foarte serioasă problemă a programării.  În limbajul de programare Pascal sunt cinci tipuri de date întregi: &lt;strong&gt;Shortint, INTEGER, LongInt, BYTE, WORD.&lt;/strong&gt; &lt;strong&gt;&lt;a rel=&quot;attachment wp-att-89&quot; href=&quot;http://resurse-educationale.uv.ro/?attachment_id=89&quot;&gt;&lt;/a&gt;&lt;/strong&gt;&lt;br/&gt;&lt;br/&gt;&lt;strong&gt;&lt;a rel=&quot;attachment wp-att-89&quot; href=&quot;http://resurse-educationale.uv.ro/?attachment_id=89&quot;&gt;Download Numere mari&lt;/a&gt; &lt;/strong&gt; &lt;strong&gt; &lt;/strong&gt;</content><link rel='replies' type='application/atom+xml' href='http://resurse-it.blogspot.com/feeds/4535490992942828220/comments/default' title='Postare comentarii'/><link rel='replies' type='text/html' href='http://resurse-it.blogspot.com/2011/02/programarea-numerelor-mari-in-pascal.html#comment-form' title='0 comentarii'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4915140777580483380/posts/default/4535490992942828220'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4915140777580483380/posts/default/4535490992942828220'/><link rel='alternate' type='text/html' href='http://resurse-it.blogspot.com/2011/02/programarea-numerelor-mari-in-pascal.html' title='Programarea numerelor mari în Pascal'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4915140777580483380.post-9201480672823503272</id><published>2011-02-01T02:55:00.000-08:00</published><updated>2011-02-01T05:53:48.359-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="download"/><category scheme="http://www.blogger.com/atom/ns#" term="Informatica aplicata"/><category scheme="http://www.blogger.com/atom/ns#" term="informatică"/><category scheme="http://www.blogger.com/atom/ns#" term="matematică"/><category scheme="http://www.blogger.com/atom/ns#" term="model"/><category scheme="http://www.blogger.com/atom/ns#" term="modelare"/><category scheme="http://www.blogger.com/atom/ns#" term="sisteme de numereaţie"/><title type='text'>Formule matematice în probleme informatice</title><content type='html'>&lt;strong&gt; &lt;/strong&gt;&lt;br/&gt;&lt;h2&gt;§1. Noţiune de  model şi modelare&lt;/h2&gt;&lt;br/&gt;Orice om pe parcursul vieţii este nevoit sa rezolve mai multe probleme.  Problemele pot fi simple şi complicate. În multe cazuri procesul de rezolvare a problemelor este oral, iar pentru altele sunt necesare calcule care se pot efectua manual (cu ajutorul stiloului, hîrtiei) sau cu ajutorul calculatorului. Oricît de variate nu ar fi problemele, procesul de rezolvare a lor presupune citeva etape obligatorii. Acestea sunt:&lt;br/&gt;&lt;br/&gt;Aşadar procesul de rezolvare a problemei se reduce la realizarea sirului de transformari consecutive:&lt;br/&gt;&lt;br/&gt;Vom analiza o problemă elementară: se cere de determinat aria suprafeţei unei mese de formă dreptunghiulară. Pentru a rezolva problema este suficient să măsurăm lungimea si lăţimea mesei, iar numerele să le inmulţim.&lt;br/&gt;&lt;br/&gt;Această procedură simplă inseamnă de fapt urmatoarele: obiectul real - suprafaţa mesei este inlocuită cu un obiect abstract – dreptunghiul. Considerăm că acest dreptunghi are aceleaşi dimensiuni  ca şi suprafaţa mesei. După ce aflăm aria dreptunghiului, considerăm că aria lui este egală aproximativ cu aria suprafeţei mesei.&lt;br/&gt;&lt;br/&gt;În asemenea situaţie, vom spune că dreptunghiul reprezintă un &lt;em&gt;model&lt;/em&gt; al suprafeţei mesei, iar procesul descris a capatat denumirea de &lt;em&gt;modelare&lt;/em&gt;.&lt;br/&gt;&lt;br/&gt;Omul aplică modelele din cele mai vechi timpuri la cercetarea proceselor complexe, la înalţarea unor edificii noi etc.&lt;br/&gt;&lt;br/&gt;Modelul construit e mai accesibil pentru cercetare decît obiectul real. Unele obiecte în general nu pot fi cercetate direct: nu pot fi, de exemplu, efectuate expe-rienţe cu economia unei ţări.&lt;br/&gt;&lt;br/&gt;Dacă obiectul supus cercetării posedă caracteristici dinamice, adică caracteristici ce depind de timp, atunci o importanţă mare o capătă problema pronosticării stării obiectului, sub influienţa diferitor factori, peste un interval de timp. Şi această problemă se rezolvă cu ajutorul modelelor.&lt;br/&gt;&lt;br/&gt;&lt;strong&gt;Definiţie: &lt;/strong&gt;&lt;em&gt;Modelul reprezintă un sistem teoretic sau material, construit sau selectat de subiect, cu ajutorul căruia pot fi studiate indirect proprietăţile şi transformările altui sistem (original) mai complex, cu care primul sistem prezintă o analogie. Procesul de construire a modelului se numeşte modelare.&lt;/em&gt;&lt;br/&gt;&lt;br/&gt;Modelele pot fi &lt;em&gt;materiale ş&lt;/em&gt;i &lt;em&gt; ideale&lt;/em&gt;. Machetul unei clădiri este un model material, iar schema sistemului circulaţiei sangvine pe o planşă este un model ideal).&lt;br/&gt;&lt;br/&gt;Modelele ideale pot fi &lt;em&gt;calitative&lt;strong&gt; &lt;/strong&gt;&lt;/em&gt;şi &lt;em&gt;cantitative&lt;/em&gt;. Modelul calitativ este, de fapt, o descriere verbală. Ele ne dau o imagine generală despre original. Cu toate acestea, după aceste modele originalul nu poate fi construit.&lt;br/&gt;&lt;br/&gt;Modelele cantitative reprezintă niste scheme, tabele, formule ce  ne permit, în principiu, să construim după ele originalul. Modelul matematic este unul din modelele cantitative.&lt;br/&gt;&lt;br/&gt;&lt;strong&gt; &lt;/strong&gt;&lt;br/&gt;&lt;h2&gt;§2. Noţiune de model matematic&lt;/h2&gt;&lt;br/&gt;În general, orice problemă tehnică, indiferent de natura sa, parcurge pînă la materializarea soluţiei sale, următoarele etape, reprezentate în figura 1:&lt;br/&gt;&lt;br/&gt;Procesul de rezolvare reprezentat în această figură nu este unul liniar: iteraţiile şi revenirile îi sunt specifice. Astfel, din orice etapă se poate reveni la oricare dintre etapele precedente, oricînd putîndu-se constata o disfuncţionalitate sau lipsa unor elemente produse în faze anterioare etapei curente, neplăceri rezovabile numai prin reluarea unor etape deja parcurse.&lt;br/&gt;&lt;br/&gt;Nu de puţine ori, chiar în ultima etapă, cea de implementare, se poate constata o eroare majoră în proiectare sau chiar în formularea detaliată a problemei, eroare ce face imposibilă sau nesatisfăcătoare aplicarea soluţiei finale. Particularizând elementele de mai sus pentru activitatea de elaborare a programilor, se constată regăsirea tuturor fazelor din desenul iniţial. În continuare se insistă numai asupra unor particularităţi strict necesare în cazul unor aplicaţii mici sau mijlocii&lt;br/&gt;&lt;br/&gt;&lt;a rel=&quot;attachment wp-att-84&quot; href=&quot;http://resurse-educationale.uv.ro/?attachment_id=84&quot;&gt;Download Formule matematice in probleme informatice&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://resurse-it.blogspot.com/feeds/9201480672823503272/comments/default' title='Postare comentarii'/><link rel='replies' type='text/html' href='http://resurse-it.blogspot.com/2011/02/formule-matematice-in-probleme.html#comment-form' title='0 comentarii'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4915140777580483380/posts/default/9201480672823503272'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4915140777580483380/posts/default/9201480672823503272'/><link rel='alternate' type='text/html' href='http://resurse-it.blogspot.com/2011/02/formule-matematice-in-probleme.html' title='Formule matematice în probleme informatice'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4915140777580483380.post-8601355912955328382</id><published>2011-02-01T02:50:00.000-08:00</published><updated>2011-02-01T05:53:48.346-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="didactica"/><category scheme="http://www.blogger.com/atom/ns#" term="Didactică"/><category scheme="http://www.blogger.com/atom/ns#" term="download"/><category scheme="http://www.blogger.com/atom/ns#" term="informatică"/><category scheme="http://www.blogger.com/atom/ns#" term="predare"/><category scheme="http://www.blogger.com/atom/ns#" term="principii"/><title type='text'>Principii didactice la Informatică</title><content type='html'>Principiile didactice sunt teze fundamentale, norme generale care stau la baza proiectării, organizării şi desfăşurării activităţilor de predare - învăţare, în vederea realizării optime a obiectivelor educaţionale. Principiile didactice au caracter general-normativ, sistematic şi dinamic-deschis.&lt;br/&gt;&lt;br/&gt;&lt;em&gt;&lt;span style=&quot;text-decoration: underline;&quot;&gt;Caracterul general&lt;/span&gt;&lt;/em&gt;&lt;em&gt; &lt;/em&gt;rezultă din faptul că principiile didactice vizează toate componentele procesului de învăţământ, sunt aplicabile permanent în procesul de predare - învăţare la informatică. Principiile didactice au caracter normativ prin funcţia lor, orientativă şi reglatoare, în stabilirea obiectivelor, în structurarea conţinutului, în alegerea formelor de realizare a procesului de predare - învăţare, în alegerea strategiilor didactice prin îmbinarea metodelor, a mijloacelor de instruire şi realizarea evaluării.&lt;br/&gt;&lt;br/&gt;&lt;em&gt;&lt;span style=&quot;text-decoration: underline;&quot;&gt;Caracterul sistematic&lt;/span&gt;&lt;/em&gt;&lt;em&gt; &lt;/em&gt;rezultă din faptul că principiile didactice sunt sisteme de norme care trebuie aplicate în fiecare forma de activitate didactică. Nerespectarea unui principiu didactic poate conduce la anularea sau atenuarea celorlalte.&lt;br/&gt;&lt;br/&gt;&lt;em&gt;&lt;span style=&quot;text-decoration: underline;&quot;&gt;Caracterul dinamic&lt;/span&gt;&lt;/em&gt;&lt;em&gt; &lt;/em&gt;deschis al principiilor didactice rezulta din faptul că acestea nu sunt rigide. Numărul principiilor nu este limitat, ele pot multiplica sau integra în principii cu o sfera mai larga. Principiile didactice permit manifestarea creativităţii în proiectarea şi realizarea activităţii instructiv-educative.&lt;br/&gt;&lt;br/&gt;&lt;strong&gt;Principiul intuiţiei sau unităţii dintre senzorial şi raţional&lt;/strong&gt;&lt;br/&gt;&lt;br/&gt;Principiul intuiţiei exprimă necesitatea obiectelor, fenomenelor şi proceselor prin intermediul simţurilor , care realizează cunoaşterea senzoriala a realităţii, ca punct de plecare şi de uşurare a înregistrării esenţialului realităţii spre cunoaşterea logica, raţională, contribuind la înfăptuirea unităţii dintre senzorial şi raţional.&lt;br/&gt;&lt;br/&gt;Principiul intuiţiei a apărut ca un demers legic împotriva învăţării scolastice, învăţării mecanice, pe de rost, împotriva buchiselii. Principiul intuiţiei a corespuns necesităţii psiho-pedagocice a realizării unui învăţământ bazat pe înţelegere, legat de viaţă, realist.&lt;br/&gt;&lt;br/&gt;Realizând unitatea dintre cunoaşterea senzoriala şi cea raţională, principiul intuiţiei nu înseamnă deci rămânerea la treapta cunoaşterii senzoriale. El realizează treapta cunoaşterii senzoriale, pentru uşurarea înţelegerii, pentru a ajunge la treapta dificilă, dar de mare importanţă pentru cunoaştere, treapta învăţării logice (a cunoaşterii raţionale), bazată pe studierea elementelor şi conexiunilor abstracte, esenţiale şi generale exprimate, prin noţiuni, concepte, idei, teorii, principii etc. Numai astfel se poate ajunge prin învăţare la însuşirea ştiinţei. Principiul intuiţiei face ca învăţarea să fie mai întâi ca o reflectare în mintea elevilor sub formă de percepţii şi reprezentări. Percepţiile şi reprezentările nu sunt simple imagini (fotografii) globale ale realităţii, ci ele sunt acte psihice de cunoaştere activă, de reflectare cognitivă, care stau la baza realizării proceselor psihice ideatice sub forma noţiunilor, ideilor, teoriilor etc., deci de cunoaştere (învăţare) raţională. În acest context, a intui înseamnă a observa şi a gândi în acelaşi timp.&lt;br/&gt;&lt;br/&gt;Principiul intuiţiei se realizează prin îmbinarea materialului didactic intuitiv-natural la scara lor reala, şi de substitute (machete, modele, reprezentări grafice, mijloace audio-vizuale, mijloace logico-matematice etc.).&lt;br/&gt;&lt;br/&gt;Pedagogul elveţian Robert Dottrens spunea: „Nu exista obiectul, nu trebuie sa aiba loc predarea”.&lt;br/&gt;&lt;br/&gt;&lt;a rel=&quot;attachment wp-att-80&quot; href=&quot;http://resurse-educationale.uv.ro/?attachment_id=80&quot;&gt;Download Principiile didacticii&lt;/a&gt;.doc</content><link rel='replies' type='application/atom+xml' href='http://resurse-it.blogspot.com/feeds/8601355912955328382/comments/default' title='Postare comentarii'/><link rel='replies' type='text/html' href='http://resurse-it.blogspot.com/2011/02/principii-didactice-la-informatica.html#comment-form' title='0 comentarii'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4915140777580483380/posts/default/8601355912955328382'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4915140777580483380/posts/default/8601355912955328382'/><link rel='alternate' type='text/html' href='http://resurse-it.blogspot.com/2011/02/principii-didactice-la-informatica.html' title='Principii didactice la Informatică'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4915140777580483380.post-3611243933531459077</id><published>2011-02-01T02:48:00.000-08:00</published><updated>2011-02-01T05:53:48.331-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="aptitudini"/><category scheme="http://www.blogger.com/atom/ns#" term="capacităţi"/><category scheme="http://www.blogger.com/atom/ns#" term="Didactică"/><category scheme="http://www.blogger.com/atom/ns#" term="download"/><category scheme="http://www.blogger.com/atom/ns#" term="extraşcolar"/><category scheme="http://www.blogger.com/atom/ns#" term="jocuri didactice"/><title type='text'>Lucrul extracuricular la informatică</title><content type='html'>Ca urmare a transformărilor din societatea noastră, rolul şcolii constă în dezvoltarea liberă, armonioasă a elevului şi formarea personalităţii creative, care se poate adapta la condiţiile de continuă schimbare ale vieţii - una din principalele probleme ale pedagogiei şi didacticii în ridicarea interesului elevului faţă de învăţătură. Această problemă se rezolvă cu succes datorită interacţiunii orelor de curs cu activităţile extraşcolare.&lt;br/&gt;&lt;br/&gt;Principala formă organizaţională a procesului de învăţământ la informatică în şcoala medie este lecţia. În cadrul lecţiei se realizează funcţiile esenţiale ale învăţământului:&lt;br/&gt;&lt;br/&gt;- didactice,&lt;br/&gt;&lt;br/&gt;- educative,&lt;br/&gt;&lt;br/&gt;- dezvoltative.&lt;br/&gt;&lt;br/&gt;Însă informatica este un obiect atât de vast, încât nu se predă în numărul de ore prevăzute. În orele de curs elevii studiază un număr mic de teme, date ca model de programă, spre a le forma deprinderile necesare de lucru. Lecţia nu asigură pe deplin necesităţile individuale ale fiecărui elev. La dezvoltarea pe larg a capacităţilor la informatică individuale contribuie lucrul extraşcolar dirijate de către profesor.&lt;br/&gt;&lt;br/&gt;Rolul activităţilor extraşcolare în procesul didactic continuă să crească, deoarece contribuie la legătura cunoştinţelor teoretice cu viaţa, asigură dezvoltarea capacităţilor, aptitudinilor spirituale şi fizice la nivelul potenţialului maxim, constituie „o punte între cunoştinţele acumulate în cadrul lecţiei şi informaţiile acumulate informal”. Lucrul extraşcolar este un act de creaţie, ce se creează prin flexibilitate şi prin mobilitatea structurii, cu scopul de a dezvolta gândirea creatoare a elevilor şi a utiliza o gamă largă de forţe de muncă independentă.&lt;br/&gt;&lt;br/&gt;Scopul activităţilor la informatică în afara orelor de curs constă în pregătirea psihologică şi practică a elevilor pentru adaptarea şi activitatea lor într-o societate informaţională în continuă schimbare şi formarea gândirii algoritmice, accentul fiind pus pe individualizare şi învăţare permanentă.&lt;br/&gt;&lt;br/&gt;&lt;strong&gt; &lt;/strong&gt;&lt;br/&gt;&lt;br/&gt;&lt;strong&gt;Studiul activităţii extraşcolare prevede:&lt;/strong&gt;&lt;br/&gt;&lt;br/&gt;-  pregătirea psihologică şi practică a elevului pentru utilizarea calculatorului în activităţi specifice vârstei;&lt;br/&gt;&lt;br/&gt;-  formarea deprinderilor practice de lucrul cu calculatorul;&lt;br/&gt;&lt;br/&gt;- studierea informaticii ca ştiinţă care include elemente de algoritmizare, programare, logică, noţiuni de acumulare, păstrare şi prelucrare a informaţiei;&lt;br/&gt;&lt;br/&gt;-  studierea sistemului de calcul ca instrument (editoare de text, editoare grafice şi de sunet, tabele de calcul etc.);&lt;br/&gt;&lt;br/&gt;-  studierea   sistemului   de   calcul   ca   obiect   (structura   şi   funcţionarea calculatorului, a reţelelor de calculatoare);&lt;br/&gt;&lt;br/&gt;-   formarea gândirii algoritmice.&lt;br/&gt;&lt;br/&gt;Activităţile extraşcolare se bazează pe materialul adăugător şi se sprijină pe lucrul individual al elevului. Ele îi ajută pe elevi să înţeleagă mai bine cunoştinţele predate în clasă, să le aprofundeze, să ajungă prin munca independentă la scopul pus în faţa sa, să realizeze obiectivele specifice şi generale prevăzute de programă.&lt;br/&gt;&lt;br/&gt;Activităţile extraşcolare la informatică contribuie la descoperirea şi stimularea talentelor şi aptitudinilor elevilor, la cultivarea interesului pentru informatică, la dezvoltarea deprinderilor de a elabora creaţii originale. Elevul explorează, reconstruieşte, redescoperă, ajunge la generalizarea şi asimilarea adevărurilor prin eforturi proprii. El se transformă treptat într-un &quot;gândito creativ&quot;, se îndreaptă spre căutări, explorări şi muncă personală independentă sau în grup, spre dobândirea tezaurului cunoaşterii umane, şi chir obţinerea unor idei sau soluţii noi, realizarea unor inovaţii şi invenţii, care să propulseze creaţia, noutatea într-un anumit domeniu de specialitate.&lt;br/&gt;&lt;br/&gt;&lt;strong&gt;Funcţia de baza a activităţilor extraşcolare în procesul de educaţie a personalităţii, poate fi considerată — dezvoltarea individualităţii creatoare. &lt;/strong&gt;Ele au pentru aceasta posibilităţile materiale şi cadrele necesare, la aceasta contribuie şi principiul de formare a colectivului activităţilor extraşcolare şi metodele de organizare şi conţinutul activităţii lui vitale.&lt;br/&gt;&lt;br/&gt;Curriculumul la informatică propune un conţinut care contribuie la realizarea obiectivelor curriculare, care consemnează aşteptările societăţii, vizând atât parcursul şcolar al elevilor în ansamblu sau, cât şi performanţele cele mai generale care ar trebui atinse de el la finele şcolarizării. Obiectivele sunt &quot;modele&quot; care reies din structura personalităţii şi din cea a experienţei, sociale în sens larg, vizând sintetic cunoştinţele (&quot;a şti&quot;), capacităţile (&quot; a şti să faci&quot;) şi atitudinile (&quot;a ştii să fii&quot;) pe care elevii ar trebui să le interiorizeze în cadrul întregului parcurs şcolar. Ele sunt clasificate pe categorii:&lt;br/&gt;&lt;br/&gt;&lt;strong&gt;-  de cunoaştere &lt;/strong&gt;(cunoaşterea şi utilizarea conceptelor fundamentale specifice informaticii):&lt;br/&gt;&lt;br/&gt;-  cunoaşterea principiului de construcţie şi funcţionare a calculatorului;&lt;br/&gt;&lt;br/&gt;-  cunoaşterea metodelor de acumulare, reprezentare, păstrare şi prelucrare a informaţiei cu ajutorul  calculatorului;&lt;br/&gt;&lt;br/&gt;-  cunoaşterea specificului de comunicare a omului cu calculatorul;&lt;br/&gt;&lt;br/&gt;-  cunoaşterea etapelor de rezolvare a problemelor la calculator;&lt;br/&gt;&lt;br/&gt;-  cunoaşterea evoluţiei tehnicii de calcul;&lt;br/&gt;&lt;br/&gt;- cunoaşterea tipurilor de date, a operaţiilor posibile asupra lor şi realizarea lor la calculator;&lt;br/&gt;&lt;br/&gt;-  cunoaşterea instrucţiunilor unui limbaj de programare de nivel înalt;&lt;br/&gt;&lt;br/&gt;-  cunoaşterea  specificului  soluţiei analitice şi de simulare în rezolvarea problemelor la calculator;&lt;br/&gt;&lt;br/&gt;-  cunoaşterea unităţilor de măsură a informaţiei reprezentate în calculator;&lt;br/&gt;&lt;br/&gt;-  cunoaşterea posibilităţilor şi domeniilor de aplicare a editoarelor grafice, muzicale, de text, a sistemelor informatice, a bazelor de date, a tabelelor electronice;&lt;br/&gt;&lt;br/&gt;-  cunoaşterea conceptului sistemelor informaticii, a principilor după care ele se clasifică.&lt;br/&gt;&lt;br/&gt;&lt;strong&gt;-  de capacităţi &lt;/strong&gt;(de rezolvare a problemelor, de investigare / explorare, de comunicare, utilizând limbajul adecvat informaticii):&lt;br/&gt;&lt;br/&gt;-  înţelegerea la nivel cotidian a noţiunilor de informaţie, suport de informaţie şi rolul informaţiei în societate;&lt;br/&gt;&lt;br/&gt;-  aprecierea volumului de informaţie de pe suportul concret de informaţie;&lt;br/&gt;&lt;br/&gt;-  înţelegerea principiului de lucru al computerului, al utilajului periferic;&lt;br/&gt;&lt;br/&gt;-  selectarea utilajului şi a soft - ului necesar atingerii scopului pus, rezolvării problemei date;&lt;br/&gt;&lt;br/&gt;-  însuşirea principalelor caracteristici ale bazelor de date, a tabelelor de calcul;&lt;br/&gt;&lt;br/&gt;-  redactarea şi stocarea informaţiei stocate în baza de date, tabele de calcul,&lt;br/&gt;&lt;br/&gt;-  editoare de texte, grafice, muzicale;&lt;br/&gt;&lt;br/&gt;-  însuşirea metodelor de cercetare şi cunoaştere cu ajutorul calculatorului;&lt;br/&gt;&lt;br/&gt;-  însuşirea unor metode standard de rezolvare a problemelor şi utilizarea lor în situaţii nestandard;&lt;br/&gt;&lt;br/&gt;-  înţelegerea noţiunii de constantă şi variabilă;&lt;br/&gt;&lt;br/&gt;-  utilizarea corectă a instrucţiunilor unui limbaj de programare la rezolvarea problemelor conform algoritmului dat;&lt;br/&gt;&lt;br/&gt;-  formularea corectă a problemei ce va fi rezolvată la computer;&lt;br/&gt;&lt;br/&gt;-  construirea modelului,  elaborarea algoritmului  şi  a programului pentru modelul dat;&lt;br/&gt;&lt;br/&gt;-  analiza rezultatelor obţinute în urma rezolvării problemei la computer;&lt;br/&gt;&lt;br/&gt;-  înţelegerea esenţei algoritmului principal şi al subalgoritmului, al modului de executare a lor;&lt;br/&gt;&lt;br/&gt;-  partajarea problemei şi utilizarea algoritmilor deja alcătuiţi ca subalgoritm;&lt;br/&gt;&lt;br/&gt;-  înţelegerea dependenţei rezolvării problemei de repertoriul de instrucţiuni al executantului;&lt;br/&gt;&lt;br/&gt;-  detectarea erorilor în algoritmul de rezolvare a problemei concrete;&lt;br/&gt;&lt;br/&gt;-  selectarea şi corectarea algoritmilor existenţi pentru situaţii noi.&lt;br/&gt;&lt;br/&gt;&lt;strong&gt;-  de atitudini &lt;/strong&gt;(tactici compartimentale adecvate, capacităţi de acomodare la specificul   echipamentelor şi programelor de calculator):&lt;br/&gt;&lt;br/&gt;-  perceperea rolului, locului calculatorului şi influenţa lui asupra dezvoltării societăţii;&lt;br/&gt;&lt;br/&gt;-  perceperea adecvată a influenţei revoluţiei informaţionale asupra omului elaborarea tacticii comportamentale adecvate;&lt;br/&gt;&lt;br/&gt;-  perceperea adecvată a mesajelor transmise de calculator şi utilizarea adecvată a limbajelor speciale în procesul de comunicare cu ele;&lt;br/&gt;&lt;br/&gt;-  utilizarea soft - ului educaţional şi utilitar la rezolvarea problemelor apărute;&lt;br/&gt;&lt;br/&gt;-  acomodarea la dinamica soft - ului şi al tehnicii informaţionale;&lt;br/&gt;&lt;br/&gt;-  manifestarea conştiinţei faţă de acţiunile proprii în lucrul cu soft - ul de destinaţie comună;&lt;br/&gt;&lt;br/&gt;- asumarea responsabilităţii utilizării calculatorului, a sistemelor informatice, a reţelelor de calculatoare.&lt;br/&gt;&lt;br/&gt;Reieşind din obiectivele informaticii, activităţile extraşcolare la informatică cuprind doua direcţii principale:&lt;br/&gt;&lt;br/&gt;1. Aprofundarea fundamentală a cunoştinţelor căpătate de elevi la lecţii, care au o mare importantă   instructiv — educativă.&lt;br/&gt;&lt;br/&gt;2. Formarea capacităţilor şi atitudinilor de cercetare ştiinţifică în lucrul cu literatura suplimentară.&lt;br/&gt;&lt;br/&gt;&lt;a rel=&quot;attachment wp-att-76&quot; href=&quot;http://resurse-educationale.uv.ro/?attachment_id=76&quot;&gt;Download Lucru-extracuricular-info&lt;/a&gt;.doc</content><link rel='replies' type='application/atom+xml' href='http://resurse-it.blogspot.com/feeds/3611243933531459077/comments/default' title='Postare comentarii'/><link rel='replies' type='text/html' href='http://resurse-it.blogspot.com/2011/02/lucrul-extracuricular-la-informatica.html#comment-form' title='0 comentarii'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4915140777580483380/posts/default/3611243933531459077'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4915140777580483380/posts/default/3611243933531459077'/><link rel='alternate' type='text/html' href='http://resurse-it.blogspot.com/2011/02/lucrul-extracuricular-la-informatica.html' title='Lucrul extracuricular la informatică'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4915140777580483380.post-144444214342615764</id><published>2011-02-01T02:38:00.000-08:00</published><updated>2011-02-01T05:53:48.318-08:00</updated><title type='text'>Istoria apariţiei calculatorului</title><content type='html'>V-aţi întrebat vreodatã cine a contribuit la inventarea şi dezvoltarea calculatoarelor ? Acum aveţi posibilitatea sã aflaţi. De aceea vã propun sã facem o scurtã întoarcere în timp şi sã vedem cum ar fi putut fi si cum a fost istoria calculatoarelor.&lt;br/&gt;&lt;br/&gt;&lt;strong&gt; &lt;/strong&gt;&lt;br/&gt;&lt;br/&gt;&lt;strong&gt;Cum ar fi putut fi ... &lt;/strong&gt;&lt;br/&gt;&lt;br/&gt;La începutul secolului al XVII-lea Wilhelm Schickard, un profesor de astronomie, matematicã a creat la Tubingern în Germania o maşină ingenioasã care putea sã adune, sã scadã, şi într-o anumitã mãsurã sã înmulţească, şi sã dividã numere în sute. Din pãcate înainte ca dispozitivul sã fie pe jumãtate realizat fabrica unde era adãpostit a ars. Wilhelm Schickard şi întreaga sa familie au murit de ciumã înainte ca el sã construiascã alt model. Mult mai târziu un mecanic a recreat instrumentul având ca ghid vechile scrisori ale lui Schickard. Dacã aceastã invenţie ar fi fost disponibilă inventatorilor din acea vreme, aceasta ar fi putut schimba în totalitate istoria calculatoarelor.&lt;br/&gt;&lt;br/&gt;&lt;strong&gt; Cum a fost ...&lt;/strong&gt;&lt;br/&gt;&lt;br/&gt;Evoluţia calculatoarelor a decurs încet fără invenţia lui Schickard ca prototip. Mai întâi s-a întâmplat un lucru ciudat cu numerele. În 1600 John Napier, un scoţian, a descoperit un mod de a manipula numerele astfel încât înmulţirea şi împărţirea sã fie reduse la adunarea şi scãderea altor numere. Seriile de numere şi relaţiile dintre ele au fost numite logaritmi. Punând numerele pe cilindri de fildeş (numiti oasele lui Napier) soluţiile la problemele dificile puteau fi gãsite prin potrivirea logaritmilor şi apoi prin adunarea sau scãderea numerelor corespunzãtoare.&lt;br/&gt;&lt;br/&gt;Invenţia riglei de calcul a lui Robert Bissaker din 1650 a înlocuit cilindrii de fildeş a lui Napier. Blaise Pascal, matematician francez şi filosof a inventat primul calculator mecanic digital ( Pascalina ) care putea face adunãri şi scãderi cu numerele întregi. Aceastã maşină nu era la fel de avansatã ca maşina creată de Schickard.&lt;br/&gt;&lt;br/&gt;Pascalina creatã în 1642 a fost un eşec. În primul rând Pascal era sigurul care o putea repara. În al doilea rând în acea vreme era mai ieftin sã ai oameni care sã facã calculele decât sã cumperi o asemenea maşinărie şi în al treilea rând lucrãtorii se temeau cã vor fi înlocuiţi de Pascalina pierzându-şi astfel slujbele. Totuşi Pascalina a fost folositã pânã când a apãrut calculatorul electronic care a fãcut-o nefolositoare. Pentru contribuţia adusã numele lui Pascal a fost dat unui limbaj de programare.&lt;br/&gt;&lt;br/&gt;Mai târziu Gottfried Wilhelm Von Leibniz, matematician german, împreunã cu Sir Issac Newton au inventat calculele şi au creat calculatorul acţionat de roatã cu pedalã. Acest dispozitiv creat în 1673 putea face adunãri, scãderi, înmulţiri şi împărţiri. Roata lui Leibniz era o îmbunătăţire a Pascalinei, totuşi nu era posibil sã se aibã încredere în ea (mai putea greşi), astfel cã nu a fost folositã de prea multã lume. Oricum calculatorul lui Leibniz l-a impresionat pe Peter Cel Mare care a trimis un exemplar împãratului Chinei pentru ca sã îl convingã de tehnologia germanã şi pentru a creşte relaţiile comerciale dintre Est si Vest.&lt;br/&gt;&lt;br/&gt;Francezul Joseph Marie Jacquard în anul 1804 a construit o maşină automatã cu cartele perforate care era folositã pentru a ţese cu modele. Invenţia lui Jacquard a arãtat cã datele pot fi stocate pe cartele; cartelele la rândul lor pot fi folosite pentru a crea serii de instrucţiuni. Programarea instrucţiunilor s-a dovedit a fi un lucru foarte important pentru calculatoarele moderne.&lt;br/&gt;&lt;br/&gt;În 1822 inventatorul si matematicianul Charles P. Babbage, a conceput o maşină care putea fi folositã în rezolvarea de probleme diferite, maşină care avea o memorie mecanicã în care putea pãstra rezultatele. Royal Astronomical Society l-a încurajat pe Babbage cu garanţii guvernamentale şi astfel calculatorul creat de el devenea mai mare şi mai complex pe mãsurã ce îl revizuia. Garanţiile nu i-au mai fost acordate din anul 1834, dar cu toate acestea Babbage a propus o maşină mult mai complexã. Cu toate cã puterea a şase motoare cu abur care erau necesare sã punã în funcţiune motorul analitic ar fi ocupat lungimea unui teren de fotbal, calculatorul lui Babbage putea calcula logaritmi automat. Datele erau introduse folosind cartele perforate şi maşinăria putea fi programatã sã-şi schimbe metodele de operare. Din pãcate motorul analitic nu a fost construit, dar oricum acest concept a fost predecesorul calculatorului din zilele noastre. Pentru contribuţia sa Babbage a fost numit parintele calculatorului. Babbage avea un partener şi un om de încredere, Augusta Ada, contesa de Lovelace şi fiica poetului Lord Byron.&lt;br/&gt;&lt;br/&gt;Doamna Lovelace a înţeles ideile lui Babbage, a recunoscut valoarea ideilor, şi în anul 1840, a scris lucrãri cu caracter ştiinţific care explicau ideile lui Babbage celorlalţi. Ea a fost cea care a sugerat folosirea sistemului binar, în locul celui zecimal, pentru stocarea datelor. Doamna Lovelace este consideratã prima programatoare pentru cã ea a modelat desenul motorului analitic incluzând o repetare automatã a unei serii de calcule. Această procedurã în cerc este foarte importantã pentru programatorii de astãzi. Zece ani mai târziu în anul 1850, George Boole, matematician englez a realizat cã problemele matematice complexe puteau fi rezolvate reducându-le la o serie de rãspunsuri afirmative sau negative.&lt;br/&gt;&lt;br/&gt;Sistemul binar cu 1 ca rãspuns pozitiv şi 0 ca rãspuns negativ era o soluţie. Aceastã teorie avea sã stea la baza circuitelor calculatorului.&lt;br/&gt;&lt;br/&gt;Doctorul Herman Hollerith a construit prima maşină electromecanicã cu cartele gãurite în 1880. Socrul lui Hollerith care se ocupa de recensãminte, a propus ca maşina sã fie folositã pentru a sorta rezultatele recensãmântului folosind cartele gãurite cu 80 de coloane pe care tot Herman le-a inventat. Folosind această maşinărie Hollerith a obţinut la recensãmântul din 1890 un rezultat de 63.056.000 de oameni într-o treime din timpul care a fost necesar în 1880 pentru a numãra 50.262.000 de oameni. Dupã descoperirea lui Hollerith a fost o pauzã în descoperirile din domeniul calculatoarelor.&lt;br/&gt;&lt;br/&gt;Progresul exista, dar nimic spectaculos nu a fost raportat - nimic nu a fost raportat pânã când în anul 1927 la Massachusetts Institute of Tehnology (MIT) Vannevar Bush împreunã cu colaboratorii sãi au creat maşina care putea rezolva ecuaţii simple. Pânã în anul 1931 maşina a fost modificatã şi perfecţionată pentru a rezolva ecuaţii mai complexe. Maşina afişa rezultatele prin rotirea unor săgeţi.&lt;br/&gt;&lt;br/&gt;În anul 1940 George Stibitz împreunã cu colegul sãu Samuel Williams au demonstrat cum sã se folosească dispozitivul creat de ei în anul 1937 şi numit Complex Number Calculator pentru a transmite calcule la distanţe de pânã la 250 mile.&lt;br/&gt;&lt;br/&gt;La Iowa, în anul 1939, John Atanasoff şi Clifford Berry au colaborat şi au construit calculatorul Atanasoff-Berry. ABC-ul a fost primul calculator electronic, digital care putea fi folosit pentru mai multe scopuri. Deşi putea rezolva simultan ecuaţii algebrice, comunitatea ştiinţifică nu a fost foarte interesatã. Când Atanasoff a contactat compania IBM ( International Business Machines ) pentru a le prezenta maşina, compania a rãspuns cã nu va fi niciodatã interesatã de o maşină electronicã de calcul.&lt;br/&gt;&lt;br/&gt;&lt;a rel=&quot;attachment wp-att-72&quot; href=&quot;http://resurse-educationale.uv.ro/?attachment_id=72&quot;&gt;Download Istoria-aparitiei-PC&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://resurse-it.blogspot.com/feeds/144444214342615764/comments/default' title='Postare comentarii'/><link rel='replies' type='text/html' href='http://resurse-it.blogspot.com/2011/02/istoria-aparitiei-calculatorului.html#comment-form' title='0 comentarii'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4915140777580483380/posts/default/144444214342615764'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4915140777580483380/posts/default/144444214342615764'/><link rel='alternate' type='text/html' href='http://resurse-it.blogspot.com/2011/02/istoria-aparitiei-calculatorului.html' title='Istoria apariţiei calculatorului'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4915140777580483380.post-114955014628007699</id><published>2011-02-01T02:16:00.000-08:00</published><updated>2011-02-01T05:53:48.306-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="CD"/><category scheme="http://www.blogger.com/atom/ns#" term="discuri optice"/><category scheme="http://www.blogger.com/atom/ns#" term="download"/><category scheme="http://www.blogger.com/atom/ns#" term="DVD"/><category scheme="http://www.blogger.com/atom/ns#" term="hardware"/><category scheme="http://www.blogger.com/atom/ns#" term="RW"/><category scheme="http://www.blogger.com/atom/ns#" term="tipuri de CD"/><title type='text'>Totul despre discurile optice CD-R/RW, DVD-R/RW</title><content type='html'>&lt;strong&gt;Istoria cd rom ului&lt;/strong&gt;&lt;br/&gt;&lt;br/&gt;Istoria cd-rom-urilor începe în anul 1980 cind marile companii PHILIPS şi SONY au anunţat specificaţii in plus pentru folosirea tehnologiei CD pentru datele de calculator. În 1982 cele doua companii , au anunţat un standard pentru aceste unităţi, care includea formatul de 4.72 inci care a evoluat ctre unităţile de cd rom utilizate în prezent, şi care folosesc aceeaşi tehnologie şi format ca şi cd-urile, care sînt identice ca aspect, dar diferă din punct de vedere al conţinutului informaţional  şi al unităţiilor de hard pentru inregistrare şi redare.&lt;br/&gt;&lt;br/&gt;În anii 1990 Phillips a colaborat Coorporaţia japoneză Sony pentru a crea un disc digital versatile (Digital Versatile Disk) care să aibă o capacitatea mai mare de stocare a informaţie decat CD-ul. Alte firme nu au acceptat standardul propus de inginerii de la  Phillips şi Sony. Producători DVD-ului au optat totuşi pentru un alt standard şi alianţa Phillips-Sony a acceptat să licenţieze rezultatele cercetărilor consorţiului global.&lt;br/&gt;&lt;br/&gt;&lt;strong&gt; &lt;/strong&gt;&lt;br/&gt;&lt;br/&gt;&lt;strong&gt;Ce este CD-ROM-ul&lt;/strong&gt;&lt;br/&gt;&lt;br/&gt;Este un suport de stocare optică numai pentru citire (Compact Disc Read Only Memory) şi face parte din categoria memorilor externe, cu o capacitate de stocare între 650 şi 900 de mb pentru discul de 120mm, şi o capacitate între 158 şi 200 de mb pentru discurile de 80mm.&lt;br/&gt;&lt;br/&gt;Cel mai popular este discul de 120mm, folosind aceeaşi tehnologie şi format cu cele mai multe aparaturi elecronice şi calculatoare personale ce folsesc tehnologia cd-rom. Discul de 8mm este mai puţin popular,  dar mulţumită dimensiunilor sale reduse, a cîştigat popularitate în rîndul aparaturiilor care folosec tehnologia digitală audio comprimată, camere de fotografiat digitale sau produse de stocare de date, cum ar fi un reportofon miniatură.&lt;br/&gt;&lt;br/&gt;&lt;strong&gt; &lt;/strong&gt;&lt;br/&gt;&lt;br/&gt;&lt;strong&gt;Tehnologia cd-rom ului&lt;/strong&gt;&lt;br/&gt;&lt;br/&gt;Discul este fabricat dintr o foaie de policarbonat, şi  are un diametru de 120mm, grosime 1.2mm şi un orificiu în centru de 15mm. Această foaie de policarbonat este acoperită cu un film metalic, de obicei din aliaj de aluminiu sau care mai poate fi şi din argint sau aur. Acest film metalic este porţiunea de disc pe a cărei suprafaţă datele sînt inscripţionate sub formă de adîncituri microsopice de-a lungul unei piste care se desfăşoară în spirală, de pe care unitatea cd rom citeşte datele. Filmul metalic este apoi acoperit cu un înveliş de plastic care protejează datele de sub suprafaţa sa. Unele discuri mai pot avea  înveliţuri adiţionale care le măresc rezistenţa la zgîrieturii, manevrare şi o suprafaţă optimă pentru imprimare (suprafaţă superioară). Pe partea superioară este de obicei o etichetă, şi toate citirile se vor efectua dinspre faţa inferioară. Cd-rom-urile au o singură faţă activă. Citirea informaţiei se face cu ajutorul unui receptor sau senzor de lumină care sesizează cind lumina reflectată de filmul metalic este puternică, şi cînd este absentă sau difuza. Lumina absentă sau difuză este cauzată de adinciturile (pits) gravate pe filmul metalic, iar reflectarea puternică a luminii indică lipsa gropii, şi se numeşte un cîmp(land). Iar în cazul discurilor cu proprietăţi de scriere şi citire (RW), filmul metalic este înlocuit cu un subsrat de sticlă sau metalic acoperit cu un picment organic fotosensibil, format dintr-un aliaj de argint, indium, antimoniu şi teluriu care au aceleaşi proprietăţi reflective ca şi cd-ul obişnuit. Cînd laserul de inregistrare îcepe să pirograveze datele pe disc încinge substratul acoperit cu pigmentul organic, şi ca urmare a încălziri acestor zone ele reflectă lumina în acelaşi mod ca şi o groapă de pe un disc cu film metalic, chiar dacă acolo nu există nici o groapă, ci numai un punct nereflectorizant de pe disc. Această procedură  de folosire a călduri pentru a crea acele puncte nereflectorizante din disc, se numeşte adesea înregistrare prin ardere a cd-ului.&lt;br/&gt;&lt;br/&gt;&lt;strong&gt; &lt;/strong&gt;&lt;br/&gt;&lt;br/&gt;&lt;strong&gt; &lt;/strong&gt;&lt;br/&gt;&lt;br/&gt;&lt;strong&gt; &lt;/strong&gt;&lt;br/&gt;&lt;br/&gt;&lt;strong&gt;Tipuri de cd-uri&lt;/strong&gt;&lt;br/&gt;&lt;br/&gt;&lt;strong&gt;CD-I&lt;/strong&gt;, este un compact disc conceput de Philips, destinat  aplicaţiilor multimedia interactive să ruleze pe o consolă(player) ataşat la un televizor.&lt;br/&gt;&lt;br/&gt;&lt;strong&gt;CD-PHOTO&lt;/strong&gt;,  este un compact disc conceput de Philips, destinat stocării fotografiilor digitale de înaltă rezoluţie pe cd.&lt;br/&gt;&lt;br/&gt;&lt;strong&gt;CD-R (recordable)&lt;/strong&gt; sau ”write-once disc”, fabricat începînd cu anul 1992, este un compact disc ce oferă posibilitatea de scriere o singură dată, şi de mai multe ori citirea datelor de pe cd.&lt;br/&gt;&lt;br/&gt;&lt;strong&gt;CD-RW (rewritable),&lt;/strong&gt; fabricat începînd cu anul 1996, este un compact disc al cărei date pot fi şterse şi rescrise de mai multe ori, numai într-o unitate de disc CD-RW.&lt;br/&gt;&lt;br/&gt;&lt;strong&gt; DVD (digital versatile disc)&lt;/strong&gt; sînt de fapt tot nişte CD-uri însă cu o densitate mai mare de stocare a datelor, datorită unei zone mai mare de date pe disc  prin îngustarea şi creşterea lungimii spiralei ce conţine adinciturile. DVD-ul oferă capacităţi  mai mari de stocare , adică 4.7 gb la discul de 120mm cu o singură faţă,  şi sa născut datorită nevoii de spaţii de stocare mai mari.&lt;br/&gt;&lt;br/&gt;&lt;strong&gt;DVD-R (recordable),&lt;/strong&gt; fabricat începînd cu anul 1997. Oferă aceleaşi posibilităţi de scriere şi citire a datelor de pe disc ca şi cd-r, doar că scrierea şi citirea datelor în cazul dvd-r se fac la viteze mai mici.&lt;br/&gt;&lt;br/&gt;&lt;strong&gt;DWD-RW&lt;/strong&gt; fabricat începînd cu anul 1998, deasemenea oferă aceleaşi posibilităţi de ştergere şi rescriere a datelor ca şi discurile CD-RW, la care deasemenea vitezele de ştergere-rescriere a datelor diferă.&lt;br/&gt;&lt;br/&gt;&lt;a rel=&quot;attachment wp-att-68&quot; href=&quot;http://resurse-educationale.uv.ro/?attachment_id=68&quot;&gt;Download Istoria_CD&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://resurse-it.blogspot.com/feeds/114955014628007699/comments/default' title='Postare comentarii'/><link rel='replies' type='text/html' href='http://resurse-it.blogspot.com/2011/02/totul-despre-discurile-optice-cd-rrw.html#comment-form' title='1 comentarii'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4915140777580483380/posts/default/114955014628007699'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4915140777580483380/posts/default/114955014628007699'/><link rel='alternate' type='text/html' href='http://resurse-it.blogspot.com/2011/02/totul-despre-discurile-optice-cd-rrw.html' title='Totul despre discurile optice CD-R/RW, DVD-R/RW'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4915140777580483380.post-675873678822515639</id><published>2011-01-31T00:44:00.000-08:00</published><updated>2011-02-01T05:53:48.293-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="animaţie"/><category scheme="http://www.blogger.com/atom/ns#" term="download"/><category scheme="http://www.blogger.com/atom/ns#" term="efecte"/><category scheme="http://www.blogger.com/atom/ns#" term="Pascal"/><category scheme="http://www.blogger.com/atom/ns#" term="programare"/><category scheme="http://www.blogger.com/atom/ns#" term="Programming"/><title type='text'>Metode de organizare a efectelor de animaţie în Pascal</title><content type='html'>Principiile didactice sunt teze fundamentale, norme generale care stau la baza proiectării, organizării şi desfăşurării activităţilor de predare - învăţare, în vederea realizării optime a obiectivelor educaţionale. Principiile didactice au caracter general-normativ, sistematic şi dinamic-deschis.&lt;br/&gt;&lt;br/&gt;&lt;em&gt;Caracterul general &lt;/em&gt;rezultă din faptul că principiile didactice vizează toate componentele procesului de învăţământ, sunt aplicabile permanent în procesul de predare - învăţare la informatică. Principiile didactice au caracter normativ prin funcţia lor, orientativă şi reglatoare, în stabilirea obiectivelor, în structurarea conţinutului, în alegerea formelor de realizare a procesului de predare - învăţare, în alegerea strategiilor didactice prin îmbinarea metodelor, a mijloacelor de instruire şi realizarea evaluării.&lt;br/&gt;&lt;br/&gt;&lt;em&gt;Caracterul sistematic &lt;/em&gt;rezultă din faptul că principiile didactice sunt sisteme de norme care trebuie aplicate în fiecare forma de activitate didactică. Nerespectarea unui principiu didactic poate conduce la anularea sau atenuarea celorlalte.&lt;br/&gt;&lt;br/&gt;&lt;em&gt;Caracterul dinamic &lt;/em&gt;deschis al principiilor didactice rezulta din faptul că acestea nu sunt rigide. Numărul principiilor nu este limitat, ele pot multiplica sau integra în principii cu o sfera mai larga. Principiile didactice permit manifestarea creativităţii în proiectarea şi realizarea activităţii instructiv-educative.&lt;br/&gt;&lt;br/&gt;&lt;strong&gt;&lt;em&gt;&lt;br/&gt;&lt;/em&gt;&lt;/strong&gt;&lt;br/&gt;&lt;h2&gt;§1. Principiul intuiţiei sau unităţii dintre senzorial şi raţional&lt;/h2&gt;&lt;br/&gt;Principiul intuiţiei exprimă necesitatea obiectelor, fenomenelor şi proceselor prin intermediul simţurilor, care realizează cunoaşterea senzoriala a realităţii, ca punct de plecare şi de uşurare a înregistrării esenţialului realităţii spre cunoaşterea logica, raţională, contribuind la înfăptuirea unităţii dintre senzorial şi raţional.&lt;br/&gt;&lt;br/&gt;Principiul intuiţiei a apărut ca un demers legic împotriva învăţării scolastice, învăţării mecanice, pe de rost, împotriva buchiselii. Principiul intuiţiei a corespuns necesităţii psiho-pedagocice a realizării unui învăţământ bazat pe înţelegere, legat de viaţă, realist.&lt;br/&gt;&lt;br/&gt;Realizând unitatea dintre cunoaşterea senzoriala şi cea raţională, principiul intuiţiei nu înseamnă deci rămânerea la treapta cunoaşterii senzoriale. El realizează treapta cunoaşterii senzoriale, pentru uşurarea înţelegerii, pentru a ajunge la treapta dificilă, dar de mare importanţă pentru cunoaştere, treapta învăţării logice (a cunoaşterii raţionale), bazată pe studierea elementelor şi conexiunilor abstracte, esenţiale şi generale exprimate, prin noţiuni, concepte, idei, teorii, principii etc. Numai astfel se poate ajunge prin învăţare la însuşirea ştiinţei. Principiul intuiţiei face ca învăţarea să fie mai întâi ca o reflectare în mintea elevilor sub formă de percepţii şi reprezentări. Percepţiile şi reprezentările nu sunt simple imagini (fotografii) globale ale realităţii, ci ele sunt acte psihice de cunoaştere activă, de reflectare cognitivă, care stau la baza realizării proceselor psihice ideatice sub forma noţiunilor, ideilor, teoriilor etc., deci de cunoaştere (învăţare) raţională. În acest context, a intui înseamnă a observa şi a gândi în acelaşi timp.&lt;br/&gt;&lt;br/&gt;Principiul intuiţiei se realizează prin îmbinarea materialului didactic intuitiv-natural la scara lor reala, şi de substitute (machete, modele, reprezentări grafice, mijloace audio-vizuale, mijloace logico-matematice etc.).&lt;br/&gt;&lt;br/&gt;Pedagogul elveţian Robert Dottrens spunea: „Nu există obiectul, nu trebuie să aibă loc predarea”.&lt;br/&gt;&lt;br/&gt;Îmbinarea echilibrată a celor trei componente: imaginea, cuvântul şi elementele logico-matematice reprezintă esenţa intuiţiei pentru o învăţare eficientă.&lt;br/&gt;&lt;br/&gt;Prezentarea materialului intuitiv este un mijloc de învăţare eficientă, organizată, dirijată, sistematică, activă, corelată cu interesele şi trebuinţele elevului, elevii nu ştiu să observe, ei trebuie învăţaţi să vadă şi să desprindă din obiecte şi fenomene esenţialul, dar şi specificul particularul. Nu este suficient să priveşti, să mânuieşti, să pipăi, să cântăreşti obiectele pentru a obţine o cunoştinţă ştiinţifică despre realitate, ci este necesar să sesizezi esenţialul prin problematizare. Obiectele nu-l instruiesc singure pe elev, ci profesorul instruieşte cu ajutorul acestora prin orientarea gândirii şi interpretării, prin problematizare, prin emitere de ipoteze. Dacă profesorul nu îndrumă intuiţia elevilor, ei reţin caracterele particulare ale obiectelor (culoare, formă, mărime, mişcare) care le atrag atenţia şi nu sesizează esenţialul, de aceia este necesară intuirea polimodata, dirijată prin cuvânt, sistematizată după un plan, într-o ordine logică. Instruirea nu se reduce la furnizarea imaginilor sau reprezentărilor unor obiecte, evenimente, la înlocuirea „verbalismului cuvântului” cu „verbalismul imaginii”. Nu modelul în sine şi simpla intuire duce la învăţarea cu sens şi are efecte formative, ci acţiunea cu modelul, prin care elevul însuşi descoperă relaţii, principii, legităţi.&lt;br/&gt;&lt;br/&gt;&lt;a rel=&quot;attachment wp-att-63&quot; href=&quot;http://resurse-educationale.uv.ro/?attachment_id=63&quot;&gt;Download Grafica&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://resurse-it.blogspot.com/feeds/675873678822515639/comments/default' title='Postare comentarii'/><link rel='replies' type='text/html' href='http://resurse-it.blogspot.com/2011/01/metode-de-organizare-efectelor-de.html#comment-form' title='0 comentarii'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4915140777580483380/posts/default/675873678822515639'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4915140777580483380/posts/default/675873678822515639'/><link rel='alternate' type='text/html' href='http://resurse-it.blogspot.com/2011/01/metode-de-organizare-efectelor-de.html' title='Metode de organizare a efectelor de animaţie în Pascal'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4915140777580483380.post-7194325724219526171</id><published>2011-01-31T00:38:00.000-08:00</published><updated>2011-02-01T05:53:48.281-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="download"/><category scheme="http://www.blogger.com/atom/ns#" term="fisiere"/><category scheme="http://www.blogger.com/atom/ns#" term="Pascal"/><category scheme="http://www.blogger.com/atom/ns#" term="programare"/><category scheme="http://www.blogger.com/atom/ns#" term="Programming"/><title type='text'>Tipul de date fişier în Pascal</title><content type='html'>O temă destul de dificilă din cursul liceal de informatică este tema „Tipuri structurate de date. Tipul fişier (file)”.&lt;br/&gt;&lt;br/&gt;Despre necesitatea cunoaşterii şi aplicabilitatea tipului de date fişier ne conving culegerile de probleme la informatică.&lt;br/&gt;&lt;br/&gt;Practica arată că elevul trebuie să revină periodic la rezolvarea diferitor probleme cu aplicarea tipului de date fişier. Acest fapt contribuie la dezvoltarea gîndirii analitice, a intuiţiei şi a creativităţii, calităţii necesare pentru studierea ulterioară a informaticii atît la treapta liceală, cît şi în învăţămîntul universitar.&lt;br/&gt;&lt;br/&gt;Unii elevi învaţă mai eficient rezolvînd probleme rezolvate. Nu este vorba de memorarea rezolvării (deşi şi acest lucru este util la o anumită etapă de învăţare, nu oricine poate rezolva orice, dar oricine poate învăţa o rezolvare), ci de reluarea rezolvării pe altă cale. În acest scop profesorul poate propune elevilor rezolvarea unor exemple mai dificile, urmate ulterior de discuţii asupra metodelor de rezolvare.&lt;br/&gt;&lt;br/&gt;Să nu uităm de sfatul lui G.Polya: „Dacă vreţi să învăţaţi să rezolvaţi probleme, trebuie... să rezolvaţi probleme”.&lt;br/&gt;&lt;br/&gt;Teza are drept scop studierea detaliată a temei şi formularea unor metode şi strategii didactice pebtru predarea – învăţarea – evaluarea temei „Tipul de date fişier”.&lt;br/&gt;&lt;br/&gt;Lucrarea constă din două capitole:&lt;br/&gt;&lt;br/&gt;Capitolul I constă din 9 paragrafe, unde sunt expuse noţiunile teoretice generale despre tipul de date fişier şi anume: clasificarea fişierelor, fişiere cu tip, fişire fără tip, fişiere text, proceduri şi funcţii definite asupra tipului de date fişier.&lt;br/&gt;&lt;br/&gt;Capitolul II constă din 5 paragrafe. Acest capitol conţine informaţii referitoare la: curriculum liceal la tema „Tipul de date fişier (file)”, unde sunt prezente numărul de ore (opţional) şi aranjarea lor pentru predare-învăţare; tratarea temei „Tipul de date fişier (file)” în manualul &lt;em&gt;Informatica. &lt;/em&gt;&lt;em&gt;Limbajul de programare Pascal. Manual pentru clasele IX-XI&lt;/em&gt; de Anatol Gremalschi, Iurie Mocanu şi Ion Spinei; necesitatea utilizării problematizării la lecţiile de informatică. La fel se conţine un şir de probleme de dificultate diferită ce pot fi propuse elevilor pentru antrenament şi consolidarea cunoştinţelor la tema „Tipul de date fişier (file)”. Ultimul paragraf al acestui capitol, şi anume „Sugestii privind evaluarea” aduce cititorului un set de teste de evaluare formativă şi sumativă ce au ca scop determinarea nivelului de cunoştinţe a elevilor, a abilităţilor lor, determinarea erorilor şi posibilitatea lichidării lor.&lt;br/&gt;&lt;br/&gt;Prezenta lucrarea are drept scop familiarizarea cititorului cu noţiuni de predare – învăţare – evaluare a temei tipul fişier în liceu. Această lucrare poate fi utilă studenţilor şi profesorilor.&lt;br/&gt;&lt;h2&gt;§1. Clasificarea fişierelor&lt;/h2&gt;&lt;br/&gt;Fişierul este o&lt;strong&gt; &lt;/strong&gt;&lt;em&gt;colecţie organizată de informaţii&lt;/em&gt; (date, rezultate, programe sursă, programe direct executabile etc.), dispuse pe unul sau mai multe suporturi externe.&lt;br/&gt;&lt;br/&gt;Componentele unui fişier se numesc &lt;em&gt;înregistrări&lt;/em&gt;&lt;strong&gt; &lt;/strong&gt;(articole) şi pot avea dimensiune fixă sau variabilă. Numărul de componente dintr-un fişier este variabil, fiind limitat doar de capacitatea de memorare a suportului utilizat. Sfîrşitul unui fişier este uneori marcat printr-o componentă specială (&lt;em&gt;end of file - caracterul ^Z&lt;/em&gt;).&lt;br/&gt;&lt;br/&gt;&lt;strong&gt;&lt;em&gt;Fişierul&lt;/em&gt;&lt;/strong&gt;, în contextul limbajului &lt;em&gt;Pascal&lt;/em&gt;, este o structură de date omogenă, formată din componente de acelaşi tip, exceptînd tipul fişier.&lt;br/&gt;&lt;br/&gt;&lt;strong&gt;&lt;em&gt;Înregistrarea&lt;/em&gt;&lt;/strong&gt; este constituită dintr-o mulţime de valori ale unor caracteristici asociate unui obiect, proces etc., din domeniul aplicaţiei.&lt;br/&gt;&lt;br/&gt;Componentele înregistrării asociate diverselor caracteristici sunt denumite &lt;strong&gt;&lt;em&gt;cîmpuri de date&lt;/em&gt;&lt;/strong&gt;&lt;strong&gt;&lt;em&gt;.&lt;/em&gt;&lt;/strong&gt;&lt;br/&gt;&lt;br/&gt;Limbajul &lt;em&gt;Pascal&lt;/em&gt;l permite utilizarea fişierelor cu &lt;em&gt;înregistrări de lungime fixă&lt;/em&gt; (stabilită la momentul prelucrării) şi &lt;em&gt;variabilă&lt;/em&gt; (două înregistrări alăturate sunt separate prin marcaje speciale, de exemplu prin caracterele CR/LF - sfîrşit de linie).&lt;br/&gt;&lt;br/&gt;Din punct de vedere fizic (al suportului extern), fişierul este o succesiune de octeţi.&lt;br/&gt;&lt;br/&gt;&lt;em&gt;Accesul&lt;/em&gt; la componentele unui fişier are la bază următorul mecanism: fiecare fişier are un &lt;em&gt;indicator&lt;/em&gt; (pointer) al componentei curente, cea accesibilă în acel moment. Pentru fiecare &lt;em&gt;acces la fişier&lt;/em&gt; (adică, pentru fiecare operaţie de citire sau scriere), indicatorul avansează de la componenta curentă la următoarea componentă, care devine astfel componenta curentă.&lt;br/&gt;&lt;br/&gt;&lt;em&gt;Modul de acces&lt;/em&gt; la componente poate fi: &lt;em&gt;secvenţial&lt;/em&gt; (accesul la componenta &lt;em&gt;n&lt;/em&gt; din fişier trebuie precedat de inspectarea componentelor &lt;em&gt;0, 1, 2,    , n-1&lt;/em&gt;) şi &lt;em&gt;direct&lt;/em&gt; sau &lt;em&gt;aleator&lt;/em&gt;&lt;strong&gt; &lt;/strong&gt;(poziţionarea se face direct pe componenta respectivă).&lt;br/&gt;&lt;br/&gt;Cînd se lucrează cu un fişier, acestuia i se asociază o &lt;em&gt;variabilă tampon&lt;/em&gt; avînd tipul de bază al componentelor fişierului. Variabila tampon realizează interfaţa între fişier şi program.&lt;br/&gt;&lt;br/&gt;&lt;em&gt;Variabilelor fişier&lt;/em&gt; (utilizate în programe, atunci cînd lucram cu fişiere) li se asociază, de obicei, fişiere fizice, aflate pe suport extern şi gestionate de către sistemul de operare. În conţinuare, vom nota cu &lt;strong&gt;&lt;em&gt;f&lt;/em&gt;&lt;/strong&gt; variabila fişier utilizată la un moment dat.&lt;br/&gt;&lt;br/&gt;Din punct de vedere al limbajului &lt;em&gt;Pascal&lt;/em&gt; şi al conţinutului lor, fişierele se împart în două mari categorii:&lt;br/&gt;&lt;ul&gt;&lt;br/&gt;	&lt;li&gt;&lt;strong&gt;fişiere      text&lt;/strong&gt;, în care toate datele      sunt sub formă de caractere ASCII (un caracter/octet). Practic, fişierele      text conţin caractere organizate în linii de lungime variabilă, liniile      consecutive fiind separate printr-un marcaj de sfîrşit de linie (end of      line) reprezentat prin perechea de caractere de control &lt;em&gt;Carriage Return&lt;/em&gt; şi &lt;em&gt;Line Feed - CR/LF.&lt;/em&gt;&lt;/li&gt;&lt;br/&gt;	&lt;li&gt;&lt;strong&gt;fişiere      binare&lt;/strong&gt;, în care toate      datele sunt memorate în formă identică cu cea din memoria principală. Practic, fişierele binare sunt fişiere cu      componente de tipuri definite de programator.&lt;/li&gt;&lt;br/&gt;&lt;/ul&gt;&lt;br/&gt;Fişierele binare se împart, la rîndul lor, în două clase:&lt;br/&gt;&lt;ul&gt;&lt;br/&gt;	&lt;li&gt;&lt;strong&gt;fişiere      cu tip&lt;/strong&gt; (în care înregistrările      au structura şi lungimea fixe, precizate la momentul fiecărei prelucrări);&lt;/li&gt;&lt;br/&gt;&lt;/ul&gt;&lt;br/&gt;&lt;strong&gt;fişiere fără tip&lt;/strong&gt; (în care înregistrările sunt blocuri binare de lungime fixă, precizată ca parametru în procedura de deschidere a fişierului; nu se face nici o ipoteză referitoare la structura blocurilor; un bloc este o succesiune de octeţi)&lt;br/&gt;&lt;br/&gt;&lt;a rel=&quot;attachment wp-att-58&quot; href=&quot;http://resurse-educationale.uv.ro/?attachment_id=58&quot;&gt;Download Fisiere&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://resurse-it.blogspot.com/feeds/7194325724219526171/comments/default' title='Postare comentarii'/><link rel='replies' type='text/html' href='http://resurse-it.blogspot.com/2011/01/tipul-de-date-fisier-in-pascal.html#comment-form' title='0 comentarii'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4915140777580483380/posts/default/7194325724219526171'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4915140777580483380/posts/default/7194325724219526171'/><link rel='alternate' type='text/html' href='http://resurse-it.blogspot.com/2011/01/tipul-de-date-fisier-in-pascal.html' title='Tipul de date fişier în Pascal'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4915140777580483380.post-2305704156180088013</id><published>2011-01-31T00:35:00.000-08:00</published><updated>2011-02-01T05:53:48.070-08:00</updated><title type='text'>Auto Draft</title><content type='html'></content><link rel='replies' type='application/atom+xml' href='http://resurse-it.blogspot.com/feeds/2305704156180088013/comments/default' title='Postare comentarii'/><link rel='replies' type='text/html' href='http://resurse-it.blogspot.com/2011/01/auto-draft_31.html#comment-form' title='0 comentarii'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4915140777580483380/posts/default/2305704156180088013'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4915140777580483380/posts/default/2305704156180088013'/><link rel='alternate' type='text/html' href='http://resurse-it.blogspot.com/2011/01/auto-draft_31.html' title='Auto Draft'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4915140777580483380.post-4099192538991150861</id><published>2011-01-31T00:33:00.000-08:00</published><updated>2011-02-01T05:53:48.269-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="algoritm"/><category scheme="http://www.blogger.com/atom/ns#" term="alocarea memoriei"/><category scheme="http://www.blogger.com/atom/ns#" term="download"/><category scheme="http://www.blogger.com/atom/ns#" term="Pascal"/><category scheme="http://www.blogger.com/atom/ns#" term="programare"/><category scheme="http://www.blogger.com/atom/ns#" term="Programming"/><title type='text'>Alocarea memoriei în Turbo Pascal</title><content type='html'>Orice algoritm lucrează cu date (numere întregi, reale, şiruri de caractere etc.). Referitor la acestea, în informatică, s-au cristalizat anumite concepte fundamentale, pe care le voi prezenta în continuare.  &lt;strong&gt;Definiţie: &lt;/strong&gt;&lt;em&gt;Printr-un tip de dată  înţelegem o mulţime cu elemente numite valori.&lt;/em&gt; De sxemplu:{-32768, -32767,...0,1, ...32767} este omulţime de numere întregi. Atunci cînd nu există posibilatea de confuzie, putem nota mulţimea de mai sus astfel: [-32768,32767]. În Turbo Pascal un astfel de tip se numeşte &lt;em&gt;integer &lt;/em&gt;şi este predefinit.  &lt;em&gt;Pe mulţimea valorilor unui tip se definesc operaţiile asociate tipului&lt;/em&gt;.  De exemplu, pentru tipul &lt;em&gt;integer&lt;/em&gt; se definesc operaţiile de adunare, scădere, înmulţire etc.  &lt;em&gt;Pentru fiecare tip se defineşte modul în care se memorează valorile sale.&lt;/em&gt; De exemplu, pentru tipul &lt;em&gt;integer &lt;/em&gt;valorile se memorizează utilizînd codul complementar şi se folosesc 2 octeţi consecutivi.  Pentru a lucra cu date de un anumit tip se folosesc variabile. O &lt;em&gt;variabilă &lt;/em&gt;se caracterizează prin: tip (natura datelor şi modul de memorare), nume (prin care aceasta se adresează) şi adresă (număr de ordine al primului octet în care se reţin datele, memoria internă fiind privită ca o succesiune de octeţi numerotaţi).  Tipurile de date pot fi &lt;em&gt;simple&lt;/em&gt; şi &lt;em&gt;structurate.&lt;/em&gt; Limbajele de programare evoluate utilizează din plin tipurile de date. Mai mult, unele din ele permit programului, folosind tipurile existente, să definească noi tipuri de date.  &lt;em&gt;Noţiunea de tip de date este strînsă legată de un anumit limbaj de programare. În situaţia în care se renunţă la această legătură, se ajunge la o altă noţiune mult utilizată şi anume cea de structură de date&lt;/em&gt;. De exemplu, &lt;em&gt;mulţimea&lt;/em&gt; este o structură de date. În limbajul Turbo Pascal există tipul mulţime (&lt;em&gt;set&lt;/em&gt;). Alte limbaje (de exemplu C) nu cunosc acest tip. Aceasta nu înseamnă că în C nu vom putea lucra cu mulţimi.  Variabilele declarate în secţiunea &lt;em&gt;var&lt;/em&gt; a unui program sau subprogram se numesc &lt;em&gt;variabile statice.&lt;/em&gt; Numărul variabilelor statice se satabileşte în momentul scrierii programului şi nu poate fi schimbat în timpul execuţiei. Există însă situaţii în care numărul necesar de variabile nu este cunoscut din timp. De exemplu, presupunem că este necesară prelucrarea datelor referitoare la persoanele care formează o listă de aşteptare (o coadă) la o casă de bilete. Lungimea cozii este nedefinită. De fiecare dată cînd apare o persoană nouă, trebuie să se creeze o variabilă de tipul respectiv. După ce persoana pleacă – variabile evine inutilă.  Variabilele care sunt create şi eventual distruse în timpul execuţiei programului se numesc &lt;em&gt;variabile dinamice&lt;/em&gt; O &lt;em&gt;structură de date&lt;/em&gt; este formată din datele propriu-zise şi relaţiile dintre ele. În funcţie de modul de organizare, o structură de date poate fi &lt;em&gt;implicită &lt;/em&gt;sau &lt;em&gt;explicită&lt;/em&gt;.  Tablourile, şirurile de caractere, articolele, fişierele şi mulţimile sunt &lt;em&gt;structuri implicite de date&lt;/em&gt;. Relaţiile dintre componentele acestor structuri sînt predefinite şi nemodificabile. De exemplu, toate componentele unui şir de caractere au un nume comun, iar caracterul &lt;em&gt;s[i+1]&lt;/em&gt; este succesorul caracterului &lt;em&gt;s[i] &lt;/em&gt;în virtutea poziţiei ocupate.  &lt;em&gt;Structurile de date&lt;/em&gt; se clasifică în două mari categorii: &lt;em&gt;statice şi dinamice&lt;/em&gt;. Criteriul de clasificare este dat de modul de alocare a memoriei interne.  Întrucît structura tablourilor, şirurilor de caractere, articolelor, mulţimilor, fişierelor nu se modifică în timpul execuţiei oricărul program sau subprogram, structurile respective reprezintă structuri statice de date.&lt;br/&gt;&lt;h2&gt;§1. Tabloul&lt;/h2&gt;&lt;br/&gt;Fie &lt;em&gt;A&lt;/em&gt;&lt;em&gt;ni&lt;/em&gt;&lt;em&gt;={1,2,….n&lt;/em&gt;&lt;em&gt;i&lt;/em&gt;&lt;em&gt;}&lt;/em&gt; mulţimea primelor &lt;em&gt;n&lt;/em&gt;&lt;em&gt;i&lt;/em&gt; numere naturale.  Fie &lt;em&gt;M=A&lt;/em&gt;&lt;em&gt;n1 &lt;/em&gt;&lt;em&gt;x A&lt;/em&gt;&lt;em&gt;n2 &lt;/em&gt;&lt;em&gt;x…..x A&lt;/em&gt;&lt;em&gt;nk&lt;/em&gt; produsul cartezian a &lt;em&gt;k&lt;/em&gt; astfel de mulţimi.  &lt;strong&gt;Definiţie&lt;em&gt;: &lt;/em&gt;&lt;/strong&gt;&lt;em&gt;Se numeşte tablou o funcţie f:M→T, unde T este o mulţime oarecare. Numărul k este dimensiunea tabloului. Dacă k=1 tabloul se mai numeşte şi vector. Vectorul are n&lt;/em&gt;&lt;em&gt;1&lt;/em&gt;&lt;em&gt; componente. Dacă k=2 tabloul se mai numeşte şi matrice. Matricea are n&lt;/em&gt;&lt;em&gt;1&lt;/em&gt;&lt;em&gt;xn&lt;/em&gt;&lt;em&gt;2&lt;/em&gt;&lt;em&gt; elemente.&lt;/em&gt; Majoritatea limbajelor de programare evoluate au implementat tipul tablou (&lt;em&gt;array&lt;/em&gt; &lt;em&gt;în Turbo Pascal&lt;/em&gt;). Pentru a identifica elementele unui tablou se folosesc indicii.  &lt;strong&gt;Exemplul 1:&lt;/strong&gt; Distanţa dintre două mulţimi în plan se consideră distanţa dintre două puncte ale acestor mulţimi, situate cel mai aproape unul de altul. Aflaţi distanţa dintre două mulţimi de puncte date. (pr.38, §5, [1])  &lt;a rel=&quot;attachment wp-att-50&quot; href=&quot;http://resurse-educationale.uv.ro/?attachment_id=50&quot;&gt;&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;&lt;a rel=&quot;attachment wp-att-50&quot; href=&quot;http://resurse-educationale.uv.ro/?attachment_id=50&quot;&gt;Download Alocarea-memoriei&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://resurse-it.blogspot.com/feeds/4099192538991150861/comments/default' title='Postare comentarii'/><link rel='replies' type='text/html' href='http://resurse-it.blogspot.com/2011/01/alocarea-memoriei-in-turbo-pascal.html#comment-form' title='0 comentarii'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4915140777580483380/posts/default/4099192538991150861'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4915140777580483380/posts/default/4099192538991150861'/><link rel='alternate' type='text/html' href='http://resurse-it.blogspot.com/2011/01/alocarea-memoriei-in-turbo-pascal.html' title='Alocarea memoriei în Turbo Pascal'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4915140777580483380.post-1581732138421447322</id><published>2011-01-31T00:30:00.000-08:00</published><updated>2011-02-01T05:53:48.256-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Biblioteci"/><category scheme="http://www.blogger.com/atom/ns#" term="download"/><category scheme="http://www.blogger.com/atom/ns#" term="graphic"/><category scheme="http://www.blogger.com/atom/ns#" term="modul"/><category scheme="http://www.blogger.com/atom/ns#" term="Pascal"/><category scheme="http://www.blogger.com/atom/ns#" term="programare"/><category scheme="http://www.blogger.com/atom/ns#" term="Programming"/><category scheme="http://www.blogger.com/atom/ns#" term="units"/><title type='text'>Modulul Graph în Turbo Pascal</title><content type='html'>&lt;h2&gt;1. Iniţializarea regimului grafic&lt;/h2&gt;&lt;br/&gt;Placa grafică sau adaptorul de ecran este componenta hard a calculatorului care asigură gestiunea memoriei şi controlul monitorului video. Driver-ul grafic este componenta soft-ului care comandă placa grafică. Placa grafică tratează ecranul în două moduri:&lt;br/&gt;&lt;br/&gt;În regimul &lt;strong&gt;text&lt;/strong&gt; fiecare caracter ce apare la ecran este păstrat în memoria calculatorului în doi octeţi, unul cuprinde codul ASCII al caracterului, iar al doilea culorile, iluminarea, culoarea fonului şi clipirea. În regimul &lt;strong&gt;grafic&lt;/strong&gt; memoria ecranului are un cod pentru fiecare pixel prin care se determină culoarea pixelui.&lt;br/&gt;&lt;br/&gt;Zona de memorie ecran pentru memorarea unui ecran se numeşte &lt;strong&gt;pagină video&lt;/strong&gt;. Pagina video care apare la un moment dat pe ecran se numeşte &lt;strong&gt;pagină vizibilă&lt;/strong&gt;. Prelucrarea informaţiei grafice în Pascal este susţinută de modulul &lt;strong&gt;Graph&lt;/strong&gt;.&lt;br/&gt;&lt;br/&gt;Modulul &lt;strong&gt;Graph&lt;/strong&gt; pune la dispoziţie circa 90 de proceduri şi funcţii păstrate în fişierul graph.tpu. Utilizarea procedurilor şi funcţiilor grafice este posibilă dacă în partea declarativă &lt;strong&gt;uses&lt;/strong&gt; vom declara modulul &lt;strong&gt;graph&lt;/strong&gt;. Fiecare regim grafic are driver-ul său specific. Tabelul  următor conţine lista regimurilor grafice posibile pentru diferite adaptoare grafice. În prima coloniţă sunt indicare  tipurile de drivere, în a doua – numărul de pixeli de pe ecran, în coloniţa a treia este indicată palitra de culori a regimului dat, în ultima coloniţă sunt indicate numărul de pagini video care se pot încărca simultan în memoria videoadaptorului.&lt;br/&gt;&lt;br/&gt;Orice program Turbo Pascal ce conţine prelucrarea informaţiei grafice trebuie să cuprindă:&lt;br/&gt;&lt;br/&gt;[like url=http://resurse-educationale.uv.ro/]Iniţializarea regimului grafic se relizează prin procedura &lt;strong&gt;InitGraph&lt;/strong&gt; cu formatul:&lt;br/&gt;&lt;br/&gt;&lt;strong&gt;InitGraph&lt;/strong&gt;(var GraphDriver:integer; {tipul adaptorului}&lt;br/&gt;&lt;br/&gt;var GraphMode:integer; {regimul grafic}&lt;br/&gt;&lt;br/&gt;var DriverPath:string); {calea spre driver}&lt;br/&gt;&lt;br/&gt;De exemplu:&lt;br/&gt;&lt;br/&gt;procedure ini;&lt;br/&gt;&lt;br/&gt;var gd, gm:integer;&lt;br/&gt;&lt;br/&gt;begin&lt;br/&gt;&lt;br/&gt;gd:=detect;&lt;br/&gt;&lt;br/&gt;initgraph(gd,gm,&#39;c:\tp\bgi&#39;);&lt;br/&gt;&lt;br/&gt;if graphresult&amp;lt;&amp;gt;grok then halt(1);&lt;br/&gt;&lt;br/&gt;end;&lt;br/&gt;&lt;br/&gt;&lt;a rel=&quot;attachment wp-att-46&quot; href=&quot;http://resurse-educationale.uv.ro/?attachment_id=46&quot;&gt;Download Modulul Graph&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://resurse-it.blogspot.com/feeds/1581732138421447322/comments/default' title='Postare comentarii'/><link rel='replies' type='text/html' href='http://resurse-it.blogspot.com/2011/01/modulul-graph-in-turbo-pascal.html#comment-form' title='0 comentarii'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4915140777580483380/posts/default/1581732138421447322'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4915140777580483380/posts/default/1581732138421447322'/><link rel='alternate' type='text/html' href='http://resurse-it.blogspot.com/2011/01/modulul-graph-in-turbo-pascal.html' title='Modulul Graph în Turbo Pascal'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4915140777580483380.post-581936366454851911</id><published>2011-01-31T00:24:00.000-08:00</published><updated>2011-02-01T05:53:48.243-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Biblioteci"/><category scheme="http://www.blogger.com/atom/ns#" term="download"/><category scheme="http://www.blogger.com/atom/ns#" term="Pascal"/><category scheme="http://www.blogger.com/atom/ns#" term="programare"/><category scheme="http://www.blogger.com/atom/ns#" term="Programming"/><category scheme="http://www.blogger.com/atom/ns#" term="units"/><title type='text'>Biblioteci în Turbo Pascal</title><content type='html'>&lt;p style=&quot;text-align: left;&quot;&gt;Modulul UNIT  - este o unitate de program, textul căruia se compilează de sinestătător (autonom). Această unitate de program include descrierea constantelor, variabilelor, tipurilor de date utilizate, a procedurilor şi funcţiilor ce vor fi create şi care mai apoi vor putea fi chemate în programul de bază. Însă structura internă a modulului personal este ascunsă (în programul unde se apelează unit-ul) de utilizator.&lt;/p&gt;&lt;br/&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;strong&gt;Structura generală  a unui UNIT&lt;/strong&gt;&lt;/p&gt;&lt;br/&gt;&lt;p style=&quot;text-align: left;&quot;&gt;Un modul poate fi despărţit în cîteva compartimente: antetul unit-ului, secţiunea de interfaţă, secţiunea de implementare, secţiunea de iniţializare (ea poate să lipsească).&lt;/p&gt;&lt;br/&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;strong&gt;Antetul unit-ului&lt;/strong&gt;&lt;/p&gt;&lt;br/&gt;&lt;p style=&quot;text-align: left;&quot;&gt;Antetul modulului puţin se deosebeşte de antetul programului. În modul în locul cuvîntului rezervat &lt;strong&gt;Program&lt;/strong&gt; se utilizează  cuvîntul rezervat &lt;strong&gt;Unit&lt;/strong&gt;. Tot aici pot fi indicate directivele compilatorului.&lt;/p&gt;&lt;br/&gt;&lt;p style=&quot;text-align: left;&quot;&gt;La alegerea numelui modulului este necesar de luat în consideraţie următoarea latură specifică: vom ţine cont ca numele unit-ului să nu coincidă cu numele căreiva funcţii sau proceduri standarde, cuvînt rezervar sau numele alttui obiect de programare din interiorul programului. La această cerinţă se mai adaugă încă una: numele unit-ului trebuie să corespundă cu numele fişierului în care se păstrează acest unit. Deaceea numele unit-ului nu trebuie să conţină mai mult de opt simboluri.&lt;/p&gt;&lt;br/&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;strong&gt;Secţiunea de interfaţă&lt;/strong&gt;&lt;/p&gt;&lt;br/&gt;&lt;p style=&quot;text-align: left;&quot;&gt;Nou spre deosebire de structura unui program este secţiunea&lt;strong&gt; &lt;/strong&gt;de&lt;strong&gt; &lt;/strong&gt;interfaţă. În acest compartiment se descriu toate constantele, tipurile de date şi variabilele, procedurile şi funcţiile accesibile în acest modul pentru a putea fi utilizate în cadrul altor programe externe. Secţiunea de interfaţă conţine toată informaţia, necesară pentru a putea fi accesată de altă programe, descrisă în modulul dat. Orice altă informaţie despre modul pentru a putea fi utilizat nu este necesară.&lt;/p&gt;&lt;br/&gt;&lt;p style=&quot;text-align: left;&quot;&gt;În secţiunea de interfaţă   este posibil de a face accesibili pentru utilizare module deja create indicînd numele lor în compartimentul &lt;strong&gt;uses&lt;/strong&gt;. După operatorul uses se declară tipurile de date, vatiabilele ce vor fi utilizate la descrierea procedurilor şi funcţiilor descries în acest modul.&lt;/p&gt;&lt;br/&gt;&lt;p style=&quot;text-align: left;&quot;&gt;Toate procedurile şi funcţiile ce vor putea fi utilizate mai apoi în alte programe sunt descries în secţiunea de interfaţă indicîndu-se numele lor şi parametrii. Textul ca atare al procedurilor şi funcţiilor va fi mai apoi descries în secţiunea de implementare unde se va mai indica încă o dată numele procedurii sau funcţiei.&lt;/p&gt;&lt;br/&gt;&lt;p style=&quot;text-align: left;&quot;&gt;În practică este posibil şi cazul cînd secţiunea de interfaţă lipseşte aşa cum este indicat în exemplul &lt;em&gt;leer.pas&lt;/em&gt;, ce conţine modulul &lt;em&gt;Leer&lt;/em&gt;. Acest modul este foarte simplu şi este pur demonstrative.&lt;/p&gt;&lt;br/&gt;&lt;p style=&quot;text-align: left;&quot;&gt;unit Leer;&lt;/p&gt;&lt;br/&gt;&lt;p style=&quot;text-align: left;&quot;&gt;INTERFACE&lt;/p&gt;&lt;br/&gt;&lt;p style=&quot;text-align: left;&quot;&gt;{Acest compartiment este gol}&lt;/p&gt;&lt;br/&gt;&lt;p style=&quot;text-align: left;&quot;&gt;IMPLEMENTATION&lt;/p&gt;&lt;br/&gt;&lt;p style=&quot;text-align: left;&quot;&gt;uses crt;&lt;/p&gt;&lt;br/&gt;&lt;p style=&quot;text-align: left;&quot;&gt;begin&lt;/p&gt;&lt;br/&gt;&lt;p style=&quot;text-align: left;&quot;&gt;clrscr;&lt;/p&gt;&lt;br/&gt;&lt;p style=&quot;text-align: left;&quot;&gt;writeln(‘Salut!’)&lt;/p&gt;&lt;br/&gt;&lt;p style=&quot;text-align: left;&quot;&gt;end.&lt;/p&gt;&lt;br/&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;strong&gt;Secţiunea de implementare&lt;/strong&gt;&lt;/p&gt;&lt;br/&gt;&lt;p style=&quot;text-align: left;&quot;&gt;Secţiunea de implementare este compartimentul modulului în care se scrie textul propriu zis al procedurilor şi funcţiilor descries în secţiunea de interfaţă. Procedurile şi funcţiile se descriu exact aşa cum ne-am obişnuit să o facem în programele obişnuite. Tipurile de date şi structura lor sunt inaccesibile pentru cealaltă pasrte a unit-ului şi sunt utilizate numai în secţiunea de implementare. La fel ca şi secţiunea de interfaţă secţiunea de implementare poate să fie vidă.&lt;/p&gt;&lt;br/&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;strong&gt;Secţiunea de iniţializare&lt;/strong&gt;&lt;/p&gt;&lt;br/&gt;&lt;p style=&quot;text-align: left;&quot;&gt;Secţiunea de iniţializare reprezintă blocul principal al modulului. Instrucţiunile Indicate în acest bloc se îndeplinesc primele, adică mai întîi se îndeplinesc instrucţiunile din secţiunea de iniţializare a modulului, apoi instrucţiunile ce se conţin între &lt;strong&gt;begin&lt;/strong&gt; şi &lt;strong&gt;end&lt;/strong&gt; al programului Pascal ce utilizează modulul în cauză. De exemplu programul de mai jos &lt;em&gt;exemplu.pas&lt;/em&gt; va fi realizat în felul următor: unit-ul Leer.tpu în secţiunea de implementare conţine instrucţiunile clrscr – curăţirea ecranului, apoi writeln(‘Salut!’) – afişează la ecran cuvîntul  Salut după care se va realiza instrucţiunea writeln(‘Program demonstrativ’).&lt;/p&gt;&lt;br/&gt;&lt;p style=&quot;text-align: left;&quot;&gt;program exemplu;&lt;/p&gt;&lt;br/&gt;&lt;p style=&quot;text-align: left;&quot;&gt;uses Leer;&lt;/p&gt;&lt;br/&gt;&lt;p style=&quot;text-align: left;&quot;&gt;begin&lt;/p&gt;&lt;br/&gt;&lt;p style=&quot;text-align: left;&quot;&gt;writeln(‘Program demonstrativ’)&lt;/p&gt;&lt;br/&gt;&lt;p style=&quot;text-align: left;&quot;&gt;end.&lt;/p&gt;&lt;br/&gt;&lt;p style=&quot;text-align: left;&quot;&gt;Pentru a putea utiliza acest unit în alte programe Pascal este necesar de a salva acest unit cu &lt;em&gt;nume_unit.pas&lt;/em&gt;, apoi se va compila unit-ul tastînd &lt;strong&gt;[F9] (Compile)&lt;/strong&gt; iar pentru opţiunea &lt;strong&gt;Destination&lt;/strong&gt; se va instala valoarea &lt;strong&gt;Disk&lt;/strong&gt;. În urma acestei operaţii pe disc se va forma fişierul &lt;em&gt;nume_unit.tpu&lt;/em&gt;. dacă ve-ţi tasta [Ctrl+F9] atunci după compilare va apărea informaţia &lt;strong&gt;Can not run a unit&lt;/strong&gt; care ne informează că unit-ul nou creat nu se poate realiza desinestătător.&lt;/p&gt;&lt;br/&gt;&lt;p style=&quot;text-align: left;&quot;&gt;Download &lt;a rel=&quot;attachment wp-att-42&quot; href=&quot;http://resurse-educationale.uv.ro/?attachment_id=42&quot;&gt;Biblioteci in Pascal&lt;/a&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://resurse-it.blogspot.com/feeds/581936366454851911/comments/default' title='Postare comentarii'/><link rel='replies' type='text/html' href='http://resurse-it.blogspot.com/2011/01/biblioteci-in-turbo-pascal.html#comment-form' title='0 comentarii'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4915140777580483380/posts/default/581936366454851911'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4915140777580483380/posts/default/581936366454851911'/><link rel='alternate' type='text/html' href='http://resurse-it.blogspot.com/2011/01/biblioteci-in-turbo-pascal.html' title='Biblioteci în Turbo Pascal'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4915140777580483380.post-3297309961662895996</id><published>2011-01-30T23:55:00.000-08:00</published><updated>2011-02-01T05:53:48.213-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="download"/><category scheme="http://www.blogger.com/atom/ns#" term="Paralab"/><category scheme="http://www.blogger.com/atom/ns#" term="paralel"/><category scheme="http://www.blogger.com/atom/ns#" term="Paralel programming"/><category scheme="http://www.blogger.com/atom/ns#" term="programming"/><title type='text'>Paralab. Описание параллельных методов решения сложных вычислительных&#xa;задач</title><content type='html'>&lt;h2&gt;&lt;strong&gt;1&lt;/strong&gt;&lt;strong&gt;.1. &lt;/strong&gt;&lt;strong&gt;Сортировка данных &lt;/strong&gt;&lt;/h2&gt;&lt;br/&gt;Общая схема параллельных вычислений при сортировке данных (см. раздел 3 пособия) состоит в разделении исходного упорядочиваемого набора на блоки и их распределения между процессорами, в ходе сортировки блоки пересылаются между процессорами и содержащиеся в них данные сравниваются между собой для упорядочения. Результирующий (отсортированный) набор, как правило, также разделен между процессорами; при этом для систематизации такого разделения для процессоров вводится та или иная система последовательной нумерации и обычно требуется, чтобы при завершении сортировки значения, располагаемые на процессорах с меньшими номерами, не превышали значений процессоров с большими номерами.&lt;br/&gt;&lt;br/&gt;В системе ПараЛаб в качестве методов упорядочения данных представлены пузырьковая сортировка, сортировка Шелла, быстрая сортировка.&lt;br/&gt;&lt;h3&gt;1.1.1. Алгоритм пузырьковой сортировки&lt;/h3&gt;&lt;br/&gt;Напомним кратко общую схему данного метода упорядочения данных [1]. Алгоритм основан на применении базовой операции &quot;сравнить и переставить&quot; (compare-exchange), состоящей в сравнении той или иной пары значений из сортируемого набора данных и перестановки этих значений, если их порядок не соответствует условиям сортировки:&lt;br/&gt;&lt;br/&gt;// операция &quot;сравнить и переставить&quot;&lt;br/&gt;&lt;br/&gt;if ( a[i] &amp;gt; a[j] ) {&lt;br/&gt;&lt;br/&gt;temp = a[i];&lt;br/&gt;&lt;br/&gt;a[i] = a[j];&lt;br/&gt;&lt;br/&gt;a[j] = temp;&lt;br/&gt;&lt;br/&gt;}&lt;br/&gt;&lt;br/&gt;На первой итерации алгоритма осуществляется последовательное сравнение всех соседних элементов; в результате прохода по упорядочиваемому набору данных в последнем (верхнем) элементе оказывается максимальное значение (&quot;всплывание пузырька&quot;); далее для продолжения сортировки этот уже упорядоченный элемент не рассматривается и действия алгоритма повторяются:&lt;br/&gt;&lt;br/&gt;// пузырьковая сортировка&lt;br/&gt;&lt;br/&gt;for ( i=1; i&amp;lt;n; i++ ){&lt;br/&gt;&lt;br/&gt;for ( j=0; j&amp;lt;n-i; j++ )&lt;br/&gt;&lt;br/&gt;&amp;lt;сравнить и переставить элементы (a[j],a[j+1])&amp;gt;&lt;br/&gt;&lt;br/&gt;}&lt;br/&gt;&lt;br/&gt;Алгоритм пузырьковой сортировки в прямом виде достаточно сложен для распараллеливания: сравнение пар соседних элементов происходит строго последовательно. Для организации параллельных вычислений обычно используется модификация алгоритма пузырьковой сортировки – метод чет-нечетной перестановки [23]. Суть модификации состоит в том, что в алгоритм сортировки вводятся два разных правила выполнения итераций метода – в зависимости от четности или нечетности номера итерации сортировки для обработки выбираются элементы с четными или нечетными индексами соответственно, сравнение выделяемых значений всегда осуществляется с их правыми соседними элементами, т.е. на всех нечетных итерациях сравниваются пары:&lt;br/&gt;&lt;br/&gt;(a&lt;sub&gt;1&lt;/sub&gt;, a&lt;sub&gt;2&lt;/sub&gt;), (a&lt;sub&gt;3&lt;/sub&gt;, a&lt;sub&gt;4&lt;/sub&gt;),…, (a&lt;sub&gt;n-1&lt;/sub&gt;, a&lt;sub&gt;n&lt;/sub&gt;) (при четном n),&lt;br/&gt;&lt;br/&gt;на четных итерациях обрабатываются элементы&lt;br/&gt;&lt;br/&gt;(a&lt;sub&gt;2&lt;/sub&gt;, a&lt;sub&gt;3&lt;/sub&gt;), (a&lt;sub&gt;4&lt;/sub&gt;, a&lt;sub&gt;5&lt;/sub&gt;),…, (a&lt;sub&gt;n-2&lt;/sub&gt;, a&lt;sub&gt;n-1&lt;/sub&gt;) (при нечетном n).&lt;br/&gt;&lt;br/&gt;После n-кратного повторения подобных итераций сортировки исходный набор данных оказывается упорядоченным.&lt;br/&gt;&lt;br/&gt;Параллельное обобщение этого алгоритма не вызывает затруднений, так как сравнение элементов в парах происходит независимо и может выполняться одновременно. Сначала рассмотрим схему вычислений, когда на каждый процессор приходится один элемент исходного массива. Предположим, что процессоры соединены  в кольцо и элементы a&lt;sub&gt;i &lt;/sub&gt;расположены на процессорах p&lt;sub&gt;i &lt;/sub&gt;(i=1, 2,..., n). Тогда сравнение пары значений a&lt;sub&gt;i&lt;/sub&gt; и a&lt;sub&gt;i&lt;/sub&gt;&lt;sub&gt;+&lt;/sub&gt;&lt;sub&gt;1 &lt;/sub&gt;1≤ i &amp;lt;n, располагаемых на процессорах P&lt;sub&gt;i&lt;/sub&gt; и P&lt;sub&gt;i+&lt;/sub&gt;&lt;sub&gt;1 &lt;/sub&gt;соответственно, можно организовать следующим образом:&lt;br/&gt;&lt;br/&gt;- выполнить взаимообмен имеющихся на процессорах P&lt;sub&gt;i&lt;/sub&gt; и P&lt;sub&gt;i+&lt;/sub&gt;&lt;sub&gt;1 &lt;/sub&gt;значений (с сохранением на этих процессорах исходных элементов);&lt;br/&gt;&lt;br/&gt;- сравнить на каждом процессоре P&lt;sub&gt;i&lt;/sub&gt; и P&lt;sub&gt;i+&lt;/sub&gt;&lt;sub&gt;1 &lt;/sub&gt;получившиеся одинаковые пары значений ai и a&lt;sub&gt;i+&lt;/sub&gt;&lt;sub&gt;1&lt;/sub&gt;; результаты сравнения используются для разделения данных между процессорами – на одном процессоре (например, Pi) остается меньший элемент, другой процессор (т.е P&lt;sub&gt;i+&lt;/sub&gt;&lt;sub&gt;1&lt;/sub&gt;) запоминает для дальней обработки большее значение пары&lt;br/&gt;&lt;br/&gt;a&lt;sub&gt;i&lt;/sub&gt; =min(a&lt;sub&gt;i&lt;/sub&gt; , a&lt;sub&gt;i+&lt;/sub&gt;&lt;sub&gt;1 &lt;/sub&gt;),    a&lt;sub&gt;i+&lt;/sub&gt;&lt;sub&gt;1 &lt;/sub&gt;=max(a&lt;sub&gt;i&lt;/sub&gt; , a&lt;sub&gt;i+&lt;/sub&gt;&lt;sub&gt;1&lt;/sub&gt;).&lt;br/&gt;&lt;br/&gt;Рассмотренная параллельная схема может быть надлежащим образом адаптирована и для случая p&amp;lt;n, когда количество процессоров является меньшим числа упорядочиваемых значений. В данной ситуации каждый процессор будет содержать уже не единственное значение, а часть (блок размера n/p) сортируемого набора данных. Эти блоки обычно упорядочиваются в самом начале сортировки на каждом процессоре в отдельности при помощи какого-либо быстрого алгоритма (предварительная стадия параллельной сортировки). Далее, следуя схеме одноэлементного сравнения, взаимодействие пары процессоров P&lt;sub&gt;i&lt;/sub&gt; и P&lt;sub&gt;i+1 &lt;/sub&gt;для совместного упорядочения содержимого блоков A&lt;sub&gt;i&lt;/sub&gt; и A&lt;sub&gt;i+1 &lt;/sub&gt;и может быть осуществлено следующим образом:&lt;br/&gt;&lt;br/&gt;- выполнить взаимообмен блоков между процессорами P&lt;sub&gt;i&lt;/sub&gt; и P&lt;sub&gt;i+1&lt;/sub&gt;;&lt;br/&gt;&lt;br/&gt;- объединить блоки A&lt;sub&gt;i&lt;/sub&gt; и A&lt;sub&gt;i+1 &lt;/sub&gt;на каждом процессоре в один отсортированный блок двойного размера (при исходной упорядоченности блоков и процедура их объединения сводится к быстрой операции слияния упорядоченных наборов данных);&lt;br/&gt;&lt;br/&gt;- разделить полученный двойной блок на две равные части и оставить одну из этих частей (например, с меньшими значениями данных) на процессоре P&lt;sub&gt;i&lt;/sub&gt;, а другую часть (с большими значениями соответственно) – на процессоре P&lt;sub&gt;i+1&lt;/sub&gt;.&lt;br/&gt;&lt;br/&gt;Следует отметить, что сформированные в результате такой процедуры блоки на процессорах P&lt;sub&gt;i&lt;/sub&gt; и P&lt;sub&gt;i+1 &lt;/sub&gt; совпадают по размеру с исходными блоками A&lt;sub&gt;i&lt;/sub&gt; и A&lt;sub&gt;i+1 &lt;/sub&gt;и все значения, расположенные на процессоре P&lt;sub&gt;i&lt;/sub&gt;, являются меньшими значений на процессоре P&lt;sub&gt;i+1&lt;/sub&gt;.&lt;br/&gt;&lt;br/&gt;Рассмотренная процедура обычно именуется в литературе как операция &quot;сравнить и разделить&quot; (compare-split). Для пояснения такого параллельного способа сортировки на рис. 1 приведен пример упорядочения данных при n=8, p=4 (т.е. блок значений на каждом процессоре содержит n/p =2 элементов). В первом столбце таблицы приводится номер и тип итерации метода, перечисляются пары процессоров, для которых параллельно выполняется операция &quot;сравнить и разделить&quot;; взаимодействующие пары процессоров выделены в таблице двойной рамкой. Для каждого шага сортировки показано состояние упорядочиваемого набора данных до и после выполнения итерации.&lt;br/&gt;&lt;br/&gt;Вычислительная трудоемкость алгоритма определяется выражением:&lt;br/&gt;&lt;br/&gt;Tp  =6 (n/p)&lt;sup&gt;2&lt;/sup&gt; +2n&lt;br/&gt;&lt;br/&gt;Первая часть выражения определяет сложность начальной сортировки блоков с использованием алгоритма пузырьковой сортировки. Вторая часть отражает суммарную сложность всех итераций алгоритма чет-нечетной перестановки блоков (для слияния двух упорядоченных блоков размера n/p необходимо 2(n/p) операций).&lt;br/&gt;&lt;br/&gt;&lt;a rel=&quot;attachment wp-att-21&quot; href=&quot;http://resurse-educationale.uv.ro/?attachment_id=21&quot;&gt;Download Lab_3&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://resurse-it.blogspot.com/feeds/3297309961662895996/comments/default' title='Postare comentarii'/><link rel='replies' type='text/html' href='http://resurse-it.blogspot.com/2011/01/paralab_30.html#comment-form' title='0 comentarii'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4915140777580483380/posts/default/3297309961662895996'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4915140777580483380/posts/default/3297309961662895996'/><link rel='alternate' type='text/html' href='http://resurse-it.blogspot.com/2011/01/paralab_30.html' title='Paralab. Описание параллельных методов решения сложных вычислительных&#xa;задач'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4915140777580483380.post-1408247642330861118</id><published>2011-01-30T23:37:00.000-08:00</published><updated>2011-02-01T05:53:48.200-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Paralab"/><category scheme="http://www.blogger.com/atom/ns#" term="Paralel programming"/><category scheme="http://www.blogger.com/atom/ns#" term="programare"/><category scheme="http://www.blogger.com/atom/ns#" term="programming"/><title type='text'>Paralab. Постановка вычислительной задачи и выбор параллельного метода&#xa;решения</title><content type='html'>Для параллельного решения тех или иных вычислительных задач процесс вычислений должен быть представлен в виде набора независимых вычислительных процедур, допускающих выполнение на независимых процессорах.&lt;br/&gt;&lt;br/&gt;Общая схема организации таких вычислений может быть представлена следующим образом:&lt;br/&gt;&lt;ul&gt;&lt;br/&gt;	&lt;li&gt;разделение процесса вычислений на части, которые могут быть выполнены одновременно;&lt;/li&gt;&lt;br/&gt;&lt;/ul&gt;&lt;br/&gt;&lt;ul&gt;&lt;br/&gt;	&lt;li&gt;распределение вычислений по процессорам;&lt;/li&gt;&lt;br/&gt;&lt;/ul&gt;&lt;br/&gt;&lt;ul&gt;&lt;br/&gt;	&lt;li&gt;обеспечение взаимодействия параллельно выполняемых вычислений.&lt;/li&gt;&lt;br/&gt;&lt;/ul&gt;&lt;br/&gt;Возможные способы получения методов параллельных вычислений:&lt;br/&gt;&lt;ul&gt;&lt;br/&gt;	&lt;li&gt;разработка новых параллельных алгоритмов;&lt;/li&gt;&lt;br/&gt;&lt;/ul&gt;&lt;br/&gt;&lt;ul&gt;&lt;br/&gt;	&lt;li&gt;распараллеливание последовательных алгоритмов.&lt;/li&gt;&lt;br/&gt;&lt;/ul&gt;&lt;br/&gt;Условия эффективности параллельных алгоритмов:&lt;br/&gt;&lt;ul&gt;&lt;br/&gt;	&lt;li&gt;равномерная загрузка процессоров (отсутствие простоев);&lt;/li&gt;&lt;br/&gt;&lt;/ul&gt;&lt;br/&gt;&lt;ul&gt;&lt;br/&gt;	&lt;li&gt;низкая интенсивность взаимодействия процессоров (независимость).&lt;/li&gt;&lt;br/&gt;&lt;/ul&gt;&lt;br/&gt;В системе ПараЛаб реализованы широко применяемые параллельные алгоритмы для решения ряда сложных вычислительных задач из разных областей научно-технических приложений: алгоритмы сортировки данных, матричного умножения и обработки графов.&lt;br/&gt;&lt;h4&gt;Выбор задачи.&lt;/h4&gt;&lt;br/&gt;Для выбора задачи из числа реализованных в системе выберите пункт меню &lt;strong&gt;Задача &lt;/strong&gt;и выделите левой клавишей мыши одну из строк: &lt;strong&gt;Сортировка&lt;/strong&gt;, &lt;strong&gt;Матричное умножение&lt;/strong&gt;, &lt;strong&gt;Обработка графов&lt;/strong&gt;. Выбранная задача станет текущей в активном окне.&lt;br/&gt;&lt;br/&gt;&lt;a rel=&quot;attachment wp-att-23&quot; href=&quot;http://resurse-educationale.uv.ro/?attachment_id=23&quot;&gt;Download Lab_2&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://resurse-it.blogspot.com/feeds/1408247642330861118/comments/default' title='Postare comentarii'/><link rel='replies' type='text/html' href='http://resurse-it.blogspot.com/2011/01/paralab.html#comment-form' title='0 comentarii'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4915140777580483380/posts/default/1408247642330861118'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4915140777580483380/posts/default/1408247642330861118'/><link rel='alternate' type='text/html' href='http://resurse-it.blogspot.com/2011/01/paralab.html' title='Paralab. Постановка вычислительной задачи и выбор параллельного метода&#xa;решения'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4915140777580483380.post-6500929863086980250</id><published>2011-01-30T23:34:00.000-08:00</published><updated>2011-02-01T05:53:48.187-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="download"/><category scheme="http://www.blogger.com/atom/ns#" term="Paralab"/><category scheme="http://www.blogger.com/atom/ns#" term="paralel"/><category scheme="http://www.blogger.com/atom/ns#" term="Paralel programming"/><category scheme="http://www.blogger.com/atom/ns#" term="programare"/><category scheme="http://www.blogger.com/atom/ns#" term="programming"/><title type='text'>ПАРАЛАБ ПРОГРАММНАЯ СИСТЕМА ДЛЯ ИЗУЧЕНИЯ И ИССЛЕДОВАНИЯ МЕТОДОВ&#xa;ПАРАЛЛЕЛЬНЫХ ВЫЧИСЛЕНИЙПАРАЛАБ ПРОГРАММНАЯ СИСТЕМА ДЛЯ ИЗУЧЕНИЯ И&#xa;ИССЛЕДОВАНИЯ МЕТОДОВ ПАРАЛЛЕЛЬНЫХ ВЫЧИСЛЕНИЙ</title><content type='html'>Программная система Параллельная Лаборатория (сокращенное наименование ПараЛаб) обеспечивает возможность проведения вычислительных экспериментов с целью изучения и исследования параллельных алгоритмов решения сложных вычислительных задач. Система может быть использована для организации лабораторного практикума по различным учебным курсам в области параллельного программирования, в рамках которого обеспечивается возможность&lt;br/&gt;&lt;br/&gt;• моделирования многопроцессорных вычислительных систем с различной топологией сети передачи данных;&lt;br/&gt;&lt;br/&gt;• получения визуального представления о вычислительных процессах и операциях передачи данных, происходящих при параллельном решении разных вычислительных задач;&lt;br/&gt;&lt;br/&gt;• построения оценок эффективности изучаемых методов параллельных вычислений.&lt;br/&gt;&lt;br/&gt;Проведение такого практикума может быть организовано на &quot;обычных&quot; однопроцессорных компьютерах, работающих под управлением операционных систем MS Windows 2000 или MS Windows XP (режим многозадачной имитации параллельных вычислений). Кроме режима имитации, в системе ПараЛаб обеспечивается удаленный доступ к имеющейся многопроцессорной вычислительной системе для выполнения экспериментов в режиме &quot;настоящих&quot; параллельных вычислений для сопоставления результатов имитации и реальных расчетов.&lt;br/&gt;&lt;br/&gt;В целом система ПараЛаб представляет собой интегрированную среду для изучения и исследования параллельных алгоритмов решения сложных вычислительных задач. Широкий набор имеющихся средств визуализации процесса выполнения эксперимента и анализа полученных результатов позволяет изучить эффективность использования тех или иных алгоритмов на разных вычислительных системах, сделать выводы о масштабируемости алгоритмов и определить возможное ускорение процесса параллельных вычислений.&lt;br/&gt;&lt;br/&gt;Реализуемые системой ПараЛаб процессы изучения и исследований ориентированы на активное освоение основных теоретических положений и способствуют формированию у пользователей своих собственных представлений о моделях и методах параллельных вычислений путем наблюдения, сравнения и сопоставления широкого набора различных визуальных графических форм, демонстрируемых в ходе выполнения вычислительного эксперимента.&lt;br/&gt;&lt;br/&gt;&lt;strong&gt;Возможности системы&lt;/strong&gt;&lt;strong&gt;. &lt;/strong&gt;ПараЛаб - программный комплекс, который позволяет проводить как реальные параллельные вычисления на многопроцессорной вычислительной системе, так и имитировать такие эксперименты на одном последовательном компьютере с визуализацией процесса решения сложной вычислительной задачи.&lt;br/&gt;&lt;br/&gt;При проведении имитационных экспериментов ПараЛаб предоставляет возможность для пользователя:&lt;br/&gt;&lt;br/&gt;• определить топологию параллельной вычислительной системы для проведения экспериментов, задать число процессоров в этой топологии, установить производительность процессоров, выбрать характеристики коммуникационной среды и способ коммуникации;&lt;br/&gt;&lt;br/&gt;• осуществить постановку вычислительной задачи, для которой в составе системы ПараЛаб имеются реализованные параллельные алгоритмы решения, выполнить задание параметров задачи;&lt;br/&gt;&lt;br/&gt;• выбрать параллельный метод для решения выбранной задачи;&lt;br/&gt;&lt;br/&gt;• установить параметры визуализации для выбора желаемого темпа демонстрации, способа отображения пересылаемых между процессорами данных, степени детальности визуализации выполняемых параллельных вычислений;&lt;br/&gt;&lt;br/&gt;• выполнить эксперимент для параллельного решения выбранной задачи; при этом в системе ПараЛаб может быть сформировано несколько различных заданий для проведения экспериментов с отличающимися типами многопроцессорных систем, задач или методов параллельных вычислений, для которых выполнение эксперимента может происходить одновременно (в режиме разделения времени); одновременное выполнение эксперимента для нескольких заданий позволяет наглядно сравнивать динамику решения задачи различными методами, на разных топологиях, с разными параметрами исходной задачи. При выполнении серии экспериментов, требующих длительных вычислений, в системе имеется возможность их проведения в автоматическом режиме с запоминанием результатов в журнале вычислений [1-3].&lt;br/&gt;&lt;br/&gt;Для реальных экспериментов на многопроцессорных вычислительных системах зависимости строятся по набору результатов проведенных вычислительных экспериментов. Любой из проведенных ранее экспериментов может быть восстановлен для повторного проведения. Кроме того, обеспечена возможность ведения журнала экспериментов с записью туда постановки задачи, параметров вычислительной системы и полученных результатов.&lt;br/&gt;&lt;br/&gt;Реализованные таким образом процессы изучения и исследований позволят освоить теоретические положения и помогут формированию представлений о методах построения параллельных алгоритмов, ориентированных на решение конкретных прикладных задач.&lt;br/&gt;&lt;br/&gt;&lt;a rel=&quot;attachment wp-att-22&quot; href=&quot;http://resurse-educationale.uv.ro/?attachment_id=22&quot;&gt;Downlaod Lab_1&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://resurse-it.blogspot.com/feeds/6500929863086980250/comments/default' title='Postare comentarii'/><link rel='replies' type='text/html' href='http://resurse-it.blogspot.com/2011/01/blog-post.html#comment-form' title='0 comentarii'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4915140777580483380/posts/default/6500929863086980250'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4915140777580483380/posts/default/6500929863086980250'/><link rel='alternate' type='text/html' href='http://resurse-it.blogspot.com/2011/01/blog-post.html' title='ПАРАЛАБ ПРОГРАММНАЯ СИСТЕМА ДЛЯ ИЗУЧЕНИЯ И ИССЛЕДОВАНИЯ МЕТОДОВ&#xa;ПАРАЛЛЕЛЬНЫХ ВЫЧИСЛЕНИЙПАРАЛАБ ПРОГРАММНАЯ СИСТЕМА ДЛЯ ИЗУЧЕНИЯ И&#xa;ИССЛЕДОВАНИЯ МЕТОДОВ ПАРАЛЛЕЛЬНЫХ ВЫЧИСЛЕНИЙ'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>