以前(http://kunst1080.hatenablog.com/entry/2014/01/26/180321)、netcatでwebサーバできないかなーってシェルスクリプト書いたりしていたわけですが、そもそもinetdで指定のポートを通して標準入出力が扱えるってことに気づいたのでやってみたテスト。

### 前準備 テスト用にJail環境を構築し、ユーザー「test」を作成。
IP・・・192.168.29.21
一般ユーザー・・・test
(Jail環境構築のメモはこちら→http://kunst1080.hatenablog.com/entry/2013/11/18/144826 )

### とりあえず繋ぐ
##### rootで、/etc/inetd.confを編集 ```sh http stream tcp nowait test /home/test/hoge.sh ```※ポート80番へのIOをLISTENしてtestユーザで/home/test/hoge.shに渡す、みたいな感じですかね。
##### rootで/etc/hosts.allowを編集 ```sh ALL : ALL : allow ```とりあえず、ね・・・
### とりあえず接続まで
##### メインのスクリプトをかきかき /home/test/hogesh ```sh #!/bin/sh echo this is server echo args is $* echo pwd = $PWD touch /home/test/aho echo ------------------- set ```
##### ブラウザで接続してみる http://192.168.29.21 ``` this is server args is pwd = / ------------------- BLOCKSIZE=K HOME=/ IFS=' ' MAIL=/var/mail/test OPTIND=1 PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/games:/usr/local/sbin:/usr/local/bin:/home/test/bin PPID=2142 PS1='$ ' PS2='> ' PS4='+ ' PWD=/ RC_PID=2125 inetd_dummy=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ```
##### telnetで叩いてみる ```sh % telnet 192.168.29.21 80 Trying 192.168.29.21... Connected to jail.test. Escape character is '^]'. this is server args is pwd = / ------------------- BLOCKSIZE=K HOME=/ IFS=' ' MAIL=/var/mail/test OPTIND=1 PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/games:/usr/local/sbin:/usr/local/bin:/home/test/bin PPID=2142 PS1='$ ' PS2='> ' PS4='+ ' PWD=/ RC_PID=2125 inetd_dummy=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx Connection closed by foreign host. ```ひとまず、HTTPの体を成してないんですけども、繋がった。


### HTTPっぽいものを返してみる /home/test/hoge.sh ```sh #!/bin/sh cat <<++EOS HTTP/1.0 200 OK Content-type: text/html test page

Hello World!

++EOS ```
##### ブラウザからアクセス http://192.168.29.21 ```sh Hello World! ```
##### telnetからアクセス ```sh % telnet 192.168.29.21 80 Trying 192.168.29.21... Connected to 192.168.29.21. Escape character is '^]'. HTTP/1.0 200 OK Content-type: text/html <html> <head> <title>test page</title> </head> <body> <h1>Hello World!</h1> </body> </html> Connection closed by foreign host. ```なんだかそれらしい感じ!!