Configurando Parâmetros do Kernel - Linux
Uma das características notáveis do Linux é a capacidade de configurar os parâmetros do kernel. Para isso, é possível registrar novos parâmetros em arquivos de configuração específicos no diretório /proc/sys
/proc/sys
Para alterar os parâmetros do kernel, é necessário inserir um novo valor no arquivo de configuração do diretório /proc/sys
echo
/proc/sys
: contém parâmetros relacionados à depuração do kernel.debug
: contém parâmetros relacionados a dispositivos e seu funcionamento.dev
: contém parâmetros do sistema de arquivos.fs
: contém parâmetros relacionados ao kernel.kernel
: contém configurações relacionadas à rede.net
: contém configurações relacionadas ao usuário.user
: contém configurações relacionadas à gestão de memória.vm
Por exemplo, o arquivo de configuração /proc/sys/net/ipv4/ip_forward
Se verificarmos as configurações padrão neste arquivo usando o comando cat /proc/sys/net/ipv4/ip_forward
Para ativar este parâmetro, insira o valor 1 no arquivo de configuração:
programicio@Programicio:~$ echo 1 > /proc/sys/net/ipv4/ip_forward programicio@Programicio:~$ cat /proc/sys/net/ipv4/ip_forward 1
No entanto, esse método tem uma desvantagem: as alterações não são salvas após a reinicialização do computador, então será necessário aplicar todas essas configurações novamente após cada reinicialização. Existe um caminho alternativo utilizando o pacote sysctl
/etc/sysctl.conf
/proc
programicio@Programicio:~$ cat /etc/sysctl.conf # # /etc/sysctl.conf - Configuration file for setting system variables # See /etc/sysctl.d/ for additional system variables. # See sysctl.conf (5) for information. # #kernel.domainname = example.com # Uncomment the following to stop low-level messages on console #kernel.printk = 3 4 1 3 ################################################################### # Functions previously found in netbase # # Uncomment the next two lines to enable Spoof protection (reverse-path filter) # Turn on Source Address Verification in all interfaces to # prevent some spoofing attacks #net.ipv4.conf.default.rp_filter=1 #net.ipv4.conf.all.rp_filter=1 # Uncomment the next line to enable TCP/IP SYN cookies # See http://lwn.net/Articles/277146/ # Note: This may impact IPv6 TCP sessions too #net.ipv4.tcp_syncookies=1 # Uncomment the next line to enable packet forwarding for IPv4 #net.ipv4.ip_forward=1 # Uncomment the next line to enable packet forwarding for IPv6 # Enabling this option disables Stateless Address Autoconfiguration # based on Router Advertisements for this host #net.ipv6.conf.all.forwarding=1 ################################################################### # Additional settings - these settings can improve the network # security of the host and prevent against some network attacks # including spoofing attacks and man in the middle attacks through # redirection. Some network environments, however, require that these # settings are disabled so review and enable them as needed. # # Do not accept ICMP redirects (prevent MITM attacks) #net.ipv4.conf.all.accept_redirects = 0 #net.ipv6.conf.all.accept_redirects = 0 # _or_ # Accept ICMP redirects only for gateways listed in our default # gateway list (enabled by default) # net.ipv4.conf.all.secure_redirects = 1 # # Do not send ICMP redirects (we are not a router) #net.ipv4.conf.all.send_redirects = 0 # # Do not accept IP source route packets (we are not a router) #net.ipv4.conf.all.accept_source_route = 0 #net.ipv6.conf.all.accept_source_route = 0 # # Log Martian Packets #net.ipv4.conf.all.log_martians = 1 # ################################################################### # Magic system request Key # 0=disable, 1=enable all, >1 bitmask of sysrq functions # See https://www.kernel.org/doc/html/latest/admin-guide/sysrq.html # for what other values do #kernel.sysrq=438
No arquivo /etc/sysctl.conf
/proc/sys
#net.ipv4.ip_forward=1
/proc/sys/net/ipv4/ip_forward
Parâmetros do Kernel
Os parâmetros mais comuns do kernel são:
: Define se o computador deve rotear pacotes entre placas de rede. É útil quando o computador é usado como roteador na rede./proc/sys/net/ipv4/ip_forward
: Determina o nível de registro que os dispositivos SCSI devem usar. Um nível de registro mais alto resulta em um registro mais detalhado. Utilize apenas valores que sejam potências de dois: 1, 2, 4, 8, 16, 32, 64, 128, 256, etc. É útil quando se deseja aumentar ou diminuir o registro de eventos relacionados ao SCSI./proc/sys/dev/scsi/logging_level
: Define o número máximo de arquivos que podem ser abertos simultaneamente./proc/sys/fs/file-max
: Contém o nome do computador conhecido pelo kernel./proc/sys/kernel/hostname
: Contém a versão atual do kernel. Este arquivo é lido para exibir a versão atual na linha de comando usando o comando/proc/sys/kernel/osrelease
.uname -r
: Estabelece o máximo de memória que o kernel deve reservar para bufferização de pacotes de rede recebidos./proc/sys/net/core/rmem_max
Informa ao kernel se deve operar em modo laptop. Quando ativado com valor 1, usará configurações mais eficientes em termos de energia./proc/sys/vm/laptop_mode:
: Indica ao kernel a rapidez com que deve começar a usar a swap (basicamente, armazenar dados da memória RAM no disco em caso de falta de memória). Um valor mais alto indica maior disposição do kernel em começar a usar a swap./proc/sys/vm/swappiness