Giter Club home page Giter Club logo

ictsc_2019_yrfw_pre2's People

Watchers

 avatar  avatar  avatar  avatar

ictsc_2019_yrfw_pre2's Issues

すごく匿名ダイヤリー

匿名で日記が投稿できるサービス「すごく匿名ダイヤリー」を運営しています。
従来、フロントエンドとバックエンドを同じドメインで運用していましたが、
構成変更のため、バックエンドをサブドメインに変更する作業を行っています。

変更前:
https://old-diary.ictsc.net/
https://old-diary.ictsc.net/api/

変更後:
https://new-diary.ictsc.net/
https://api.new-diary.ictsc.net/

※VNCサーバのWebブラウザからのみ閲覧可能です

ソースコード内のドメインやパスは適切に書き換えましたが、何故か正常に動作しません。
変更前と同じように各機能が動作するよう、サーバにログインして原因調査 及び 修正を行ってください。

なお、サービスはメンテナンス中で限定公開としているため、対応中にサービス断が生じても問題ありません。
また、投稿データについてもバックアップから復元するので、(変更前/変更後環境共に)日記の追加・削除・スター追加は任意に実施して問題ありません。

今後の運用・開発を考慮し、変更は問題解決に必要な箇所に絞り、出来るだけ他に影響を与えないように直してください。
全てを直しきれない場合でも、可能なところまで直してください。

サービス仕様

誰でも匿名で日記が投稿・閲覧できる
投稿されている日記に対して誰でもスターを付けることができる
日記は投稿したブラウザで閲覧すると削除ボタンが表示され、削除が可能 (期間/個数に制限あり)
フロントエンドはSPA(Single Page Application)として構築されている
日記の取得/投稿/削除/スター追加はWebAPI経由でバックエンドと通信して実現する

解答方法

修正 と 報告 の両方が必要です
「変更後」のURLでサービスが正常に動作するよう、実際にサーバ上で修正を行ってください。
解答から「原因と実施した修正内容」を報告してください。
    報告は最終的に行った内容のみで問題ありません (途中の試行錯誤は記載不要)
    具体的に記載してください (例: XXXを直した、ではなく XXXがXXXなので、XXXファイルのXXX部分にXXXXXXXXXを追加した 等)

ログイン情報

VNCサーバから
$ ssh 192.168.0.80 -l admin
→ PW: USerPw@19

※ $ sudo su - にて rootユーザに昇格可能です

Welcome to Nginxのページを表示したい!

あなたはローカルネットワーク上にwebサーバを構築し、IPv6アドレスを使用してwebページに接続できるようにセットアップをしています。
webページへはhttp://nginx.icttoracon.netでアクセスできるようにしたいです。

nginxのホストには、すでにnginxのパッケージをインストール済みです。
CSR1000Vとnginxのホストには固定でIPv6アドレスを割り当てました。
クライアント(VNC Server)にIPv6アドレスが自動設定されるように、CSR1000VにはSLAACの設定を行いました。

しかし、クライアント(VNC Server)のブラウザからhttp://nginx.ictotracon.netにアクセスしてもWelcome to Nginxのページを表示させることができません。
このトラブルを解決し、Welcome to Nginxのページを表示させてください。

クライアントが増えても自動でアクセスできるよう、設定変更はCSR1000Vとnginxホストのみとしてください。
DNSサーバはCSR1000Vを使用します。
各ノードにはssh/telnet用にIPv4アドレスが設定されていますので必要に応じて使用してください。
予選終了後に実環境で採点されるので、スコアサーバでの解答は不要です。

S79G61efjftfWeUGKU2Yut9N

接続情報

Host Protocol IPv4 address User/Pass
CSR1000V telnet 192.168.0.1 admin/admin
nginx ssh 192.168.1.2 admin/admin

ゴール

VNCサーバのブラウザからhttp://nginx.ictotracon.netでWelcome to Nginxのサイトが表示されること
上記のアクセスがIPv6で行われていること
(恒久的な設定でなくても構わない)

[2] 君k8s得意って言っていたよね?

職場でkubernetesを用いてRedmineを導入することになった。
上司が構築作業をしていたが、どうもうまくRedmineが起動しないらしい。

部下のあなたがk8sが得意ということだったので、構築作業の続きをすることになった。
kubernetesが動作するサーバーにRedmine用のManifestが適用されているが、どうも正常起動していないようだ。

原因を究明を行い、Redmineを使える状態にして解決方法を報告してください。
問題のゴール

VNCクライアントのブラウザからRedmineが閲覧できること。
http://192.168.0.100:30000
Redmineのデータがコンテナ再起動時にも保持されていること。

情報

Server:
    k8smaster1:
        ip: 192.168.0.100
        userid: root
        password: USerPw@19
    container-registry:
        ip: 192.168.0.101
        備考: 操作不可

Redmine_Manifest:
    path: "/root/ictsc_problem_manifests/*.yaml"

Redmineログイン情報
    userid: ictsc
    password: USerPw@19

制限事項

Redmineは指定のManifest(Redmine_Manifest)でデプロイしてください。
Redmine_Manifestは変更出来ません。
Redmine_Manifest内のコンテナイメージはcontainer-registryから取得してください。
マニフェストの再適用, OSの再起動の操作は可能です。
誤操作等で競技続行不可の場合は出題時環境への復元のみ承ります。

MySQLに繋がりません!

先輩がMySQLサーバを立てて、新しく運用を開始したらしい。

そのサーバを利用するため、rootパスワードを教えて貰ったため、今までどおりのログインコマンドを試してみた。

$ mysql -uroot -p -h 192.168.0.100
だが、なぜかログインエラーが出てしまい先輩のサーバにアクセスできない。先輩はサーバ上で正しく動いているらしいので、トラブルシューティングのためにそのサーバへのアクセス権限をもらった。

クライアントサーバから上記のコマンドを実行し、rootユーザがログインできるように変更を加え、下記の内容を報告してほしい。

ログインできるようになるためどのような作業を行ったのか
なぜログインが行えなかったのか
問題サーバー
クライアント

IPアドレス: 192.168.0.101
ユーザー: admin
パスワード: USerPw@19
サーバ

IPアドレス: 192.168.0.100
ユーザー: admin
パスワード: USerPw@19
DBユーザー: root
DBパスワード: root

[6] MySQLの復旧をお願いします!!

あるデベロッパーから「dev環境と間違えて、prod環境のMySQLで直接truncate table sbtest3;を実行してsbtest3テーブルのデータを削除してしまいました、復旧をお願いします!!」と緊急の連絡を受けました。
このクエリの実行後、すぐに間違いに気づいたデベロッパーはサービスをメンテナンス状態にし、アプリケーションサーバを停止したそうです。
問1(q01)

truncate table sbtest3; というクエリが実行された日時をyymmdd HH:MM:SSのフォーマットで報告してください。
また、どのようにこの日時を特定したかを説明してください。
問2(q02)

truncate tableが実行される直前の状態にデータを復旧し、復旧後checksum table sysbench.sbtest3;の結果を報告してください。
また、データの復旧に必要な手順を説明してください。
情報
状況

このMySQLは毎日定時にsysbench databaseのバックアップを取得していて(コンテスト問題の作成上truncate table文が実行された日まで)、偶然truncate文が実行される直前にこの日のバックアップが完了していた
バックアップは以下のコマンドで取得されている
    mysqldump --opt --single-transaction --master-data=2 --default-character-set=utf8mb4 --databases sysbench > /root/backup.dump
mysql -u root -p < /path/to/backup.dumpでバックアップが取得された時点に復旧できる
adminユーザからsudo suすることでrootユーザから操作してください

問題サーバー

IPアドレス: 192.168.0.1
ユーザー: admin
パスワード: USerPw@19
DBユーザー: root
DBパスワード: root

ゴール

問1, truncate table sbtest3; というクエリが実行された日時を特定し、その特定方法を説明していること
問2, MySQLのデータが復旧し、その手順の説明とchecksum table sysbench.sbtest3;の結果が報告されていること
問1に正解すると部分点が与えられます。

[4]ルーティング

問1 経路問題 その1

下記の図で、vmx2からvmx1のge-0/0/2へpingが飛ばない。 logを見て、考えられる原因について最もふさわしいものを選べ。なお、aclなどfilteringの設定はなく、vmx2の設定は適切であるとする。また、本問においてvmx2のgwはxrv1であるとする。

A: xrv1の物理インタフェースがdownしている
B: vmx1からの戻りの経路がない
C: vmx1とxrv1の間にあるスイッチのvlan設定が間違っている
D: ospfのAD値設定が間違っている

問2 経路問題 その2

下記の図で、vmx2からvmx1のge-0/0/2へpingが飛ばない。logを見て、考えられる原因について最もふさわしいものを選べ。なお、aclなどfilteringの設定はなく、vmx2の設定は適切であるとする。また、本問においてvmx2のgwはxrv1であるとする。

A: xrv1のstatic routeの設定が原因となっている
B: vmx1のルーティングにかかわるプロセスがdownしている
C: vmx1において、xrv1とは反対側の上流に経路が向いていることが予想される
D: vmx1とxrv1の間にあるスイッチのvlan設定が間違っている

問3 経路情報の伝搬

IPルーティングに関する説明で正しいものを選べ。

A: 経路集約を行うことでルータ間での経路交換のメッセージ量やメモリの消費量を低減させることができる。
B: BGPは多量の経路を扱うプロトコルであるため、経路情報を可逆圧縮したNLRIと呼ばれるメッセージを用いて経路交換を行う。これは経路集約と呼ばれ、異なるメーカ間での相互接続性を確保するためにLZMAアルゴリズムが用いられている。
C: RIPやOSPFでは類似したアドレスの情報を多量に交換するため、各ルータの交換する経路情報はZIP形式で圧縮されている。
D: eBGPの設定されているルータはフルルートを保持しており、インターネット上の全ネットワークに接続性を持つこのため、eBGPルータは他のBGPルータに対して0.0.0.0/0の経路のみを配信する。

問4 ドキュメント記載に最適なアドレスは?

あなたは研究室のネットワークを管理している。あなたは後輩のために"他の1台のホストへの多量のIPv4 pingの送り方"という例を研究室の運用ドキュメントに記載することにした。このような場合に以下の中で【最も適した】アドレスはどれか?

ping -f <ipv4アドレスの宛先>
条件:後輩たちははNWに馴染みがないため、コマンド例をそのままコピーアンドペーストしてしまうことがある。この際に実際に存在するホストに対してパケットが送信されてしまい迷惑がかかることがないようにしたい。

A: 192.0.2.100
B: 0.0.0.0
C: 255.255.255.255
D 172.32.0.1
E 10.255.255.255
F 192.0.3.100
G 127.0.0.1

問5 NAT

IPv4環境におけるNATの説明のうち正しいものを選べ

A: NAPTを利用することで1つのグローバルアドレスしか所持しない環境でも複数のノードがインターネット上のノードと同時に通信できる。しかし、DNSはプロトコル上、送り元、送信先のポートが53でなければならないため、同時にDNSサーバと通信できるノードは1台のみである。
B: NATによりHTTPSを用いてインターネット上のWebサーバと通信をすることが可能である。しかし、クライアント(送信元)のIPアドレスが変換されていると、クライアントはサーバ証明書の確認を行うことはできない。
C: NATはプライベートIPアドレスをグローバルIPアドレスに変換する技術であるため、宛先をプライベートIPアドレスに変換することはできない。
D: NATはプライベートIPアドレスをグローバルIPアドレスに変換する技術であるため、グローバルIPアドレスをグローバルIPアドレスに変換することはできない。
E: 他の選択肢はすべて誤り。

問6 IPv6

IPv6に関する説明のうち正しいものを選べ。

A IPv6ではMACアドレスからユニークに生成されるEUI-64アドレスをホスト部に含むアドレスが広く使われる。このため、IPv6を用いた通信ではMACアドレスを含まないEthernetヘッダが用いられている。
B IPv6ではIPv4の上に成り立つネットワークであるため、ホストや途中のルータではIPv4が有効になっていなければならない。
C 同一のネットワークに所属するIPv6ホストは送り元と宛て先でペイロードの交換を行う前にNLRIメッセージを交換し、到達性の確認してからペイロードの転送を行う。
D IPv4ではEthernet上のL2アドレスの解決にはARPプロトコルが用いられる。IPv6ではARPは用いられず、OSPFv3を用いてL2アドレスを相互に交換しMACアドレスを解決してフレームの転送が行われる。
E: 他の選択肢はすべて誤り。

問7 OSPF その1

図:Routing-K1

※本問題中の「図:Routing-K1」は他の問題に含まれる「図:Routing-K1」と同様です。

以下のpingの結果として適切なものはどれか。理由が述べられているものについては最も適切な理由なものを選べ。

R1#ping 192.168.0.2
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.0.2, timeout is 2 seconds:
(略)
1: 成功する。
2: 失敗する。R1とR2のMTUサイズが異なるのでPath MTU Discoveryが失敗しIPパケットが破棄される。
3: 失敗する。R1とR2のMTUサイズが異なりOSPFのMTU mismatchによりOSPFのネイバー関係が確立できないため
4: 失敗する。R1のOSPFはconnected経路をredistributeしていないため、R2はR1に付与されているアドレスに到達できない。

問8 OSPF その2

図:Routing-K1

※本問題中の「図:Routing-K1」は他の問題に含まれる「図:Routing-K1」と同様です。
以下のpingの結果として適切なものはどれか。理由が述べられているものについては最も適切な理由なものを選べ。

R1#ping 192.168.255.2 source 192.168.255.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.255.2, timeout is 2 seconds:
Packet sent with a source address of 192.168.255.1
(略)
1: 成功する。
2: 失敗する。R1とR2のMTUサイズが異なるのでPath MTU Discoveryが失敗しIPパケットが破棄される。
3: 失敗する。R1とR2のMTUサイズが異なりOSPFのMTU mismatchによりOSPFのネイバー関係が確立できず、R1は対象アドレスの経路情報を持たない。
4: 失敗する。R1のLoopback0のサブネットマスクは/32であるが、OSPF設定でnetworkコマンドのワイルドカードマスクが/24であるため、Loopback0のアドレスは広告されない。
5: 失敗する。R1のOSPF設定でpassive-interface Loopback0が設定されているため、Loopback0を送り元アドレスとするIPパケットは送出できない。

問9 OSPF その3

図:Routing-K1

※本問題中の「図:Routing-K1」は他の問題に含まれる「図:Routing-K1」と同様です。

以下のpingの結果として適切なものはどれか。理由が述べられているものについては最も適切な理由なものを選べ。

R3#ping 192.168.0.2 source 192.168.255.3
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.0.2, timeout is 2 seconds:
Packet sent with a source address of 192.168.255.3
1: 成功する。
2: 失敗する。R1とR2のMTUサイズが異なりOSPFのMTU mismatchによりOSPFのネイバー関係が確立できず、R2はR3に対してこのOSPF確立が失敗したconnected経路の情報を広告しない。
3: 失敗する。R3のLoopback0のネットマスクは/32であるが、OSPF設定でnetworkコマンドのマスクアドレスが/24であるため、Loopback0のアドレスはR2に広告されず、R2は応答できない。
4: 失敗する。R1とR2のMTUサイズが異なりOSPFのMTU mismatchによりOSPFのネイバー関係が確立できていないため、R2とR3の間のOSPF関係を確立できない。

問10 OSPF その4

図:Routing-K1

※本問題中の「図:Routing-K1」は他の問題に含まれる「図:Routing-K1」と同様です。

以下のpingの結果として適切なものはどれか。理由が述べられているものについては最も適切な理由なものを選べ。

R3#ping 192.168.0.1 source 192.168.255.3
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.0.1, timeout is 2 seconds:
Packet sent with a source address of 192.168.255.3
1: 成功する。
2: 失敗する。R1とR2のMTUサイズが異なりOSPFのMTU mismatchによりOSPFのネイバー関係が確立できていないため、R2はR3がOSPF経由で学習した経路宛のパケットを破棄する。
3: 失敗する。R1とR2のMTUサイズが異なりOSPFのMTU mismatchによりOSPFのネイバー関係が確立できていないため、R1はR3のLoopback0の経路を持たない。
4: 失敗する。R1とR2のMTUサイズが異なりOSPFのMTU mismatchによりOSPFのネイバー関係が確立できていないため、R3はR1向けの該当経路を持たない。
5: 失敗する。R3のOSPF設定には自身の持たない192.168.0.0/24へのOSPF設定が含まれており、OSPFプロセスが起動できないため、R3はR1向けの該当経路を持たない。

[03]つながらなくなりました!

あなたはサーバホスティング会社に勤めているシステムエンジニアです。
顧客より、下記のとおり依頼をいただきました。

前任者退職に伴って確認しようと思いサーバ内を確認していたところ、
間違えてFWサーバとwebサーバを再起動してしまいました。
再起動前はwebページに正常にアクセスできていたのですが、アクセスできなくなってしまったため、
いい感じに直していただきたいです。

しかし、セキュリティを考えていた設定とかもあると思うので、外部アクセスなどへはそのまま利用してほしいです。
あと、監視サーバからのURL監視も通るようにしてほしいです。こちらは特に制限をかける必要はありません。
でも、サーバの担当者が出張中で認証情報がわからないので、監視サーバへはログインできないです。
また、再発しないように設定いただけると嬉しいです。

変更した設定などはコマンドレベルでご報告いただけますようお願いします。
  • 対応してほしいところ
    上記依頼に則った上で、下記を満たすように修正してください。
    • VNCから以下のwebページへHTTPアクセスが正常に通るようにしてください。
      対象URL: http://www.qwe.example/
    • monitorから正常に監視ができるようにしてください。
    • FWサーバ 2222番ポートへの接続で、webへssh接続できるようにしてください。
  • 構成
    • アクセス可能
      VNC(踏み台、クライアントPCと想定してください)
      firewall01 (192.168.0.100/10.111.100.1 admin:USerPw@19)
      web01 (10.111.100.10 admin:USerPw@19 ※FWサーバよりアクセス可能)\
    • アクセス不可
      monitor(192.168.0.200)
      ※ 例示用URLのため、VNCのhostsに記載して名前解決しています。
      ※ 192.168.128.0/17 のIP帯からwebサーバへのランダムアクセスを行っています。
      問題環境の都合上ではありますが、一般userのアクセスと考えて対応してください。
  • ▼構成図
      |
+-----+-----+      +-----+-----+
|    VNC    |      |  Monitor  |         
+-----+-----+      +-----+-----+
      |                  |
------+------------------+------- 192.168.0.0/16
      |
+-----+-----+
|    FW     |                
+-----+-----+
      |
------+-------------------------- 10.111.100.0/24
      |
+-----+-----+
|    WEB    |                
+-----+-----+

[8]トンネル

Q1

IPsec パラメータ「IPsecプロトコル」「暗号化」「認証」「Diffie-Hellman グループ」の4つを1番セキュアな組み合わせになるよう選択ください。

IPsecプロトコル
A: AH
B: ESP
暗号化
C: DES
D: 3DES
E: AES
認証
F: MD5
G: SHA
Diffie-Hellman グループ
H: 1
I: 2
J: 5

Q2

正しいMTUの計算を選択ください。なお環境として「NGN_PPPoE」「L2TPv3」「IPsec ( プロトコルESP、暗号AES256、認証SHA-1 ) 」を使用しているものとします。

A: 1366
B: 1296
C: 1336
D: 1454

Q3

インターネットVPNを実現する技術であり、楕円曲線DHを用いて鍵交換を行い、Linux Kernelのメインラインにマージされることが決定したものは以下のうちどれか。

A: IPSec
B: OpenVPN
C: WireGuard
D: VXLAN

Q4

4G/LTEパケット交換網において、ユーザプレーンとコントロールプレーンで利用されるトンネリングプロトコルの組み合わせとして正しいものは次のうちどれか。

A: ユーザプレーン: GTPv0-U コントロールプレーン: GTPv1-C
B: ユーザプレーン: GTPv0-U コントロールプレーン: GTPv2-C
C: ユーザプレーン: GTPv1-U コントロールプレーン: GTPv1-C
D: ユーザプレーン: GTPv1-U コントロールプレーン: GTPv2-C

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.