Установка статического IP CentOS

CentOsДля настройки статического IP адреса в Centos, нам потребуется отредактировать файл конфигурации сетевого интерфейса.

Вначале узнаем, какая сетевая карта сейчас активна и где нам требуется сменить IP адрес. Для этого воспользуемся командой ifconfig, для отображения сетевых интерфейсов.

Теперь мы можем отредактировать файл ifcfg-eth0, в котором прописаны настройки сетевого интерфейса eth0.
Меняем значения BOOTPROTO=DHCP на static вписываем IPADDR и NETMASK

#nano /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=”eth0″
NM_CONTROLLED=”yes”
ONBOOT=yes
TYPE=Ethernet
BOOTPROTO=static
NAME=”System eth0″
IPADDR=192.168.0.10
NETMASK=255.255.255.0
Configure Default Gateway

Сохраняем файл. Далее нам потребуется отредактировать файл network

Редактируем файл /etc/sysconfig/network

Задаем параметры HOSTNAME и GATEWAY

#nano /etc/sysconfig/network

NETWORKING=yes
HOSTNAME=CentOS
GATEWAY=192.168.0.1
Configure DNS Server

Вносим изменения в файл resolv.conf, куда мы зададим ip адреса DNS сервера(ов)

#nano /etc/resolv.conf

nameserver 8.8.8.8
nameserver 8.8.4.4

Сохраняем файл.
Для применения новых параметров, перезагружаем сетевой интерфейс.

/etc/init.d/network restart

Views: 8

Установка phpMemcachedAdmin в Linux

PhpMemcachedпрограмма, которая предоставляет вэб-интерфейс для мониторинга и управления сервиса memcached. Эта программа позволяет видеть в реальном времени статистику get, set, delete, increment, decrement, evictions, reclaimed команд, также статистику сети, событий, версию сервера и внутреннюю конфигурацию сервера.

Скачиваем архив phpMemcachedAdmin

Создайте каталог на вашем вэб-сервере, куда мы скачаем архив phphMemcached. Проверить последнюю доступную версию, можно по этой ссылке.

# mkdir -p /var/www/phpMemcachedAdmin
# cd /var/www/phpMemcachedAdmin# wget https://github.com/elijaa/phpmemcachedadmin/archive/1.3.0.tar.gz

После скачивания, разархивируем архив, выполнив следующие команды:

# tar xzf phpMemcachedAdmin-1.3.0.tar.gz
# chown -R apache.apache phpMemcachedAdmin # chmod -R 755 phpMemcachedAdmin

Настраиваем  phpMemcachedAdmin в Apache

Создадим новый конфигурационный файл в Apache для phpMemcachedAdmin, со следующим содержанием. Для пользователей Debian и Ubuntu конфигурационные файлы расположены в директории /etc/apache2/sites-enabled/

  • Для пользователей CentOs
# nano /etc/httpd/conf.d/phpMemcachedAdmin.conf
  • Для пользователей Ubuntu
# nano /etc/apache2/sites-available/phpMemcachedAdmin.conf

 

 phpMemcachedAdmin – Web based Memcached browser written in php

Alias /phpMemcachedAdmin /var/www/phpMemcachedAdmin

Alias /phpmemcachedadmin /var/www/phpMemcachedAdmin

<Directory /var/www/phpMemcachedAdmin>

  Order Deny,Allow

  Deny from All

  Allow from 192.168.0.1/24

  Allow from 127.0.0.1

</Directory>

<Directory /var/www/phpMemcachedAdmin>

  AuthUserFile /etc/apache2/.htpasswd

  AuthName “phpMemcachedAdmin Login Area”

  AuthType Basic

  require user admin

</Directory>

Для CentOS  –   AuthUserFile /etc/httpd/.htpasswd

Настройка авторизации в Apache

Настроим основные принципы безопасности в Apache для предотвращения несанкционированного доступа к Memcached.

# htpasswd -cm /etc/httpd/.htpasswd admin

New password:

Re-type new password:

Adding password for user admin

Перезапустим сервис Apache

  • Для пользователей Ubuntu
#service apache2 restart
  • Для пользователей CentOS
#service httpd restart

В браузере вводим IP и URL к Memcached

http://IP_or_URL/phpMemcachedAdmin/index.php

login

Вводим логин и пароль, что мы создали выше.

web-memcache

web-memcache2

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

Установка Memcached на CentOS

Установка Memcache на Ubuntu

 

 

Views: 3

Установка Memcached на CentOS

Memcached это система кэширования, использующая оперативную память . Это означает, что мы можем создавать самый быстрый кэш в ОЗУ, вместо того, чтобы хранить кэш на жестком диске, кэш в оперативной памяти на порядки быстрее, и может интегрироваться практически с любыми приложений с использованием самых современных языков программирования, таких как Python, PHP, Ruby и т.д. Как установить Memcached на CentOS Linux, RHEL или Fedora.

Установка memcached на CentOS

Для установки нам потребуется установить дополнительные пакеты:

yum groupinstall “Development Tools”
yum install php php-pear php-devel

Убедимся, что система обновлена

yum update

Установим пакет memcached

yum install memcached

Настройка Memcached

nano /etc/sysconfig/memcached

Убедимся, что конфигурационный файл такого вида:

PORT=”11211″
USER=”memcached”
MAXCONN=”1024″
CACHESIZE=”64″
OPTIONS=”-l 127.0.0.1″

PORT – 11211 порт по умолчанию для Memcached.
USER – пользователь в системе, под которым работаем Memcached.
MAXCONN – максимально возможное количество.
CACHESIZE в МБ – количество оперативной памяти, выделенное под  кэш Memcached .
OPTIONS -l 127.0.0.1 означает, что Memcached будет слушать только соединения с локального хоста, избегая каких-либо внешних соединений.

Запускаем Memcached

service memcached start

Добавляем memcached  в загрузку системы

chkconfig memcached on

Устанавливаем Memcached PHP дополнения

pecl install memcache

На запрос PECL установщика отвечаем yes.

“Enable memcache session handler support? [yes]”

Добавляем memcache.so модуль в php.ini

echo “extension=memcache.so” >> /etc/php.ini

Перезагружаем php сервис, для применения настроек.

Если вы используете apache:

service httpd restart

Если вы используете php-frm:

service php-fpm restart

Проверим работу модуля PHP Memcached

php -i | grep memcache -i

Вывод на экране должен быть такого вида:

php -i | grep memcache -i
/etc/php5/cli/conf.d/20-memcached.ini,
memcached
memcached support => enabled
libmemcached version => 1.0.8
memcached.compression_factor => 1.3 => 1.3
memcached.compression_threshold => 2000 => 2000
memcached.compression_type => fastlz => fastlz
memcached.serializer => php => php
memcached.sess_binary => 0 => 0
memcached.sess_lock_wait => 150000 => 150000
memcached.sess_locking => 1 => 1
memcached.sess_prefix => memc.sess.key. => memc.sess.key.
Registered save handlers => files user memcached

Так же проверим, запущена ли служба Memcached

ps -aux | grep memcached

Вывод должен быть такого вида

memcache   922  0.0  0.0 328384  4076 ?        Sl   12:36   0:05 /usr/bin/memcached -m 128 -p 11211 -u memcache -l 127.0.0.1
root     17728  0.0  0.0  11740   936 hvc0     S+   18:57   0:00 grep –color=auto memcached

 

Views: 18

Как хранить PHP сессии в Memcached

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

Зачем хранить сессии РНР в Memcached?

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

Установка Memcached на Ubuntu

Установка Memcached на CentOS

Установку PHP мы уже сделали, поэтому чтобы настроить хранение всех сессий в Memcached, надо изменить переменные в файле php.ini

  • Для пользователей Ubuntu
sudo nano /etc/php5/apache2/php.ini
  • Для пользователей CentOS
sudo nano /etc/php.ini

Находим следующие переменные:

session.save_handler
session.save_path

Заменяем значения на следующие:

session.save_handler = memcached
session.save_path = “127.0.0.1:11211”

Если Memcached установлен на другом сервере, а не на localhost  (пример 192.168.0.10):

session.save_handler = memcached
session.save_path = “tcp://192.168.0.10:11211”

Если использовать несколько Memcached серверов (пример 192,.168.0.10, 192.168.0.20 и т.д.):

session.save_handler = memcached
session.save_path = “tcp://192.1680.10:11211, tcp://192.168.0.20:11211”

Так же есть возможность передавать параметры при конфигурации сессий:

session.save_handler = memcached
session.save_path=”tcp://127.0.0.1:11211?persistent=1&weight=1&timeout=1&retry_interval=15″

Для применения изменений, надо перезапустить сервис Apache:

  • Для пользователей Ubuntu
sudo service apache2 restart
  • Для пользователей CentOS
service httpd restart

Если вы используете PHP-FRM:

  • Для пользователей Ubuntu
sudo service php5-fpm restart
  • Для пользователей CentOS
service php-fpm restart

 

Views: 11

Rsnapshot – резервное копирование

Введение

Rsnapshot – полезная утилита для резервного копирования, написанная на Perl, которая использует Rsync. Rsnapshot позволяет пользователям создавать свои решения для резервного копирования.

Описание

Резервное копирование необходимо для возможности быстрого восстановления данных (документов, фотографий, баз данных, программ, настроек и т.д.). Всегда есть риск потерять данные. Сломался винчестер, случайно удалили нужные вам файлы или поработал вирус. Лучше всегда иметь резервную копию всех своих важных данных.
Как организовать резервное копирование?
Можно самому копировать все нужные файлы на другой диск или внешний накопитель,  на сетевое устройство. Можно воспользоваться облачными сервисами. Но часто мы забываем это делать регулярно и наступает момент, когда нужный нам файл испорчен или удален, а копии у нас нет, или копия слишком стара и в ней нет тех данных, что вы наработали. И тогда приходит четкое осознание того, что лучше этот процесс автоматизировать и пусть архивные копии делаются сами, в автоматическом режиме. И тут возникает вопрос, а как делать копии, ведь если просто копировать каждый день, или по несколько раз в день все данные, то это потребует много места, допустим ваш архив с документами и фотографиями занимает 100Гбт, то каждая последующая копия прибавить +100Гбт. Придется запастись емкими накопителями. Да и копирование таких объемов не за секунды происходит, что совсем не удобно. Поэтому лучше воспользоваться инкрементными копиями “снапшотами”. Инкрементное резервное копирование состоит из одной полной резервной копии, а затем создание дополнительных копий. Эти дополнительные резервные копии только изменившихся файлов, которые изменились с момента последнего резервного копирования.  Это гораздо более эффективный процесс. Одним из таких инструментов в  * NIX системах является rsnapshot.

Подготовка

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

mkdir /mnt/backup – содаем директорию, в которую будут записываться “снапшоты”.

Установка

Установка rsnapshot довольно проста, просто выполните следующую команду от root пользователя:

  • В Debian,Ubuntu:
# apt-get install rsnapshot
  • На Fedora,CentOS:
# yum install rsnapshot

Настройка

По умолчанию создается файл /etc/rsnapshot.conf.default. Его необходимо скопировать в /etc/rsnapshot.conf. Чтобы иметь возможность вернуться к настройкам по умолчанию.
Открываем для редактирования rsnapshot.conf, я обычно пользуюсь редактором nano.

# nano /etc/rsnapshot.conf

Файл конфигурации очень хорошо прокомментирован, что облегчает настройку.

Важное примечание, нельзя использовать “пробелы” только “табуляция”  иначе будет ошибка.

## Все копии будут храниться в этом корневом каталоге (которую мы создали ранее)
snapshot_root   /mnt/backups/

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

##Интервалы создания резервных копий
## Не нужные интервалы можно за комментировать “#”
retain    hourly      6
retain    daily     7
retain    weekly     4
retain    monthly     12

Когда запуститься rsnapshot hourly, будет создана резервная копия в файловой системе, которая будет сохранена в <snapshot_root> /hourly.0/. Первая нулевая копия, самая тяжелая и продолжительная по времени.
Предыдущий hourly.0/ переименуется в hourly.1/. При следующем выполнении hourly.1/ переименуется в hourly.2/ и т.д. по циклу. Так в конце концов то, что было <snapshot_root> /hourly.0, станет <snapshot_root> /hourly.23/ и при следующем запуске /hourly.23/ будет удален. Когда запуститься rsnapshot daily, создастся директория <snapshot_root> /daily.0/ в которую перенесутся резервные данные от <snapshot_root> /hourly.23/, если они существует.
Точно так же, когда запуститься rsnapshot weekly, это создаст <snapshot_root> /weekly.0/ от <snapshot_root> /daily.6/ из резервной копии, если она существует.
Точно так же это правило действует и на следующие уровни, которые описаны в файле конфигурации (monthly и т.д.)

Используя такую конфигурацию мы получим 12 ежемесячных резервных копий, 4 еженедельных, 7 ежедневных и 6 ежечасные и при этом занимаемое место под бэкапы будет минимальным. Т.к. не происходит копирование всех данных, а создаются символьные ссылки.
Если вам не требуется использовать ежечасные копии, следует просто закомментировать в конфигурационном файле retain  hourly и запустить этот же конфиг.

Примечание: Если какие-то интервалы не определены в cron, для избежания ошибок при работе Rsnapshot нужно удалить из него соответствующие строки.

В этом разделе мы задаем rsnapshot пути к данным, с которых нам надо делать резервные копии и куда мы будем их складывать.
Задаем параметр backup, а затем указываем полный путь к данным на локальном ресурсе, так же возможно указать и сетевой ресурс к удаленной машине.
Третий столбец это относительный путь, если вы хотите делать резервные копии, в корне snapshot_root.

###############################
### BACKUP POINTS / SCRIPTS ###
###############################
backup      /home/                              localhost/
backup      /etc/                                   localhost/
backup      /usr/local/                        localhost/
#backup    /var/log/rsnapshot        localhost/
#backup    /etc/passwd                     localhost/

Первый столбец backup определяет точку резервного копирования.
Второй столбец /home/ – путь к данным, которые нам надо сохранять. Обязательно должен заканчиваться /
Третий столбец localhost/ –  относительный путь, куда будет производиться копирование в нашем случае это в директории /mnt/backups/.

В этом примере, /home/ это полный путь к каталогу, с которого мы хотим делать резервные копии, и localhost/ это каталог внутри snapshot_root, куда мы собираемся сохранять их.
Использование localhost в качестве каталога назначения является всего лишь условностью. Вы также можете выбрать, использование полного доменного имени сервера, а не локального хоста.
Если вы принимаете резервные копии из нескольких сетевых машин на одном выделенном сервере резервного копирования, для этого лучше использовать различные имена хостов, как каталоги, чтобы отслеживать, какие файлы с какого-сервера.

Чтобы использовать возможности удаленного резервного копирования rsnapshot надо просто указать удаленный компьютер в качестве источника резервного копирования.
/etc/rsnapshot.conf

###############################
### BACKUP POINTS / SCRIPTS ###
###############################
backup      root@salf-net.ru:/etc/     salf-net.ru/

Это в принципе тоже самое, что и пример выше, но вы должны помнить о некоторых дополнительных параметрах:
SSH-демон должен быть запущен на удаленном хосте salf-net.ru.
Вы должны иметь доступ к учетной записи, заданной на удаленной машины, в этом случае root пользователь на salf-net.ru.
У вас должна быть включена авторизация по ключу для пользователя root на salf-net.ru, без пароля. Если вы хотите выполнять резервное копирование от имени другого пользователя, вы можете указать другого пользователя вместо root для источника (т.е. user@domain.com).
Примечание: Обратите внимание, что разрешение на вход в систему на удаленном хосте без пароля, это очень не безопасно.

Дополнительные скрипты

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

/etc/rsnapshot.conf

backup_script      /usr/local/bin/backup_mysql.sh       localhost/mysql/

В этом примере rsnapshot будет выполняться скрипт /usr/local/bin/backup_mysql.sh в каталог Temp, затем синхронизирует результаты в localhost/MySQL в/ директорию под snapshot_root.
Сценарий резервного копирования должен выгружать содержимое базы, в текущий рабочий каталог. В скрипте не должна быть задана определенная директория выгрузки . Причина этого заключается в том, что rsnapshot создает Temp директорию, делает в нее выгрузки , запускает скрипт резервного копирования, а затем синхронизирует содержимое каталога Temp в относительный путь, указанный в третьей колонке.
Типовой скрипт резервного копирования будет один, который архивирует содержимое базы данных. Он может выглядеть следующим образом:

backup_mysql.sh

#!/bin/sh
/usr/bin/mysqldump -uroot mydatabase > mydatabase.sql
/bin/chmod 644 mydatabase.sql

Примечание: убедитесь, что бы путь назначения был задан уникальным. Backup script будет полностью перезаписать все файлы в пути назначения, так что если вы указали один и тот же путь назначения дважды, у вас останется только последняя копия сделанной скриптом. К счастью rsnapshot выдаст ошибку, при проверке конфигурационного файла.

Примечание: пожалуйста, помните, что эти скрипты резервного копирования будет выполняться от имени пользователя, запустившего rsnapshot. В нашем Этом примере это root пользователь.
Убедитесь, что ваш backup script принадлежат пользователю root и не доступен другим пользователям. Т.к. любой пользователь, у которого есть права на запись в backup script может дописать в них команды, которые будут выполняться от имени пользователя root. Что может привести, к очень плачевной ситуации.

Так же следует заметить, что можно добавить маску включений/исключений, чтобы не копировать не нужный мусор.

## Список включения/исключений по маске.
exclude *.tmp
exclude ~*
exclude /home/*/.cache
include *.jpg
##Список включений/исключений.
include_file /path/to/include/file #исключено
exclude_file /path/to/exclude/file  #включено

Тестирование конфигурации

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

# rsnapshot configtest

Если нет ошибок, выдаст сообщение Syntax ОК. Если обнаружиться проблема, будет указана ошибка. Проверьте, что в конфигурационном файле вы использовали табуляцию, а не пробелы и т. д.

Последний шаг, чтобы проверить свои настройки, запустите rsnapshot в тестовом режиме. Это выведет подробный список действий, которые он будет делать, на самом деле не выполняя их.
Чтобы сделать пробный пуск, выполните эту команду:

# rsnapshot -t hourly

Произойдет имитация резервного копирования hourly.

Первый запуск

# rsnapshot hourly

Будет произведено первое резервное копирование.

Автоматизация с Cron

Если в ручном режиме все прошло нормально, надо добавить задание, для выполнения резервного копирования, в автоматическом режиме.
Для этого отредактируем /etc/cron.d/rsnapshot

# This is a sample cron file for rsnapshot.
# The values used correspond to the examples in /etc/rsnapshot.conf.
# There you can also set the backup points and many other things.
#
# To activate this cron file you have to uncomment the lines below.
# Feel free to adapt it to your needs.00 1 ***        root    /usr/bin/rsnapshot hourly #Кадлый час начиная с 01ч00м
00 3 ***        root    /usr/bin/rsnapshot daily # ежедневная копия начиная с 03ч00м
00 5 **7        root    /usr/bin/rsnapshot weekly #Еженедельная начиная с 05ч00м в Воскресенье
00 12 1**    root    /usr/bin/rsnapshot monthly #Ежемесячно в 12ч.00м 1 числа

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

Дополнительные команды rsnapshot

rsnapshot du – просмотреть занимаемое место резервными копиями
rsnapshot diff – daily.0 daily.1 – сравнение изменения между резервными копиями

Views: 257

Что такое #shellshock?

Shellshock ( CVE-2014-6271 , CVE-2014-6277 , CVE-2014-6278 , CVE-2014-7169 , CVE-2014-7186 , CVE-2014-7187 ) является уязвимость в GNU BASH оболочке, которая дает злоумышленникам доступ к запуску удаленных команд на уязвимой системе. Если в вашей системе не обновляется Bash с 30 сентября 2014 года, ваша система скорее всего уязвима. Эта уязвимость безопасности влияет на версии с 1.14 (выпущенная в 1994 году) до самой последней версии 4.3 в соответствии с NVD .

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

  • Apache HTTP серверы, использующие сценарии CGI (с помощью mod_cgi и mod_cgid ), написанные в Bash или запуск в Bash подоболочек
  • Некоторые клиенты DHCP
  • Серверы OpenSSH, которые используют ForceCommand возможность
  • Различные сетевые сервисы, которые используют Bash

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

 Сайт шокер

Для начало делаем скрипт на проверку уязвимости. И положим его в /usr/lib/cgi-bin/shockme.cgi

#!/bin/bash
echo “Content-type: text/html”
echo “”
echo “https://shellshocker.net/”

Проверяем

http://ваш-сайт/cgi-bin/shockme.cgi

Этот сайт тестер будет ждать ответа, если сервер отвечает 500, есть все основания предположить, что ваша система уязвима.

Тестируем систему

Чтобы проверить вашу систему, вы можете просто запустить это в командной строке следующую строку.

curl https://github.com/wreiske/shellshocker/blob/master/shellshock_test.sh | bash

Вы можете посмотреть исходный код shellshock_test.sh на GitHub

Если вы хотите, проверить каждую уязвимость по отдельности без запуска скрипта выше, надо сделать следующее! Действия перечислены ниже.

Exploit 1 ( CVE-2014-6271 )

Есть несколько способов, чтобы проверить, если ваша система уязвима для Shellshock. Попробуйте выполнить следующую команду в оболочке.

env x='() { :;}; echo vulnerable’ bash -c “echo this is a test”

Если вы видите “vulnerable” “уязвимы” необходимо обновить Баш . Если вы увидите echo this is a test, то все ок, продолжаем тестирование.

1

Exploit 1 ( CVE-2014-6271 )

 

 

 

 

 

 

Exploit 2 ( CVE-2014-7169 )

Даже после обновления Баш вы все равно может быть уязвимым для этой уязвимости. Попробуйте запустить следующий код.

env X='() { (shellshocker.net)=>\’ bash -c “echo date”; cat echo; rm ./echo

Если приведенная выше команда выводит текущую дату (она также может показать ошибки), вы по-прежнему уязвимы.

2

Exploit 2 ( CVE-2014-7169 )

 

 

 

 Exploit 3

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

env X=’ () { }; echo hello’ bash -c ‘date’

Если вышеуказанная команда выведет “привет”, вы уязвимы.

3

Exploit 3

 

 

 

Exploit 4 ( CVE-2014-7186 )

bash -c ‘true <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF’ ||
echo “CVE-2014-7186 vulnerable, redir_stack”

Уязвимая система будет отображать текст “CVE-2014-7186 vulnerable, redir_stack”.

4

Exploit 4 ( CVE-2014-7186 )

 

 

Exploit 5 ( CVE-2014-7187 )

 

(for x in {1..200} ; do echo “for x$x in ; do :”; done; for x in {1..200} ; do echo done ; done) | bash ||

echo “CVE-2014-7187 vulnerable, word_lineno”

Уязвимая система будет отображать текст “CVE-2014-7187 vulnerable, word_lineno”.

5

Exploit 5 ( CVE-2014-7187 )

 

 

 

 Exploit 6 ( CVE-2014-6278 )

shellshocker='() { echo You are vulnerable; }’ bash -c shellshocker

Вы не должны видеть “You are vulnerable”, если все исправлено, вы увидите “Bash: shellshocker: command not found”

6

Exploit 6 ( CVE-2014-6278 )

 

 

Exploit 7 ( CVE-2014-6277 )

bash -c “f() { x() { _;}; x() { _;} <<a; }” 2>/dev/null || echo vulnerable

Если команда выводит “vulnerable”, вы уязвимы.

7

Exploit 7 ( CVE-2014-6277 )

 

 

How to fix ShellShock

CentOS, Ubuntu, Red Hat, Fedora

системы Linux

Shellshock является уязвимость в Bash . Для того, чтобы залатать свой ​​код на целевой системе, вы должны будете получить наиболее актуальную версию Bash доступной из GNU.org .

В зависимости от вашего менеджера пакетов (yum, APT-GET, и т.д.) вы сможете просто запустить обновление yum, и т.д.

Вот как это делается:

sudo yum update bash -y

sudo yum update

 

Для систем Ubuntu:

apt-get update; apt-get install –only-upgrade bash

spt-get upgrade

Для Arch Linux:

pacman -Syu

Если ваш менеджер пакетов не нашел обновлений, вам нужно будет указать bash от SRC.

Сборка из исходников

Вы можете исправить bash с помощью одной команды с помощью нашего bash patcher, просто запустите следующую команду, и вcе будет хорошо!

Убедитесь, что у вас есть patch installed, прежде чем запускать эту команду. sudo apt-get install patch (yum install patch) etc…

curl https://shellshocker.net/fixbash | sh

Если вы хотите сделать это самостоятельно, не стесняйтесь. Здесь все команды, которые нужны.

cd ~/
mkdir bash
cd bash
wget https://ftp.gnu.org/gnu/bash/bash-4.3.tar.gz
#download all patches
while [ true ]; do i=`expr $i + 1`; wget -N https://ftp.gnu.org/gnu/bash/bash-4.3-patches/ ‘%03g’ $i); if [ $? -ne 0 ]; then break; fi; done
tar zxvf bash-4.3.tar.gz
cd bash-4.3
for p in `ls ../bash43-[0-9][0-9][0-9]`; do patch -p0 < $p; done
./configure && make && make instal

OS X

Если вы работаете под OS X, Apple выпустила официальные патчи для Mavericks , Mountain Lion и Lion .

Вы также можете скачать и скомпилировать Bash самостоятельно, используя  brew или MacPorts .

Мы рекомендуем использовать brew – Перейти к http://brew.sh/ и установить brew в вашей системе.

После того, как вы установили brew, выполните следующие команды, чтобы обновить систему

brew update
brew install bash
sudo sh -c ‘echo “/usr/local/bin/bash” >> /etc/shells’
chsh -s /usr/local/bin/bash
sudo mv /bin/bash /bin/bash-backup
sudo ln -s /usr/local/bin/bash /bin/bash

Если вы используете MacPorts, выполните следующее:

sudo port selfupdate

sudo port upgrade bash

После того, как вы обновили, попробуйте еще раз проверить систему.

Оригинал статьи тут https://shellshocker.net/

https://github.com/hannob/bashcheck

PS

Универсальный скрипт для проверки на наличие уязвимостей github.com/hannob/bashcheck

В продолжение — обнаружены новые уязвимости в bash www.linux.org.ru/news/security/10892232

Views: 12