CentOS7でVPNサーバを構築~クライアント側からの接続

お外で家のNASの中身がみたいな~とか、家の検証用サーバにアクセスしたいな~と思ったのでVPNサーバーを構築してみた。

※ほぼほぼ自分用のメモみたいなものなので結構雑に書いているところはある...。

 

環境
OS:CentOS7
IPアドレス:192.168.10.120

ルーター:Aterm BL170HV
IPアドレス:192.168.10.1


準備
・CentOS7インストール~IPアドレスまで設定ができていること

※最小構成で問題ない


・pptpd-1.4.0-1.rhel5.x86_64.rpmのダウンロード
以下のサイトよりダウンロード

ダウンロード後にWinSCP等を使用し以下に置く

/usr/local/src

 

pptpdインストール 

[root@vpnserver ~]# cd /usr/local/src
[root@vpnserver ~]# yum install pptpd-1.4.0-1.rhel5.x86_64.rpm

 

pptpd.confを編集

[root@vpnserver ~]# vi /etc/pptpd.conf

viになったら以下を入力

localip 192.168.10.120
remoteip 192.168.10.160-170
debug

・localip:VPNサーバ本体のIPアドレス
・remoteip:クライアント側のIPアドレス

 

rsyslog.confを編集

[root@vpnserver ~]# vi /etc/rsyslog.conf

viになったら以下を入力

*.=debug;\
 news.none;mail.none -/var/log/pptpd


chap-secretsを編集

[root@vpnserver ~]# vi /etc/ppp/chap-secrets

viになったら以下を入力

vpnuser * password *

・vpnuser:個人で決めるユーザ名。なんでもOK
・password:個人で決めるパスワード。なんでもOK

 

options.pptpdを編集

[root@vpnserver ~]# vi /etc/ppp/options.pptpd

viになったら以下を入力

ms-dns 8.8.8.8
ms-dns 8.8.4.4

自宅とかでの構築ならdnsは上記でOK

 

sysctl.confを編集

[root@vpnserver ~]# vi /etc/sysctl.conf

viになったら以下を入力

net.ipv4.ip_forward = 1

 

SELinuxの確認

[root@vpnserver ~]# /usr/sbin/getenforce

Enforcingであれば以下を実施

[root@vpnserver ~]# /usr/sbin/setenforce 0

設定ファイルも修正

[root@vpnserver ~]# vi /etc/selinux/config

viになったら以下を入力

SELINUX=disabled

 

サーバ再起動

[root@vpnserver ~]# reboot

 

pptpdの再起動/自動起動設定

pptpdの再起動

[root@vpnserver ~]# systemctl restart pptpd 

pptpdの自動起動設定

[root@vpnserver ~]# systemctl enable pptpd

 

ファイアウォールの停止設定/自動起動停止設定

firewalldの停止

[root@vpnserver ~]# systemctl stop firewalld

firewalldの自動起動停止

[root@vpnserver ~]# systemctl disable firewalld

 
ルータの設定

ブラウザより以下にアクセスし、ログイン

https://192.168.10.1

※ご自宅にあるルーターのIPを入力してください

詳細設定→ポートマッピング設定の順に進み以下を入力

LAN側ホスト:192.168.10.30 ※VPNサーバのローカルIP
プロトコルTCP
ポート番号:1723

f:id:ka5c:20191225112918p:plain

※1 anyのチェック外して入力
※2あくまでもAtermでの場合なので、その他のルーターについては調べてみてください。

 

クライアント側での設定(Windows)

Windows→設定→VPNVPN接続を追加する

f:id:ka5c:20191225112934p:plain

VPN接続情報を入力する

VPNプロバイダー:Windows(ビルトイン)
接続名:hogehoge※自由に
サーバ名またはアドレス:グローバルIPを入力
VPNの種類:Point to Point トンネリング プロトコル(PPTP)
サインイン情報の種類:ユーザー名とパスワード
ユーザ名(オプション):vpnuser※chap-secretsに入力したユーザー名
パスワード(オプション):password※chap-secretsに入力したユーザー名

f:id:ka5c:20191225113418p:plain

グローバルIPは以下で調べることができます。

[root@vpnserver ~]# curl inet-ip.info