나는 팔로우하고 있다공식 데비안 위키 튜토리얼Debian 11에서 VPN 서버를 설정합니다.
Forward traffic to provide access to the Internet
마지막 단락을 제외하고는 모든 것이 순조롭게 진행되었습니다.
다음 줄은 작동하지 않습니다.
IF_MAIN=eth0
IF_TUNNEL=tun0
YOUR_OPENVPN_SUBNET=10.9.8.0/24
#YOUR_OPENVPN_SUBNET=10.8.0.0/16 # if using server.conf from sample-server-config
nft add rule ip filter FORWARD iifname "$IF_MAIN" oifname "$IF_TUNNEL" ct state related,established counter accept
nft add rule ip filter FORWARD oifname "$IF_MAIN" ip saddr $YOUR_OPENVPN_SUBNET counter accept
nft add rule ip nat POSTROUTING oifname "$IF_MAIN" ip saddr $YOUR_OPENVPN_SUBNET counter masquerad
출력은 다음과 같습니다.
root@server:/home/user# nft add rule ip filter FORWARD iifname "$IF_MAIN" oifname "$IF_TUNNEL" ct state related,established counter accept
Error: Could not process rule: No such file or directory
add rule ip filter FORWARD iifname enp1s0 oifname tun0 ct state related,established counter accept
^^^^^^
3개의 명령에서 비슷한 오류가 발생합니다. 뭔가 빠졌나요? 튜토리얼에서 빠진 내용이 있나요?
답변1
iptables-nft
데비안 위키 지침은 데비안 10 이상의 기본 버전인 (또는 패키지에 포함된 기본 스텁)에 의해 생성된 호환성 테이블과 체인 위에 작성된 것 같습니다 ./etc/nftables.conf
nftables
iptables
완전히 빈 구성으로 시작하는 경우 nftables
규칙을 추가하기 전에 먼저 테이블과 체인을 생성해야 합니다.
IF_MAIN=eth0
IF_TUNNEL=tun0
YOUR_OPENVPN_SUBNET=10.9.8.0/24
# Create a rules table for IPv4, named "custom":
nft create table ip custom
# Create a forward filter chain with the standard priority and
# iptables-resembling name "FORWARD", into the "custom" table
# created above:
# (priority filter == priority 0, see "man nft")
nft add chain ip custom FORWARD { type filter hook forward priority filter\; }
# Create a NAT filter chain with the iptables-like name "POSTROUTING" too:
nft add chain ip custom POSTROUTING { type nat hook postrouting priority srcnat\; }
# now you can start adding your filter rules
nft add rule ip custom FORWARD iifname "$IF_MAIN" oifname "$IF_TUNNEL" ct state related,established counter accept
nft add rule ip custom FORWARD oifname "$IF_MAIN" ip saddr $YOUR_OPENVPN_SUBNET counter accept
nft add rule ip custom POSTROUTING oifname "$IF_MAIN" ip saddr $YOUR_OPENVPN_SUBNET counter masquerade
이렇게 하면 모든 사용자 정의 규칙이 라는 테이블에 저장됩니다 custom
. 나중에 자체 nftables 규칙을 생성하는 다른 소프트웨어를 추가하면 자체 테이블을 사용할 가능성이 높으므로 실수로 사용자 정의 규칙을 삭제할 가능성이 제거됩니다. 다른 테이블의 규칙 체인이 합리적인 순서로 처리되도록 후크 우선순위를 확인하고 필요한 경우 조정하면 됩니다.
참고: custom
여기 FORWARD
에는 POSTROUTING
이름만 나와 있습니다. 원하는 이름으로 변경할 수 있습니다. 그 외 모든 항목에는 특정한 의미가 있습니다.
또한 단일 명령으로 모든 사용자 정의 규칙을 즉시 삭제하거나 일시적으로 비활성화할 수도 있습니다.
nft add table ip custom { flags dormant; } # temporary disable
nft add table ip custom # re-enable
nft delete table ip custom # wipe custom rules completely
이는 규칙 세트 문제를 해결할 때 도움이 될 수 있습니다.
규칙을 지속되게 만들려면 다음 안내를 따르세요.
nft list ruleset > /etc/nftables.conf # save the current rules
systemctl enable nftables.service # enable loading rules at boot
답변2
nftables
하다아니요모든 테이블이나 규칙은 기본적으로 포함되며 수동으로 생성해야 합니다.
여기의 설명서를 따르십시오.