web-dev-qa-db-ja.com

CSFを使用した特定のインターフェイス/ IPで特定のポートを許可する

私はCSFについて学びました、そしてそれが私に与えるロギング/ブロッキングの可能性が好きです。ただし、目的のブロッキングは実行されません。

状況は次のとおりです。複数のIPアドレスを持つサーバーがあります。私はIPでApacheを実行し、他のIPでsshを実行しています(したがって、私のサイトを標的とするハッカーは、sshまたは他のサービスを攻撃するための変更が少なくなります)。

Csf.allowに追加しました:

tcp|in|d=80|d=xx.xx.xx.xx
tcp|in|d=22|d=xx.xx.xx.xy

ただし、iptablesでは、allowがブロックの前に追加され、使用できなくなります。

Chain LOCALINPUT (1 references)
num   pkts bytes target     prot opt in     out     source               destination         
1     1074 92873 ACCEPT     tcp  --  !lo    *       0.0.0.0/0            xx.xx.xx.xy       tcp dpt:22 
2    34401 2163K ACCEPT     tcp  --  !lo    *       0.0.0.0/0            xx.xx.xx.xx       tcp dpt:80 
3        0     0 DROP       all  --  !lo    *       xx.xx.xx.hacker1     0.0.0.0/0           
4        0     0 DROP       all  --  !lo    *       xx.xx.xx.hacker2     0.0.0.0/0           

それを元に戻す方法はありますか?

2
Paul Jacobse

私はこれを達成する方法を理解し、csf.plを次のように変更しました。

sub linefilter $ inaddを交換しました(1923行目)。

元の:

my $inadd = "-I";
if ($ad eq "deny") {
    $inadd = "-A";

新着:

my $inadd = "-A";
if ($ad eq "deny") {
    $inadd = "-I";

オリジナルが最も一般的な方法だと思いますが、特定のポート/ IPをフィルタリングしたい場合は、これが解決策です。無視リストに独自の(外部)IPがあることを確認してください。そうでない場合は、マシンに簡単に物理(またはkvm over ipなど)でアクセスできるため、誤ってロックアウトされることはありません。

0
Paul Jacobse