# # Включаем фильтрацию входящих пакетов, # которые были отправлены одним интерфейсом, а приняты другим. # net.ipv4.conf.default.rp_filter = 1 net.ipv4.conf.all.rp_filter = 1 net.ipv4.conf.lo.rp_filter = 1 net.ipv4.conf.eth0.rp_filter = 1 # Запрещаем маршрутизацию от источника. # Маршрутизация от источника (source routing) позволяет отправителю # определить путь, по которому пакет должен пройти по сети Internet, чтобы # достигнуть пункта назначения. Это очень удобно для изучения и отладки # работы сети, но нарушитель получает возможность подмены адресов # компьютеров локальной сети. 0 означает, что маршрутизация отключена, 1 - наоборот. # 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 # Выключаем приём и отправку ICMP-пакетов перенаправления. # Включение параметров имеет смысл только на муршрутизирующем сервере, а у нас задачи другие. # net.ipv4.conf.all.accept_redirects = 0 net.ipv4.conf.all.secure_redirects = 0 net.ipv4.conf.all.send_redirects = 0 # Увеличиваем порог осиротевших (orphan) соединений. # При возникновении проблем, связанных с этим ограничением в # системный журнал будет записано сообщение, подобное этому: TCP: too many # of orphaned sockets Это может служить поводом к тому, чтобы пересмотреть # значения переменных tcp_fin_timeout или tcp_orphans_retries. # Значение по умолчанию 16384 # net.ipv4.tcp_max_orphans = 65536 # Использовать более частую проверку TCP-соединений. # Если на другой стороне - реальная машина, она сразу ответит. # Значение переменной имеет смысл только для тех сокетов, # которые были созданы с флагом SO_KEEPALIVE # Значение по умолчанию - 7200 секунд / 2 часа. # net.ipv4.tcp_keepalive_time = 1800 # Уменьшаем интервал проверки жизнеспособности TCP-соединения. # Это значение учитывается при подсчете времени, # которое должно пройти перед тем как соединение будет разорвано. # Значения по-умолчанию: # net.ipv4.tcp_keepalive_intvl = 75 секунд. # net.ipv4.tcp_keepalive_probes = 9 # Значения этих переменных могут использоваться для определения времени, # через которое соединение будет разорвано. # Со значениями по-умолчанию (9 попыток с интервалом 75 секунд) это займет примерно 11 минут. # Попытки определения жизнеспособности, в свою очередь, начнутся через интервал времени # определённый в tcp_keepalive_time после того, # как через данное соединение проследовал последний пакет. # net.ipv4.tcp_keepalive_intvl = 15 net.ipv4.tcp_keepalive_probes = 5 # Отключаем ответы на ICMP-запросы, чтобы защититься от ICMP-флуда # Как альтернативный вариант закрыть ICMP на iptables: # iptables -A INPUT -p icmp -j DROP --icmp-type 8 # net.ipv4.icmp_echo_ignore_all = 1 net.ipv4.icmp_echo_ignore_broadcasts = 1 net.ipv4.icmp_ignore_bogus_error_responses = 1 # Включаем передачу syncookies вызывающему хосту в случае переполнения # очереди SYN-пакетов для заданного TCP-соединения. # net.ipv4.tcp_syncookies=1 # Увеличиваем очередь «полуоткрытых» TCP-соединений # (максимальное число запоминаемых запросов на соединение, # для которых не было получено подтверждения от подключающегося клиента) # Эта опция работает только тогда, когда включена переменная tcp_syncookies. # Если сервер испытывает серьезные нагрузки, то можно попробовать увеличить этот параметр. # Значение по-умолчанию равно 128. # Если сервер имеет больше 128MB ОЗУ, то значение можно установить в 1024 и более. # net.ipv4.tcp_max_syn_backlog = 1024 # Уменьшаем количество попыток передачи SYN,ACK-пакета в ответ на SYN-запрос. # т.е. максимальное число попыток установить пассивное TCP-соединение, # инициированное другим хостом. # Значение по-умолчанию 5. # net.ipv4.tcp_synack_retries = 2 # Уменьшаем время пребывания сокета в состоянии FIN-WAIT-2 (целое число в секундах) # Используется в тех случаях, когда другая сторона # по тем или иным причинам не закрыла соединение со своей стороны. # Каждый сокет занимает в памяти порядка 1.5 Кб, # что может привести к значительным утечкам памяти в некоторых случаях. # Значение по умолчанию - 60 секунд. # net.ipv4.tcp_fin_timeout = 10 # Увеличиваем длинну очереди пакетов на обработку в случае, # если интерфейс получает пакеты быстрей, чем ядро сможет обработать их. # Значение по умолчанию 1000. # net.core.netdev_max_backlog = 10000 # Увеличиваем максимальное число всех открытых сокетов которые ждут соединения. # Значение по умолчанию 128. # net.core.somaxconn = 10240 # Отключаем сохранение результатов измерений TCP-соединения в кеше при его закрытии. # Может положительно повлиять на производительность # net.ipv4.tcp_no_metrics_save = 1 # Включаем реализацию защиты от TIME_WAIT атак. # net.ipv4.tcp_rfc1337 = 1 # Запрещаем переадресацию пакетов (имеет смысл на маршрутизаторе) # net.ipv4.ip_forward = 0