[server] 연결된 사용자를 확인하여 VPN 서버를 여는 방법은 무엇입니까?

Django 프레임 워크로 OpenVPN 사용자를 관리하기위한 웹 사이트를 개발 중입니다. 그러나 OpenVPN에서 활성 사용자를 추출 할 수있는 방법이 있는지 알아야합니다. 내 서버에서 Ubuntu 12.04를 실행 중입니다.



답변

보여줄 수있는 상태 로그가 있어야합니다. 예를 들면 다음과 같습니다.

cat /etc/openvpn/openvpn-status.log

편집하다:

--management IP port [pw-file]또는 플래그를 추가하거나 동일한 지시문을에 추가하십시오 ( server.conf예 :

management localhost 7505

이를 통해 해당 포트로 텔넷으로 연결하고 실행할 명령 목록을 제공 할 수 있습니다.

telnet localhost 7505

help


답변

@sekrett 답변 을 완료하려면 :

killall -USR2 openvpn ; tail -f /var/log/syslog

계속 작동하며 “일반적인”킬이 아니라 일부 통계 인쇄 요청입니다.

표시되는 통계는 매우 읽기 쉽습니다. 샘플 출력 :

Oct 14 07:34:14 vpn2 openvpn[20959]: Updated,Fri Oct 14 07:34:14 2016
Oct 14 07:34:14 vpn2 openvpn[20959]: Common Name,Real Address,Bytes Received,Bytes Sent,Connected Since
Oct 14 07:26:26 vpn2 openvpn[20959]:
10.8.0.132,hostname1,213.219.XXX.XXX:63765,Fri Oct 14 07:25:01 2016
Oct 14 07:26:26 vpn2 openvpn[20959]:
10.8.0.242,hostname2,213.219.XXX.XXX:62416,Sun Sep 25 03:49:19 2016


답변

나는 나 자신도 똑같은 필요를 얻었고 내가 찾은 가장 쉬운 해결책은 언급 한 텔넷을 사용하여 관리 인터페이스에 연결하는 것입니다 ( 서버 구성 파일에 관리 로컬 호스트 6666 을 추가해야 합니다).

정확한 클라이언트 수를 얻으려면 다음을 수행하십시오.

  • 텔넷 로컬 호스트 6666
  • 지위

그런 다음 많은 로그를 얻을 수 있습니다.

10.9.10.11,test-docker,52.58.48.98:56859,Wed May  4 09:37:34 2016
10.9.7.45,test-docker,52.58.156.80:38774,Wed May  4 09:36:59 2016
10.9.1.103,test-docker,52.58.161.230:52201,Wed May  4 09:35:47 2016
GLOBAL STATS
Max bcast/mcast queue length,0
END
>CLIENT:ESTABLISHED,19845
>CLIENT:ENV,n_clients=19361
>CLIENT:ENV,time_unix=1462357164
  • =>> CLIENT : ENV, n_clients = 19361을 찾으십시오.

필자의 경우 매우 많은 수의 클라이언트가 있으므로 로그 파일을 사용하는 것은 그리 실용적이지 않습니다.


답변

통계 정보를 syslog에 기록하도록 usr2 신호를 openvpn 프로세스로 보낼 수도 있습니다. 이것은 안전합니다. 전에 관리 인터페이스를 활성화하지 않은 경우 다시 부팅 할 필요가 없습니다.


답변

회사 OpenVPN 서버를 관리하며 활성 연결을 보는 방식은 다음과 같습니다.

/etc/openvpn/server.conf에 추가

management 127.0.0.1 5555

openvpn 서버를 다시 시작하십시오

systemctl restart openvpn@server.service

OpenVPN Monitor Python 패키지 추가-Gunicorn 웹 서버를 통해 실행되며 활성 연결을 보여줍니다.

mkdir /opt/openvpn-monitor

가상 환경을 만듭니다 (필수는 아니지만 py 패키지를 사용하는 것이 좋습니다)

cd /opt/openvpn-monitor
virtualenv venv
source venv/bin/activate

필수 패키지 설치

pip install openvpn-monitor gunicorn

모니터 구성 파일 추가

vi /opt/openvpn-monitor/openvpn-monitor.conf

[openvpn-monitor]
site=your-openvpn-site
#logo=logo.jpg
#latitude=40.72
#longitude=-74
maps=True
geoip_data=/var/lib/GeoIP/GeoLite2-City.mmdb
datetime_format=%d/%m/%Y %H:%M:%S

[VPN1]
host=localhost
port=
name=Your VPN Server Name
show_disconnect=False

활성 연결을 표시 할 웹 서버를 시작하십시오.

gunicorn openvpn-monitor -b 0.0.0.0:80 --name openvpn-monitor --daemon

모니터를 중지하려면

pkill gunicorn

활성 연결을 보려면 VPN 서버의 공용 IP로 이동하십시오.

http://<ip of openvpn server>

포트 80에 적합한 방화벽을 구성하고 신뢰할 수있는 인바운드 IP 만 허용 목록에 추가하십시오

여기에 이미지 설명을 입력하십시오


답변

다음 명령으로 sacli를 사용하십시오. 연결된 VPN 클라이언트가 표시됩니다.

/usr/local/openvpn_as/scripts/sacli VPNSummary
{
"n_clients": 15
}

모든 IP를 보려면이 옵션을 사용하십시오. ./sacli VPNStatus


답변