Стандартная процедура обновления заключается в следующем:
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
Очень часто по чьему-то злому умыслу или по случайности, ваш сервис начинает испытывать нагрузку свыше той, на которую он рассчитан. Зачастую в таких случаях ваши постоянные клиенты начинают страдать от отказа в обсушивании на вашем ресурсе. Это может проявляться как полным отсутствием ответа от вашего сервиса, так и неприемлемо медленной его работой. Данную ситуацию можно оценивать как атаку на ваш сервис. Данный вид атак называется 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
<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?" Для этого нам нужно за ценить сколько имеем места на жестком диске 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, который позволяет работать по конкретному проекту, не опасаясь влияния на другие проекты. Это позволяет несколько установок 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
Начнем установку из репозиториев:
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. Ведь если его не очистить то машинка мягко говоря начинает тормозить. А если это ещё и сервер с несколькими сайтами, а то и больше, то после перезагрузки приходится ещё и все их перепроверить на работоспособность.
Поковырявшись немного в интернет нашел две команды решившие мою проблему!
swapoff/swapon
А точнее сначала вводим:
swapoff -a
Этим мы отключаем использование swap. А через минуту - пару минут, после того как наш swap перенесётся снова в ОЗУ, вводим:
swapon -a
Этим мы снова подключаем использование swap. Полностью отключать и не включать swap я не рекомендую, хотя бывают разные конфигурации железа, возможно где-то это будет оправданно.
Командой swapoff -a, запущенной от имени суперпользователя, можно отключить использование всех разделов и файлов подкачки. После ввода команды содержимое свопа за несколько минут загружается обратно в оперативную память, а сам раздел подкачки отключается. Если честно, я не испытывал, что произойдёт, если при этом оперативной памяти окажется недостаточно. Ну и после загрузки содержимого свопа в оперативную память я всегда включал его обратно командой swapon -a. Однако приятно, что можно так легко и быстро вернуть отзывчивость системы одной командой безо всяких перезагрузок.
Импорт базы данных:
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
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'а, т.е. они сдерживают траф, уходяший в линку.
Подробнее...
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