특정 포트를 통한 OpenVPN 허용 - CentOS 6.5

특정 포트를 통한 OpenVPN 허용 - CentOS 6.5

저는 VPS(CentOS 6.5)를 소유하고 있습니다. 이 서버에 OpenVPN을 설치했습니다. 모든 것이 잘 작동하고 연결하고 서핑할 수 있습니다. 서버의 내 IP가 1.2.3.4. VPS에 연결하면 내 IP는 1.2.3.4.

또한 포트 8069에서 실행되는 OpenERP(동일한 VPS에)를 설치했습니다.

내가 달성하려는 것은 VPN 트래픽을 제외한 포트 8069의 모든 트래픽을 차단하는 것입니다. 따라서 에 액세스하려면 OpenVPN을 사용하여 VPS에 연결해야 합니다 http://1.2.3.4:8069.

나는 인터넷에서 여러 iptables 튜토리얼을 시도했지만 그 중 어느 것도 작동하지 않습니다.

예를 들어:

iptables -A INPUT -p tcp -s 1.2.3.4 --dport 8069 -j ACCEPT 
or 
iptables -A INPUT -p tcp -s  10.8.0.0/24 --dport 8069 -j ACCEPT
or
iptables -I INPUT \! --src 10.8.0.0/24 -m tcp -p tcp --dport 8069 -j DROP
or
iptables -I INPUT \! --src 1.2.3.4 -m tcp -p tcp --dport 8069 -j DROP

이것들은 예입니다. 나는 더 많은 규칙을 시도했습니다. 제가 따라한 모든 튜토리얼은 포트 8069의 모든 트래픽을 차단합니다. OpenVPN을 사용하여 VPS에 연결하더라도 액세스할 수 없습니다 http://1.2.3.4:8069.

내 VPN 연결을 제외하고 포트 8069의 모든 트래픽을 차단하는 방법을 아는 사람이 있나요? 이를 어떻게 달성합니까?

내 server.conf는 다음과 같습니다

port 1194
proto udp
dev tun
ca ca.crt
cert server.crt
key server.key
dh dh2048.pem
server 10.8.0.0 255.255.255.0
push "redirect-gateway def1"
push "dhcp-option DNS 10.8.0.1"
user nobody
group nobody
keepalive 5 30
cipher AES-256-CBC   
comp-lzo
persist-key
persist-tun
verb 5

내 클라이언트 conf는 다음과 같습니다

dev tun
client
proto udp
remote 1.2.3.4
port 1194
resolv-retry infinite
nobind
redirect-gateway def1
persist-key
persist-tun
ca ca.crt
cert nika-pc.crt
key nika-pc.key
cipher AES-256-CBC   
comp-lzo
ns-cert-type server
verb 5

미리 감사드립니다.

편집하다:

출력: iptables -L -n -v

http://pastebin.com/RhzFBG8R

출력: iptables -L -n -v | 머리

http://pastebin.com/n6gLe68s

답변1

내 말은, 그것은 복잡한 방화벽 설정입니다(비록끔찍한많은 규칙에는 패킷 수가 0이므로 거기에 역사적 허위가 많이 있다고 생각됩니다. 어떤 기존 규칙이 이 트래픽을 잘못 포착하고 있는지 자세히 조사하는 대신 관련 규칙을 맨 위에 놓는 것이 좋습니다.

iptables -I INPUT 1 -p tcp -i tun+ --dport 8069 -j ACCEPT
iptables -I INPUT 2 -p tcp --dport 8069 -j REJECT

편집하다: 시간이 지나도 그대로 유지될 수도 있고 그렇지 않을 수도 있는 끝없는 일련의 페이스트빈 링크를 남기는 대신 질문에 대한 업데이트를 편집하는 것이 좋습니다. 어쨌든 새로운 결과물에 감사드립니다. 보시다시피, 첫 번째 규칙의 패킷 수는 0이지만 두 번째(포괄적 거부) 규칙의 패킷 수는 확실히 그렇지 않습니다. 남은 유일한 결론은 OpenVPN 연결을 사용하는 이 트래픽에 대해 착각하고 있다는 것입니다. 그것은 일반 텍스트 인터넷을 통해 매우 명확하게 전달됩니다. 당신이되고 싶다면완전히물론입니다. 위의 두 규칙 사이에 세 번째 규칙을 추가하세요.

iptables -I INPUT 2 -p tcp --dport 8069 -j LOG --log-prefix "CARROT: "

로그 파일에 해당 단어가 많이 나타나지 않는 한 시스템 로그( 또는 /your distro에서 적절하다고 판단하는 항목 ) CARROT에서 해당 일치 항목의 출력을 쉽게 찾을 수 있어야 하며 거부되는 패킷이 어떤 인터페이스로 들어오는지 확인해야 합니다. 에. 나는 그것이 될 것이라고 기대하지 않습니다 ./var/log/messagessyslogtun0

답변2

댓글을 달 수 없어서 답변을 추가합니다. 사용된 프로토콜은 tcp가 아닌 udp인 것 같습니다.

iptables -I INPUT 1 -p udp -i tun+ --dport 8069 -j ACCEPT
iptables -I INPUT 2 -p udp --dport 8069 -j REJECT

관련 정보