\
Gakusei Jikken 2 Software: Network and Security
学生実験2 ソフトウエア (ネットワークとセキュリティ)
Last modified: 2005年 11月 16日 水曜日 14:55:45 JST
更新履歴
スケジュール(水曜午後1時より)
グループ
| 第1週 | 第2週 | 第3週
| 第4週 | 第5週 | 第6週
| 第7週
|
A
| 10月12日 | 10月19日 | 10月26日
| 11月 2日 | 11月 9日 | 11月16日
| 11月30日
|
B
| 12月 7日 | 12月14日 | 12月21日
| 1月11日 | 1月18日 | 1月25日
| 2月 1日
|
第1週 | 課題 1,2
|
第2〜3週 | 課題 3,4,5(課題6は余裕がある場合)
|
第4週 | 課題 7
|
第5〜6週 | 課題 8
|
第7週 | 予備日・レポート作成
|
- Aグループの出席情報はこちらで確認してください
(第7週は予備日のため出席はとりません)
- Bグループの出席情報はこちらで確認してください
(第7週は予備日のため出席はとりません)
目次に戻る
課題1:サーバの動作確認
課題2:WWWサーバ
課題3:チャットクライアント・サーバの動作確認(C言語)
課題4:チャットクライアントの改良(C言語)
課題5:チャットサーバの改良(C言語)
課題6:チャットプログラムの機能拡張(C言語)
課題7:チャットクライアント・サーバの動作確認(Java)
課題8:ファイアウォールの構築
目次に戻る
レポート内容
- 課題7までは個人実験で課題8のみグループ実験となっていますが、
レポートはすべての実験を個人ごとにまとめてください。
(つまり、課題1から課題8までを各自でまとめて、最終的にそれらを
重ねたものをグループとして提出)
- 各実験課題では、以下についてまとめてください。
- 実験の方法
- プログラムの処理手順、プログラムの作成上の注意
- 実験で得られた結果
- 結果に対する考察
なお、レポートの書き方については、10月5日の実験ガイダンス時に説明された
点に注意してください。
作成したプログラムは印刷して分かりやすいように添付してください。
(可能であればA4横向き2段組での印刷が望ましいですが、強制ではありま
せん)
作成したプログラムなどは、各自のディレクトリに整理してください
(レポート採点時に参照します)。
(Aグループ1班の h03XXXXb さんの例)
% mkdir /pub1/jikken/net/students/groupA1/h03XXXXb/
% cp ~h03XXXXb/iptables.sh /pub1/jikken/net/students/groupA1/h03XXXXb/
% cp ~h03XXXXb/iptables.log /pub1/jikken/net/students/groupA1/h03XXXXb/
- ネットワーク実験は、今年度より新しく始まった実験であるため、
テキストの内容や課題のレベルなど、学部3年生のみなさんにとって
必ずしも適切なものとは言えないかもしれません。
そこで、レポートの最後に感想としてそれらをまとめてくれれば、
今後の参考にしたいと思います。
課題ごとの特記事項
[課題1]
- ネットワークサービスの動作確認に使用した UNIX コマンドや、
参照した各種設定ファイル、確認結果について、
表などを適切に利用して簡潔にまとめてください。
- 本実験を、情報工学コース教育用計算機室(ICE)以外のサーバに
対して行わないよう注意してください。
- サーバによっては、ハッキング防止のために、サービス自体を
停止したり、サービスのバージョン情報などを表示しないよう
設定している場合もありますので、無理に調べる必要はありません。
レポートには、使用したコマンド等を記した上で、
「サービス不可」「バージョン不明」などと書けば十分です。
[課題2]
[課題3]
- ヒントでは、echo サーバや telnet コマンドを利用して
片方ずつ動作確認する、と書いてありますが、サンプルプログラムには
バグはないはずですので必ずしもその必要はありません。
(もちろん、試しても全然構いません)
[課題4]
- テキストでは敢えて具体的に指示しませんでしたが、送信できる文字列の
長さを増やす方法は、各自のプログラミングスキルに合わせて
自由に工夫してください。単純にバッファを増やす方法から、
事前にヘッダ情報として送信文字数を送る方法など、
いくつかの方法があると思います。
単純な方法でも、課題内容をクリアしていれば OK です。
工夫していれば、さらにプラスアルファの加点があると考えて下さい。
[課題5]
- サンプルプログラムは、正確にはチャットクライアント・サーバではなく、
クライアントからのメッセージをサーバが単純に折り返すだけの、
echo クライアント・サーバです。
- まずは、echo サーバをクライアントの多重接続を許すように改良してください。
- 次に、クライアントからのメッセージを、サーバに接続中の全クライアントに
送信するように変更してください。
- 実装方法はいくつかありますので、各自で工夫してください。
Webの情報を参照しても構いません。
- 多重接続を受け付ける方法として、テキストでは fork システムコール
と select システムコールを紹介していますが、必ずこれらを使わなければ
ならないというわけではありません。他の方法として、マルチスレッド
を使う方法もありますので余裕のあるひとは調べてみてください。
[課題6]
[課題7]
- はじめに、パスの設定を行う必要があります。シェルに Cshrc を使用
している場合は、~/.cshrc に以下を追加してください。
set path の中に /usr/local/j2sdk1.4.2_07/bin を追加。
set CLASSPATH = . (ピリオド) の行を追加。
- Javaプログラムのコンパイルには javac コマンドを使います。
% javac ChatServer.java
- Javaプログラムの実行には java コマンドを使います。
% java ChatServer
- サンプルプログラムEchoServer.java/EchoClient.javaは、
echo クライアント・サーバです。
課題5のチャットサーバが完成していない場合は、課題5の実装は
複数クライアントからの接続を許可する echo クライアント・サーバ
までで構いませんので、echo クライアント・サーバ同士での通信テスト
を行ってください(これが最低限の課題)。
- 課題5の最終目的であるチャットクライアント・サーバと通信テスト
を行う場合には、サンプルプログラムChatServer.java/ChatClient.javaを
使用してください。C言語版のプログラムと通信する場合、適宜修正して
構いません。
[課題8]
- iptables のサンプルファイルを こちら
からダウンロードして、課題の条件を満たすように修正してください。
- 修正が終わったら、ファイルパーミッションを変更して実行してください。
# chmod 744 iptables.sh
# ./iptables.sh
- 正しく設定されているかを確認するには、iptables コマンドを使います。
現在アクティブなルールセットを表示する場合は、次のようにします。
# /sbin/iptables -L -n
NATテーブルを確認する場合には、次のようにします。
# /sbin/iptables -L -n -t nat
また適宜、出力したログファイルを確認するなどしてください。
- iptables サービスを再起動する場合は、次のように入力してください。
# /etc/init.d/iptables restart
- 内部ネットからの接続テストを行うために、ノートPCを1台用意してあります。
各班のルータマシンとLANケーブルで接続すると、ルータマシンからDHCPでIPアドレスを取ります。
Login ID とパスワードは、最初に渡したものと同じです。
個人のノートPCを接続しても構いません。ネットワークの設定は、DHCPからIPアドレスを取るようにしてください。
- レポートには、ルータの設定情報を課題の条件ごとに分かりやすくまとめ、最後に設定ファイルを添付してください。
- アクセスログをレポートに載せる必要はありませんが、採点時に確認し
ますのできちんとファイルを残しておいてください。
- 各班の代表者は、/pub1/jikken/net/students/ 以下に保存用のディレクトリを作成して、
そこにルータの設定ファイルとアクセスログファイルを置いてください。
(Aグループ1班の場合の例)
% mkdir /pub1/jikken/net/students/groupA1/
% cp ~h03XXXXb/iptables.sh /pub1/jikken/net/students/groupA1/
% cp ~h03XXXXb/iptables.log /pub1/jikken/net/students/groupA1/
レポートには、ファイルの保存場所を記載してください。
- テキストP.37記載の、ルータの設定条件の2番目
「外部ネットワークからの接続は、SSHのみ許可し、その他の接続はすべて拒否する」
の接続先はルータのみで結構です。
レポート提出日
- 第1期(Aグループ)のレポート提出の
1次締切は、12月7日(水)の実験時間内です。
その際にレポート全般のチェックを行い、不備がある場合はその箇所を指摘して返却します。
最終締切は、12月12日(月)です。
10時から13時までの間に、長尾研究室(IB館南395号室:実験室の真上)の大平まで提出してください。
(14時以降は受け付けられません)
- 第2期(Bグループ)のレポート提出の締切は、 2月8日(水)16:15迄(予定)
目次に戻る
サンプルプログラムは、/pub1/jikken/net 以下に置いてありますので、
各自のディレクトリにコピーして利用してください。
目次に戻る
目次に戻る
実験の内容に関する質問は,原則として実験時間中にスタッフ,TA に聞いて下さい.
時間外にどうしてもという場合には,上の表を見て個人宛に送りましょう.
実験の内容以外に,実験を進めるにあたって困ったことが発生した場合は,
大平に連絡して下さい.
計算機の使用の面で困ったことが発生した場合は,大下さんに連絡して下さい.
目次に戻る
ICE のトップ・ページ
情報工学科のトップページ
jikken-staff@ice.nuie.nagoya-u.ac.jp