• Быстрый переход
  • Рубрики
  • Свежие записи
  • Метки
  • Архивы
  • Реклама 1
  • Реклама 2
  • Рейтинг@Mail.ru

    Добро пожаловать! Ваш IP-адрес: ec2-54-145-117-60.compute-1.amazonaws.com

    Новости

    Чистим лишние пакеты после обновления Linux Debian

    Стандартная процедура обновления заключается в следующем:
    1. Правим список репозиториев в "/etc/apt/sources.list" на актуальные.
    2. Запускаем обновление, выполняя
    apt-get dist-upgrade

    3. Перезапуск, командой:
    shutdown -r now

    После такого обновления часто в системе остаются не удаленные пакеты.
    Их список можно посмотреть командой:
    dpkg -l | grep ^rc

    Чтобы от них избавиться, выполняем следующую команду:
    dpkg -l | grep ^rc | cut -d' ' -f3 | xargs dpkg -P

    Борьба с DDoS-атакой с помощью (D)DoS Deflate

    Очень часто по чьему-то злому умыслу или по случайности, ваш сервис начинает испытывать нагрузку свыше той, на которую он рассчитан. Зачастую в таких случаях ваши постоянные клиенты начинают страдать от отказа в обсушивании на вашем ресурсе. Это может проявляться как полным отсутствием ответа от вашего сервиса, так и неприемлемо медленной его работой. Данную ситуацию можно оценивать как атаку на ваш сервис. Данный вид атак называется DoS — Denial of Service(если атака производится с одного адреса), либо DDoS — Distributed Denial of Service (если атака производится с множества адресов). В данной статье мы расскажем как настроить систему которая позволит защищать ваш сервис от подобного вида атак.
    1. Подтверждение атаки на сервер
    При DDoS-атаке (в нашем случае на 80 порт, который открыт на ресурсах, где размещены проекты, к которым нужен доступ по http) наблюдается повышение открытых и ожидающих закрытия соединений (до нескольких тысяч или десятков тысяч), возрастает количество пакетов на сетевом интерфейсе. В случае DDoS-атаки на 80 порт увеличивается общее число процессов на сервере, количество процессов apache (httpd), сайты начинают долго отвечать или не отвечать вовсе, на сервере используется большее число ресурсов (возрастает LA сервера, использование CPU и RAM достигает 100%). В таком случае нужно проверить общее количество соединений с сервером командой netstat:
    netstat -n -p | awk '{print $6}'|awk -F: '{print $1}' | sort -n | uniq -c | sort -nr | head -n10

    вывод команды в случае DDoS-а будет приблизительно таким:
    8580 LAST_ACK
    340 ESTABLISHED
    251 SYN_RECV
    157 FIN_WAIT1
    28 CONNECTED
    7 CLOSING
    6 TIME_WAIT
    3 FIN_WAIT2
    3 CLOSE_WAIT

    Подробнее...

    Как изменить hostname на различный Linux системах?

    Чтобы изменить имя хоста достаточно набрать команду:
    #hostname <name>

    Но это не достаточно, так как после перезагрузки системы hostname вернется на дефолтный. По этому нам нужно добавить некоторые изменения в файле: для различный семейств Линукс - это разные файлы!

    Для Linux Debian и Ubuntu:

    Когда система загружается она считывает имя хоста из файла /etc/hostname, поэтому просто вносим изменения в него (где - имя вашего хоста):
    #echo "" > /etc/hostname
    Чтобы применить изменения можно и не перезагружатся, достаточно запустить команду:
    #/etc/init.d/hostname.sh start
    Если хоснаме не изменился попробуйте пере подключится в серверу!

    Для Linux RedHat или Centos:

    Имя хоста указывается в файле /etc/sysconfig/network и используется скриптом /etc/rc.d/rc.sysinit при старте системы, посему открываем файл:
    #nano /etc/sysconfig/network
    Находим строку HOSTNAME и меняем на имя своего хоста:
    #HOSTNAME=""

    Для Linux ArchLinux:

    Имя хоста указывается в файле /etc/rc.conf, оттуда оно и берется при запуске, открываем его:
    #vim /etc/rc.conf

    Находим строку HOSTNAME и меняем на имя своего хоста:
    #HOSTNAME=""

    Для изменения имени хоста через sysctl:

    Чтобы узнать текущее имя:
    sysctl kernel.hostname
    Чтобы изменить его (где - имя вашего хоста):
    sysctl kernel.hostname=

    Как добавить swap-файл и swap-раздел в Linux?

    Все мы хоть раз сталкивались с такой проблемой "Как увеличить или добавить swap-файл и swap-раздел в Linux?" Для этого нам нужно за ценить сколько имеем места на жестком диске df -h или сколько swap-пространства у нас уже имеется в системе - для этого следует дать команду в консоли от рута: swapon -s

    Результат будет в виде:
    # swapon -s
    Filename Type Size Used Priority
    /dev/sda2 partition 8000508 0 -1

    Описание вывода команды:
    Filename описывает имеющиеся у вас своп-пространства и где они находятся.
    Type указывает тип пространства: partition (раздел) или file (файл).
    Size сообщает общий размер Swap-пространств.
    Used говорит о том, сколько сейчас свопа задействовано.
    Priority указан приоритет, т.е. какие пространства системе использовать вначале.
    Тот же самый результат мы получим по команде cat /proc/swaps

    Создание swap-файла в Linux
    1. Открываем консоль\терминал и получаем полномочия root или используем sudo:
    $ su
    2. Думаем*, какой размер swap-файла нам нужен в мегабайтах. Подумавши, даём команду:
    # sudo dd if=/dev/zero of=/swapfile bs=1M count=500
    или
    # dd if=/dev/zero of=/swapfile bs=1M count=500
    В команде dd для задания размеров можно использовать суффиксы K, M, G для килобайт, мегабайт и гигабайт соответственно. В данном примере это 500 Mегабайт файла подкачки.

    3. Поясняем системе, что созданный пустой файл это всё-таки файл подкачки для Linux:

    # sudo mkswap /swapfile
    или
    # mkswap /swapfile

    4. Подключаем созданный swap-файл:
    # sudo swapon /swapfile
    или
    # swapon /swapfile
    При этом в выводе команды top или команды free должно появиться упоминание, что свопинга в системе поприбавилось. Чтобы отключить файл подкачки, пишем
    # sudo swapoff /swapfile
    или
    # swapoff /swapfile
    Чтобы не подключать swap-файл или swap-раздел каждый раз, полезно занести запись в /etc/fstab следующего содержания:
    /swapfile none swap sw 0 0
    На всякий случай отмечу, что каждый раз создавать swap-файл не нужно: просто подключаете и отключаете его с помощью swapon/swapoff. Работа со swap-разделами в Linux происходит аналогичным образом.

    Подробнее...

    Как использовать Python virtualenv?

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

    Проверьте, если установлен Virtualenv. Существует вероятность, что virtualenv уже установлен в вашей системе.
    Выполните следующую команду в терминале:

    #virtualenv --version

    В случае если инваермент не установлен идем далее:

    $ sudo apt-get install python-virtualenv
    Также рекомендуется для некоторых пакетов ставить:
    $ sudo apt-get install python-dev
    $ sudo apt-get install libpq-dev
    $ sudo apt-get install libmemcached-dev
    $ sudo apt-get install libxml2-dev libxslt1-dev
    $ sudo apt-get install libcurl4-gnutls-dev librtmp-dev
    $ sudo apt-get install libcache-memcached-perl
    $ sudo easy_install virtualenv
    $ sudo pip install virtualenv

    Опять проверяем:
    #virtualenv --version
    1.7.1.2

    Подробнее...

    Установка Redis на Debian

    Начнем установку из репозиториев:

    apt-get install -y redis-server

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

    netstat -lnpt|grep redis
    tcp        0      0 127.0.0.1:6379          0.0.0.0:*               LISTEN      19487/redis-server

    Теперь попробуем поместить и изъять данные из Redis, это крайне легко сделать посредством telnet:

    telnet 127.0.0.1 6379
    Trying 127.0.0.1...
    Connected to 127.0.0.1.
    Escape character is '^]'.
    SET hello 5
    world
    +OK
    GET hello
    $5
    world

    В данном листинге требует описания разве что число 5, это длина строки, которую мы помещаем в Редис.
    Тоже самое, но в еще более удобной форме можно сделать через redis cli:

    redis-cli
    redis> set hello 777
    OK
    redis> get hello
    777
    redis>

    Подробнее...

    Как очистить SWAP в Linux Debian ?

    Недавно наткнулся на такую проблемку "Как очистить SWAP в Linux Debian". Так как, после того как кто-то использует много ОЗУ, перезагружаться чтоб очистить SWAP. Ведь если его не очистить то машинка мягко говоря начинает тормозить. А если это ещё и сервер с несколькими сайтами, а то и больше, то после перезагрузки приходится ещё и все их перепроверить на работоспособность.

    Поковырявшись немного в интернет нашел  две команды решившие мою проблему!

    swapoff/swapon

    А точнее сначала вводим:

    swapoff -a

    Этим мы отключаем использование swap. А через минуту - пару минут, после того как наш swap перенесётся снова в ОЗУ, вводим:

    swapon -a

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

    Командой swapoff -a, запущенной от имени суперпользователя, можно отключить использование всех разделов и файлов подкачки. После ввода команды содержимое свопа за несколько минут загружается обратно в оперативную память, а сам раздел подкачки отключается. Если честно, я не испытывал, что произойдёт, если при этом оперативной памяти окажется недостаточно. Ну и после загрузки содержимого свопа в оперативную память я всегда включал его обратно командой swapon -a. Однако приятно, что можно так легко и быстро вернуть отзывчивость системы одной командой безо всяких перезагрузок.

    Импорт и экспорт DB (База Данных) mysql при помощи консоли

    Импорт базы данных:

    mysql -uпользователь -p база < db.sql

    Экспорт: mysqldump -uпользователь -p база > db.sql

    Значения «пользователь» и «база» замените на имя пользователя и имя базы данных соответственно.

    Экспорт базы данных:

    Для экспорта нескольких баз данных можно воспользоваться вот такой командой:

    mysqldump -uroot -p -B база1 база2 база3 > db.sql

    Где «база1», «база2», «база3» — имена нужных для копирования баз данных, а «-B» — указание, что производится копирование нескольких баз.

    Также утилита mysqldump позволяет сделать экспорт всех баз на сервере в один файл sql. Это делает команда:

    mysqldump -uroot -p -A > alldb.sql

    QoS (Качество обслуживания) на Catalyst 3750. Общие принципы и примеры!

    3750 QOS: Общие принципы:

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

    Classification – для каждого пакета свичу нужно сгенерить QoS Label, который будет сопровождать пакет внутри свича и определять всю его последующую QoS-обработку. Для этого свич «мапирует» CoS или DSCP входящего пакета на QoS Label.
    Policing – определяет попадает ли пакет в профайл или он out profile. Результат отражается в QoS Label и передается Маркеру.
    Marking – оценивает результат полисера и проверяет настройки: что сделать с пакетом, если он out profile. Возможные действия: пропустить без изменений; пропустить, но сделать mark down the QoS label; дропнуть.
    Queueing – поместить пакет в одну из двух ingress очередей свича. Для этого просматривается QoS Label. Сначала по DSCP\CoS пакета выбирается нужная очередь, затем механизм WTD проверяет не превышен ли в этой очереди трешолд для данного DSCP\CoS. Если трешолд превышен, то пакет дропится иначе ставится в очередь.
    Scheduling – механизм SRR (исключительно Shared Round Robin)

    На выходе выполняются следующие шаги:

    Queueing – поместить пакет в одну из четырех egress очередей порта. Для этого просматривается QoS Label. Сначала по DSCP\CoS пакета выбирается нужная очередь, затем механизм WTD проверяет не превышен ли в этой очереди трешолд для данного DSCP\CoS. Если трешолд превышен, то пакет дропится, иначе ставится в очередь
    Scheduling – механизм SRR (Shaped or Shared Round Robin).

    ЗАПОМНИ: Из ingress очередей пакеты попадают в stack ring, т.е. шедулер этих двух очередей управляет передачей пакетов на стековую магистраль. Соответственно BW, которая выделяется каждой очереди – это часть BW стековой магистрали. Из egress очередей портов пакеты попадают в линк, т.е. BW выделяемая каждой очереди – это часть BW порта.

    NOTE: Т.к. суммарная входящая BW всех портов может превысить пропускную способность stack ring'а, то входящие очереди располагаются перед stack ring'ом, т.е. они «сдерживают» траф, уходящий в stack ring. Т.к. несколько входящих портов могут одновременно отправить пакеты в один исходящий порт, то BW этого порта может быть превышена, поэтому egress очереди расположены после stack ring'а, т.е. они сдерживают траф, уходяший в линку.
    Подробнее...

    Открытие SSH доступа на Cisco ASA/PIX

    Настроим SSH доступ к Cisco ASA/PIX
    Зададим enable пароль:

    enable password ***

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

    username admin password *** privilege 15

    Октроем доступ к локальному интерфейсу. Для начала разрешим всем все:

    access-list 100 extended permit ip any any
    access-group 100 in interface inside

    Расрешим авторизацию по ssh

    aaa authentication ssh console LOCAL

    И откроем доступ для локального адреса 192.168.1.2

    ssh 192.168.1.2 255.255.255.255 inside
    ssh timeout 30
    management-access inside