1. Делаем бэкап файла "sysctl.conf":
    mv /etc/sysctl.conf /etc/sysctl.conf.default
  2. Создаём файл "sysctl.conf" с новым содержимым:
    nano /etc/sysctl.conf
    Содержимое:
    // Uncomment the following to stop low-level messages on console
    #kernel.printk = 3 4 1 3
     
    // Защита от спуфинга
    net.ipv4.conf.all.rp_filter = 1
    net.ipv4.conf.default.rp_filter = 1
     
    // Защита от SYN-флуда
    net.ipv4.tcp_syncookies = 1
     
    // Отключаем перенаправление пакетов с одного сетевого интерфейса на другой
    net.ipv4.ip_forward = 0
    net.ipv4.conf.all.send_redirects = 0
    net.ipv4.conf.default.send_redirects = 0
    #net.ipv6.conf.all.forwarding=0
    #net.ipv6.conf.default.forwarding=0
     
    # Против ICMP перенаправлений
    net.ipv4.conf.all.accept_redirects = 0
    net.ipv4.conf.all.secure_redirects = 0
    net.ipv4.conf.all.accept_source_route = 0
    net.ipv4.conf.default.accept_source_route = 0
    #net.ipv6.conf.all.accept_source_route = 0
    #net.ipv6.conf.all.accept_redirects = 0
    #net.ipv6.conf.all.secure_redirects = 0
     
    # Log Martian Packets
    net.ipv4.conf.all.log_martians = 1
     
    # Защита от smurf-атак
    net.ipv4.icmp_echo_ignore_broadcasts = 1
     
    # Защита от неправильных ICMP-сообщений
    net.ipv4.icmp_ignore_bogus_error_responses = 1
     
    # Включаем ExecShield
    #kernel.exec-shield = 1
     
    kernel.randomize_va_space = 1
     
    net.core.netdev_max_backlog = 10000
    net.ipv4.tcp_window_scaling = 1
     
    # Увеличиваем число входящих соединений, которые могут стоять в очереди, прежде чем будут отброшены
    net.core.somaxconn = 65535
     
    # Максимальное число сокетов, находящихся в состоянии 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
     
    # Проверять TCP-соединение каждые 2 мин. Если на другой стороне - легальная машина,
    # она сразу ответит. Дефолтовое значение - 2 часа
    net.ipv4.tcp_keepalive_time = 120
     
    # Повторить пробу через 30 секунд
    net.ipv4.tcp_keepalive_intvl = 30
     
    # Количество проверок перед закрытием соединения
    net.ipv4.tcp_keepalive_probes = 5
     
    # Переменная определяет максимальное время хранения SYN-запросов в памяти
    # до момента получения третьего, завершающего установление соединения, пакета
    net.ipv4.tcp_max_syn_backlog = 1024
     
    # Уменьшение времени удержания «полуоткрытых» соединений
    net.ipv4.tcp_synack_retries=1
     
    # Контролирует процент свободной памяти, при которой начнется активный сброс страниц в раздел swap
    vm.swappiness=10
     
    # DigitalOcean
    net.core.wmem_max=12582912
    net.core.rmem_max=12582912
    net.ipv4.tcp_rmem= 10240 87380 12582912
    net.ipv4.tcp_wmem= 10240 87380 12582912
  3. Применяем новые параметры:
    sysctl -p