我正在使用PAM身份验证与我的Linux服务器进行身份验证。我已经通过Apache 2在我的网站上创建了一个视图,在那里我可以使用Python通过带有面部识别和双因素身份验证的Web shell手动验证每次登录。这是有效的,但我似乎无法恢复传入连接的IP地址。我需要一种方法来在SSH连接之前找到我到服务器的连接的IP地址,在运行Python的PAM模块中,我想使用bash来实现这一点。
我尝试执行命令来恢复IP地址,我尝试使用“who”和其他命令来查看传入的SSH连接,但没有成功。我还尝试使用“echo $PAM_RHOST”和“$SSH_CLIENT”以及“$SSH_CONNECTION”,但没有成功。
1条答案
按热度按时间eoigrqb61#
要在连接SSH之前获取传入连接的IP地址,您可以尝试使用“tcpdump”包中的“tcp”程序。下面是一个示例命令,您可以使用它来捕获传入流量并按源IP地址过滤它:
替换<source_ip_address>为您正在连接的计算机的IP地址。此命令将捕获eth0接口上与指定源IP地址和目标端口(SSH为端口22)匹配的所有传入流量。输出将包括捕获数据包的源和目标的IP地址和端口,其中应包括传入连接的IP地址。
你可以使用Python中的subprocess模块从PAM模块执行这个命令,并捕获它的输出,下面是一个例子:
这将执行tcpdump命令并将其输出捕获到result变量中,然后可以解析输出以提取传入连接的IP地址。
请注意,您可能需要以root权限运行此命令来捕获网络流量。