Atualizado: 24/10/2024

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. Este diretório contém várias configurações do kernel, e sua alteração modifica imediatamente a configuração do kernel. No entanto, nunca tente alterar as configurações em /proc/sys sem saber exatamente o que está fazendo, pois isso pode tornar o sistema inoperante e causar sérios danos.

Para alterar os parâmetros do kernel, é necessário inserir um novo valor no arquivo de configuração do diretório /proc/sys usando o comando echo. Dentro do diretório /proc/sys, todas as funcionalidades estão agrupadas em pastas:

  • debug: contém parâmetros relacionados à depuração do kernel.

  • dev: contém parâmetros relacionados a dispositivos e seu funcionamento.

  • fs: contém parâmetros do sistema de arquivos.

  • kernel: contém parâmetros relacionados ao kernel.

  • net: contém configurações relacionadas à rede.

  • user: contém configurações relacionadas ao usuário.

  • vm: contém configurações relacionadas à gestão de memória.

Por exemplo, o arquivo de configuração /proc/sys/net/ipv4/ip_forward indica se o computador pode rotear pacotes entre duas placas de rede. Normalmente, isso não é necessário, mas pode ser configurado, por exemplo, se você quiser usar seu computador como um ponto de acesso sem fio.

Se verificarmos as configurações padrão neste arquivo usando o comando cat /proc/sys/net/ipv4/ip_forward, veremos o valor 0, o que significa que o roteamento está atualmente desativado.

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. Se este pacote estiver instalado, ele é iniciado como um serviço durante a inicialização do sistema e lê seu arquivo de configuração /etc/sysctl.conf. Este arquivo contém uma lista de todos os parâmetros que devem ser aplicados ao diretório /proc. Vejamos seu conteúdo:

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, os arquivos de configuração do /proc/sys são mencionados usando caminhos relativos, onde barras são substituídas por pontos. Por exemplo, a configuração #net.ipv4.ip_forward=1 aplica-se ao arquivo /proc/sys/net/ipv4/ip_forward. O símbolo de sustenido indica que a linha está comentada. Podemos descomentar essa linha para que a configuração seja aplicada na inicialização do sistema.

Parâmetros do Kernel

Os parâmetros mais comuns do kernel são:

  • /proc/sys/net/ipv4/ip_forward: Define se o computador deve rotear pacotes entre placas de rede. É útil quando o computador é usado como roteador na rede.

  • /proc/sys/dev/scsi/logging_level: 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/fs/file-max: Define o número máximo de arquivos que podem ser abertos simultaneamente.

  • /proc/sys/kernel/hostname: Contém o nome do computador conhecido pelo kernel.

  • /proc/sys/kernel/osrelease: Contém a versão atual do kernel. Este arquivo é lido para exibir a versão atual na linha de comando usando o comando uname -r.

  • /proc/sys/net/core/rmem_max: Estabelece o máximo de memória que o kernel deve reservar para bufferização de pacotes de rede recebidos.

  • /proc/sys/vm/laptop_mode: 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/swappiness: 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.

Política de Privacidade

Copyright © www.programicio.com Todos os direitos reservados

É proibida a reprodução do conteúdo desta página sem autorização prévia do autor.

Contato: programicio@gmail.com