Настройка Linux с организацией защищенного соединения по протоколу https. Экспериментальное внедрение программного обеспечения

УДК 519.6:004.4

Настройка Linux с организацией защищенного соединения по протоколу HTTPS. Экспериментальное внедрение программного обеспечения.

М.В. Макеев, н. с., Всероссийский НИИЭСХ А.Ф. Шалин, гл. специалист по информационной безопасности, Д.Е. Белов, к. б. н.

Разрабатывая информационные системы, основанные на программном обеспечении с открытым кодом, невозможно обойти стороной такую операционную систему, как Linux. Родоначальником данной системы считается финский аспирант Линус Торвальдс, который в 1991 году начал разработку данной операционной системы. Основное влияние на развитие операционной системы Linux оказали такие проекты, как GNU (Ричард Столлман, 1983 г.) и Minix (Эндрю Таненбаум, 1987). Центральную идею Ричарда Столмана, постулированную им в самом начале разработки проекта GNU, он обозначил в следующем сообщении: «Свободный Unix! GNU будет способна запускать

программы Unix, но не будет идентична Unix. Мы будем вносить в систему улучшения, основываясь на нашем опыте работы с другими операционными системами...».

Один из вариантов Unix-подобной операционной системы - Minix, который сыграл особую роль в истории Linux, -был разработан в 1987 году. Основной особенностью Minix стала её совместимость с компьютерами, разработанными на основе процессоров компании Intel.

25 августа 1991 года Линус Торвальдс направил первое сообщение о своей разработке в группу новостей comp.os.minix: «Я пишу (бесплатную) операционную систему (это просто хобби, ничего большого и профессионального вроде gnu) для AT 386(486). Я вожусь с этим с апреля, и она, похоже, скоро будет готова. Напишите мне, кому что нравится/не нравится в minix, поскольку моя ОС на неё похожа (кроме всего прочего, у неё - по практическим соображениям - то же физическое размещение файловой системы)...

Она свободна от кода minix и включает мультизадачную файловую систему. Она НЕ переносима (используется переключение задач 386 и пр.) и, возможно, никогда не будет поддерживать ничего, кроме АТ-винчестеров, потому что у меня больше ничего нет :-(».

На тот момент даже самые смелые оптимисты не могли предположить, насколько сильное влияние окажет данная операционная система на развитие информационных технологий в мире. Как мы видим из сообщения, представленного выше, об этом и не мечтал даже сам ее автор. И действительно, за какие-то 10-15 лет, начиная с 1995 года, количество пользователей операционной системы Linux возросло с 30 тыс. до сотен миллионов. Дальнейшее развитие информационных технологий, в связи с переносом значительного количества информации

в Интернет, потребовало создания защищенных соединений с шифрованием трафика. Примером такого соединения является протокол HTTPS (Hypertext Transfer Protocol Secure). Данные, передаваемые по протоколу HTTPS, «упаковываются» в криптографический протокол SSL (Secure Sockets Layer) или TLS (Transport Layer Security), тем самым обеспечивается их защита.

Развитие Интернета, увеличение скорости передачи данных и объемов передаваемой информации привели к изменению бизнес-моделей продажи и использования программного обеспечения. Одной из основных моделей продажи программного обеспечения стала SaaS (software as a service), при которой поставщик разрабатывает вебприложение и самостоятельно управляет им, предоставляя заказчику доступ к программному обеспечению через Интернет. Основное преимущество модели SaaS для потребителя услуги состоит в отсутствии затрат, связанных с установкой, обновлением и поддержкой работоспособности оборудования и работающего на нём программного обеспечения.

Кроме того, появилась и другая услуга, которая позволила снизить затраты на разработку программного обеспечения - PaaS (Platform as a Service). PaaS - это модель предоставления облачных вычислений, при которой потребитель получает доступ к использованию операционных систем, систем управления базами данных, связующему программному обеспечению, размещённому у провайдера. Использование таких моделей, как SaaS и PaaS позволяет разработчикам значительно сократить затраты, связанные с поддержкой программного обеспечения, тем самым снизить совокупную стоимость владения TCO (total cost of ownership) и получить более высокий экономический эффект от внедрения своих продуктов.

Основная часть

На основании проведенных ранее исследований для реализации серверной части приложения командой проекта был выбран сервер под управлением 64-разрядной операционной системы Amazon Linux AMI. По сути, данная операционная система представляет собой Red Hat Linux, доработанный компанией Amazon под собственную архитектуру. В этом мы можем легко убедиться при вызове из консоли команды cat /proc/version» (рис. 1).

Last xogxn: Tue »Jun XX 07:25:49 20X3 from 8 5 . X X 5 . 2 4 8 . 38

___I ____!_ )

I ( / Amazon Linux AMI

___I \__I____I

https://aws.amazon.com/amazon-linux-aml/20X2.03— release—notes/

There are 63 security update(s) out of 265 total update(s) available Run "sudo yum update” to apply all updates.

Amazon Linux version 2013.03 is available.

[ec2-user0ip-lO-112-86-68 -]S cat /proc/version

Linux version 3.2 _64 (modrbuild@gobi-build-31006) (gcc vers

on 4.4.6 20110731 (GCC) ) #1 SMP Thu May 24 02:36:39 UTC 2012

Рисунок 1 - Определение версии операционной системы.

Настройка сервера предусматривала написание ряда bash-сценариев для автоматизации резервного копирования и сборки проекта. Ниже приведена основная часть данных сценариев.

Сценарий запуска в cron:

SHELL=/bin/bash

MAILTO=ec2-user

43 4 * * * /home/ec2-user/cron/buiIdF24a.sh

00 13 * * * /home/ec2-user/cron/buiIdF24a.sh

15 4 * * * /home/ec2-user/cron/backup_oracle.sh

21 4 * * * /home/ec2-user/cron/backup_wikidb.sh

25 4 * * * /home/ec2-user/cron/backup_trac.sh

27 4 * * * /home/ec2-user/cron/backup_svn.sh

31 4 * 8 2 * /home/ec2-user/cron/backup_wikisrc.sh

Одной из важных задач, на решение которой уходит достаточно много времени, является сборка и публикации проекта на хостинге. До выполнения автоматизированной сборки проекта приходилось компилировать проект на рабочей машине разработчика, а затем через защищенный канал связи SSH отправлять данный файл на сервер. Основная проблема такого подхода заключалась в том, что скорость передачи данных через такой канал оставляла желать лучшего. Например, на передачу основного файла проекта размером около 80 Мб затрачивалось более 1 часа, что существенно снижало эффективность работы команды в целом. После перехода к «ночным сборкам» данную проблему удалось решить.

Сборка проекта:

#!/bin/bash

SHELL=/bin/bash

PATH=/sbin:/bin:/usr/sbin:/usr/bin

MAILTO=ec2-user

HOME=/home/ec2-user

PROJECT=/home/ec2-user/f24a

JAVA_HOME=/usr/Iib/jvm/java-1.6.0_22-openjdk

BUILD_DIR=/var/Iib/tomcat7/webapps/f24a

LOG_DIR=/media/ftp/f24a_buiId

rm ${PROJECT}/src/main/resources/META-INF/spring/database.properties

cd ${PROJECT}

svn update > /dev/null

cp ${HOME}/cron/database.properties

${PROJECT}/src/main/resources/META-INF/spring

sudo service tomcat7 stop > /dev/null

rm -fr ${LOG_DIR}/* > /dev/null

if ( mvn clean package &> ${LOG_DIR}/nightIy_buiId.Iog ) then

echo Vers: 'date +"%d.%m.%Y %H:%M:%S"' > ${PROJECT}/target/f24a-

O.I.O.BUILD-SNAPSHOT/WEB-INF/classes/META-INF/build.version sudo rm -r /var/lib/tomcat7/webapps/f24a sudo cp -r ${PROJECT}/target/f24a-0. I.O.BUILD-SNAPSHOT ${BUILD_DIR}

sudo cp ${HOME}/cron/log4j.xml ${BUILD_DIR}/WEB-INF/classes/log4j.xml sudo chown -R tomcat7:tomcat7 ${BUILD_DIR} else

cp -r ${PROJECT}/target/surefire-reports ${LOG_DIR} echo "F24A night build failure, see error log for details"

fi

touch ${LOG_DIR}/f24a.log

sudo chown tomcat7 ${LOG_DIR}/f24a.log

sudo service tomcat7 start > /dev/null

Одной из задач, требующих автоматизации, является организация ежедневного резервного копирования базы данных проекта. При этом желательно, чтобы пользователи в этот момент времени не изменяли данные. В связи с чем было принято решение о создании дампа базы данных в ночное время и его сброса в хранилище Amazon S3.

Backup Oracle:

#! /bin/bash

SHELL=/bin/bash

PATH=/sbin:/bin:/usr/sbin:/usr/bin

MAILTO=ec2-user

HOME=/home/ec2-user

DUMPS=s3://f24a-dumps

ORADUMP=/media/ftp/oradum ps/f24a_'date +%Y%m%d'.zip if [ -f $ORADUMP ]; then

s3cmd put $ORADUMP $DUMPS/oracle/ > /dev/null

fi

Для ведения документации проекта было принято решение использовать движок «MediaWiki». MediaWiki - это программный продукт для создания сайтов, работающих по технологии «вики». Этот движок был написан специально для Википедии и в настоящее время используется во многих других проектах фонда «Викимедиа», а также частных и государственных организациях. MediaWiki является свободным программным обеспечением и распространяется на условиях лицензии GNU. В связи с чем появилась необходимость производить дампы базы и исходников данного проекта. Ниже приведены сценарии, позволяющие реализовать эти процессы в автоматизированном режиме.

Backup базы данных для Wiki:

#! /bin/bash SHELL=/bin/bash

PATH=/sbin:/bin:/usr/sbin:/usr/bin

MAILTO=ec2-user

HOME=/home/ec2-user

DUMPS=s3://f24a-dumps

WIKIDUMP=/tmp/ec2-user/wikidb_'date +%Y%m%d'.dmp.gz mysqldump wikidb j gzip > $WIKIDUMP s3cmd put $ WIKIDUMP $DUMPS/wikidb/ > /dev/null rm $WIKIDUMP

Backup исходников Wiki:

#! /bin/bash

SHELL=/bin/bash

PATH=/sbin:/bin:/usr/sbin:/usr/bin

MAILTO=ec2-user

HOME=/home/ec2-user

WIKI=/tmp/ec2-user/wiki_'date +%Y%m%d'.tar.gz

mkdir /tmp/ec2-user 2>/dev/nuII

sudo tar czf $WIKI -C /var/www wiki

sudo chown ec2-user:ec2-user $WIKI

s3cmd put $WIKI s3://f24a-dumps/wikisrc/ > /dev/null

rm $WIKI

В качестве системы управления проектом была выбрана система trac. Trac является открытым программным обеспечением, разработанным и поддерживаемым компанией Edgewall Software. К основным функциям Trac можно отнести следующие: управление проектом, разделение проекта на этапы, контроль выполнения с учетом временной шкалы, поддержка rss. Для данного продукта также была реализована процедура автоматизированного резервного копирования. Backup Trac:

#! /bin/bash

SHELL=/bin/bash

PATH=/sbin:/bin:/usr/sbin:/usr/bin

MAILTO=ec2-user

HOME=/home/ec2-user

DUMPFILE=/tmp/ec2-user/svn_f24a_' date +%Y%m%d'.bak mkdir /tmp/ec2-user 2>/dev/nuII

svnadmin dump /media/svn/f24a > $DUMPFILE 2>/dev/nuII

gzip $DUMPFILE

DUMPFILE=$DUMPFILE.gz

sudo chown ec2-user:ec2-user $DUMPFILE

s3cmd put $DUMPFILE s3://f24a-dumps/svn/ > /dev/null

rm $DUMPFILE

В качестве централизованного репозитория, позволяющего осуществлять контроль над версионностью программного обеспечения,

была использована система SVN (Subversion), для которой также был написан сценарий резервного копирования. SVN - свободная централизованная система управления версиями, поддерживаемая компанией CollabNet Inc.

Backup Svn:

#! /bin/bash

SHELL=/bin/bash

PATH=/sbin:/bin:/usr/sbin:/usr/bin

MAILTO=ec2-user

HOME=/home/ec2-user

DUMPFILE=/tmp/ec2-user/svn_f24a_' date +%Y%m%d'.bak mkdir /tmp/ec2-user 2>/dev/nuII

svnadmin dump /media/svn/f24a > $DUMPFILE 2>/dev/nuII

gzip $DUMPFILE

DUMPFILE=$DUMPFILE.gz

sudo chown ec2-user:ec2-user $DUMPFILE

s3cmd put $DUMPFILE s3://f24a-dumps/svn/ > /dev/null

rm $DUMPFILE

Следующей задачей, после настройки сервера, организованного на базе платформы Linux, была организация HTTPS с поддержкой SSL-шифрования.

Решение задачи проходило по следующему алгоритму:

1. с помощью openssl был сгенерирован ключ и запрос на сертификату^;

2. подтверждение владельца сайта;

3. получение сертификата в формате pkcs12 - ec2-user/ssI1/key.p12;

4. загрузка сертификата в формате pkcs с помощью команды -keytool -v -importkeystore -srckeystore key.p12 -srcstoretype PKCS12 -destkeystore tomcat1.keystore -deststoretype JKS;

5. загрузка root-сертификата с помощью команды -

keytool -import -alias startcom.ca -file ca.pem -trustcacerts -keystore tomcat1.keystore;

6. загрузка intermediate-сертификата с помощью команды -keytool -import -alias startcom.ca.sub -file sub.class1.server.ca.pem -trustcacerts -keystore tomcat1.keystore;

7. редактирование блока, отвечающего за SSL файла /tomcat7/server.xml (перенаправление с порта 8080 на 443).

Результат проделанной работы представлен на рисунке 2.

Рисунок 2 - Демонстрация защищенного соединения с сервером на

основе протокола HTTPS.

Для проверки работоспособности проекта проводилось его автоматизированное модульное и интеграционное тестирование.

Кроме того, еще на стадии разработки с целью опытного внедрения программного продукта был привлечен конечный потребитель на примере Министерства сельского хозяйства Ставропольского края, а также районных сельскохозяйственных управлений Кочубеевского и Шпаковского районов.

Рисунок 3 - Алгоритм внедрения модуля «Управление-регион» отраслевой информационно-вычислительной системы на основе облачных технологий, применяемой в сельском хозяйстве (ОИВС СХ). Результаты опытного внедрения показали ряд незначительных недостатков, которые были своевременно устранены командой проекта,

после чего проект был запущен. На сегодняшний день отмечается стабильная работа программного обеспечения, команда разработчиков трудится над расширением функционала. Проект доступен в сети Интернет по адресу https://app.cloudinfosys.ru/f24.

Литература:

1. Абилов, Б.Т. Применение биоэлектрических показателей в птицеводстве /Б.Т. Абилов, Г.М. Бондаренко, М.В. Михайлов, К.А. Маловичко //Технология животноводства, Волгоград, 2010. -С.24.

2. Абилов, Б.Т. Результаты использования бикодо в кормлении козовалушков /Б.Т. Абилов, И.А. Синельщикова //Сборник научных трудов Ставропольского научно-исследовательского института животноводства и кормопроизводства, 2007. -Т. 2. -№ 2-2. -С. 114-115.

3. Абилов, Б.Т. Эффективность использования кормовых добавок на основе крахмалопаточного производства при откорме баранчиков тонкорунных пород /Б.Т. Абилов, В.А. Шаханов, И.А. Синельщикова. //Сборник научных трудов Ставропольского научно-исследова-тельского института животноводства и кормопроизводства. -2012. -Т. 2. -№ -1. -С. 158-160.

4. Абилов, Б.Т. Эффективность комбинированного использования БВМД при откорме помесных свиней /Б.Т. Абилов, В.В. Семенов, И.А. Сергеев //Зоотехния. -2008. -№ 8. -С. 18-19.

5. Абилов, Б.Т. Эффективность применения различного типа и уровня кормления при выращивании ремонтных козочек зааненской породы /Б.Т. Абилов, И.А. Синельщикова //Сборник научных трудов Ставропольского научно-исследовательского института животноводства и кормопроизводства. -2006. -Т. 1. -№ 1. -С. 144-147.

6. Абонеев, В.В. Методика оценки мясной продуктивности овец /В.В. Абонеев, Ю.Д. Квитко, И.И. Селькин и др. -Ставрополь, 2009. -34с.

7. Абонеев, В.В. Стратегия развития овцеводства в Российской Федерации //Достижения науки и техники АПК. -2008.-№10. -С. 37-39.

8. Абонеев, В.В. Приемы и методы повышения конкурентоспособности товарного овцеводства /В.В. Абонеев, Л.Н. Скорых, Д.В. Абонеев //ГНУ СНИИЖК, Ставрополь. -2011. -337 с.

9. Абонеев, В.В. Перспективные направления селекции овец в условиях рыночной экономики /В.В.Абонеев, А.Н. Соколов //Овцы, козы, шерстяное дело. -2007. -№ 1. -С. 7-11.

10. Бондаренко, Г.М. Способ повышения сроков хранения пищевого куриного яйца при использовании биоэлектрических показателей /Г.М. Бондаренко, Б.Т. Абилов, М.В. Михайлов, А.В. Петкова, К.А. Маловичко //Ставрополь: СНИИЖК, 2011. -24 с.

11. Гребенников, В.Г. Крестоцветные культуры: Рекомендации по

агротехнике и рациональному использованию /В.Г. Гребенников //Ставрополь, 1983. -26 с.

12. Гребенников, В.Г. Продуктивность и качество корма многолетних трав при создании сенокосов и пастбищ в зоне сухих степей /В.Г. Гребенников, А.В. Лобанов //Кормопроизводство, 2009. -№7. -С. 14-18.

13. Гребенников, В.Г. Многолетние травы в лугопастбищных севооборотах /В.Г. Гребенников, И.А. Шипилов //Сборник научных трудов Ставропольского научно-исследовательского института животноводства и кормопроизводства. -2012. -Т. 2. -№ 1. -С. 201-2010.

14. Квитко, Ю.Д. Проблемы и новые подходы в организации производства баранины //Сборник научных трудов Ставропольского научно-исследовательского института животноводства и кормопроизводства. 2005. -Т. 1. -№2. -С. 3-7

15. Квитко, Ю.Д. Мясная продуктивность и качество мяса молодняка овец разного происхождения /Ю.Д. Квитко, А.В. Скокова, С.Ф. Силкина //Овцы. Козы. Шерстяное дело. - 2012. - № 2. - С. 39-41.

16. Кильпа, А.В. Нормированное кормление козлят молочных пород /А.В. Кильпа, Ю.Д. Квитко, Б.Т. Абилов, И.А. Синельщикова //Сборник научных трудов Ставропольского научно-исследовательского института животноводства и кормопроизводства. -2012. -Т. 2. -№ -1. -С. 163-169.

17. Ковалева, Г.П. Молоко коров голштинской черно-пестрой породы венгерской селекции /Г.П. Ковалева, Н.В. Сулыга //Молочная промышленность. -2009. -№10. -С.76-77.

18. Ковалюк, Н. В. Молекулярно-биологические методы для оздоровления стад крупного рогатого скота от лейкоза //Ветеринария. -

2008. -№2. -С. 22-26.

19. Ковалюк, Н. В. Методические рекомендации по использованию маркера ВоЬА DRB3 в селекционно-племенной работе с крупным рогатым скотом: Рекомендации СКНИИЖ /Н.В. Ковалюк, В.Ф. Сацук //Краснодар, 2010. -24 с.

20. Кононова, Л.В. Угрожающее состояние терской породы лошадей Л.В. Кононова //Коневодство и конный спорт. -2008. -№ 3. -С. 6-6

21. Куприянов, С.В. Использование премикса и ферментного препарата в кормлении молодняка мясных свиней /С.В. Куприянов, Б.Т. Абилов //Зоотехния. -2007. -№ 11. -С. 15-17.

22. Лапина, М.Н. Воспроизводительная способность коров красной степной, красно-пёстрой голштинской пород и их помесей /М.Н. Лапина, Г.П. Ковалева, Н.В. Сулыга, В.А. Витол //Сборник научных трудов Ставропольского научно-исследовательского института животноводства и кормопроизводства. -2009. -Т. 1.- № 1-1. -С. 28-30.

23. Михайлов, М.В. Стресс-реакция кур после пересадочного стресса с учетом солнечной активности и светимости Луны /М.В. Михайлов //Слабые и сверхслабые поля и излучения в биологии и медицине, 29.06.2009г. -03.07.2009г.: V Международный конгресс -Санкт-Петербург,

2009. -С. 151.

24. Новопашина, С.И. Влияние гумивала на продуктивные качества и состояние крови козлят и ягнят /С.И. Новопашина, М.Ю. Санников, Т.Л. Красовская //Вестник ветеринарии, 2011. -Т. 59. - № 4. - С. 185-190.

25. Новопашина, С.И. Переваримость питательных веществ рациона молочными козами при разном уровне протеина /С.И. Новопашина, Ю.Д. Квитко, М.Ю. Санников, Е.И. Кизилова //Овцы. Козы. Шерстяное дело. -2012. - № 2. - С. 64-67.

26. Ольховская, Л. В. Иммуногенетический анализ в селекции коз /Л.В. Ольховская, Л. Н. Чижова и др. //Ставрополь, ВНИИОК. -2000. -С. 3-11.

27. Семенов, В.В. История выведения и современное состояние терской породы лошадей /В.В. Семенов, Л.В. Кононова //Сборник научных трудов Ставропольского научно-исследовательского института животноводства и кормопроизводства. -2009. -Т. 2. -№ 2-2. -С. 93-96.

28. Семенов, В.В. Экономическая эффективность использования генной диагностики стресс-устойчивости при откорме свиней /В.В. Семенов, Л.В. Кононова, О.В. Плужникова //Сборник научных трудов Ставропольского научно-исследовательского института животноводства и кормопроизводства. -2010. -Т. 3. -№ 1. -С. 50-52.

29. Sulyga, N.V. Productive properties of Holstein black-pied first-calf heifers of Hungarian breeding in adaptation period /N.V. Sulyga, G.P. Kovaleva //Zootechny, 2010. -№ 2.