특정 공용 IP로만 들어오는 트래픽을 허용합니다.

특정 공용 IP로만 들어오는 트래픽을 허용합니다.

저는 2개의 공용 IP 주소(90.90.90.90 및 90.90.90.100)를 가진 Debian VPS를 가지고 있습니다.

내가 하고 싶은 것은 서버가 다른 공용 IP로 들어오는 트래픽만 허용하도록 만드는 것입니다.

예:

서버에서 OpenVPN 서버가 실행되고 있습니다. 90.90.90.90에 VPN 연결을 하면 공용 IP는 90.90.90.100이 됩니다. (현재상황입니다)

저는 OpenVPN 포트가 90.90.90.100에 대해 열려 있는 것을 원하지 않고 서버에 연결할 때 사용하는 다른 IP에 대해서만 열려 있습니다.

iptables나 다른 방법을 사용하여 이것이 가능합니까?

감사해요!

답변1

이것이 어디로 가는지 이해한다면 IP #1에 설정된 VPN 연결이 나가는 연결을 IP #2로 가장하고, IP ​​#2에 만들어진 VPN 연결이 나가는 연결을 IP #1로 가장하기를 원할 것입니다.

이 답변을 위해 90.90.90.90 IP #1 및 90.90.90.100 IP #2를 호출하겠습니다.

이를 수행하는 가장 쉬운 방법은 2개의 openvpn 서버를 실행하는 것입니다. 서로 다른 프라이빗 서브넷 범위로 각각을 설정합니다. 예를 들어 IP #1에서 들어오는 연결은 10.0.1.0/24 범위의 주소를 받고, IP ​​#2에서 들어오는 연결은 10.0.2.0/24 범위의 주소를 받습니다.

구성 파일은 세 줄을 제외하고 대부분 원래 구성과 동일합니다. 첫 번째 구성에는 다음이 포함됩니다.

local 90.90.90.90
server 10.0.1.0 255.255.255.0
push "route 10.0.1.0 255.255.255.0"

두 번째는 대신 다음을 갖습니다.

local 90.90.90.100
server 10.0.2.0 255.255.255.0
push "route 10.0.2.0 255.255.255.0"

openvpn 서비스를 다시 시작하여 두 구성 파일이 모두 활성화되었는지 확인하세요.

그런 다음 VPN 서버를 떠날 때 연결이 올바른 외부 IP 주소를 얻도록 하려면 다음 iptables 규칙을 사용할 수 있습니다. eth0을 실제 인터페이스 이름으로 바꿉니다.

iptables -t nat -A POSTROUTING -s 10.0.1.0/24 -o eth0 -j SNAT --to 90.90.90.100
iptables -t nat -A POSTROUTING -s 10.0.2.0/24 -o eth0 -j SNAT --to 90.90.90.90

이제 VPN 연결이 하나의 IP로 들어오고 다른 IP로 가장하여 나갑니다. 이는 필요 이상으로 복잡할 수 있습니다. 특히 실행할 이유가 없습니다.VPN 서버의 경우 구성 중 하나를 제거하고 나머지 구성만 독점적으로 사용하세요.

관련 정보