Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
sshで快適テレワーク
Search
koedoyoshida
March 28, 2020
Technology
0
100
sshで快適テレワーク
今まで:最強のSSH踏み台設定
これから:-J
温故知新:ワイルドカードマッチ
自宅サーバ活用:autossh&systemd
koedoyoshida
March 28, 2020
Tweet
Share
More Decks by koedoyoshida
See All by koedoyoshida
止まらないLinuxシステムを構築する_高信頼性クラスタ入門
koedoyoshida
3
2.4k
CentOS7サポート終了まで約半年 EoL後のOSを使い続けるとどうなる?
koedoyoshida
0
140
SSHで快適リモートワーク
koedoyoshida
0
190
SBOMってなんだ?~最近話題のSBOMを簡単に解説~
koedoyoshida
2
450
AlmaLinuxのパッケージはどこから来たんだろう
koedoyoshida
0
300
Home sshd DDOS measures
koedoyoshida
0
93
MIRACLE LINUXにSlackライクなチャットツール「Rocket.Chat」を構築してみた!
koedoyoshida
0
260
MIRACLE LINUXをコンテナで活用!
koedoyoshida
0
210
OSSコミュニティ活動やPyCon JPで得たもの
koedoyoshida
0
110
Other Decks in Technology
See All in Technology
Microsoft Intune 勉強会 第 2 回目
tamaiyutaro
2
510
さらばあのボタンとは言わせない SORACOM LTE-M Button powerd by AWSをまだ使えるようにした(前編?)
miura55
0
110
自己改善からチームを動かす! 「セルフエンジニアリングマネージャー」のすゝめ
shoota
6
1.1k
AWS アーキテクチャ作図入門/aws-architecture-diagram-101
ma2shita
16
6.5k
類似ロジック実装をiOS/Android間で合わせる道標No.1
fumiyasac0921
1
170
Cloudflare WorkersがPythonに対応したので試してみた
miura55
0
100
実例で紹介するRAG導入時の知見と精度向上の勘所
yamahiro
7
2.4k
One engineer company with Ruby on Rails
rstankov
2
460
GrafanaMeetup_AmazonManagedGrafanaのアクセス制御機能とマルチテナント環境下でのアクセス制御について
daitak
0
470
Rustで「プリズモイダル法」を利用して「土量計算」をガチでやる
nokonoko1203
1
360
BPStudyの200回を中心にIT業界を振り返る。そしてこれから
haru860
3
450
AWSに詳しくない人でも始められるコスト最適化ガイド
yuhta28
2
420
Featured
See All Featured
What's in a price? How to price your products and services
michaelherold
238
11k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
12
1k
Unsuck your backbone
ammeep
664
57k
Building Applications with DynamoDB
mza
88
5.6k
BBQ
matthewcrist
80
8.8k
Designing with Data
zakiwarfel
96
4.8k
Done Done
chrislema
178
15k
Bash Introduction
62gerente
605
210k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
228
16k
What's new in Ruby 2.0
geeforr
337
31k
Side Projects
sachag
451
41k
Infographics Made Easy
chrislema
238
18k
Transcript
SSHで快適テレワーク 吉田@板橋
ネタ • 今まで:最強のSSH踏み台設定 • これから:-J • 温故知新:ワイルドカードマッチ • 自宅サーバ活用:autossh
今まで:最強のSSH踏み台設定 .ssh/config: # https://qiita.com/kawaz/items/a0151d3aa2b6f9c4b3b8 Host */* ProxyCommand ssh -W "$(basename
"%h")":%p "$(dirname "%h")" #ホスト鍵無条件に受け入れて、ファイルを更新 StrictHostKeyChecking no Host *+* ProxyCommand ssh -W "$(sed -E 's/.*¥+//'<<<"%h")":%p "$(sed -E 's/¥+[^¥+]*//'<<<"%h")" StrictHostKeyChecking no # ssh hoge.com/192.168.x.x #会社gateway+自席サーバ # ssh hoge.com+192.168.x.x #会社gateway/自席サーバ
これから:-J openssh-7.3 以降 # ssh -J hoge.com 192.168.x.x #会社sshgateway 会社サーバ
Configなしでやれる! 参考: https://qiita.com/kawaz/items/a0151d3aa2b6f9c4b3b8
温故知新:ワイルドカードマッチ .ssh/config: Host desk01* HostName 192.168.x.x Host desk02* HostName 192.168.x.x
ProxyCommand=ssh -W %h:%p sshgateway Match originalhost *-ofwd dynamicForward 8080 LocalForward 65422 localhost:22 $ ssh desk01-ofwd #直接接続 $ ssh desk02-ofwd #外部接続、shellscript 等で順番にtryする等でより省力化、高度化 詳細は実用SSH 第二版 P288 多重マッチ
さて • 「SSHのgatewayサーバやVPNサーバなんてうちの会社には準 備されてないよ!」
そんなあなたにautossh • autosshとは • sshクライアントを自動起動するプログラム • https://packages.debian.org/buster/autossh • リモートのsshサーバに(リバース: -R)ポートフォワード等が可能
• 後述のデフォルト設定はローカルフォワード(-L)なので書き換える • リバースポートフォワードで自宅サーバをssh踏み台に! • 使用例 • 会社サーバ(autossh)から自宅サーバ(sshd)に接続することにより自宅サーバポート に会社サーバのsshportへ転送するportを作ることができる • 自宅サーバにDDNS等でsshアクセスできれば、会社サーバはNAT下でもOK • セキュリティ • sshdのデフォルトは自宅サーバのlocalloopbackのみ許可(GatewayPorts=no)なので 使用時は自宅サーバからssh clientで接続 (つまり踏み台) • デフォルト(GatewayPorts=no)ではパブリック(0.0.0.0)には公開されていない • 御社のセキュリティ要件はご確認ください! • At your own risk. 自宅サーバ 会社サーバ sshdport へ転送 会社サーバ 作業PC ssh client sshd sshd autossh
さらにautosshをsystemdでサービス化し てssh接続を安定化 • https://remoteroom.jp/diary/2019-07-18/ • https://gist.github.com/ttimasdf/ef739670ac5d627981c5695 adf4c8f98 • 要両サーバのroot •
相互にssh専用ユーザを作成してポートフォワード専用にする • systemd設定 • autosshの死亡時に自動で再開 • 会社サーバの再起動時に自動で再開 • 安定性向上!
構成 • NAT下にある会社PC • sshdが動いていること • systemdが動いていること • sshで自宅サーバに接続できること •
rootを持っていること • (DDNS等で)インターネットからsshアクセス出来る自宅サーバ • sshdが動いていること • rootを持っていること • 自宅サーバにアクセス出来る作業用PC(自宅サーバと同じでも よい) • sshクライアントが動いていること 自宅サーバ 会社サーバ sshdport へ転送 会社サーバ 作業PC ssh client sshd sshd autossh
手順 • systemdひな形取得 • curl -sSL https://gist.githubusercontent.com/ttimasdf/ef739670ac5d627981c5695adf4c8f98/raw/autossh@host1 | ¥ •
sudo tee /etc/default/autossh@example • curl -sSL https://gist.githubusercontent.com/ttimasdf/ef739670ac5d627981c5695adf4c8f98/raw/
[email protected]
| ¥ • sudo tee /etc/systemd/system/
[email protected]
• 専用ユーザ作成(自宅サーバ、会社サーバ両方)、公開鍵作成、ssh接続 • sudo useradd -g nogroup -s /bin/false -m tunnel • sudo -u tunnel mkdir -p ~tunnel/.ssh • sudo -u tunnel nano ~tunnel/.ssh/config • sudo -u tunnel ssh remote.example.com #自宅サーバ • (設定ファイル名変更:オプション) • cp /etc/default/autossh@example /etc/default/autossh@hoge • 設定変更 • sudo nano /etc/default/autossh@example • /etc/default/autossh@example内の次の2行を編集する • TARGET_HOST=remote.example.com • 接続サーバ(自宅サーバ) • FORWARDS=-R 10022:127.0.0.1:22 • -Rオプション:リバースポートフォワード 、10022(任意:自宅サーバ側の空ポート番号)、22(会社サーバでの既存sshポート番号) • 接続 • sudo systemctl start
[email protected]
• 永続化 • sudo systemctl enable
[email protected]
自宅サーバ 会社サーバ sshdport へ転送 会社サーバ 作業PC ssh client sshd sshd autossh systemd 制御監視
SSHで快適テレワーク! • 参考URL • 最強のSSH踏み台設定 • https://qiita.com/kawaz/items/a0151d3aa2b6f9c4b3b8 • autossh&systemd •
https://remoteroom.jp/diary/2019-07-18/ • https://gist.github.com/ttimasdf/ef739670ac5d627981c5695adf4c8f 98