На моем компьютере с Ubuntu в /etc/sysctl.conf
файле параметры фильтрации обратного пути по умолчанию закомментированы следующим образом:
#net.ipv4.conf.default.rp_filter=1
#net.ipv4.conf.all.rp_filter=1
но /etc/sysctl.d/10-network-security.conf
они (опять же по умолчанию) не закомментированы:
net.ipv4.conf.default.rp_filter=1
net.ipv4.conf.all.rp_filter=1
Так включена фильтрация обратного пути или нет? Какое из мест конфигурации имеет приоритет? Как проверить текущие значения этих и других параметров ядра?
источник
sysctl -e
для редактирования, аsysctl -f
для выполнения конфигурации?Такие вещи обычно находятся в интерфейсах ядра
/proc
и / или/sys
ядра (во-первых, имейте в виду, что в этих каталогах нет ничего, кроме обычного файла на диске, все они являются прямыми линиями для ядра).Так, например:
Похоже, я установил rp_filter для em1, wlan0 и "default". Вы можете установить или сбросить их, просто записав в дескриптор файла:
Как уже упоминалось, это прямая связь с ядром, поэтому она вступает в силу немедленно. Это не файлы конфигурации. Если вы попытаетесь сделать что-то не так:
Конечно, это не значит, что ты не можешь все испортить. И обязательно прочитайте комментарии ниже.
источник
sysctl -a
...sysctl
(см.man 2 sysctl
), Однако он не перенесен на большинство других языков (он есть в некоторых), и в этих случаях лучшим вариантом является чтение или запись в proc. Вполне может случиться так, что bashecho
может дать сбой, так как я могу сказать, что функции потокового ввода-вывода высокого уровня, доступные в C и других языках, могут. Однако низкий уровень чтения / записи не будет. В любом случае, важно знать интерфейс proc, поэтому я и поднял его ...Для завершения принятого ответа , хотя
/etc/sysctl.conf
настройки имеют приоритет над настройками/etc/sysctl.d/
, в примере, представленном в исходном вопросе, показаны две закомментированные переменные/etc/sysctl.conf
:и те же переменные, не закомментированные в
/etc/sysctl.d/10-network-security.conf
:Это может вводить в заблуждение, потому что комментарий - это не параметр, а только комментарий о том, что может быть параметром.
В этой ситуации переменные фактически равны 1, несмотря на то, что в более сильном конфигурационном файле они закомментированы.
Если бы у
/etc/sysctl.conf
нас было:тогда переменные в конечном итоге будут установлены в 0.
источник