キルスイッチとは
キルスイッチとは、何らかの理由でVPNとの接続が切れた際に、ネットワーク接続を遮断する機能です。
せっかくVPNでプライバシーを守っているのに、VPNの接続ソフトが落ちるなどで、気づかぬうちにIPアドレスを隠せてないとか最悪ですからね。
多くのVPNではキルスイッチ機能が配布しているVPN接続ソフトに組み込まれています。
SurfSharkでもVPN接続ソフトのMac版やWindows版にはキルスイッチ機能が組み込まれています。Linux CentOS版ではVPN接続ソフトがないので、自分でキルスイッチ機能をつくらないといけません。
その作り方を紹介します。
CentOSでキルスイッチ機能を作成する方法
UbuntuなどのDebian系Linux OSならSurfsharkに.debパッケージがあるのでそれをそのままインストールすると設定をやってくれるので便利ですが、RedHat系のパッケージは用意されていないので、CentOSでSurfshark VPNに接続するときはOpenVPNを使って設定を行う必要があります。
Surfshark の純正パッケージも裏側ではOpenVPNを利用しているので結果は同じです。
su yum install openvpn unzip
Surfshark VPN用の設定ファイルをダウンロードします。
wget https://account.surfshark.com/api/v1/server/configurations unzip configurations
とすると大量の.ovpnファイルが解凍されます。どこかフォルダを作ってその中で行いましょう。 これをopenvpnで読み込めばSurfshark VPNに接続できます。
openvpn jp-tok.prod.surfshark.com_tcp.ovpn
でSurfshark VPNに接続できます。
ユーザー名とパスワードを聞かれます。
ユーザー名とパスワードは以下のサイトで生成しなければなりません。
https://account.surfshark.com/setup/manual
の下の方にある
でユーザー名とパスワードが生成されます(必ずSurfSharkのサイトにログインした状態が必要)。
この生成されたユーザー名とパスワードをコマンドラインで入力すれば接続できます。
ユーザー名とパスワードを自動的に読み込むようにする
openvpnで接続するたびにユーザー名とパスワードを入力するのは面倒なので、
vim auth.txt [ユーザー名] [パスワード]
auth.txtという2行のファイルを作ります。ユーザー名とパスワードは先ほどの画面で取得したものを使います。このauth.txtをopenvpnの設定ファイルjp-tok.prod.surfshark.com_tcp.ovpnで読み込みます。
jp-tok.prod.surfshark.com_tcp.ovpn内に
auth-user-pass という項目があるのでそこを
auth-user-pass auth.txt
とすることで、auth.txt内のアカウント名とパスワードが自動的に読み込まれます。
これでopenvpnを立ち上げるたびにアカウント名とパスワードを入力する必要が無くなります。
これで、openvpn jp-tok.prod.surfshark.com_tcp.ovpn
でVPN接続が実行できるようになります。
キルスイッチを実装する
このコマンドを組み込んだキルスイッチを作成します。
シェルスクリプトを作成し、openvpnでsurfshark VPNに接続するたびにキルスイッチが実行されるようにします。
openvpn_surfshark.sh
firewall-cmd --direct --permanent --add-rule ipv4 filter OUTPUT 0 -m owner --uid-owner user \! -o tun0 -j REJECT systemctl reload firewalld cp /etc/openvpn/surfshark/resolv.conf.surfshark /etc/openvpn/surfshark/resolv.conf FILE="/etc/resolv.conf" if [ -e $FILE ]; then rm $FILE fi ln -s /etc/openvpn/surfshark/resolv.conf /etc/resolv.conf openvpn jp-tok.prod.surfshark.com_tcp.ovpn trap "systemctl restart NetworkManager" 0
を作成してコレを実行する(root権限でsh openvpn_surfshark.sh
)ことで、キルスイッチつきでSurfshark VPNに接続できる。
簡単に説明します。
firewall-cmd --direct --permanent --add-rule ipv4 filter OUTPUT 0 -m owner --uid-owner user \! -o tun0 -j REJECT
で、-m owner --uid-owner user
でuserというユーザーの通信を制限します(userを自分のユーザー名に変更してください)。
\! -o tun0 -j REJECT
でtun0以外の通信をさせないようにしています。
tun0はVPNのトンネル通信経路なので、これ以外がつながらないということです。
systemctl reload firewalld
firewalldを再読み込みします。これで上の通信制限が反映されます。
cp /etc/openvpn/surfshark/resolv.conf.surfshark /etc/openvpn/surfshark/resolv.conf FILE="/etc/resolv.conf" if [ -e $FILE ]; then rm $FILE fi ln -s /etc/openvpn/surfshark/resolv.conf /etc/resolv.conf
※firewalldが動作していなければ
systemctl start firewalld
としてください。
SurfSharkは2年契約がめちゃくちゃ安いのにかなり使えるVPNです
SurfSharkは2年契約で一月2ドルとかなり安く使えるVPNです。
ExpressVPNと比べてもネットワーク速度などほとんど変らず、コスパは最強だと思います。
コメント