
- •По направлению 230100.62 – «Информатика и вычислительная техника» Профиль: «Вычислительные машины, комплексы, системы и сети»
- •Содержание
- •Введение
- •1. Обзор предметной области работы
- •1.1. Проблемы информационной безопасности картографических данных
- •1.2. Организация файлового хранилища на базе raid массива
- •1.3. Ограничение доступа к сети с применением proxy-сервера
- •2. Организация системы, описание реализации
- •2.1. Выбор конфигурации raid массива
- •2.2. Выбор Proxy сервера
- •2.3. Разработка структуры системы
- •2.4. Выбор инструментальных средств разработки
- •3. Реализация проекта
- •3.1. Организация raid 10
- •3.2. Установка и настройка ftp сервера
- •3.3. Конфигурирование Proxy-сервера
- •3.4. Разработка клиентского модуля
- •3.4.1. Работа с ftp сервером
- •3.4.2. Работа с консолью 7-Zip
- •3.4.2. Конфигурационный файл
- •3.4.3. Лог файл
- •Заключение
- •Конфигурационный файл Squid
- •Листинг клиентской программы
- •Конфигурационный файл клиентской программы
- •Акт о принятии к внедрению
3.3. Конфигурирование Proxy-сервера
Используется топология сети – звезда, IP сервера: 192.168.0.1/24. Необходимо настроить proxy-сервер таким образом, чтобы выход в интернет могли только машины, входящие в данную подсеть.
Squid использует файл конфигурации squid.conf.[11] Обычно он располагается в каталоге \squid\etc\.
Чтобы ограничить доступ к интернет для устройств, не входящих в нашу сеть необходимо добавить следующие строчки:
acl my_network src 192.168.0.0/24
acl all src 0.0.0.0/24
http_access allow my_network
http_access deny all
Установим параметры кэша:
cache_dir ufs /var/squid/cache 2048 16 256
После этого необходимо пересоздать каталоги командой squid -z.
Параметр maximum_object_size указывает максимальный размер кешируемого объекта. Бывает полезно при обновлении программного обеспечения на нескольких компьютерах сети. После первого обновления остальные устройства будут загружать файл из кэша, что значительно уменьшит время загрузки.
maximum_object_size 10240
Команда squid -k reconfigure позволяет применить новые настройки без перезапуска Squid.
Конфигурационный файл приведен в приложении 1.
3.4. Разработка клиентского модуля
3.4.1. Работа с ftp сервером
Блок-схема[12] алгоритма работы клиентского модуля приведена на рис. 7. Вся разработка ведется на языке C#. [9,13]
Полный листинг исходного кода клиентского модуля приводится в приложении, здесь остановимся лишь на основных функциях программы, а так же на основных классах и методах библиотеки BytesRoad.NetSuit для работы с FTP сервером.[6]
Для подключения к серверу:
//создаем объект FTP клиента
FtpClient client = new FtpClient();
//Задаём параметры клиента.
client.PassiveMode = true; //Включаем пассивный режим.
int TimeoutFTP = 30000; //Таймаут.
string FTP_SERVER = "адрес фтп сервера";
int FTP_PORT = "порт ФТП сервера";
string FTP_USER = "пользователь";
string FTP_PASSWORD = "пароль";
//Для использования прокси сервера задаются параметры прокси.
FtpProxyInfo pinfo = new FtpProxyInfo(); //Это переменная параметров.
pinfo.Server = "192.168.0.202";
pinfo.Port = 21; //Порт.
pinfo.Type = FtpProxyType.HttpConnect; //Тип прокси - всего 4 вида.
pinfo.PreAuthenticate = true; //Если на прокси есть идентификация
pinfo.User = "Имя пользователя";
pinfo.Password = "Пароль пользователя";
//Присваиваем параметры прокси клиенту.
client.ProxyInfo = pinfo;
//Подключаемся к FTP серверу.
client.Connect(TimeoutFTP, FTP_SERVER, FTP_PORT);
client.Login(TimeoutFTP, FTP_USER, FTP_PASSWORD);
//
//.... Здесь выполняются необходимые операции с сервером ...
//
//Отключаемся от ФТП сервера
client.Disconnect(TimeoutFTP);
Теперь немного об основных методах для работы с FTP сервером:
//Получение списка содержимого текущего каталога с FTP.
client.GetDirectoryList(TimeoutFTP);
//Изменение директории на указанную.
//Можно переходить вверх указав вместо имени папки ".." либо в любую папку расположенную в текущей.
client.ChangeDirectory(TimeoutFTP, "папка");
//Удаление указанного файла с сервера.
client.DeleteFile(TimeoutFTP, "файл");
//Удаление указанной папки с сервера.
client.DeleteDirectory(TimeoutFTP, "файл");
//прием файла с сервера.
client.GetFile(TimeoutFTP, "куда принимаем - путь на диске", "Что принимаем - файл на сервере");
//загрузка файла на сервер.
client.PutFile(TimeoutFTP, "имя файла на сервере", "что грузим - имя файла на компьютере");
Рис. 7. Алгоритм работы клиентского модуля