
sysctl — в BSD и Linux — программа, предназначенная для управления отдельными параметрами ядра, безопасности, сетевой подсистемы. Позволяет определять и задавать такие параметры как размер сегмента разделяемой памяти, ограничение на число запущенных процессов, а также включать функции наподобие маршрутизации.
	Имеет конфигурационный файл /etc/sysctl.conf, в котором переопределяются необходимые параметры.
	выполним
	$ sysctl -a
	И увидим возможные параметры. Список может быть достаточно большим: на моей текущей системе (Ubunta 9.10) есть 703 возможных настроек:
	$ sysctl -a
	kernel.sched_min_granularity_ns = 8000000
	kernel.sched_latency_ns = 40000000
	kernel.sched_wakeup_granularity_ns = 10000000
	kernel.sched_shares_ratelimit = 500000
	kernel.sched_shares_thresh = 4
	kernel.sched_child_runs_first = 1
	kernel.sched_features = 113916
	...много строк пропущено...
	
	Значение sysctl загружаются во время загрузки системы из файла /etc/sysctl.conf.
	В этом файле могут быть пустые строчки, комментарии (строки, начинающиеся на символ «#» или точку с запятой), а также строки в формате «переменная=значение».
	Если вы хотите применить его в любой момент времени, вы можете сделать это с помощью команды sysctl -p.
	
	настройка sysctl под веб-сервер Apache - усилим безопасность и увеличим производительность.
	
	## Включаем защиту от IP спуфинга, и проверку маршрута от источника
	net.ipv4.conf.all.rp_filter = 1
	net.ipv4.conf.lo.rp_filter = 1
	net.ipv4.conf.eth0.rp_filter = 1
	net.ipv4.conf.default.rp_filter = 1
	## Отключаем маршрутизацию TCP пакетов от источника
	net.ipv4.conf.all.accept_source_route = 0
	net.ipv4.conf.lo.accept_source_route = 0
	net.ipv4.conf.eth0.accept_source_route = 0
	net.ipv4.conf.default.accept_source_route = 0
	##Рекомендуется увеличить размер backlog до 1000 или выше (для 10Gb линка можно поставить 30000)
	net.core.netdev_max_backlog = 10000
	##Увеличиваем число входящих соединений, которые могут стоять в очереди, прежде чем будут отброшены
	net.core.somaxconn = 262144
	##Переменная определяет максимальное время хранения SYN-запросов в памяти до момента получения третьего, завершающего установление соединения, пакета
	net.ipv4.tcp_max_syn_backlog = 1024
	##Максимальное число сокетов, находящихся в состоянии TIME-WAIT одновременно. При превышении этого порога «лишний» сокет разрушается и пишется сообщение в системный журнал. Цель этой переменной – предотвращение простейших разновидностей DoS-атак.
	net.ipv4.tcp_max_tw_buckets = 720000
	net.ipv4.tcp_tw_reuse = 1
	net.ipv4.tcp_tw_recycle = 1
	net.ipv4.tcp_fin_timeout = 30
	net.ipv4.tcp_keepalive_time = 1800
	net.ipv4.tcp_keepalive_probes = 7
	net.ipv4.tcp_keepalive_intvl = 30
	##Размер буферов по умолчанию для приема и отправки данных через сокеты
	net.core.wmem_default = 4194394
	net.core.rmem_default = 8388608
	##Увеличиваем максимальный размер памяти отводимой для TCP буферов
	net.core.wmem_max = 33554432
	net.core.rmem_max = 33554432
	##буфер для TCP и UDP соединений (min, default, max bytes)
	net.ipv4.tcp_rmem = 4096 8388608 16777216
	net.ipv4.tcp_wmem = 4096 4194394 16777216
	##Отключаем перенаправление пакетов с одного сетевого интерфейса на другой.
	net.ipv4.ip_forward = 0
	##Фильтр обратного пути, защита от спуфинга (подмены адресов)
	net.ipv4.conf.default.rp_filter = 1
	##Защита от TCP SYN Cookie
	net.ipv4.tcp_syncookies = 1
	##Управление Максимальным размером сообщений в байтах
	kernel.msgmnb = 65536
	##Controls the default maxmimum size of a mesage queue
	kernel.msgmax = 65536
	##Controls the maximum shared segment size, in bytes
	kernel.shmmax = 68719476736
	##Controls the maximum number of shared memory segments, in pages
	kernel.shmall = 4294967296
	# Controls whether core dumps will append the PID to the core filename
	# Useful for debugging multi-threaded applications
	kernel.core_uses_pid = 1
	сохраняем файл и применяем сделанные изменения с помощью команды:
	$ sysctl -p