Вівторок, вересня 30, 2014

Останні записи

Опублікував Автор: Створено: в Uncategorized

модуль неофіційний і сторінка розробника тут: http://www.zdziarski.com/blog/?page_id=442

суть модуля захищати апачі від ддос атак 

встановлюємо модуль на центос 6,5 

Позначки: ddos httpd
Переглядів: 5
0

Опублікував Автор: Створено: в Uncategorized

http://farmal.in/2011/07/borba-s-ddos-atakami-sredstvami-iptables-i-sysctl/#comments

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

Ниже приводится листинг разрешительной (не такой жёсткой как запретительная) политики настройки iptables, а также пример оптимизации настроек sysctl. В результате будет ограничено количество одновременных подключений с одного ip адреса на порт веб-сервера, сервера DNS, а также ограничено количество подключений к службе ssh (3 подключения за 5 минут с одного ip-адреса). Будет реализована защита от спуфинга на уровне файрвола, а также на уровне ядра.

Хорошее развёрнутое русское руководство по iptables с подробным разъяснением принципов его работы и примерами использования (некоторые из которых используются чуть ниже) можно найти в статье iptables на Википедии (sic!), а про sysctl тут http://debian.telenet.ru/doc/sysctl.conf

# БОРЬБА С DDOS

iptables -N ssh_brute_check # Создаем цепочку для проверки попыток соединений на защищаемый порт
# Если за последние 5 минут (300 секунд) с одного адреса было 3 или более новых соединений — блокируем этот адрес
iptables -A ssh_brute_check -m conntrack --ctstate NEW -m recent --update --seconds 300 --hitcount 3 -j DROP
# В противном случае — разрешаем, и при этом заносим в список
iptables -A ssh_brute_check -m recent --set -j ACCEPT
iptables -F INPUT # Очищаем цепочку INPUT
iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT # Разрешаем пакеты по установленным соединениям
# Все попытки открыть новое соединение по SSH направляем на проверку
iptables -A INPUT -m conntrack --ctstate NEW -p tcp --dport 22 -j ssh_brute_check
# Здесь можно разрешать те порты, для которых такая проверка не нужна. Например, HTTP
iptables -A INPUT -m conntrack --ctstate NEW -p tcp --dport 80 -j ACCEPT
iptables -P INPUT ACCEPT


# позволяет узнать сколько одновременных подключений на порт с 1 айпи
# netstat -plan | grep :80 | awk '{print $5}' | awk -F: '{print $1}' | sort | uniq -c
# netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n

# устанавливаем максимальное количество подключений с одного айпи.
# В браузерах эта количество подключений к серверу ограничено 16 соединениями,
# но стоит учитывать тех, кто сидит за NAT, а также что пользователь
# может открыть 2 сайта на разных айпишниках одного и того же сервера.
# Данный параметр подбирается оптимально с помощью предыдущей команды.
iptables -A INPUT -p tcp --dport 80 -m connlimit --connlimit-above 32 -j DROP
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
# то же для DNS
iptables -A INPUT -p udp --dport 53 -m connlimit --connlimit-above 8 -j DROP
iptables -A INPUT -p udp --dport 53 -j ACCEPT

# будет препятствовать спуфингу от нашего имени.
# Ведь если мы получаем пакет с установленными флагами SYN и ACK
# (такой комбинацией флагов обладает только ответ на SYN-пакет) по еще не открытому соединению,
# это означает, что кто-то послал другому хосту SYN-пакет от нашего имени, и ответ пришел к нам.
# Конечно, злоумышленнику предстоит еще угадать номер последовательности.
# Согласно приведенному правилу, наш хост ответит RST-пакетом, после получения которого
# атакуемый хост закроет соединение.
iptables -I INPUT -m conntrack --ctstate NEW,INVALID -p tcp --tcp-flags SYN,ACK SYN,ACK -j REJECT --reject-with tcp-reset

# Для защиты от SYN атак включаем SYN-cookies
sysctl -w net.ipv4.tcp_syncookies=1
# Увеличиваем размер очереди полуоткрытых соединений (также полезно при SYN флуде) (default 512)
sysctl -w net.ipv4.tcp_max_syn_backlog=4096
# Проверять TCP-соединение каждую минуту. Если на другой стороне - легальная машина,
# она сразу ответит. Дефолтовое значение - 2 часа.
sysctl -w net.ipv4.tcp_keepalive_time=60
# Повторить пробу через десять секунд
sysctl -w net.ipv4.tcp_keepalive_intvl=10
# Количество проверок перед закрытием соединения
sysctl -w net.ipv4.tcp_keepalive_probes=5
# Фильтр обратного пути, защита от спуфинга (подмены адресов)
sysctl -w net.ipv4.conf.default.rp_filter=1
# Уменьшение времени удержания «полуоткрытых» соединений
# Сделаем так, чтобы перепередача осуществлялась на 3 секунде
# и полное время хранения полуоткрытых соединений в очереди составило 9 секунд
sysctl -w net.ipv4.tcp_synack_retries=1
# Изменяем время ожидания приема FIN до полного закрытия сокета
sysctl -w net.ipv4.tcp_fin_timeout=10

Переглядів: 3
0

Опублікував Автор: Створено: в Uncategorized
[root@sol-fttb ~]# sysctl net.ipv4.tcp_synack_retries
net.ipv4.tcp_synack_retries = 5
[root@sol-fttb ~]# sysctl -w net.ipv4.tcp_synack_retries=3
net.ipv4.tcp_synack_retries = 3
[root@sol-fttb ~]# sysctl net.ipv4.tcp_synack_retries
net.ipv4.tcp_synack_retries = 3
[root@sol-fttb ~]# sysctl net.ipv4.tcp_max_syn_backlog
net.ipv4.tcp_max_syn_backlog = 2048
[root@sol-fttb ~]# sysctl -w net.ipv4.tcp_max_syn_backlog=65536
net.ipv4.tcp_max_syn_backlog = 65536
[root@sol-fttb ~]# sysctl net.ipv4.tcp_synack_retries
net.ipv4.tcp_synack_retries = 3
[root@sol-fttb ~]# sysctl net.ipv4.tcp_syn_retries
net.ipv4.tcp_syn_retries = 5
[root@sol-fttb ~]# sysctl -w net.ipv4.tcp_syn_retries=3
net.ipv4.tcp_syn_retries = 3
[root@sol-fttb ~]# sysctl net.core.wmem_max
net.core.wmem_max = 124928
[root@sol-fttb ~]# sysctl -w net.core.wmem_max=8388608
net.core.wmem_max = 8388608
[root@sol-fttb ~]# sysctl net.core.rmem_max
net.core.rmem_max = 124928
[root@sol-fttb ~]# sysctl -w net.core.rmem_max=8388608
net.core.rmem_max = 8388608
[root@sol-fttb ~]# sysctl net.core.somaxconn
net.core.somaxconn = 128
[root@sol-fttb ~]# sysctl -w net.core.somaxconn=512
net.core.somaxconn = 512
[root@sol-fttb ~]# sysctl net.core.optmem_max
net.core.optmem_max = 20480
[root@sol-fttb ~]# sysctl -w net.core.optmem_max=81920
net.core.optmem_max = 81920
[root@sol-fttb ~]#
Переглядів: 12
0

Опублікував Автор: Створено: в Uncategorized

http://habrahabr.ru/post/108690/

 

Речь в статье пойдет о роутинге сетевых пакетов в Linux. А конкретно – о типе роутинга под названием policy-routing (роутинг на основании политик). Этот тип роутинга позволяет маршрутизировать пакеты на основании ряда достаточно гибких правил, в отличие от классического механизма маршрутизации destination-routing (роутинг на основании адреса назначения). Policy-routing применяется в случае наличия нескольких сетевых интерфейсов и необходимости отправлять определенные пакеты на определенный интерфейс, причем пакеты определяются не по адресу назначения или не только по адресу назначения. Например, policy-routing может использоваться для: балансировки трафика между несколькими внешними каналами (аплинками), обеспечения доступа к серверу в случае нескольких аплинков, при необходимости отправлять пакеты с разных внутренних адресов через разные внешние интерфейсы, даже для отправки пакетов на разные TCP-порты через разные интерфейсы и т.д.
Для управления сетевыми интерфейсами, маршрутизацией и шейпированием в Linux служит пакет утилит iproute2.

Переглядів: 79
0

Опублікував Автор: Створено: в Uncategorized
Переглядів: 84
0

Опублікував Автор: Створено: в Uncategorized

варіант 1

resolveip -s exemple.com

варіант 2 

...
Переглядів: 86
0

Опублікував Автор: Створено: в Uncategorized

є:

Centos 6.5 

хочу щоб коли запуститься зєднання ppp0 дописувалися нові маршрути для цього зєднання .. тому створюю файлик... і в ньому запихаю свій скриптик .. 

...
Переглядів: 98
0

Опублікував Автор: Створено: в Uncategorized
Переглядів: 80
0

Опублікував Автор: Створено: в Uncategorized
Попробуем в этой статье на одном экране изложить всю суть iptables.
Переглядів: 139
0

Опублікував Автор: Створено: в Uncategorized

/etc/rc.d/rc.local

#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don't
# want to do the full Sys V style init stuff.

Переглядів: 80
0

Опублікував Автор: Створено: в Uncategorized

http://www.rjsystems.nl/en/2100-adv-routing.php

Two default routes

Linux has very advanced routing, filtering and traffic shaping options. Here is how to configure a system with two default routes.


1. InstallationTo activate Linux advanced routing on a Debian GNU/Linux system, install the iproute package:

~# apt-get install iproute This will create the /etc/iproute2/ directory. It also installs some new executables, including ip.


2. The ip commandFrom a command line on any Linux system, you can see the existing routing table by simply typing route at the prompt (or /sbin/route if /sbin is not in your path). Your routing table will be similar to this:
Переглядів: 127
0

Опублікував Автор: Створено: в Uncategorized
http://serverfault.com/questions/407681/route-traffic-to-different-interface-from-port
http://www.linuxhorizon.ro/iproute2.html
http://stackoverflow.com/questions/22198313/redirecting-icmp-traffic-through-one-gateway-and-tcp-through-another

http://blog.wiercinski.net/2010/linux/tunnelling-individual-users-traffic-through-remote-server-with-linux-using-gre-nat-and-iptables/
Переглядів: 89
0

Опублікував Автор: Створено: в Uncategorized
http://explainshell.com/
http://explainshell.com/
http://explainshell.com/
http://explainshell.com/
http://explainshell.com/

цікввий сат
Переглядів: 88
0

Опублікував Автор: Створено: в Uncategorized

http://www.ushahidi.com/product/ushahidi/

цікава опен сорс інтерактивна карта для всяких повідомленнь і подій

Переглядів: 95
0

Опублікував Автор: Створено: в Uncategorized

facebbdf.JPG

фейсбук накрився .. хм ... 19-06-2014  11-21 +2GMT 

 

Переглядів: 139
0

Опублікував Автор: Створено: в Uncategorized

 

http://eddnet.org/?p=1580

 

 

Концепция использования операции JOIN в MySQL. И так, пускай у нас есть две таблицы. Таблица Table A с лева и таблица Table B с права и в каждой из них есть 4 записи:

Переглядів: 131
0

Опублікував Автор: Створено: в Uncategorized
http://on-line-teaching.com/php/arrays.htm

 

Массивы

Автор: Артемьев Сергей Игоревич
ICQ: 438856621
email: _spin_@bk.ru
Массивы очень широко применяются в PHP-скриптах.


Массив - это набор элементов, к каждому из которых можно обратиться по индексу или имени. Все массивы в PHP являются ассоциативными, т.е. остоят из пар "ключ"="значение".

<?php $arr = array(); $arr['car'] = 'Чайка'; ?> Массив $arr содержит одну пару значений. Ключом в ней будет значение 'car', а значением - 'Чайка'.

Значение ключей может быть текстового или числового типа, причем в одном массиве допускается применение ключей разных типов. Например, следующий код вполне работоспособен:
Переглядів: 169
0

Опублікував Автор: Створено: в Uncategorized
dd if=/dev/md1 of=/media/backup2/system_md1/backup.md1.29.05.14.img bs=4096 conv=noerror


To restore an image, run:
# dd if=/media/backup2/system_md1/backup.md1.29.05.14.img of=/dev/md1 bs=1M conv=noerror
Переглядів: 100
0

Опублікував Автор: Створено: в Uncategorized

Перестав друкувати принтер Samsung scx-3220

звіт про систему:

20140528_155151.jpg

...
Переглядів: 229
0

Опублікував Автор: Створено: в Uncategorized

http://davidwalsh.name/php-cookies

Cookies don't have to be an essential part of a website but can provide some of the "little things" that can set your website apart from the rest. Cookies are small tidbits of information that you save on the client's computer so that you can access them next time they visit the website. Session ID's are also usually held in cookies.

So what are the most popular uses of cookies? They are:

  • To store username/password information so that the user doesn't have to log in every time they visit the website ("remember me" sign ins).
  • To simply remember the user's name.
  • To keep track of a user's progress during a specified process.
  • To remember a user's theme.

Setting the Cookie

Setting a cookie requires a key, a value, and the amount of time to allow the cookie to exist.

$first_name = 'David'; setcookie('first_name',$first_name,time() + (86400 * 7)); // 86400 = 1 dayAbove, we set the user's first name equal to 'David' (this data would actually come from a form or database but for the sake of the example we'll use my name). Then, we set a cookie with the key of "first_name" with the value 'David', and program it to expire 7 days from now.

...
Переглядів: 160
0