19
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

エニプラAdvent Calendar 2022

Day 20

自社の「ワンデー仕事体験」プログラムを改善する話

Last updated at Posted at 2022-12-19

自社の「ワンデー仕事体験」プログラムを改善する話

昨年度、社内チームメンバーと協力して、自社の「ワンデー仕事体験」のプログラムを作成しました。
(その際のQiita記事はこちら)https://qiita.com/hori-ap099/items/a7e94fd4f2107be1cdd6

今年度は、作成した「ワンデー仕事体験」プログラムで発生した課題を改善したので、改善内容と躓いた点などを記載しようと思います。

発生した課題と改善案

ワンデー仕事体験は、学生にハッキングを体験してもらう性質上、隔離されたネットワークを毎回構築しております。

ネットワーク構成イメージ
現行.png

また、windows10のPCでは、コンピュータのセキュリティ対策ソフトを落とす作業も行っており、慣れている人でも準備に1時間以上掛かっております。
設定ミスがあった場合ワンデー仕事体験中に疎通できなくなるなどの問題もあり
・準備に時間が掛かってしまう点
・設定ミスを起こさないようにする点
を早めに解決する必要がありました。

そのため改善案としては、"設定が固定できる環境"を用意することで、準備に掛かる時間も同時に短縮できるので、AWS上に環境を構築、ワンデー仕事体験の際にRDPで接続するようにする方針となりました。
この改善で、1時間以上かかっていた準備が30分も掛からず完了する見込みとなっております。

検証環境

検証時のAWS内ネットワーク構成案は下記の通りです。
AWS設計b.png

検証の為、インターネットゲートウェイとPublic subnet間は3389/TCPのみ許可し、
Public subnetとPrivate subnet間は特に通信制限を設けない設定にしました。

検証時の問題点

検証中に発生した大きな問題としては、Kali LinuxからWindowsデスクトップのスクリーンショットを撮る検証をしていた際、スクリーンショットが撮れない問題がありました。
明確な原因は不明でしたが、RDPが接続された状態でスクリーンショットが撮れない、もしくは仮想環境上ではスクリーンショットが撮れない等の原因が考えられた為、
Kali Linuxからscreenshotコマンドを実行する形から、Windows内にpowershellのマクロを用意し、スクリーンショットを撮る方法に変更しました。

手順

前提:Kali LinuxとWindowsのsessionが確立している状態
1.Kali Linuxでshellを実行し、Windowsに入る
2.powershell xxxx.ps1 yyyy.pngでpowershellのマクロを実行
3.exitでKali Linuxに戻り、download yyyy.pngでスクリーンショットしたファイルをダウンロードする

powershellのマクロ
# screenshot-primary.ps1
# From https://stackoverflow.com/questions/2969321/how-can-i-do-a-screen-capture-in-windows-powershell
Add-Type -AssemblyName System.Windows.Forms,System.Drawing

$screen = [Windows.Forms.Screen]::PrimaryScreen

$top    = $screen.Bounds.Top
$left   = $screen.Bounds.Left
#$right  = $screen.Bounds.Right
#$bottom = $screen.Bounds.Bottom
$right  = 2000 #幅のサイズを指定する
$bottom = 2000 #高さのサイズを指定する

$bounds   = [Drawing.Rectangle]::FromLTRB($left, $top, $right, $bottom)
$bmp      = New-Object System.Drawing.Bitmap ([int]$bounds.width), ([int]$bounds.height)
$graphics = [Drawing.Graphics]::FromImage($bmp)

$graphics.CopyFromScreen($bounds.Location, [Drawing.Point]::Empty, $bounds.size)

$bmp.Save($Args[0])

$graphics.Dispose()
$bmp.Dispose() >

今回の件で学んだこと

私個人の話になってしまいますが、AWSの環境を触ることがあまり無かったため、環境構築と検証は良い刺激になりました。
この規模でも環境をAWSに移行する際には、決めることや問題が発生する点等、擬似的なAWSへの移行案件を実施した気分です。
今後も社内や個人でAWS含め経験できることがあれば実施していきたいと思います。

19
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
19
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?