使用 CSF 允许特定接口/ip 上的特定端口

使用 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 中,允许是在阻止之前添加的,因此它毫无用处。

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           

有办法扭转这种局面吗?

答案1

我弄清楚了如何实现这一点,我用以下内容更改了 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 等)访问机器,这样您就不会被意外锁定!

相关内容