日記

【Mac】 VPN使用時に接続先を限定する

1 Mins read

VPN接続時に特定のIP(VPN接続先ネットワーク)以外へのアクセスはVPN経由ではなくローカル環境ネットワークから直接インターネットへルーティングさせることによりネットワークトラフィックを快適にする

※リモート業務の場合、情シスの考えによっては全ての接続を社内経由にしたい時などあるので仕事で使用する際には情シスの許可をとってください

※VPN接続先を経由することにより接続を解放している外部サーバー設定も多いので要注意

※VPN先へDomain使用してアクセスしている場合はDNS設定に要注意(VPN側のDNS設定によってはhostsファイル編集する時もありそう)

macOS Monterey
Version12.3
VPN接続方法 L2TP/IPsec(PPPはトンネリング)

■環境設定のネットワークを開きVPN接続の詳細
「すべてのトラフィックをVPN接続経由で送信」のチェックを外す
設定画像

■ルーティング追加スクリプト作成
接続確立時は /etc/ppp/ip-up というスクリプトが呼ばれます
このファイルに以下を追加し「VPN接続時のIP経路を追加する」
例として「VPNにルーティングしたい経路」を「172.31.1.0/24」としている。

#VPN接続してppp0存在確認
$ ifconfig

#VPN接続切ってから
#viにてファイル編集
$ sudo vi /etc/ppp/ip-up
#!/bin/sh

if [ "$1" = "ppp0" ]; then
    /sbin/route add -net 172.31.1.0/24 -interface ppp0
fi

#viにてファイル保存
#ファイルは実行権限を付与
$ sudo chmod +x /etc/ppp/ip-up

#ルーティングテーブルの確認
$ netstat -rn

備考
複数の経路をルーティングする際には複数記載できる
/sbin/route add -net 172.31.1.0/22 -interface ppp0
/sbin/route add -net 172.31.4.0/22 -interface ppp0
/sbin/route add -net 172.31.8.0/22 -interface ppp0

Read more
macOSRubyXcode日記

【Mac】rbenv openssl [BUILD FAILED] [make: *** [all] Error 2]

1 Mins read

古い環境が必要となり旧macへXcodeやRuby環境つくる時にハマったので覚書

20220315
■環境
macOS High Sierra 10.13.6
Homebrew 3.4.1-67-gb31d8e9
rbenv 1.2.0

こんなエラーが発生

Downloading openssl-1.1.1l.tar.gz...
-> https://dqw8nmjcqpjn7.cloudfront.net/0b7a3e5e59c34827fe0c3a74b7ec8baef302b98fa80088d7f9153aa16fa76bd1
Installing openssl-1.1.1l...

BUILD FAILED (Mac OS X 10.13.6 using ruby-build 20220218)

Inspect or clean up the working tree at /var/folders/rc/9hwgt2nd0rxgjzvt9kc0zgph0000gn/T/ruby-build.20220315231102.889.ggie1q
Results logged to /var/folders/rc/9hwgt2nd0rxgjzvt9kc0zgph0000gn/T/ruby-build.20220315231102.889.log

Last 10 log lines:
/usr/include/CommonCrypto/CommonRandom.h:35:9: error: unknown type name 'CCCryptorStatus'
typedef CCCryptorStatus CCRNGStatus;
        ^
crypto/rand/rand_unix.c:385:47: error: use of undeclared identifier 'kCCSuccess'
    if (CCRandomGenerateBytes(buf, buflen) == kCCSuccess)
                                              ^
2 errors generated.
make[1]: *** [crypto/rand/rand_unix.o] Error 1
make[1]: *** Waiting for unfinished jobs....
make: *** [all] Error 2

そこでOpenSSL1.0が必要
以下のコマンドにて「rbenv/tap/openssl@1.0 1.0.2t」がインストールされる

#OpenSSL1.0をInstall
brew install rbenv/tap/openssl@1.0

#環境変数設定 [hogeはuserだよ]
echo 'export PATH="/usr/local/opt/openssl@1.0/bin:$PATH"' >> /Users/hoge/.bash_profile
#環境変数反映
source .bash_profile

#必要なら環境変数反映
export LDFLAGS="-L/usr/local/opt/openssl@1.0/lib"
export CPPFLAGS="-I/usr/local/opt/openssl@1.0/include"
export PKG_CONFIG_PATH="/usr/local/opt/openssl@1.0/lib/pkgconfig"

#これその後のコマンド用に必要!
export RUBY_CONFIGURE_OPTS="--with-openssl-dir=`brew --prefix openssl@1.0`"

#好きなRubyインストール
rbenv install 2.6.9

macOSの場合はOpenSSLの影響が他にもある

OpenSSLはRailsなどに使用するmysql2ライブラリーにも影響あり、MySQL5.6 Or 5.7使用する際にも影響あるので注意!

bundle installする前に
[.bundle/config]ファイルへ
以下、設定が必要!

BUNDLE_BUILD__MYSQL2: "--with-ldflags=-L/usr/local/opt/openssl@1.0/lib --with-cppflags=-I/usr/local/opt/openssl@1.0/include"
Read more
Git

【Github】SSHパブリックキー削除される [git@github.com: Permission denied (publickey).]

1 Mins read

Github


$ ssh -T git@github.com
$ git@github.com: Permission denied (publickey).

はて?

[.ssh]ディレクトリ内は問題ない

ssh -vT git@github.com

ssh -vvv git@github.com

でログ確認もキーでエラーっぽい

Github SSHKeyをWebページで確認

なくなってる!

なんか有効期限がありパブリックキーが消されるらしいです

再作成してセットして解決した

Read more
Git

【Github】リポジトリアクセス方法変更 [remote: Support for password authentication was removed on August 13, 2021.]

1 Mins read

Githubのアクセス方法が変更された
「git push -u origin develop」

remote: Support for password authentication was removed on August 13, 2021. Please use a personal access token instead.
remote: Please see https://github.blog/2020-12-15-token-authentication-requirements-for-git-operations/ for more information.

パスワード認証が廃止されアクセストークン方式に変更
GithubのWebへログインしアクセストークンを作成する必要がある

1.設定画面( https://github.com/settings/tokens )を開く
2.[Generate new token]をクリック
3.noteに適当なトークン名前入力
4.権限を設定「repoいじるなら最低repo権限必要」
5.[Generate token] をクリック
6.生成されたトークンを保管 ★注意!ここで必ず表示されたトークンをコピペする

★リポジトリにアクセスするために権限[repo]必要
★GitHub Actionを更新するために権限[workflows]必要
★セキュリティ制約のためトークンの有効期限 Max360日までしか作成不可

git push -u origin develop
Username for 'https://github.com': hogehoge
Password for 'https://hogehoge@github.com':★

hogehoge=ユーザー名
★=トークン
でアクセス可能

Read more