Разбиране на SFTP срещу FTPS срещу FTP

FTP или протоколът за прехвърляне на файлове е един от най-популярните методи за прехвърляне на данни, налични за различни случаи на употреба.

FTP разполага с различни защитени варианти, известни като FTPS и SFTP, които включват някои фини и някои не толкова фини разлики в начина им на работа. Тези разлики се отнасят до начина на обмен на данни, нивото и вида на сигурността в комуникацията и съображенията за защитна стена.

Познаването как работят тези протоколи и разликите между тези популярни механизми за прехвърляне може да ви помогне да изберете кой работи най-добре за вашите нужди.

FTP

FTP е старият от десетилетия протокол за прехвърляне на файлове, първоначално предложен в RFC 114. По-късно той се разви като RFC 959, който е стандартът, който се използва днес.

FTP работи по два канала за обмен на информация: единият за команди, а другият за данни. Това изисква два порта за работа на FTP – командния канал и канала за данни.

Командният канал работи на порт 21, който приема връзки от клиенти и управлява предаването на команди. Командният канал остава отворен за цялата продължителност на FTP сесията, докато клиентът не изпрати команда QUIT или сървърът принудително прекъсне връзката поради неактивност или друга възможна причина.

Каналът за данни използва временен порт при поискване, който слуша на сървъра (пасивен режим) или клиента (активен режим). Този канал е отговорен за споделянето на действителни данни между сървър и клиент под формата на списъци с директории и прехвърляне на файлове.

За разлика от командния канал, каналът за данни остава отворен само по време на прехвърлянето на файла и веднага щом приключи, каналът за данни се затваря. За едновременно прехвърляне на множество файлове или списъци с директории са необходими множество портове за канал за данни.

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

  Как да проверите поддържаните 5G ленти на вашия телефон

Както беше обсъдено по-рано, FTP изисква входяща връзка на порт 21/tcp от страната на сървъра за командния канал. Диапазонът на пасивен порт е дефиниран за прехвърляне на файлове и списъци с директории и позволява входящи връзки. Този процес на дефиниране може да варира в зависимост от използвания FTP сървър. Обърнете се към неговата документация за повече подробности. От страна на клиента изходящата връзка на порт 21/tcp трябва да бъде разрешена заедно с диапазона на пасивен порт, дефиниран на сървъра.

Удостоверяване във FTP

FTP информацията за удостоверяване се предава по командния канал по време на първоначалното установяване на връзка. FTP може да използва потребителско име и парола за удостоверяване или може да бъде анонимен, за да позволи на всеки да влезе и да получи достъп до сървъра.

Активни и пасивни FTP режими

FTP използва активен или пасивен режим за настройка на връзки.

В активен режим потребителят се свързва от произволен порт на FTP клиента към FTP порт 21/tcp на сървъра и изпраща командата PORT, указвайки порта на клиента, към който сървърът трябва да се свърже. Този порт ще се използва за канала за данни.

След това сървърът се свързва от порт 20/tcp към клиентския порт, зададен по-рано с команда PORT от клиента. След това този канал за данни се използва за прехвърляне на файлове между сървър и клиент.

В пасивен режим клиентът се свързва от произволен порт от FTP клиента към порт 21/tcp на сървъра и изпраща командата PASV. След това сървърът отговаря с произволен порт, който трябва да се използва за канала за данни. След това клиентът използва друг случаен порт, за да се свърже с порта, отговорен от сървър в по-ранната стъпка. Тази връзка с канал за данни след това се използва за прехвърляне на файлове между сървър и клиент.

Така че в активен режим първоначалната заявка за връзка се инициира от клиента, докато заявката за връзка с канала за данни се инициира от сървъра.

  Как да добавите музика към Google Slides

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

FTPS

Дори ако сте готови да поемете рискове, свързани с FTP с некриптирано предаване на данни и атаки main-in-the-middle, изискванията на индустрията ви принуждават да използвате по-сигурна алтернатива като FTPS и SFTP, които са сравнително много по-сигурни.

През 1990 г., с променящия се пейзаж на сигурността, Netscape създаде SSL или Secure Sockets Layer (SSL, сега известен като TLS) протокол за защита на комуникацията в мрежа. SSL беше приложен към FTP, който стана FTPS или File Transfer Protocol Secure. FTPS или FTP/S обикновено работи на порт 990/tcp, но може да се види и на порт 21/tcp. По същия начин, за канал за данни порт 989/tcp е общият порт, използван за FTPS. Ако командният порт е 21/tcp, неговият порт за данни се очаква да бъде 20/tcp.

Подобно на FTP, FTPS използва два канала за комуникация: команден и канал за данни. Или каналът за данни може да бъде криптиран с FTPS, или каналите за команди и данни могат да бъдат криптирани за повече сигурност.

FTPS, подобно на FTP, също използва множество портове за команди и канали за данни. И така, порт 21/tcp се използва за първоначално свързване и предаване на информация за удостоверяване. По-късно ще са необходими различни портове за настройка на канали за данни за всяко прехвърляне на файл или заявка за списък с директории от клиента. По този начин, подобно на FTP, той се нуждае от набор от портове, които да бъдат разрешени във вашата защитна стена.

Удостоверяване в FTPS

Удостоверяването за FTPS работи с потребителско име и парола заедно със сървърен сертификат за криптиране. Когато FTPS клиентът се свърже със сървър, той проверява дали сертификатът на сървъра е надежден, за да продължи връзката. Този сертификат може да бъде поискан от клиента и сървъра.

  Как да коригирате черно петно ​​на екрана на iPhone

SFTP

За разлика от FTP и FTPS, SFTP (SSH File Transfer Protocol) е напълно различен протокол, изграден върху SSH (или Secure Shell). SFTP по подразбиране работи на порт 22/tcp, същото като SSH, въпреки че може да бъде конфигуриран да използва персонализиран свободен порт на сървъра.

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

SFTP, за разлика от FTP и FTPS, използва един комуникационен канал за прехвърляне на команди и трафик на данни, всички от които се предават в криптирана форма заедно с първоначалното удостоверяване.

Удостоверяване в SFTP

Удостоверяването в SFTP може да се извърши чрез просто потребителско име и парола, но за разлика от FTP, цялата информация, включително подробностите за удостоверяване, се предават криптирани по мрежата.

SFTP също така поддържа удостоверяване чрез двойка SSH ключове, комбинация от частни и публични ключове, където клиентът предоставя частния ключ за посочения потребител, а сървърът трябва да има съответния публичен ключ, за да успее удостоверяването. По-сигурно е от използването на комбинация от потребителско име/парола. Възможно е да удостоверите един и същ потребител с помощта на парола и SSH ключове, ако и двата метода са конфигурирани на SFTP сървъра.

Резюме

Тази статия обобщава основните характеристики на различни популярни протоколи за прехвърляне на файлове, а именно FTP, FTPS и SFTP, и подчертава фините и основни разлики между тези протоколи. Той обхваща портовете, които човек трябва да разреши в защитната стена, за да настрои работещ FTP/FTPS/SFTP сървър, като същевременно подчертава необходимостта от преминаване към по-сигурни протоколи като FTPS и SFTP.

Когато казвам FTP тук, имам предвид всички обсъждани протоколи в тази статия. Причината е, че FTP е стар от десетилетия и дори по-новите защитени версии понякога се наричат ​​FTP вместо определеното им име за ежедневна употреба.

Може също да ви е интересно да научите най-добрия софтуер за FTP сървър и FTP/SFTP клиенти.