УДК 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.