切换主题
SSH限制IP连接
由于我这里使用的iptables,这里主要讲iptables
iptables组成
iptables 是 Linux 系统中用于配置和管理网络包过滤与防火墙功能的工具。它允许系统管理员定义一系列规则,以控制网络流量的进出。这些规则可以用于实现网络安全策略,如允许或拒绝特定类型的流量、端口、IP 地址等。
以下是 iptables 的主要组成部分和功能
表(Table)
iptables 使用表来组织规则,每个表包含若干条规则,用于特定的网络功能。常见的表包括:
filter表
:用于基本的数据包过滤功能,如阻止或允许数据包通过防火墙。nat表
:用于网络地址转换(NAT),允许修改数据包的源或目标地址。mangle表
:用于修改数据包的各个字段,如 TTL、TOS 等。raw表
:用于配置原始数据包规则,通常在数据包进入连接追踪之前应用。
链(Chain)
每个表由一系列链组成,链是规则的集合点。数据包通过链按顺序进行处理,直到匹配到一条规则。常见的链包括:
INPUT
:处理进入系统的数据包。OUTPUT
:处理从系统发出的数据包。FORWARD
:处理经过系统的数据包,但不是源自本地系统的或不是发往本地系统的。PREROUTING
:用于 nat 表,处理数据包进入路由前。POSTROUTING
:用于 nat 表,处理数据包离开路由后。
规则(Rule)
规则是定义在链中的,用于指定要对数据包执行的操作。每条规则由匹配条件和动作组成。匹配条件可以基于数据包的源地址、目标地址、端口等。动作指定对匹配的数据包执行的操作,如允许、拒绝、修改等。
匹配模块(Match Module)
iptables 允许使用各种匹配模块来匹配数据包的不同部分。这些模块允许管理员根据特定的标准来过滤数据包,如 IP 地址、端口号、协议类型等。
目标(Target)
目标指定当数据包匹配规则时要执行的操作。常见的目标包括
ACCEPT
(允许数据包通过)DROP
(丢弃数据包)REJECT
(拒绝数据包并发送拒绝通知)LOG
(记录数据包信息)
限制IP访问
允许特定外部IP连接
shellsudo iptables -A INPUT -p tcp --dport 端口号 -s 外部IP地址 -j ACCEPT
拒绝所有其他网络连接
shellsudo iptables -A INPUT -p tcp --dport 端口号 -j DROP
允许内网访问
shelliptables -A INPUT -i lo -j ACCEPT
特别注意
慎用!!! 用之前请检查好IP相关内容,设置完即生效,若设置错误则连接不上,可以先试着设置拒绝某个IP访问,让后设置拒绝所有