centos 7 ip访问限制

第一种方法   TCP Wrappers配置文件

要确定客户端计算机是否允许连接到服务,TCP包装器将引用以下两个文件,这两个文件通常称为主机访问文件:

  • /etc/hosts.allow

  • /etc/hosts.deny

当TCP包裹服务接收到客户端请求时,需要执行以下基本步骤:

  1. 参考 /etc/hosts.allow- TCP包服务依次解析/etc/hosts.allow文件并应用为该服务指定 的第一个规则。如果它找到一个匹配的规则,它允许连接。如果没有,则转到步骤2。

  2. 参考 /etc/hosts.deny- TCP包裹的服务依次解析 /etc/hosts.deny文件。如果发现匹配的规则是拒绝连接。如果没有,则授予对服务的访问权限。

以下是使用TCP包装器保护网络服务时要考虑的重点:

  • 因为hosts.allow中的访问规则首先被应用,它们优先于hosts.deny中指定的规则 。因此,如果在hosts.allow中允许访问服务,则会拒绝在hosts.deny中拒绝访问同一服务的规则。

  • 每个文件中的规则从上到下读取,给定服务的第一个匹配规则是唯一应用的规则。因此,规则的顺序是非常重要的。

  • 如果在任一文件中找不到服务规则,或者两个文件都不存在,则授予对服务的访问权限。

  • TCP包裹的服务不会从主机访问文件缓存规则,所以对hostss.allow或 hosts.deny的任何更改都将立即生效,而无需重新启动网络服务。

格式化访问规则

/etc/hosts.allow和 /etc/hosts.deny 的格式是一样的。以哈希标记()开头的任何空白行或行都将被忽略,每个规则必须在自己的行上。

每个规则使用以下基本格式来控制对网络服务的访问:

  [:  :...]

访问控制

选项字段还允许管理员通过添加allow或 deny指令作为最终选项来明确允许或拒绝单个规则中的主机。

例如,以下两个规则允许来自client-1.example.com的 SSH 连接,但拒绝来自 client-2.example.com的连接

sshd:client-1.example.com:allow
sshd:client-2.example.com:deny

通过允许基于规则的访问控制,选项字段允许管理员将所有访问规则合并到单个文件中:hosts.allow或 hosts.deny有些人认为这是组织访问规则的更简单的方法。

第二种方法    xinetd

xinetd的守护进程是一个TCP包超级服务控制访问的流行的网络服务,包括FTP,IMAP,和Telnet的一个子集。它还提供访问控制,增强的日志记录,绑定,重定向和资源利用率控制的特定于服务的配置选项。

当客户端主机尝试连接到由xinetd控制的网络服务时,超级服务接收请求并检查任何TCP包装器访问控制规则。如果允许访问,则xinetd会根据其对该服务的访问规则验证连接是否允许, 并且该服务不比其分配的资源量或者违反任何定义的规则所消耗的多。然后它启动所请求的服务的实例,并将连接的控制传递给它。建立连接后,xinetd不会进一步干扰客户端主机和服务器之间的通信。

xinetd配置文件

xinetd 的配置文件如下所示:

  • /etc/xinetd.conf - 全局 xinetd配置文件。

  • /etc/xinetd.d/目录 - 包含所有服务特定文件的目录。

/etc/xinetd.conf中的文件

/etc/xinetd.conf中文件包含常规配置设置其作用下,每一个服务 的xinetd的控制。当xinetd服务启动时,它被读取一次 ,因此要使配置更改生效,管理员必须重新启动 xinetd服务。以下是一个示例 /etc/xinetd.conf文件:

默认值
{
        实例= 60
        log_type = SYSLOG authpriv
        log_on_success = HOST PID
        log_on_failure =主机
        cps = 25 30
}
includedir /etc/xinetd.d

这些行控制了xinetd的以下几个方面 :

  • 实例 - 设置xinetd可以一次处理的最大请求数。

  • log_type - 将 xinetd配置为使用authpriv 日志功能,它将日志条目写入 / var / log / secure文件。添加一个指令,如文件/ var /日志/ xinetdlog将创建名为自定义日志文件xinetdlog中 的/ var /日志/目录。

  • log_on_success - 如果连接成功,则将xinetd配置为记录。默认情况下,记录远程主机的IP地址和处理请求的服务器的进程ID。

  • log_on_failure - 如果连接失败或连接不允许,请将xinetd配置为记录。

  • cps - 配置 xinetd允许每秒不超过25个连接到任何给定的服务。如果达到此限制,服务将退休30秒钟。

  • includesir /etc/xinetd.d/ - 包括在/etc/xinetd.d/目录中的服务特定配置文件中声明的选项。

/etc/xinetd.d/目录目录

在该文件中/etc/xinetd.d/目录目录包含的配置文件通过管理的每个服务 的xinetd和文件的名称相关的服务。与xinetd.conf一样,只有当xinetd服务启动时,才会读取该文件。要使任何更改生效,管理员必须重新启动 xinetd服务。

/etc/xinetd.d/ 目录中的文件格式 使用与/etc/xinetd.conf相同的 约定。将每个服务的配置存储在单独的文件中的主要原因是使定制变得更容易,更不可能影响其他服务。

要了解这些文件的结构,请考虑/etc/xinetd.d/telnet文件:

服务telnet
{
        flags = REUSE
        socket_type = stream
        等待=否
        user = root
        server = /usr/sbin/in.telnetd
        log_on_failure + = USERID
        disable = yes
}

这些线路控制telnet 服务的各个方面:

  • 服务 - 定义服务名称,通常是/ etc / services文件中列出的。

  • flags - 设置连接的多个属性中的任何一个。REUSE 指示xinetd重新使用套接字进行Telnet连接。

  • socket_type - 设置要传输的网络套接字类型。

  • wait - 定义服务是单线程()还是多线程()。

  • user - 定义流程进程将在以下运行的用户ID。

  • server - 定义要启动的二进制可执行文件。

  • log_on_failure - 除了已经在xinetd.conf中定义的那些之外,还定义log_on_failure的日志记录参数

  • disable - 定义服务是否处于活动状态。

更改xinetd配置文件

xinetd保护服务 有很多种类的指令 。本节重点介绍一些更常用的选项。

记录选项

以下记录选项均可用于 /etc/xinetd.conf中和中的特定服务配置文件/etc/xinetd.d/目录 的目录。

以下列出了一些常用的日志记录选项:

  • ATTEMPT - 记录尝试失败的事实(log_on_failure)。

  • DURATION - 记录远程系统使用服务的时间长度(log_on_success)。

  • 退出 - 记录服务的退出状态或终止信号(log_on_success)。

  • HOST - 记录远程主机的IP地址(log_on_failure和 log_on_success)。

  • PID - 记录接收请求的服务器的进程ID(log_on_success)。

  • USERID - 使用RFC 1413中为所有多线程流服务(log_on_failure和 log_on_success)定义的方法记录远程用户。

有关日志记录选项的完整列表,请参阅 xinetd.conf手册页。

访问控制选项

xinetd服务的 用户可以选择使用TCP包装器主机访问规则,通过xinetd配置文件或两者的混合提供访问控制 。

本节讨论使用xinetd控制对服务的访问。

注意
 

与TCP包装器不同,访问控制的更改只有在xinetd管理员重新启动xinetd服务时 才会生效。

此外,与TCP包装器不同,通过xinetd的访问控制仅影响由xinetd控制的 服务 。

xinetd的主机访问控制不同于通过TCP封装所使用的方法。虽然TCP封装两个文件中的所有访问配置的地方 文件/etc/hosts.allow和 /etc/hosts.deny中xinetd的的访问控制是在每个服务的配置文件中找到/etc/xinetd.d/目录的目录。

xinetd支持以下 主机访问选项:

  • only_from - 仅允许指定的主机使用该服务。

  • no_access - 阻止列出的主机使用该服务。

  • access_times - 指定可能使用特定服务的时间范围。时间范围必须以24小时制格式表示, HH:MM-HH:MM

符Only_fromno_access 选项可以使用IP地址或主机名的列表,或者可以指定整个网络。像TCP包装器一样,将 xinetd访问控制与增强的日志记录配置相结合可以通过阻止来自被禁止的主机的请求来提高安全性,同时详细记录每个连接尝试。

例如,下面的/etc/xinetd.d/telnet 文件可用于阻止来自特定网络组Telnet访问和限制,即使是允许的用户可以登录的总时间范围:

服务telnet
{
        disable =否
        flags = REUSE
        socket_type = stream
        等待=否
        user = root
        server = /usr/sbin/in.telnetd
        log_on_failure + = USERID
        no_access = 10.0.1.0/24
        log_on_success + = PID HOST EXIT
        access_times = 09:45-16:15
}

在此示例中,当10.0.1.0/24网络(如10.0.1.2)的客户端系统尝试访问Telnet服务时,会收到一条消息,指出以下消息:

外部主机关闭连接。

此外,他们的登录尝试记录在 / var / log / secure中,如下所示:

5月15日17:38:49 boo xinetd [16252]:START:telnet pid = 16256 from = 10.0.1.2
5月15日17:38:49 boo xinetd [16256]:FAIL:telnet address from = 10.0.1.2
5月15日17:38:49 boo xinetd [16252]:EXIT:telnet status = 0 pid = 16256

当将TCP包装器与 xinetd访问控制结合使用时,了解两个访问控制机制之间的关系很重要。

以下是当客户端请求连接时xinetd后面的操作顺序 :

  1. xinetd的守护程序通过访问TCP包装的主机访问规则 libwrap.a库调用。如果拒绝规则与客户端主机匹配,则连接将被删除。如果允许规则与客户端主机匹配,则将连接传递给 xinetd

  2. xinetd的守护程序检查其自己的访问控制规则,既为xinetd的服务和所请求的服务。如果拒绝规则与客户端主机匹配,则连接将被删除。否则,xinetd 启动所请求服务的实例,并将连接的控制传递给它。

重要
 

使用TCP包装器访问控制与xinetd访问控制一起应该小心。配置错误可能会导致不良影响。

绑定和重定向选项

xinetd 的服务配置文件 支持将服务绑定到IP地址,并将该服务的传入请求重定向到另一个IP地址,主机名或端口。

绑定通过服务特定配置文件中的绑定选项进行控制,并将服务链接到系统上的一个IP地址。一旦配置,绑定 选项只允许请求正确的IP地址来访问服务。这样可以根据需要将不同的服务绑定到不同的网络接口。

这对于具有多个网络适配器或配置了多个IP地址的系统特别有用。在这样一个系统上,不安全的服务(如Telnet)可以被配置为仅在连接到专用网络的接口上监听,而不是连接到与Internet连接的接口。

重定向选项接受后跟端口号的IP地址或主机名。它配置服务以将此服务的任何请求重定向到指定的主机和端口号。该功能可用于指向同一系统上的另一个端口号,将请求重定向到同一机器上的不同IP地址,将请求转移到完全不同的系统和端口号,或这些选项的任意组合。以这种方式,连接到系统上的某些服务的用户可以被重新路由到另一个系统而不中断。

xinetd的守护进程能够通过产卵,对于请求的客户机和主机之间的连接的持续时间保持活着实际提供的服务,在两个系统之间传输数据的过程来完成此重定向。

但是,绑定和 重定向选项的优点在一起使用时最为明显。通过将服务绑定到系统上的特定IP地址,然后将该服务的请求重定向到仅第一台机器可以看到的第二台机器,可以使用内部系统为完全不同的网络提供服务。或者,这些选项可用于将多宿主机器上的特定服务的曝光限制为已知的IP地址,以及将针对该服务的任何请求重定向到为此目的特别配置的另一台机器。

例如,考虑用作其Telnet服务的此设置的防火墙系统:

服务telnet
{
        socket_type = stream
        等待=否
        server = /usr/sbin/in.telnetd
        log_on_success + = DURATION USERID
        log_on_failure + = USERID
        bind = 123.123.123.123
        redirect = 10.0.1.13 23
}

此文件中 的绑定重定向选项确保机器上的Telnet服务绑定到外部IP地址(123.123.123.123),面向Internet。此外,发送到123.123.123.123的Telnet服务的任何请求都将通过第二个网络适配器重定向到仅防火墙和内部系统可以访问的内部IP地址(10.0.1.13)。防火墙然后在两个系统之间发送通信,当连接系统实际连接到不同的机器时,连接系统认为它连接到123.123.123.123。

此功能对于具有宽带连接和仅一个固定IP地址的用户特别有用。当使用网络地址转换(NAT)时,网关机器后面的系统(仅使用内部IP地址)在网关系统外部不可用。然而,当由xinetd控制的某些服务配置了 绑定重定向选项时,网关机器可以充当外部系统和配置为提供服务的特定内部机器之间的代理。此外,各种xinetd访问控制和记录选项也可用于额外的保护。

资源管理选项

xinetd的守护进程可以从服务(DoS)攻击拒绝加保护的基本水平。以下是可以帮助限制此类攻击的有效性的指令列表:

  • per_source - 定义每个源IP地址的服务的最大实例数。它只接受整数作为参数,并且可以 在xinetd.d /目录中的xinetd.conf和服务特定的配置文件中使用 。

  • cps - 定义每秒最大连接数。此伪指令使用两个由空格分隔的整数参数。第一个是每秒允许服务允许的最大连接数。第二个是在重新启用服务之前xinetd必须等待的秒数。它只接受整数作为参数,并且可以 在xinetd.d /目录中的xinetd.conf和服务特定的配置文件中使用 。

第三种方法   firewall配置

   firewall-cmd --permanent --add-rich-rule 'rule family=ipv4 source address=192.168.0.1/2 port port=80 protocol=tcp accept' 配置防火墙ip和端口规则

三种方法之间的关系


centos 7 ip访问限制_第1张图片



你可能感兴趣的:(LINUX)