в мрежата

уроци за компютри мрежи и сигурност

Начало TCP/IP Глава 5 Приложният слой

Глава 5 Приложният слой

Е-мейл
Оценка на читателите: / 47
Слаба статияОтлична статия 

Най-отгоре в TCP/IP стека е приложния слой. Приложният слой съдържа приложения, които генерират заявки към други хостове. Портовете и сокетите се използват за получаване и изпращане на данни. За да опише възможно най-добре приложния слой, в тази глава са подробно разгледани следните точки:

  • Портове и сокети
  • File Transfer Protocol (FTP)
  • Hypertext Transfer Protocol (HTTP)
  • Защитните стени (Firewalls)

Да разберем приложният слой

Приложният слой на TCP/IP е мястото, където заявките за данни или услуги се обработват. Приложенията в този слой чакат заявки, които да обработят и всички приложения "слушат" на определен порт.

Приложния слой не е мястото където върви вашето приложение за текстообработка, таблици или интернет браузъра ви. Приложенията които вървят в приложния слой взаимодействат с приложенията за текстообработка, таблици, интернет браузъра и т.н. Два примера за приложения, които вървят в този слой са FTP и HTTP, те ще бъдат разгледани подробно по-късно в тази глава.

Да разберем какво са портовете и сокетите

На ред с придвижването на пакет нагоре по протоколния стек по пътя си към проложния слой, транспортния слой насочва пакетите към подходящи портове. Порта е число, което приложенията в приложния слой използват като адрес за получаване/изпращане. Порта е номериран адрес където се изпращат заявките и където приложенията "слушат" за тези заявки. Портовете са номерирани от 1 до 65536. Представете си как приложенията слушат за заявки които да обработят. Когато зачвките правят своч път нагоре по TCP/IP стека, TCP или UDP в транспортния слой предават зачвките към приложния слой. Запомнете, че приложенията са настрояни да слушат на точно определен порт и TCP и UDP предават пакета на този порт в зависимост от информацията в хедъра на пакета.

Двата транспортни протокола TCP и UDP ползват по 65536. Например пакета може да определи че е насочен към TCP порт 80. TCP порт 80 е стандартен порт където уеб сървърите слушат за HTTP заявки. Като друг пример, пакета може да определи че е насочен към UDP порт 69, което е стандартния порт за TFTP заявки. Интернет слоя предава този пакет към TCP или UDP и сега те предават към подходящия порт, където приложението "слуша" за заявки. Тази порт информация формира фуния през TCP/IP стека. Веднага след като пакет бива доставен на определен IP адрес, той бива предаван нагоре по стека, за да се убеди че той е адресиран до хоста който го е получил. После бива предаден към TCP и UDP и после към подходящ порт, за да може приложението в приложния слой да изпълни заявката. Тази фуния се нарича сокет.

Сокета комбинира три части информация: IP адрес, TCP или UDP и номера на порта. TCP и UDP индикират кой протокол ще се използва. Сокета се записва така:

131.107.2.200:TCP:80 или 131.107.2.200:UDP:69

Илюстрацията по-долу показва TCP/IP протоколния стек с 65536 TCP и UDP порта при приложния слой. Забележете че с придвиждането на пакета нагоре по стека IP ще го предаде на TCP порт или UDP порт. Приложенията слушат на определения им порт, така когато данните пристигнат те се обработват акуратно.

Добре познати портове

Добре познатите портове са номера на портове който Internet Assigned Number Authority (IANA) е резервирала за използване от определени приложения. Например:

 ПортРезервиран за 
 TCP:80HTTP 
 TCP:21 FTP
 TCP:20 FTP-Data
 UDP:69 Trivial File Transfer Protocol (TFTP)
 UDP:161 Simple Network Management Protocol (SNMP)

 

 

 

 

Портовете от 1 до 1024 се смятат за добре познати номера на портове и са резервирани за определени приложения. Портовете от 1025 до 65536 нямат определено предназначение. Програмистите ползват тези портове за приложенията които пишат. Добре познатите портове са първоначално записани в RFC 1060 и по късно допълнени в RFC 1700.

File Transfer Protocol (FTP)

File Transfer Protocol (FTP) е протокол, който дефинира как файл може да бъде трансфериран от един хост на друг. За да бъде трансфериран един файл от един хост на друг, FTP на иницииращия хост създава заявка за файл а FTP при FTP сървъра изпълнява заявката за файл. Два хоста участват  в една FTP сесия, единия иска файл а другия има копие на файла и изпраща копие на искания файл към искащия го хост. Файла може да бъде трансфериран в текстов или друичен формат. Хоста които иска услугата се нарича клиент, а хоста който предлага услугата се нарича сървър. Тези два хоста установяват клиент/сървър връзка, при която единия хост изпълнява заявките на другия. Иницииращия хост използва приложение, за да поиска файла. Това приложение може да е FTP приложение от команден ред или FTP команден интерпретатор. FTP приложението от команден ред позволява на хост да се свътже към FTP сървър, без да ползва луксозен интерфейс, като потребителя просто въвежда FTP команда в командния ред. FTP се свързва към сървъра и от потребителя се иска да се логне. Потребителя трябва да въведе потребителско име и парола. По-долу съм лепнал така направена връзка към ftp.vmrejata.info.

C:\USERS\TIHOMIR>ftp ftp.vmrejata.info
Connected to ftp.vmrejata.info.
220---------- Welcome to Pure-FTPd [TLS] ----------
220-You are user number 2 of 50 allowed.
220-Local time is now 22:16. Server port: 21.
220-This is a private system - No anonymous login
220-IPv6 connections are also welcome on this server.
220 You will be disconnected after 5 minutes of inactivity.
User (ftp.vmrejata.info:(none)): ftp
331 User ftp OK. Password required
Password:
230-User ftp has group access to:  ftp
230 OK. Current restricted directory is /
ftp>

Как работи FTP

Първия пакет, който е изпратен от иницииращия хост до FTP сървъра е пакет който иска да бъде изградена връзка. Този пакет се изпраща до TCP порт 21 на FTP сървъра. Иницииращия хост избира "не добре познат порт" на които да слуша за отговор. Хапример той избира порт 1177 като порт за обратна връзка и ще слуша на този порт за отговор изпратен до този номер порт.

FTP приложението слуша порт 21. Когато получава запитването приложението изпраща обратно FTP/TCP/IP пакет, за да установи връзка и да попита клинета за потребителско име и парола за вход. FTP/TCP/IP пакет е пакет който има FTP хедър върху TCP хедър върху IP хедър. При този върнат пакет FTP сървъра е източника, а FTP клиента е получателя. FTP изпраща отговора на порт 1177 както е поискал клиента. В FTP хедъра, който сървъра е направил той предава информация към FTP клиента.

Диалога продължава като FTP сървъра отговаря на запитванията на клиента. Клиента ще има възможност да види списък с файловете които са налични и да поиска един или няколко от тях да му бъдат изпратени.

FTP клиента от комантед ред изискра потребителя да знае FTP команди и как да ги използва. Друг начин на потребителя да се свърже към FTP сървара без да има нужда да знае FTP команди е като ползва FTP команден интерпретатор. Няколко от такива приложения са налични в интернет; някои са безплатни, а други могат да се свалят и ползват за пробен период от 30 дни. юедин пример за такава програма е CoreFTP. Тя е лесна за употреба с интуитивен потребителски интерфейс. Тези приложения превръщат натисканията на мишката в FTP команди и предават тези команди на FTP сървъра.

Hypertext Transfer Protocol (HTTP)

Hypertext Transfer Protocol (HTTP) е набор от правила за обмяна на файлове в интернет. Това е протокола който ващия уеб браузър ползва за сърфиране в интернет. За разлика от FTP, HTTP е направен така, че да се изисква много малка намеса на потребителя. HTTP трансферира преформатирани файлове които се показват в браузъра вместо само да се запазват на диска. HTTP приложения се изпълняват на Web сървъра и слушат за заявки и отговарят на тези заявки като изпращат файлове обратно към този който ги е поискал. Уеб сървара е сървър, който има HTTP сервизно приложение което върви на него. HTTP слуша на TCP порт, обикновенно порт 80 за заявки и изпраща поисканите файлове към изкащия ги. Поискалия ги хост показва тези файлове в най-различните Уеб браузър приложения.


Клиента прави HTTP заявки като въвежда команда в Уеб браузара си. Тази команда представлява въвеждането на Uniform Resource Locator (URL) (или казано по друг начин адреса на уеб страницата като www.wmrejata.info) в адресната лента на Уеб браузъра или като натиска хипервръзка на страницата която е показана в Уеб браузъра. Хипервръзка е дума в уеб страниците, която води до друг документ на Уеб сървъра или дори до друг Уеб сървър и сайт. Уеб браузъра форматира клиентските заявки в HTTP/TCP/IP пакети с адрес порт 80. HTTP/TCP/IP пакетите представляват пакети с HTTP хедър бърху TCP хедър върху IP хедър.

На Уеб сървъра HTTP приложението слуша на порт 80 за някакви заявки. След като пакет бива получен, поискания файл се намира и пакетира за изпращане към клиента. Пакетите напускат Уеб сървъра и при пристигането им при клиента, Уеб браузъра декодира Hypertext Markup Language (HTML) файл и го показва на екрана в нужния формат.

Нека погледнем какво наистина се случва, когато се свържете към Уеб сайт:

  1. Отваряте Уеб браузъра си и въвеждате URL www.vmrejata.info.
  2. Вашия Уеб браузър създава пакет и го изпраща към Уеб сървър някаде в интернет. С други думи правите зявка към Уеб сървъра да направите връзка.
  3. Уеб сървъра чува молбата ви на порт 80 и изпраща обратно пакет до вас, който казва "Добре ще направя връзка с теб".
  4. Сега след като имате връзка с Уеб сървъра, вие искате той да ви изпрати основната си страница.
  5. Уеб сървъра получава вашия отговор и взима файла който сте поискали. Файла бива поставен в един или повече пакета, в зависимост колко е голям и ви се изпраща.
  6. Вашия Уеб браузър получава пакетите и изпраща потвърждение, че са получени. Ако Уеб сървъра не получи потвърждение от вас, той ги изпраща наново.
  7. Вашич Уеб брайзър показва информацията на екрана ви когато пакетите биват получени.

Множество приложения се изпълняват в приложния слой, разгледахте HTTP и FTP като примери как оперират тези приложения. Други често срещани приложения в този слой са; Simple Network Management Protocol (SNMP), Telnet, Simple Mail Transfer Protocol (SMTP) и Trivial File Transfer Protocol (TFTP).

Портове и firewall-и

Псеки пакет движещ се в мрежата съдържа няколко къса информация, които гарантират пристигането му там където е насочен. Част от информацията в хедъра осигурява хадруерния (MAC) адрес на получателя, друга част осигурява IP адреса, а друга част осигурява информация за порта. Когато пакет получава достъп до мрежата, преди физическото пристигане при дестинацията му, може да бъде използван firewall за предпазване на хоста дестинация от слонамерен пакет. Firewall-a ще отхвърли пакети с неразрешен адрес и порт на получателя.

Заявяване на услуга в TCP/IP стека

Представете си TCP/IP стека като изключутелно висока офис зграда с 2 кули. Двете кули споделят еднo фоайе и всяка кула има 65536 етажа. Понеже те са част от една зграда, двете кули имат един и същи физически адрес (номер на улицата), в тази аналогия този адрес е MAC адреса. Допуснете, че искате да направите зачвка към компания която се намира в тази зграда. За да направите това трябва да знаете адреса на здрадата и етажа на който тази компания се помещава. Използването на адреса на улицата ви помага да пристигнете при зградата, после отивате при асансьора и започвате да се качвате към етажа където е тази фирма. Когато отидете при асансьорите трябва да знаете кой от тях да ползвате. Едната кула е TCP а другата UDP. За този пример трябва да отидете на TCP порт 80, за да намерите компанията с която сте дошли да правите бизнес. Отивате при TCP асансьора и отивате на 80-тия етаж. Когато се отворят вратите ви посреща портиер, за да предаде вашите служебни искания. Вие правете своето искане и портиера започва да го обработва.

Както беше дискутирано по-рано в тази глава, TCP порт 80 е порта където HTTP сървъра слуша за заявки. Когато вратата на асансьора се отвори на 80-тия етаж, това е една HTTP услуга която чака да изпълни вашите запитвания. Ако се качите на 21-вия етаж, FTP услуга ще чака да изпълни исканията ви. Когато програмистите пишат услуга те определят на кой порт тази услуга искат да слуша. Когато клиента изпраща пакет до сървъра, който хоства услуга, клиента трябва да направи запитването към коректния порт. Ако услугата слуша на порт 80 а клиента отправи запитването към порт 81, зачвката няма да бъде обработена защото няма услуга която да слуша там.

Представете си нашите кули и всички празни етажи. сървъра не изпалнява 65536 услуги и определено не и в двете TCP и UDP кули. Не искаме на етажите, които са празни и не изпълняват услуга да слизат посетители. Ако има недобронамерени хора които искат да превземат нашата зграда, те вероятно ще се опитат да направят това от етаж където няма услуга и няма взети мерки за сигурност. На всички етажи кадето върви услуга, има взети мерки за сигурност вградени в тази услуга, но на етажите без услуга е възможно да влезе нарушител.

Firewall-a защитава локалната мрежа

В локалната мрежа (ЛМ или LAN), всеки хост е като TCP/IP зградата която беше описана. За да защитят ЛМ от нарушители повечето администратори използват Firewall. Firewall-a (защитната стена) е комбинация от хардуер и софтуер инсталиран на границата на ЛМ. Защитната стена прилича на военен пропускателен пункт на входа на мрежата. Администратора поставя firewall на всеки вход към мрежата. Всеки пакет които пожелае да влезе в мрежата трябва да премине през пункта за проверка където ще бъде проверен. Много firewall-и са настроени да блокират целия трафик и администраторите конфигурират правила за допускане на определен трафик до мрежата. Администратора може също така да забрани определен трафик да излиза от мрежата.

Представете си остров пълен с TCP/IP згради и единствения начин да отидете или да си замините от острова като минете по мост. Тази връзка към острова моста е мястото където се извършва проверката. Ако има и други места за вход към острова там трябва също да има място за проверка. В ЛМ трябва да има защитна стена на всяко място с връзка към интернет. На тези места за проверка всеки пакет е изследван базирайки се на правилата създадени от администратора, и на пакета се дава достъп или се отхвърля.

Тези правила се създават на базата на IP адреси, DNS имена, протоколи и портове. Администратора създава тези правила на базата на услугите, които иска да бъдат достъпни за останалите мрежи. Например без наличието на FTP сървър в мрежата администратора ще забрани всякакви входящи връзки към порт 21. Ако ЛМ има FTP сървър и администратора иска той да бъде достъпен отвън, администратора може да създаде правило което позволява пакет адресиран до сървър на порт 21 да бъде пуснат в ЛМ. Без Firewall башите TCP/IP згради не са сигурни. Всички пакети се допускат до острова и могат да влязат в желания хост. Когато на пакет бива разрешен достъп до ЛМ, той може да пристигне при желания хост и да се качи до 21-вия етаж. Дори да няма стартирана услуга на 21-вия етаж, вратите на асансьора ще се отворят и пакета ще има достъп до хоста.

Всяка мрежа трябва да бъде осигурена от firewall. Администратора може да реши да постави firewall пред сървъра или да стартира такъв на сървъра и така сървъра ще бъде двойно осигурен.

Бележка: Има уеб страници в интернет, които ще тестват слабите места на вашата машина към TCP/IP атаки. Отворете уеб браузъра си отворете google и търсете "firewall vulnerability test" и би трябвало да откриете няколко безплатни онлайн теста за тестване на уязвимости.

Етикети: TCP/IP

 

Добавете коментар

Вашето име:
Заглавие:
Коментар:
  Кодът за потвърждение. Само малки символи без разстояния между тях.
Секретен код:

Поща

Не си логнат.

Ако това което четете тук ви харесва гласувайте за нас!
Ако това което четете тук ви харесва гласувайте за нас!

Кой е на линия

В момента има 55 посетителя в сайта