+38 (067) 901-63-22

Корзина

0 товара(ов) на сумму
0 грн.

Октябрь 2014 — К2®, Рудюк Сергей Анатольевич

Блокировка эротического контента в Firefox

Возникла необходимость установить ребенку родительский контроль. В моем случае - нужно было просто ограничить просмотр сайтов эротического и вирусного содержания.
Начал искать. Как оказалось, вариантов ограничения достаточно много. Вначале, думал настроить брандмауэр, потом, нашел способ - установить nanny для Linux.
Но, остановился на более лаконичном способе - установке плагина для Firefox, который фильтрует содержимое файлов.

Заходите Інструменти - Додатки (у меня укр. Firefox :)).
В поле поиска набираете filter и нажимаете Enter.


Для фильтрации контента можете установить такие плагины:

Anti-Porn Pro
FoxFilter
Procon Latte Content Filter
WebFilter - The content filtering addon!

После установки - перезагрузитесь.
Если плагин будет "слишком фильтровать" - можете его отключить и опять перезагрузить :)

P.S. Плагины фильтрации срабатывают на содержимое в контенте. Поэтому, если у Вас в контенте будут запрещенные слова, то страница будет заблокирована...

Борьба с блокированием моего сайта corp2.net в firefox при включении фильтров по борьбе с эротикой и спамом

Поставил вчера ребенку плагины по борьбе с эротическим контентом.
Захожу на мой сайт http://corp2.net - выдается сообщение, что данная страница содержит запрещенное содержимое эротического типа.
Думаю, что это такое... Откуда у меня на сайте такое содержимое... Может, внедрился вирусный скрипт ?

Начал изучать.

1. Вначале проверил нормально ли грузятся другие сайты, находящиеся у меня на сервере ? Проверил - нормально. Значит, все таки дело не в сервере, а в сайте.
2. Проверил все зеркальные домены - везде одна и та же ошибка. Мол есть эротический контент.
3. Проверил выдается ли сообщение в других плагинах фильтрации для firefox - тоже выдает! Значит, что-то есть.
4. Попроверял сайт в разных системах проверки вирусности сайта - ничего не нашло...
5. Проверил сайт в черных списках - нет. Более того, репутация высокая... Что же такое...
6. Поотключал куча плагинов в интернет-магазине - ничего не получилось. Фильтр все так же срабатывал.
7. Самое интересное, что при загрузке сайта http://corp2.net на секунду он появляется, а потом, выскакивает блокировка. Поэтому, я решил, что это вероятно какой-то java-скрипт делает переадресацию или обращение к внешнему, внесенному в черный список, сайту.
Более того, если загружать не сайт, просто файлы на PHP - блокировки не происходит. Т.е. получается, причина в самой cms-системе.
И тут пришла идея выполнить команду в Linux:
wget http://corp2.net
Этой командой выгружается содержимое сайта в файл. Этот файл, переписал на хостинг, где находится основной сайт. И запустил. В результате - сработала блокировка, как для основного сайта. Отлично! Значит, можно убирая команду за командой добиться того, что блокировка перестанет срабатывать.
Начал убирать java-скрипт за java-скриптом.
И вычислил!

Как оказалось, причина была в скрипте сервиса социальной сети share.pluso.ru. Как только убрал этот скрипт - перестал блокироваться сайт фильтром от порнографического и спам-контента. Так, что будьте осторожны с внешними сервисами. Иногда, они могут приводить к отрицательным результатам...

P.S. Кстати, когда загружаешь рейтинг mail.ru, то тоже блокировки срабатывают. У них та же проблема с этим же скриптом :)

Резервное копирование информации между серверами. Защита информации от рейдеров

Автор: Рудюк Сергей Анатольевич, 07.10.2014

Адрес: http://corp2.net

E-Mail: rs@corp2.net

В сегодняшнее псевдо-правовое время, никто не может быть спокоен за безопасность техники и информации на ней. Даже если Вы запрячете информацию в бункер, к Вам могут прийти право-охранительные органы, взломать двери и достать оттуда всю технику. И сделать этом могут без выдвижения обвинения, а лиш назвав Вас "свидетелем". При этом, свидетелем какого дела и почему изымается - могут не объяснять. Адвокатов - могут не пускать. Подобные ситуации в Украине - не редкость. И в последнее время, в связи с происходящей неразберихой в стране - участились.

Изъятие информации - это один из самых серьезных и самых дешевых способов удара по предприятию. Многие компании, после таких действий вынуждены распускать персонал и закрывать свою деятельность. Т.к. даже начислить зарплату или отчитаться в налоговой не могут - вся информация "изъята". Что же делать, если работать приходится в псевдо-прововом государстве ?

Храните информацию распределенно по всему миру, синхронизируйте её между собой, храните в недоступных местах для потенциальных рейдеров и рекетиров.

В данной статье рассказывается, как построить распределенную систему хранения информации.

Структура сети

Итак, рассмотрим примерную структуру хранения информации.

Здесь мы имеем структуру из 5 точек, которые синхронизируются друг с другом через интернет. Данная синхронизация может происходить в разное время, с применением динамических ip-адресов и использованием прокси-серверов из-за чего "вычислить" и уничтожить все узлы сразу - сравнительно проблематично. Не говоря о том, что сервера могут находиться в разных странах, числиться за разными людьми и управляться разными администраторами.

Количество узлов делается настолько большим, насколько критична потеря информации и насколько высоки потенциальные потери от этого.

Структура сервера

Нужно всегда помнить, что физический доступ любого из узлов в любой момент может оказаться у злоумышленников. А это значит, что информацию нужно шифровать.

На представленной выше схеме показано схематически, как можно хранить информацию:

1. В качестве основной операционной системы используется Linux Ubuntu. Эта операционная система бесплатна, достаточно устойчива к вирусным атакам и попыткам взлома. Данная система способна работать непрерывано без перезагрузки годами. А так же постоянно обновляется и совершенствуется. Обновления Вы можете ставить не мешая работе пользователей. Словом, преимуществ очень много, перед тем же Windows.

2. Фактически в основной операционной системе ничего не хранится - только файл крипто-провайдера, в котором сохраняется вся информация.

Криптопровайдер может выглядеть в виде любого файла, например, в виде виде, свопа и т.п. Файл может иметь как статический (более стабильно работает), так и динамический размер.

Можно использовать, например, контейнер truecrypt. Такой контейнер может работать в различных операционных системах: Windows, Linux, MacOS. И это очень хорошо, т.к. позволяет переписать криптопровайдер с одного компьютера на другой, даже если операционные системы отличаются.

3. Внутри криптопровайдера сохраняем основную операционную систему с которой работаем. Это может быть на Ваше усмотрение, например Windows. Хотя, никто не мешает размещать Linux, MacOS и т.п.

В качестве "движка" виртуальной машины можно использовать бесплатные virtualbox или vmplayer.

4. Сама информация уже хранится вниутри виртуальной машины. И именно её бекапим на различные сервера.

Таким образом, получаем хранение в виде "матрешки". В котором за одним слоем идет другой и так может быть до бесконечности. Но, не нужно фанатизма - хватит столько слоев, как представлено на схеме :)

Структура накопителей информации

Накопители информации, можно подлкючать непосредственно к сетевым шлюзам, поддерживающим подключение устройств по USB. Т.к. накопители не имеют операционной системы, храним информацию в "открытом виде", но в виде архива с шифрацией :). Пароль желательно подбирать беспорядочным сочетанием английских, русских букв, а так же спец-символов и цифр. Такой пароль должен быть более 12 символов, а лучше делать более 100. Никто не ограничивает Вас в длине пароля. Чем больше пароль - тем сложней его "взломать" методом перебора даже на много-ядерных серверах.

Программная реализация

Структура серверов может быть не однородной и работать под различными операционными системами. Например, у меня часто используются Linux, Windows XP, Windows Server. Поэтому, я опишу реализацию резервного копирования для каждой из этих систем.

Так же нужно определиться с переодичностью резервного копирования. Практика показывает, что хватит полностью архивировать информацию один раз в квартал, а каждую неделю делать- инкрементный бекап (т.е. делать резервную копию изменений). Такой подход сэкономит дисковое пространство, а так же процессорное время. При этом, информация будет сохранена в полной мере.

Файловую информацию сохраняем с помощью архиватора 7zip с применением шифрации.

А информацию из баз данных сохраняем с помощью утилит соответствующей базы данных для резервного копирования с последующей архивацией бекапа с помощью 7zip с применением шифрации.

Обмен шифрованными файлами между серверами и накопителями производится через интернет по ftp или ssh.

Передача информации между серверами

Передачу информации производим с помощью утилиты curl. Данная утилита есть для всех основных операционных систем: Windows, Linux, MacOS. И это хорошо, т.к. позволяет использовать одинаковый подход в разных операционных системах.

Почитать о данной команде и найти где закачать Вы можете из Wikipedia: https://ru.wikipedia.org/wiki/CURL

Есть еще вариант - использовать wput. Но, как оказалось, данная команда хуже работает да и поддерживает меньше протоколов.

Windows XP

Обычно, данные в Windows XP - это данные обычных пользователей. Например, личные документы, фотографии и т.п.

1. Полный бекап (Производим полное резервное копирование 1 раз в квартал). Назовем его backup_inc.bat. В моем случае, скрипты для резервного копирования находятся по адресу: C:\backup_full, а сами полные бекапы сохраняются по адресу: C:\backup_full\full_arh.

echo on
echo Этот код оставил для возможности указания даты при необходимости сохранения ежедневных копий: for /f "tokens=1-4 delims=/ " %%i in ("%date%") do (
set dow=%%i
set month=%%j
set day=%%k
set year=%%l
)
set datestr=%month%_%day%_%year%
echo datestr is %datestr%
echo 1. Архивация конфигурационных файлов (Не забываем делать копии конфигурационных файлов. Ведь не хочется их заново писать...)
xcopy C:\backup_full\*.bat C:\backup_full\configs_tmp /Y
"C:\Program Files\7-Zip\7z.exe" a "C:\backup_full\full_arh\configs_tmp_rud.7z" -r -mx5 "C:\backup_full\configs_tmp" -p"ВашПарольДлинойБолее12Символов"
echo 2. Архивация Документов
"C:\Program Files\7-Zip\7z.exe" a "C:\backup_full\full_arh\docs.7z" -r -mx5 "C:\docs" -p"ВашПарольДлинойБолее12Символов"
echo ###### Архивация завершена #######
C:
cd C:\backup_full
echo II.1. Подключаюсь по ftp и изменяю названия архивов старых архивов
echo ftp> ftp_backup.txt
echo open>> ftp_backup.txt
echo IPАдресВашегоFTPСервера>> ftp_backup.txt
echo rud>> ftp_backup.txt
echo ПарольКFTP>> ftp_backup.txt
echo literal PASV>> ftp_backup.txt
echo cd КаталогНаFTP>> ftp_backup.txt
echo binary>> ftp_backup.txt
echo literal PASV>> ftp_backup.txt
echo rename configs_tmp_rud.7z configs_tmp_rud_old.7z>> ftp_backup.txt
echo rename docs.7z docs_old.7z>> ftp_backup.txt
echo bye>> ftp_backup.txt
ftp -s:ftp_backup.txt
cd C:\backup_full
echo III.1 Копирование информации по ftp
curl -T C:\backup_full\full_arh\configs_tmp_rud.7z -u admin:ПарольОтFTP ftp://ВашFTP/КаталогНаFtp/
curl -T C:\backup_full\full_arh\docs.7z -u admin:ПарольОтFTP ftp://ВашFTP/КаталогНаFtp/

2. Инкрементное резервное копирование (производим 1 раз в неделю). Полный архив обязательно должен оставаться на локальном компьютере, т.к. при формировании инкрементного архива производится сравнение файлов с файлами в полном архиве.

Назовем инкрементное резервное копирование backup_inc.bat.

echo on
for /f "tokens=1-4 delims=/ " %%i in ("%date%") do (
set dow=%%i
set month=%%j
set day=%%k
set year=%%l
)
set datestr=%month%_%day%_%year%
echo datestr is %datestr%
echo 1. Архивация конфигурационных файлов
xcopy C:\backup_full\*.bat C:\backup_full\configs_tmp /Y
"C:\Program Files\7-Zip\7z.exe" a "C:\backup_full\inc_arh\configs_tmp_rud_changes.7z" -r -mx5 "C:\backup_full\configs_tmp" -p"ВашПарольДлинойБолее12Символов"
echo 2. Архивация Исходных файлов Корпорация 2
"C:\Program Files\7-Zip\7z.exe" u "C:\backup_full\full_arh\docs.7z" -u- -up3q3r2x2y2z0w2!C:\backup_full\inc_arh\docs_changes.7z "C:\docs" -p"ВашПарольДлинойБолее12Символов"
echo ###### Архивация завершена #######
C:
cd C:\backup_full
echo II.1. Подключаюсь по ftp и изменяю названия архивов старых архивов
echo ftp> ftp_backup.txt
echo open>> ftp_backup.txt
echo ПутьКFTP>> ftp_backup.txt
echo rud>> ftp_backup.txt
echo ПарольКFTP>> ftp_backup.txt
echo literal PASV>> ftp_backup.txt
echo cd КаталогНаFTP>> ftp_backup.txt
echo binary>> ftp_backup.txt
echo literal PASV>> ftp_backup.txt
echo rename configs_tmp_rud_changes.7z configs_tmp_rud_changes_old.7z>> ftp_backup.txt
echo rename docs_changes.7z docs_changes_old.7z>> ftp_backup.txt
echo bye>> ftp_backup.txt
ftp -s:ftp_backup.txt
cd C:\backup_full
echo III.1 Копирование информации по ftp
curl -T C:\backup_full\inc_arh\configs_tmp_rud_changes.7z -u admin:ПарольКFTP ftp://ВашFTP/КаталогНаFTP/
curl -T C:\backup_full\inc_arh\docs_changes.7z -u admin:ПарольКFTP ftp://ВашFTP/КаталогНаFTP/

3. Устанавливаем планировщик на выполнение задач. Для полного бекапа - 1 раз в квартал. Для инкрементного резервного копирования - 1 раз в неделю. Бекап делаем ночью - чтоб не мешать работе пользователей (правда пользователи в этом случае не должны выключать компьютер наночь).

Зададим задачу выполнения скрипта полного резервного копирования 1 раз в квартал.

Запускаем меню:

Пуск - Программы - Стандартные - Служебные - Назначение задания - Добавить Задание

Задание для инкрементного резервного копирования делаем аналогично предыдущему пункту только для файла backup_full.bat и за исключением 2-х пунктов, определяющих время срабатыварния:

Windows Server

На серверной версии Windows могут находиться базы данных, большое количество документов, конфигурации 1С и т.п.

По аналогии с WindowsXP сохраняем скрипты и бекапе в каталог: C:\backup_full.

Файл для полного резервного копирования backup_full.bat:

echo on
for /f "tokens=1-4 delims=/ " %%i in ("%date%") do (
set dow=%%i
set month=%%j
set day=%%k
set year=%%l
)
set datestr=%month%_%day%_%year%
echo datestr is %datestr%
echo 1. Архивация конфигурационных файлов
xcopy C:\backup_full\*.bat C:\backup_full\configs_tmp /Y
"C:\Program Files\7-Zip\7z.exe" a "C:\backup_full\full_arh\configs_tmp_fd.7z" -r -mx5 "C:\backup_full\configs_tmp" -p"ВашПарольНаБолее12Символов"
echo 2. Архивация 1С
"C:\Program Files\7-Zip\7z.exe" a "C:\backup_full\full_arh\1cbase.7z" -r -mx5 "C:\1cbase" -p"ВашПарольНаБолее12Символов"
echo 3. Архивация документов
"C:\Program Files\7-Zip\7z.exe" a "C:\backup_full\full_arh\docsfd.7z" -r -mx5 "C:\Docs" -p"ВашПарольНаБолее12Символов"
echo 3. Резервное копирование базы данных в MsSQL
SQLCMD -S (local) -E -Q "BACKUP DATABASE oberon TO DISK = 'C:\backup_full\full_arh\oberone_backup.bak' WITH INIT, NOFORMAT, SKIP, NOUNLOAD"
"C:\Program Files\7-Zip\7z.exe" a "C:\backup_full\full_arh\oberone_backup.7z" -r -mx5 "C:\backup_full\full_arh\oberone_backup.bak" -p"ВашПарольНаБолее12Символов"
echo ###### Архивация завершена #######
C:
cd C:\backup_full
echo II.1. Подключаюсь по ftp и изменяю названия архивов старых архивов
echo ftp> ftp_backup.txt
echo open>> ftp_backup.txt
echo ВашFTP>> ftp_backup.txt
echo ЛогинНаFTP>> ftp_backup.txt
echo ПарольНаFTP>> ftp_backup.txt
echo literal PASV>> ftp_backup.txt
echo cd КаталогНаFTP>> ftp_backup.txt
echo literal PASV>> ftp_backup.txt
echo literal PASV>> ftp_backup.txt
echo rename configs_tmp_fd.7z configs_tmp_fd_old.7z>> ftp_backup.txt
echo rename 1cbase.7z 1cbase_old.7z>> ftp_backup.txt
echo rename docsfd.7z docsfd_old.7z>> ftp_backup.txt
echo rename oberone_backup.7z oberone_backup_old.7z>> ftp_backup.txt
echo bye>> ftp_backup.txt
ftp -s:ftp_backup.txt
cd C:\backup_full
echo III.1 Копирование информации по ftp
curl -T C:\backup_full\full_arh\configs_tmp_fd.7z -u Логин:Пароль ftp://ВашFTP/КаталогВFTP/
curl -T C:\backup_full\full_arh\1cbase.7z -u Логин:Пароль ftp://ВашFTP/КаталогВFTP/
curl -T C:\backup_full\full_arh\docsfd.7z -u Логин:Пароль ftp://ВашFTP/КаталогВFTP/
curl -T C:\backup_full\full_arh\oberone_backup.7z -u Логин:Пароль ftp://ВашFTP/КаталогВFTP/

Файл для инкрементного резервного копирования backup_inc.bat:

echo on
echo Инкрементное архивирование
for /f "tokens=1-4 delims=/ " %%i in ("%date%") do (
set dow=%%i
set month=%%j
set day=%%k
set year=%%l
)
set datestr=%month%_%day%_%year%
echo datestr is %datestr%
echo 1. Архивация конфигурационных файлов
xcopy C:\backup_full\*.bat C:\backup_full\configs_tmp /Y
"C:\Program Files\7-Zip\7z.exe" a "C:\backup_full\inc_arh\configs_tmp_fd_changes.7z" -r -mx5 "C:\backup_full\configs_tmp" -p"ВашПарольБолее12Символов"
echo 2. Архивация 1С
"C:\Program Files\7-Zip\7z.exe" u "C:\backup_full\full_arh\1cbase.7z" -u- -up3q3r2x2y2z0w2!C:\backup_full\inc_arh\1cbase_changes.7z "C:\1cbase" -p"ВашПарольБолее12Символов"
echo 3. Архивация документов
"C:\Program Files\7-Zip\7z.exe" u "C:\backup_full\full_arh\docsfd.7z" -u- -up3q3r2x2y2z0w2!C:\backup_full\inc_arh\docsfd_changes.7z "C:\Docs" -p"ВашПарольБолее12Символов"
echo 3. Резервное копирование MsSQL
SQLCMD -S (local) -E -Q "BACKUP DATABASE oberon TO DISK = 'C:\backup_full\inc_arh\oberone_backup.bak' WITH INIT, NOFORMAT, SKIP, NOUNLOAD"
"C:\Program Files\7-Zip\7z.exe" a "C:\backup_full\inc_arh\oberone_backup_changes.7z" -r -mx5 "C:\backup_full\inc_arh\oberone_backup.bak" -p"ВашПарольБолее12Символов"
echo ###### Архивация завершена #######
C:
cd C:\backup_full
echo II.1. Подключаюсь по ftp и изменяю названия архивов старых архивов
echo ftp> ftp_backup.txt
echo open>> ftp_backup.txt
echo ВашFTP>> ftp_backup.txt
echo ЛогинFTP>> ftp_backup.txt
echo ПарольFTP>> ftp_backup.txt
echo literal PASV>> ftp_backup.txt
echo cd КаталогНаFTP>> ftp_backup.txt
echo binary>> ftp_backup.txt
echo literal PASV>> ftp_backup.txt
echo rename configs_tmp_fd_changes.7z configs_tmp_fd_changes_old.7z>> ftp_backup.txt
echo rename 1cbase_changes.7z 1cbase_changes_old.7z>> ftp_backup.txt
echo rename docsfd_changes.7z docsfd_changes_old.7z>> ftp_backup.txt
echo rename oberone_backup_changes.7z oberone_backup_changes_old.7z>> ftp_backup.txt
echo bye>> ftp_backup.txt
ftp -s:ftp_backup.txt
cd C:\backup_full
echo III.1 Копирование информации по ftp
curl -T C:\backup_full\inc_arh\configs_tmp_fd_changes.7z -u ЛогинFTP:ПарольFTP ftp://ВашFTP/КаталогНаFTP/
curl -T C:\backup_full\inc_arh\1cbase_changes.7z -u ЛогинFTP:ПарольFTP ftp://ВашFTP/КаталогНаFTP/
curl -T C:\backup_full\inc_arh\docsfd_changes.7z -u ЛогинFTP:ПарольFTP ftp://ВашFTP/КаталогНаFTP/
curl -T C:\backup_full\inc_arh\oberone_backup_changes.7z -u ЛогинFTP:ПарольFTP ftp://ВашFTP/КаталогНаFTP/

По аналогии с WindowsXP настраиваем задания в Windows Server на выполнение скрипта полного резервного копирования 1 раз в квартал и скрипта инкрементного резервного копирования - 1 раз в неделю.

Linux Ubuntu

Сервера частно работаю на операционной системе Linux. Поэтому, тут есть и сайты и базы данных и конфигурационные файлы. Все это желательно сохранять. Т.к. даже если клиент не заботится о резервном копировании своих сайтов, то провайдер или администратор сервера должен все равно о этом заботиться.

Делаем изменения в /etc/crontab, чтоб бекап выполнялся один раз в квартал:

# m h dom mon dow user<>command

17 *<-->* * *<->root cd / && run-parts --report /etc/cron.hourly

25 6<-->* * *<->root<-->test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )

47 6<-->* * 7<->root<-->test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )

52 6<-->1 * *<->root<-->test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )

52 6<-->3 * *<->root<-->test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.kvartal )

Создаем каталог: etc/cron.kvartal. В него записываем скрипт backup_full и устанавливаем атрибуты на выполнение. Этот файл будет производить полное резервное копирование 1 раз в квартал. Содержимое этого файла:

Скрипт полного резервного копирования записываем в файл :

#!/bin/sh
echo ############################################
echo ## Полное резервное копирование
echo ############################################
echo 1. Копирование конфигурационных файлов
cp /media/truecrypt6/backup_full/backup_full /media/truecrypt6/backup_full/configs_tmp.
cp /media/truecrypt6/backup_full/backup_inc /media/truecrypt6/backup_full/configs_tmp.
7z a /media/truecrypt6/backup_full/full_arh/configs_tmp_host.7z -r -mx5 "/media/truecrypt6/backup_full/configs_tmp" -p"ВашПарольБолее12Символов"
echo 2. Apache
7z a /media/truecrypt6/backup_full/full_arh/apache_host.7z -r -mx5 "/etc/apache2" -p"ВашПарольБолее12Символов"
echo 3. Nginx
7z a /media/truecrypt6/backup_full/full_arh/nginx_host.7z -r -mx5 "/etc/nginx" -p"ВашПарольБолее12Символов"
echo 4. PHP
7z a /media/truecrypt6/backup_full/full_arh/php_host.7z -r -mx5 "/etc/php5" -p"ВашПарольБолее12Символов"
echo 5. Копирование сайтов
7z a /media/truecrypt6/backup_full/full_arh/sites_host.7z -r -mx5 "/media/truecrypt1/www" -p"ВашПарольБолее12Символов"
echo 6. Копирование баз данных MySQL
mysqldump -uroot -pПарольКMySQL -A > /media/truecrypt6/backup_full/full_arh/mysqldump_host.sql
7z a /media/truecrypt6/backup_full/full_arh/mysqldump_host.7z -r -mx5 "/media/truecrypt6/backup_full/full_arh/mysqldump_host.sql" -ВашПарольБолее12Символов"
echo ###### Архивация завершена #######
cd /media/truecrypt6/backup_full
echo II.1. Подключаюсь по ftp и изменяю названия архивов старых архивов
HOST='СерверFTP'
USER='ЛогинКFTP'
PASSWD='ПарольКFTP'
FILE='file.txt'
ftp -n $HOST <<END_SCRIPT
quote USER $USER
quote PASS $PASSWD
passive
cd КаталогВFTP
rename configs_tmp_host.7z configs_tmp_host_old.7z
rename apache_host.7z apache_host_old.7z
rename nginx_host.7z nginx_host_old.7z
rename php_host.7z php_host_old.7z
rename sites_host.7z sites_host_old.7z
rename mysqldump_host.7z mysqldump_host_old.7z
bye
quit
END_SCRIPT
cd /media/truecrypt6/backup_full
echo III.1 Копирование информации по ftp
curl -T /media/truecrypt6/backup_full/full_arh/configs_tmp_host.7z -u admin:ПарольКFTP ftp://СерверFTP/КаталогВFTP/
curl -T /media/truecrypt6/backup_full/full_arh/apache_host.7z -u admin:ПарольКFTP ftp://СерверFTP/КаталогВFTP/
curl -T /media/truecrypt6/backup_full/full_arh/nginx_host.7z -u admin:ПарольКFTP ftp://СерверFTP/КаталогВFTP/
curl -T /media/truecrypt6/backup_full/full_arh/php_host.7z -u admin:ПарольКFTP ftp://СерверFTP/КаталогВFTP/
curl -T /media/truecrypt6/backup_full/full_arh/sites_host.7z -u admin:ПарольКFTP ftp://СерверFTP/КаталогВFTP/
curl -T /media/truecrypt6/backup_full/full_arh/mysqldump_host.7z -u admin:ПарольКFTP ftp://СерверFTP/КаталогВFTP/
exit 0

Крипт инкрементного резервного копирования сохраняем в каталоге /etc/cron.weekly и называем, например backup_inc. Устанавливаем атрибуты 755.

Содержимое данного файла:

#!/bin/sh
echo ############################################
echo ## Инкрементное резервное копирование
echo ############################################
echo 1. Копирование конфигурационных файлов
cp /media/truecrypt6/backup_full/backup_full /media/truecrypt6/backup_full/configs_tmp.
cp /media/truecrypt6/backup_full/backup_inc /media/truecrypt6/backup_full/configs_tmp.
7z a /media/truecrypt6/backup_full/inc_arh/configs_tmp_host_changes.7z -r -mx5 "/media/truecrypt6/backup_full/configs_tmp" -p"ВашПарольБолее12Символов"
echo 2. Apache
7z a /media/truecrypt6/backup_full/inc_arh/apache_host_changes.7z -r -mx5 "/etc/apache2" -p"ВашПарольБолее12Символов"
echo 3. Nginx
7z a /media/truecrypt6/backup_full/inc_arh/nginx_host_changes.7z -r -mx5 "/etc/nginx" -p"ВашПарольБолее12Символов"
echo 4. PHP
7z a /media/truecrypt6/backup_full/inc_arh/php_host_changes.7z -r -mx5 "/etc/php5" -p"ВашПарольБолее12Символов"
echo 5. Копирование сайтов
7z u "/media/truecrypt6/backup_full/full_arh/sites_host.7z" -u- -up3q3r2x2y2z0w2!/media/truecrypt6/backup_full/inc_arh/sites_host_changes.7z "/media/truecrypt1/www" -p"ВашПарольБолее12Символов"
echo 6. Копирование баз данных MySQL
mysqldump -uroot -pПарольКMySQL -A > /media/truecrypt6/backup_full/inc_arh/mysqldump_host_changes.sql
7z a /media/truecrypt6/backup_full/inc_arh/mysqldump_host_changes.7z -r -mx5 "/media/truecrypt6/backup_full/inc_arh/mysqldump_host_changes.sql" -p"ВашПарольБолее12Символов"
echo ###### Архивация завершена #######
cd /media/truecrypt6/backup_full
echo II.1. Подключаюсь по ftp и изменяю названия архивов старых архивов
HOST='СерверFTP'
USER='ЛогинКFTP'
PASSWD='ПарольКFTP'
FILE='file.txt'
ftp -n $HOST <<END_SCRIPT
quote USER $USER
quote PASS $PASSWD
passive
cd КаталогНаFTP
rename configs_tmp_host_changes.7z configs_tmp_host_changes_old.7z
rename apache_host_changes.7z apache_host_changes_old.7z
rename nginx_host_changes.7z nginx_host_changes_old.7z
rename php_host_changes.7z php_host_changes_old.7z
rename sites_host_changes.7z sites_host_changes_old.7z
rename mysqldump_host_changes.7z mysqldump_host_changes_old.7z
bye
quit
END_SCRIPT
cd /media/truecrypt6/backup_full
echo III.1 Копирование информации по ftp
curl -T /media/truecrypt6/backup_full/inc_arh/configs_tmp_host_changes.7z -u admin:ПарольFTP ftp://СерверFTP/КаталогНаFTP/
curl -T /media/truecrypt6/backup_full/inc_arh/apache_host_changes.7z -u admin:ПарольFTP ftp://СерверFTP/КаталогНаFTP/
curl -T /media/truecrypt6/backup_full/inc_arh/nginx_host_changes.7z -u admin:ПарольFTP ftp://СерверFTP/КаталогНаFTP/
curl -T /media/truecrypt6/backup_full/inc_arh/php_host_changes.7z -u admin:ПарольFTP ftp://СерверFTP/КаталогНаFTP/
curl -T /media/truecrypt6/backup_full/inc_arh/sites_host_changes.7z -u admin:ПарольFTP ftp://СерверFTP/КаталогНаFTP/
curl -T /media/truecrypt6/backup_full/inc_arh/mysqldump_host_changes.7z -u admin:ПарольFTP ftp://СерверFTP/КаталогНаFTP/
exit 0

Заключение

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

Настройка шлюза в Linux Ubuntu с помощью iptables

Как я только не настраивал шлюз в Linux Ubuntu и с помощью ufw, squid, с помощью различных программных файерволов. Но, практика показала, что наиболее эффективный способ - это настройка с помощью встроенных средств - с помощью iptables. Самое главное в данной настройке - написание предопределенного скрипта и его использование в различных проектах.



В интернете огромное количество программных реализаций подобных скриптов. Я же использую скрипт, который опишу ниже и который тоже когда-то нашел в интернет :).

Для начала, необходимо отметить, что если необходимо, чтоб работал шлюз внутри сети, то необходимо установить программу для "маскарадинга":
aptitude install dnsmasq

iptables же обычно уже установлен в Linux Ubuntu последних версий, поэтому, его нет необходимости дополнительно устанавливать.

Если же Вам необходимо, чтоб работали одновременно bind9 и dnsmasq, то необходимо вначале запускать dnsmasq, а потом - bind9. Т.к. иначе, они начнут ругаться на занятость портов.
Вот как я делаю в rc.local:

service bind9 stop
service dnsmasq restart
service bind9 start



Теперь, собственно скрипт. В моем случае, данный скрипт работает для шлюза, который висит на одном сетевом интерфейсе - для виртуальных серверов на сервере. В случае же обычной сети - необходимо просто указать сетевой интерефейс внутренней сети.

#!/bin/bash
# Тут в принципе может и не надо этого всего но не помеха
# вдруг какой модуль не подгружен или форвардинг не включен
echo "1" > /proc/sys/net/ipv4/ip_forward
echo "1" > /proc/sys/net/ipv4/ip_dynaddr
modprobe iptable_nat
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp

# Объявление переменных
export IPT="iptables"

# Интерфейс который смотрит в интернет
export WAN=eth0

# Локальная сеть (в моем случае, все висит на одном интерфейсе. Чеще всего же тут заменяете на eth1)
export LAN=eth0:1
export LAN_IP_RANGE=10.0.2.0/24

# Очистка всех цепочек iptables
$IPT -F
$IPT -F -t nat
$IPT -F -t mangle
$IPT -X
$IPT -t nat -X
$IPT -t mangle -X

# Закрываем изначально ВСЁ (т.е. изначально все что не разрешено - запрещено):
###$IPT -P INPUT DROP
###$IPT -P OUTPUT DROP
###$IPT -P FORWARD DROP

# разрешаем локальный траффик для loopback и внутренней сети
$IPT -A INPUT -i lo -j ACCEPT
$IPT -A INPUT -i $LAN -j ACCEPT
$IPT -A OUTPUT -o lo -j ACCEPT
$IPT -A OUTPUT -o $LAN -j ACCEPT

# Состояние ESTABLISHED говорит о том, что это не первый пакет в соединении.
# Пропускать все уже инициированные соединения, а также дочерние от них
$IPT -A INPUT -p all -m state --state ESTABLISHED,RELATED -j ACCEPT
# Пропускать новые, а так же уже инициированные и их дочерние соединения
$IPT -A OUTPUT -p all -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
# Разрешить форвардинг для новых, а так же уже инициированных
# и их дочерних соединений
$IPT -A FORWARD -p all -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

# Включаем фрагментацию пакетов. Необходимо из за разных значений MTU
$IPT -I FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu

# Отбрасывать все пакеты, которые не могут быть идентифицированы
# и поэтому не могут иметь определенного статуса.
$IPT -A INPUT -m state --state INVALID -j DROP
$IPT -A FORWARD -m state --state INVALID -j DROP

# Приводит к связыванию системных ресурсов, так что реальный
# обмен данными становится не возможным.
$IPT -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
$IPT -A OUTPUT -p tcp ! --syn -m state --state NEW -j DROP

# Разрешаем доступ из внутренней сети наружу
$IPT -A FORWARD -i $LAN -o $WAN -j ACCEPT

# Запрещаем доступ снаружи во внутреннюю сеть
$IPT -A FORWARD -i $WAN -o $LAN -j REJECT

# Маскарадинг
$IPT -t nat -A POSTROUTING -o $WAN -s $LAN_IP_RANGE -j MASQUERADE


# Далее дано как пример открытие портов извне:
# **********************************************************************
# Открываем порт для ssh
$IPT -A INPUT -i $WAN -p tcp --dport 22,220 -j ACCEPT

# Открытие портов для торрентов (такие же указать в torrent-клиенте)
# $IPT -A INPUT -i $WAN -p tcp -m multiport --ports 49152:65535 -j ACCEPT

# Открытие 443 порта
$IPT -A INPUT -p tcp --dport 443 -j ACCEPT

# Открываем 80 порт для веб сайтов
$IPT -A INPUT -i $WAN -p tcp --dport 80 -j ACCEPT
$IPT -A INPUT -i $WAN -p udp --dport 80 -j ACCEPT

# Открытие портов для игровых серверов
# $IPT -A INPUT -i $WAN -p tcp --dport 27010:27030 -j ACCEPT
# $IPT -A INPUT -i $WAN -p udp --dport 27010:27030 -j ACCEPT

# Открытие порта для голосового сервера Team Speak
# $IPT -A INPUT -i $WAN -p tcp --dport 9987 -j ACCEPT
# $IPT -A INPUT -i $WAN -p udp --dport 9987 -j ACCEPT
# **********************************************************************
.
# Вывод информации о состоянии таблиц.
route -n
$IPT -L
$IPT -L -v -n
$IPT -L -v -n -t nat


Можно записать данный скрипт, как fw.sh и потом его вызывать из rc.local в момент загрузки. Например, так:
/usr/fw/fw.sh

Настройка 2-х ip-адресов на один сетевой интерфейс в Linux Ubuntu

Бывает, необходимо настроить 2 ip-адреса на одной сетевой карте.
В Linux Ubuntu Вы для задания 2-го ip-адреса Вы можете выполнить команду:
ifconfig eth0:1 10.0.2.1 netmask 255.255.255.0 up

Для того, чтоб настройка воспринялась на всё время, запишите в файл /etc/network/interfaces нечто подобное:

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
# Параметры основного интерфейса, например, ip-адрес внешнего доступа
auto eth0
iface eth0 inet static
address 95.211.198.19
netmask 255.255.255.192
network 95.211.198.0
broadcast 95.211.198.63
gateway 95.211.198.62
# dns-* options are implemented by the resolvconf package, if installed
dns-nameservers 85.17.150.123 85.17.96.69 85.17.150.123 62.212.64.122
dns-search ua-hosting.com.ua


auto eth0 eth0:1

iface eth0:1 inet static
address 10.0.2.1
netmask 255.255.255.0

Видео-ролик по программе Коллекционер. К2®

Видео с рассказам о возможностях программы и работы в ней: http://youtu.be/rk9mz0y9QaU

Видео с YouTube:


Программа для коллекционеров открыток, фотографий и календарей

Хочу рассказать о последней моей разработке для увлекающихся коллекционированием людей. Данную программу я специально писал для тех, у кого образовалась большая коллекция и у кого возникает необходимость её упорядочить и вести информацию о ней в полностью электронном виде. Сейчас данную программу использую сам и скажу честно, она очень удобна и полезна в работе.

Программа опубликована в нашем интернет-магазине:

http://corp2.net/index.php/programmnoe-obespechenie/nashi-razrabotki/programma-kollektsioner-k2/

Ниже, даю описание данной программы:

Если Вы собираете фотографии, открытки, календари и другие вещи, то у Вас рано или поздно возникает желаение сохранить информацию о коллекции в электронном виде.

Для этого, многие сканируют или фотографируют элементы коллекции и сохраняют на винчестере в виде графических файлов.

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

Недостатки такого способа хранения:

- Открытки сохраняются, как правило с одной стороны. Т.е. экземпляр коллекции сохраняется под одним ракурсом. А это означает, что если есть две похожих открытки, но разных серий (разных изданий), Вы можете не увидеть отличий между ними. Для того, чтоб увидеть отличия Вы вынуждены брать оригиналы и сравнивать друг с другом. А это значит, что смысл хранения нивелируется... Более того, из-за частого передергивания оригиналов, они могут портиться.

- Поиск и фильтрацию информации Вы можете производить только по названию файлов. Как результат, Вам сложно получить быстро необходимую статистическую информацию. Например, получить информацию о авторах и количестве открыток по ним. Или просмотреть информацию о сериях открыток заданного автора.

- При сохранении фотографий возникают "дубли". Как результат, одна и та же фотография может храниться в нескольких файлах и создавать впечатление наличия нескольких одинаковых экземплярах коллекции.

- Нет возможности расчета себестоимости коллекции, а так же оценки общей её стоимости.

Для того, чтоб предалеть данные недостатки, многие хранят информацию в в Excel.

Но и данный способ хранения имеет ряд недостатков:

- Желательно знание Excel, понимания формул и макросов.

- Хоть Excel и позволяет упорядочить информацию о коллекции, но теряется связность между данной информацией и изображениями элементов коллекции.

- Проблематична коллективная работа над коллекциями.

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

В целом, хранение информации в Excel не на много превосходит по эффективности хранение информации в виде файлов.

3. Используя специализированные программы.

Есть достаточно не плохие программы, которые позволяют упорядочить информацию о коллекции. Есть некоторое количество таких программ в интернет с "взломщиком лицензий".

Жалея деньги, коллекционеры могут воспользоваться данными взломщиками и тем самым заразить вирусом - бекдором свой компьютер. В результате, рано или поздно, можно потерять всю информацию на компьютере.

Поэтому, рекомендуем использовать программное обеспечение лицензионным путем.

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

Программа Коллекция К2® создавалась для коллекционеров, собирающих наборы из фотографий, открыток, календарей.

Данная работает в 2-х вариантах:

- В однопользовательстком варианте. Данный вариант программы позволяет работать в один момент одному пользователю. Но, зато этот вариант не требует установки сервера баз данных и обходится значительно дешевле.

- В сетевом варианте может работать не ограниченное количество пользователей. Этот способ настройки сложнее однопользовательского и значительно дороже.

Программа позволяет упорядочить информацию в электронном виде о элементах коллекции по различным категориям:

- назаванию;

- автору;

- серии;

- типу карточки;

- номеру альбома и позиции в нем;

- категорям размещения.

По каждому элементу коллекции можно хранить фотографии с нескольких ракурсов. Например, для фотографии или открытки - это изображени спереди и сзади.

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

Интегрированный в программу браузер позволяет Вам просматривать одновременно фотографии на специализированных сайтах для коллекционеров и Вашей базе данных.

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

Так же с помощью таблицы Вы можете сортировать информацию, фильтровать а так же группировать. Таким образом, получить статистическую информацию, например о количестве фотографий по заданному автору или заданной серии Вы можете буквально за пару секунд. Причем, формировать подобные отчеты Вы можете на ходу.

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

Так же, для оценки наполненности коллекции есть отчет, показывающих наличие и отсутствие заданных экземпляров коллекции.

  • Страницы:
  • 1
  • 2
  • 3
  • 4