-
-
Save cairoapcampos/f350d5f6932d03c7e3c0a8224670eed6 to your computer and use it in GitHub Desktop.
Definição de um arquivo de configuração sysctl para Nginx
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
## Coloque este arquivo em "/etc/sysctl.d/network-tuning.conf" e | |
## execute "sysctl -p /etc/sysctl.d/network-tuning.conf" para que as novas configurações sejam definidas no kernel. | |
# Evita um smurf attack | |
net.ipv4.icmp_echo_ignore_broadcasts = 1 | |
# Ativa a proteção contra bad icmp error messages | |
net.ipv4.icmp_ignore_bogus_error_responses = 1 | |
# Ativa syncookies para proteção contra SYN flood attack | |
net.ipv4.tcp_syncookies = 1 | |
# Ativa o registro em logs de pacotes forjados (spoofed), source routed ou redirect | |
net.ipv4.conf.all.log_martians = 1 | |
net.ipv4.conf.default.log_martians = 1 | |
# Evita que pacotes de origem sejam roteados | |
net.ipv4.conf.all.accept_source_route = 0 | |
net.ipv4.conf.default.accept_source_route = 0 | |
# Ativa a filtragem de caminho reverso | |
net.ipv4.conf.all.rp_filter = 1 | |
net.ipv4.conf.default.rp_filter = 1 | |
# Certifica de que ninguém pode alterar as tabelas de roteamento | |
net.ipv4.conf.all.accept_redirects = 0 | |
net.ipv4.conf.default.accept_redirects = 0 | |
net.ipv4.conf.all.secure_redirects = 0 | |
net.ipv4.conf.default.secure_redirects = 0 | |
# Desativa a atuação como um roteador | |
net.ipv4.ip_forward = 0 | |
net.ipv4.conf.all.send_redirects = 0 | |
net.ipv4.conf.default.send_redirects = 0 | |
# Ativa execshild - Funciona somente em Red Hat | |
#kernel.exec-shield = 1 | |
#kernel.randomize_va_space = 1 | |
# Ajuste IPv6 | |
net.ipv6.conf.default.router_solicitations = 0 | |
net.ipv6.conf.default.accept_ra_rtr_pref = 0 | |
net.ipv6.conf.default.accept_ra_pinfo = 0 | |
net.ipv6.conf.default.accept_ra_defrtr = 0 | |
net.ipv6.conf.default.autoconf = 0 | |
net.ipv6.conf.default.dad_transmits = 0 | |
net.ipv6.conf.default.max_addresses = 1 | |
# Otimização para uso de porta para LBs | |
# Aumentar o limite do descritor de arquivo do sistema | |
fs.file-max = 65535 | |
# Permitir mais PIDs (para reduzir problemas de rollover); pode quebrar alguns programas 32768 | |
kernel.pid_max = 65536 | |
# Aumenta os limites da porta IP do sistema | |
net.ipv4.ip_local_port_range = 2000 65000 | |
# Aumenta o tamanho máximo do buffer TCP configurável usando setsockopt () | |
net.ipv4.tcp_rmem = 4096 87380 16777216 | |
net.ipv4.tcp_wmem = 4096 87380 16777216 | |
# Aumenta os limites de buffer TCP de ajuste automático do Linux | |
# min, padrão e número máximo de bytes a serem usados | |
# define o máximo como pelo menos 4 MB ou mais se for utilizado caminhos BDP muito altos | |
# Tcp Windows etc | |
net.core.rmem_max = 16777216 | |
net.core.wmem_max = 16777216 | |
net.core.netdev_max_backlog = 5000 | |
net.ipv4.tcp_window_scaling = 1 | |
# Quando o servidor precisa passar por um alto volume de conexões TCP, | |
# pode criar um grande número de conexões no estado TIME_WAIT. | |
# TIME_WAIT significa que uma conexão foi encerrada, | |
# mas os recursos alocados ainda não foram liberados. | |
# Definir esta diretiva como 1 dirá ao kernel para tentar | |
# reciclar a alocação para uma nova conexão quando for seguro fazê-lo. | |
# Isso é mais barato do que configurar uma nova conexão do zero. | |
net.ipv4.tcp_tw_reuse = 1 | |
# O número mínimo de segundos que deve decorrer antes que uma | |
# conexão no estado TIME_WAIT possa ser reciclada. | |
# Reduzir este valor significa que as alocações serão recicladas mais rapidamente. | |
net.ipv4.tcp_fin_timeout = 15 | |
# Outras configurações | |
net.core.somaxconn = 4096 | |
net.ipv4.tcp_max_syn_backlog = 20480 | |
net.ipv4.tcp_max_tw_buckets = 400000 | |
net.ipv4.tcp_no_metrics_save = 1 | |
net.ipv4.tcp_syn_retries = 2 | |
net.ipv4.tcp_synack_retries = 2 | |
vm.min_free_kbytes = 65536 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment