특정 연결을 명시적으로 허용하도록 VPN 서버에 대한 ufw 방화벽/iptable 규칙을 어떻게 설정합니까?

특정 연결을 명시적으로 허용하도록 VPN 서버에 대한 ufw 방화벽/iptable 규칙을 어떻게 설정합니까?

VPN에 연결하고 싶습니다. VPN 터널(VPN 서버 제외)에 연결이 들어오고 나가지 않도록 ufw 방화벽 또는 iptables를 활성화하고 싶습니다. ufw나 iptables를 사용하여 이를 얻는 방법을 알려주실 수 있나요? VPN 연결만 허용되는 것 같습니다.

답변1

깨끗한 iptables 구성에서:

iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
iptables -N VPN
iptables -A INPUT -i $vpn -j VPN
iptables -A INPUT -j REJECT --reject-with icmp-host-prohibited
iptables -A FORWARD -j REJECT --reject-with icmp-host-prohibited
iptables -A OUTPUT -o lo -j ACCEPT
iptables -A OUTPUT -o $vpn -j VPN
iptables -A OUTPUT -j REJECT --reject-with icmp-host-prohibited
iptables -A VPN -j ACCEPT

$vpn을 VPN 클라이언트에서 생성한 인터페이스로 바꾸세요. 수신 패킷에 대한 정책:

  • -i lo -j ACCEPT루프백에서 패킷 수락
  • -m conntrack --ctstate RELATED,ESTABLISHED설정된 연결을 수락합니다.
  • -i $vpn -j VPNVPN 인터페이스에서 들어오는 패킷은 -N VPNVPN에 대한 모든 정책을 정의할 수 있는 새로 생성된( ) VPN 체인에 의해 처리됩니다. 해당 라인과 OUTPUT 체인의 해당 라인에서 패킷을 확실히 받아들일 수 있지만 이 방법이 논리적으로 더 명확하다고 생각합니다.
  • -j REJECT --reject-with icmp-host-prohibited다른 모든 것을 거부하십시오.
  • -A FORWARD -j REJECT --reject-with icmp-host-prohibited또한 모든 전달 요청을 거부합니다.

관련 정보