非常に奇妙な状況。以前の管理者からいくつかのXserverを継承しましたが、さまざまなレベルでのクリーンアップを担当しています。私はUbuntuの設定に精通しており、OS Xのコマンドラインを操作する方法を知っていることに加えて、ソースからのコンパイルを含むコマンドラインに非常に慣れています。しかし、10.6.8(Snow Leopard)を実行しているサーバーの1つでまったく困惑する何かに遭遇しました。
まず奇妙なことに、ソフトウェアファイアウォールを完全にオフにしたいと思います。サーバー管理にアクセスしてファイアウォールを停止するように指示するのと同じくらい簡単に聞こえますか?いいえ!したがって、ファイアウォールをオフにして、次のコマンドを実行してコマンドラインを再確認すると、次のようになります。
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
サーバー管理で無効にすると、次のようになります。
net.inet.ip.forwarding: 0
数分後:
net.inet.ip.forwarding: 1
WTF?!?私はcrontabをチェックしましたが、私はマシン上の唯一のユーザーです。
別のマシンにサーバー管理アプリを設定してこのマシンを監視していますが、常に実行されているわけではありません。そして、この問題はそれ以前に存在していました。私はsysctl
に10%精通していないので、いくつかのガイダンスが必要です。 FWIW、ごく最近/etc/sysctl.conf
で設定したイーサネットの調整がいくつかありますが、上記に関連する他のコマンドや設定はありません。
これらの設定が数分後に魔法のように変化するように見えるのはなぜですか?それを止めるために何ができるか。
ヘルプとポインタを事前に感謝します。
編集:以下のコメントの1つによる/etc/hostconfig
の内容:
AFPSERVER=-NO-
AUTHSERVER=-NO-
TIMESYNC=-NO-
QTSSWEBADMIN=-NO-
QTSSRUNSERVER=-NO-
MYSQLCOM=-YES-
IPFORWARDING=-NO-
さて、これを解決しました。アドバイスの皆さん、ありがとう!
何が起こったのかというと、このマシンでMacシェルプログラムを介して実行されているJavaアプリケーションがあり、JettyベースのWebインターフェイスを作成するためのさまざまなオプションがあります。どういうわけかこれはポート80を引き継ぐように設定されていました。標準のHTTPポート、およびポートURLを666666などの他のポートに変更して無効にすると、問題が解決しました。net.inet.ip.fw.enable
およびnet.inet.ip.forwarding
は0
(別名:無効)に設定されたままで、ポートがHTTPの目的で非標準ポートに変更されると、元に戻ります。
それでも、標準のポート80接続を介してコンテンツを配信する必要があります。そこで、サーバーでWebサービスをオンにし、そこからポート666666にリバースプロキシを設定しました。すべてが正常に動作します。
しかし、私を悩ませているのは、アプリケーションが、管理者パスワードを要求することなく、Sudo
オプションの設定などのいくつかのsysctl
レベルの機能を引き継ぐことができた方法です。 Jettyアプリでは正常ですか、それともこのアプリに特有ですか?たぶんそれは私がそれに行く前にそれがインストールされたときに管理者パスワードを要求しましたか?今はわからない、気にしない。しかし、これをクリアすると、このアプリケーションがルーティングとファイアウォール機能をハイジャックしなくなったため、このボックスの多くのネットワークの問題がクリアされました。
考えただけですが、ツールauditctl
を使用して、どのプロセスが/etc/sysctl.conf
に影響を与えているかを確認できます。
このスレッドでauditctlの詳細を読むことができます:
具体的にはこの答え:
要点は、次のコマンドを実行することです。
% Sudo auditctl -p a -w /etc/sysctl.conf
次に、ログファイルを見て、誰が有罪のプロセスであるかを確認します。
% tail -f /var/log/audit/audit.log