Система за FTP-нат

FTP (протокол за трансфер на файлове - протокол за пренос на файлове). FTP е протокол на високо ниво, а именно, приложния слой (7 слой на модела OSI). FTP услуга е изградена въз основа на добре познатата схема "клиент-сървър", която позволява на потребителя да изпращате / получавате файлове от отдалечен сървър.







Клиентът изпраща заявки към сървъра и получава файлове. Както клиентите могат да използват - Internet Explorer, Windows Commander, NetVampir, gftp т.н.

Сървърът обработва клиентски заявки за файл. Сървърите може да бъде използвана - vsftpd, IIS, wuftpd, proftpd т.н.

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

FTP е различна от други приложения с това, че използва два TCP връзки за прехвърляне на файл:

Контрол на връзката - Свържете се изпраща команди към сървъра и да получават отговори от него.

Съединение данни - връзка за прехвърляне на файлове.

FTP за първи път е разработен в университета в Калифорния за включване в 4.2BSD (Berkeley Unix). За по-подробна информация Препоръчвам RFC959 четене.

Работни режими FTP: активна и пасивна

При работа на клиент FTP сървър, и двете съединения - контрола (върху него се команда) и връзка за данни (тя прехвърля файловете). Връзката за контрол е еднакво активни и пасивни режими. Клиентът започва TCP-връзка към динамични пристанища (1024-65535) до номера на порта 21 на FTP сървъра и казва: "Здравейте! Искам да се свърже с вас. Ето моето име и паролата си. " Какво се случва след това зависи от това какво е избран режим FTP (активна или пасивна).

В активен режим, когато клиентът се казва "Здрасти!" Той също така казва, номера на порта на сървъра (от динамичния диапазон 1024-65535), така че на сървъра може да се свърже с клиента, за да се установи връзка за предаване на данни. FTP -server е свързан с определен порт на клиента с помощта на своя номер на частта TCP порт 20 за предаване на данни.

В пасивен режим, след като клиентът каза: "Здрасти!", Сървърът съобщава номера на клиент TCP-порт (от динамичния диапазон 1024-65535), който може да се свърже, за да настроите връзката за данни. Основната разлика между активен режим FTP и режим пасивно FTP - това е страна, която се отваря връзка за предаване на данни. В активен режим, клиентът трябва да приема връзката от -server FTP. В пасивен режим, клиентът винаги инициира връзката.







Active FTP "полезно" за FTP -server, но "лош" за клиента. FTP сървър се опитва да се свърже с произволни високи (по брой) портове на клиента, тази връзка със сигурност ще бъде блокиран от защитна стена от страна на клиента.

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

Първоначална настройка на защитната стена

Създаване на минимален набор от правила в нашата защитна стена. Този пример е създадена само за да покаже на принципа на IPTABLES. За по-задълбочено разбиране на IPtables препоръчвам да прочетете статията в превода на Оскар Андерсън Андрю Kisileva - Iptables Инструкция 1.1.19, който се смята за класика.

eth0 - гледа към локалната мрежа, eth1 - поглед в света. Този скрипт (firewall.sh) е удобен за използване на правила бета етап.

След като сте готови, то е добре да се използват обикновени инструменти за управление на IPTABLES. За това ние използваме скрипт, за да спаси действащите правила във файла. Различните дистрибуции набор от правила, могат да се съхраняват в продължение на различна от / и т.н. / sysconfig / IPTABLES начин. Този път е стандарт за разпределението на Red Hat Linux и нейните клонове, например CentOS.

Но с тези настройки FTP чрез NAT защитна стена все още няма да работи. За да се улесни нашата задача ние използваме специален модул, който е проектиран само за тази цел. модул натоварване Ip_nat_ftp, който ще направи всичко мръсната работа за нас.

Имайте предвид, че в верига eth0-eth1, чрез които всички изходящия трафик, открихме само порт 21 и се оставя да премине пакети на държавата СВЪРЗАНИ и установени. Ftp да работят и в двата активни и пасивни режими, не се изисква нищо повече, всички други притеснения поемат ip_nat_ftp и ip_conntrack_ftp модули.

тестване

След като зареди модула и правилата да преминете направо към тестването. Можете да използвате вашия любим FTP клиент и да се опита да се свърже с всеки FTP сървър. Като клиент, аз използвах вградения FTP клиент далеч, която позволява използването на активни и пасивни режими. Ако под ръка не е FTP клиент винаги може да използвате вградения в Windows клиент, както е показано по-долу.

За по-голяма яснота, можем да видим с Tcpdump какво става, когато се опитате да се свържете към отдалечен FTP сървър.

Е, тук е цялата настройка. За всеки път, когато системата ботуши ip_nat_ftp модул се зарежда автоматично трябва да направят малки промени във файла / и т.н. / sysconfig / IPTABLES-довереник.

След това, когато се рестартира IPTABLES или системата като цяло, този модул ще се зареди автоматично и да качите всички необходими модули.