Назад | Перейти на главную страницу

Почему sysctl-настройки ядра net.inet.ip.forwarding и net.inet.ip.fw.enable остаются включенными даже после их отключения на Xserve под управлением 10.6.8?

Очень странная ситуация. Я унаследовал несколько X-серверов от предыдущего администратора, которых мне поручили очистить на разных уровнях. Я знаком с настройками в Ubuntu и очень хорошо разбираюсь в командной строке, включая компиляцию из исходных текстов, помимо того, что знаю, как управлять командной строкой в ​​OS X. Но наткнулись на кое-что совершенно непонятное на одном из серверов, на котором работает 10.6.8 (Snow Leopard).

Первая странность, я бы хотел полностью отключить программный брандмауэр. Звучит так же просто, как войти в Server Admin и просто сказать ему, чтобы он остановил брандмауэр, верно? Нет! Итак, если я выключу брандмауэр и выполню следующую команду для двойной проверки в командной строке:

sysctl -a | grep net.inet.ip.fw.enable

Результаты ожидаются:

net.inet.ip.fw.enable: 0

Но затем, если я снова проверю его в течение 5 минут или около того, он снова станет волшебным:

net.inet.ip.fw.enable: 1

То же самое с переадресацией NAT.

sysctl -a | grep net.inet.ip.forwarding

Отключите его в Server Admin, и вот результат:

net.inet.ip.forwarding: 0

Несколько минут спустя:

net.inet.ip.forwarding: 1

Какого черта?!? Я проверил crontabs, и я единственный пользователь на машине.

У меня есть приложение Server Admin на другом компьютере, настроенное для наблюдения за этим компьютером, но оно не работает все время. И до этого эта проблема существовала. Я не на 10% знаком с sysctl так что нужно руководство. FWIW, у меня есть некоторые настройки Ethernet, которые я установил /etc/sysctl.conf совсем недавно, но никаких других команд или настроек, связанных с вышеуказанным.

Почему эти настройки волшебным образом меняются через несколько минут? Что можно сделать, чтобы это остановить.

Заранее благодарим за помощь и указатели.

РЕДАКТИРОВАТЬ: содержание /etc/hostconfig согласно одному из комментариев ниже:

AFPSERVER=-NO-
AUTHSERVER=-NO-
TIMESYNC=-NO-
QTSSWEBADMIN=-NO-
QTSSRUNSERVER=-NO-
MYSQLCOM=-YES-
IPFORWARDING=-NO-

Просто мысль, но вы могли бы использовать инструмент auditctl чтобы увидеть, какие процессы затрагивают ваш /etc/sysctl.conf.

Вы можете прочитать больше об auditctl в этой теме:

Конкретно этот ответ:

Суть в том, что вы запускаете эту команду:

% sudo auditctl -p a -w /etc/sysctl.conf

А затем просмотрите файл журнала, чтобы узнать, кто виноват:

% tail -f /var/log/audit/audit.log

Хорошо, решил этот. Спасибо за советы, ребята!

Произошло то, что на этом компьютере запущено Java-приложение через программу оболочки Mac, которая имеет различные варианты создания веб-интерфейса на основе Jetty. Каким-то образом он был настроен на захват порта 80 - стандартного порта HTTP - и его отключение путем изменения URL-адреса порта на что-то другое, например 666666, решило проблему. net.inet.ip.fw.enable и net.inet.ip.forwarding оставаться на месте 0 (он же отключен) и не оживают, когда порт изменен на нестандартный для HTTP.

Тем не менее, мне все еще нужно, чтобы контент доставлялся через стандартный порт 80. Итак, я включил веб-службы на сервере и установил обратный прокси-сервер для порта 666666. Все работает как надо.

Но меня беспокоит то, как приложение смогло взять на себя некоторые sudo функции уровня - например, установка sysctl варианты - казалось бы, никогда не запрашивая пароль администратора. Это нормально для приложений Jetty или специфично для этого приложения? Может быть, он запросил пароль администратора, когда он был установлен, прежде чем я даже перейду к нему? Не знаю и не волнуюсь сейчас. Но очистка устраняет множество сетевых проблем в этом окне, поскольку это приложение больше не перехватывает функции маршрутизации и брандмауэра.