現在のルールがどれくらい消費しているか知りたいですCPU
。memory
iptables
ps
andを見ようとしましたが、htop
カーネルスレッドが表示されてもiptables
。
私はconntrack
以下のモジュール固有の設定を持つモジュールを使用していますxt_recent.ip_pkt_list_tot=1
xt_recent.ip_list_tot=4096
。4096
かなり高いと思います。次に、iptables設定で2種類のブロックリストを使用しますBLACKLIST
。PORTSCAN
-A INPUT -i eth0 -p icmp -j ACCEPT
-A INPUT -i eth0 -s 1.2.3.4/32 -j ACCEPT
-A INPUT -i eth0 -m recent --rsource --name BLACKLIST --seconds 14400 --update -j DROP
-A INPUT -i eth0 -p tcp -m tcp --dport 25 -j ACCEPT
-A INPUT -i eth0 -m recent --rsource --name PORTSCAN --seconds 3600 --update -j DROP
-A INPUT -i eth0 -p udp -m udp --dport 5060 -j ACCEPT
-A INPUT -i eth0 -p tcp -m tcp --dport 5061 -j ACCEPT
-A INPUT -i eth0 -p udp -m udp --dport 5062:5100 -j ACCEPT
-A INPUT -i eth0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i eth0 -m recent --rsource --name PORTSCAN --set -j DROP
-A INPUT -i eth0 -j DROP
-A INPUT -j DROP
私のサーバーにネットワークの問題があり、私のiptables
ルールが機能しているようです。たとえば、
- 私の
ssh
会議は引き続きキャンセルされます。 - Pingはパケット損失率が0.2%であると報告します。
許可されたポートに接続すると、つまりプロジェクトが多い場合は空の場合
5060
よりも時間がかかります。PORTSCAN
この問題を解決するための最良の方法は何ですか?
- iptablesルールをいくつか最適化できますか?
- 私のCPU使用量をどのように確認しますか
iptables
?
ベストアンサー1
Linuxカーネルプロセス:
多くのカーネル機能(たとえば、Iptables)は、カーネルレベルでkworkerジョブとして扱われ、タスクマネージャ(topなど)に表示されます。説明で説明したように、ルールがロードされた場合とロードされていない場合の合計リソース使用量を比較して、CPUとメモリ使用量を計算できますiptables
。ipset
ルールで使用していなくてもすでにメモリを消費していることに注意してください。
コボック特に、割り込み、タイマー、I/O などがある場合、カーネルの実際の処理の大部分を実行するカーネルワーカースレッドのプレースホルダプロセスです。これは通常、実行中のプロセスに割り当てられている「システム」時間の大部分に対応します。何らかの方法でシステムから安全に削除できるわけではなく、デスクトップアプリケーションとはまったく関係ありません(プログラムがシステムコールを実行してカーネルがこれを行う必要がある場合を除く)。また、kworker
Linuxカーネルプロセスが「タスク」(システムコール処理)を実行していることを意味します。プロセスリストには複数のプロセスがあります。kworker/0:1
最初のCPUコアに1つ、kworker/1:1
2番目のCPUコアに1つなどがあります。すべてのカーネルプロセスは、次のサブプロセスで始まります。糸カーネル空間のプロセス。
親プロセス:プロセスIDはkthreadd
2で、このカーネルワーカープロセスは次のようにリストできます。
pstree 2 -l -p
# or
ps --ppid 2 -u
# or
ps --ppid 2 -o pid,user,%mem,command,time,etime,cpu,pcpu,nice,pcpu,vsz
最後に、bash + cronスクリプトと一緒に使用して変更を観察できます。または、直接タイミング解析に()をperf
使用することもできます。apt-get install linux-tools-common linux-tools-3.11.0-15-generic
# Record 10 seconds of backtraces on all your CPUs:
sudo perf record -g -a sleep 10
# Analyse your recording:
sudo perf report
次のコマンドを使用して呼び出しグラフを見つけます。←、→、↑、↓そしてEnter。