VPN을 통한 SSH만 허용하는 iptables 규칙을 어떻게 정의합니까? 내 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에게 감사드립니다.