通过 VPN 配置 iptables ssh

通过 VPN 配置 iptables ssh

如何在 iptables 中定义仅允许通过 VPN 进行 ssh 的规则?我的 iptable 规则如下:

#!/bin/sh
IPT="/sbin/iptables"
$IPT --flush
$IPT --delete-chain
$IPT -P INPUT DROP
$IPT -P FORWARD DROP
$IPT -P OUTPUT DROP
$IPT -A INPUT -i lo -j ACCEPT
$IPT -A OUTPUT -o lo -j ACCEPT
$IPT -A INPUT -p tcp ! --syn -m state --state NEW -s 0.0.0.0/0 -j DROP
$IPT -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPT -A INPUT -p tcp --dport 22 -m state --state NEW -s 0.0.0.0/0 -j ACCEPT
$IPT -A INPUT -p udp --dport 1194 -m state --state NEW -s 0.0.0.0/0 -j ACCEPT
$IPT -I OUTPUT 1 -m state --state RELATED,ESTABLISHED -j ACCEPT
$IPT -A OUTPUT -p udp --dport 53 -m state --state NEW -j ACCEPT

因此只允许 ssh 和 VPN 连接。但我只想通过 VPN 建立 ssh 连接。

答案1

我只是添加以下规则:

$IPT -A INPUT -i tun0 -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPT -A INPUT -i tun0 -p tcp --dport 22 -j ACCEPT

并删除该行:

$IPT -A INPUT -p tcp --dport 22 -m state --state NEW -s 0.0.0.0/0 -j ACCEPT

谢谢@Drav Sloan 的提示。

相关内容