私は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
それを元に戻す方法はありますか?
私はこれを達成する方法を理解し、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など)でアクセスできるため、誤ってロックアウトされることはありません。