OpenVPN 활용하기
Ubuntu 14.04 + OpenVPN SHA 256 비트 암호화 지원 인증서 기반 통신 (Open SSL) Two-Factor 인증 (Password + OTP) |
Server 설정 Point
1. iptables 설정 중요
iptables -t nat -A POSTROUTING -s 10.10.10.0/24 -o eth0 -j MASQUERADE <- openvpn client IP 할당 범위
iptables -A INPUT -i tun+ -j ACCEPT
iptables -A FORWARD -i tun+ -j ACCEPT
iptables -A INPUT -p tcp –dport 12345 -j ACCEPT <- openvpn service port
2. openvpn 환경설정 (암호화 통신 설정등)
cipher AES-128-CBC
auth SHA256
plugin /usr/lib64/openvpn/plugin/lib/openvpn-auth-pam.so openvpn
cat /etc/pam.d/openvpn <- 로그인 방법 설정 ID / PW + google OTP 조합
auth [user_unknown=ignore success=ok ignore=ignore default=bad] pam_securetty.so
auth required /usr/local/lib/security/pam_google_authenticator.so forward_pass
auth include system-auth
account include system-auth
password include system-auth
Client 설정 Point
1. Windows, Mac OS 둘다 지원
openvpn download -> https://openvpn.net/index.php/open-source/downloads.html
2. VPN IP를 DHCP 로 사용할시 PC(client) 에 DHCP 서비스가 시작되 있어야함(windows 기준)
3. client program install 이나 더블클릭하여 실행시 “관리자 권한”으로 가급적 실행해야함
4. config 파일 설정을 서버측에 맞게 잘 설정해야함
기타 생각나는 대로…
※ Google OTP 는 time base라 서버 시간이 정확한게 좋음 (cron에 등록하여 time server 측으로 동기화를 자주 해줘야함)
상용 vpn 장비도 많이 있으나, 오픈소스로 구축해서 실무에 적용하여 사용하여도 크게 불편함은 없음
two factor 인증이라 보안적인 측면에서도 큰 문제는 없음
* 계정 탈취를 위해서는 아래모든 사항을 만족해야함 (뚫기 힘듬)
ID / PASS 를 알아야하고 / 접속 인증서가 있어야하고 / OTP QR 코드가 있어야 하며/ OTP를 알아야 한다.
조금더 나아가 접속자 role base 기반도 가능 (짱구 굴리면 안될건 없음)
예: user01 계정은 AA,BB 서버군
user02 계정은 CC 서버로만 접근
이외 접속 로그 이력 관리도 가능함 (elastic 으로 저장중)
언제, 어디서, 어떤 서버로, 몇번 포트로 접속했다…등
접속 화면