2013年7月13日土曜日

MacOSXのインターネット共有で、MACアドレス制限を行いたい

MAC,MACややこしいですが、T/Oです。
MACのインターネット共有は便利なので、ついつい使いたくなってしまうのですが、はやりセキュリティを考慮しないのは危険ということで、インターネット共有を行う際に、指定したMACアドレス以外は、接続できないようにしたいと思います。

環境



  • Mac OS X Lion



どのレイヤーでやるか


最初、ipfwでやろうとしたのですが、どうにもうまく行かず。

インターネット共有では、dhcpでIPアドレスをばらまいてるわけですが、ココで指定したMACアドレス以外にはdhcpでアドレスを付与しない方向に切り替えました。

想定外の端末が直接アドレス指定してアクセスしてくるリスクには、払い出すアドレス数の管理+ipfw等で対応することとします。もちろん、無線LANのキーを設定するのは言うまでもありません。

もし、下記を実行して、セキュリティインシデント起こしても当方は知りません( ー`дー´)キリッ

概要:インターネット共有の手順


[システム環境設定] -> [共有] -> [共有する接続経路(Ethernet)] + [相手のコンピュータが使用するポート(Wi-Fi)]を選択し、インターネット共有チェックボックスをONにします。

そうすると、bootpが動き出し、/etc/bootpd.plist が生成されます。このファイルを編集するのですが、難があり、デーモン起動時に新規にファイル生成し、デーモン停止時にファイルを削除しやがります。この点、多少ケアが必要です。

/etc/bootpd.plist 実際のファイルサンプル


[xml]




Subnets


_creator
com.apple.InternetSharing
allocate

dhcp_domain_name_server

10.0.2.1

dhcp_router
10.0.2.1
lease_max
86400
lease_min
86400
name
10.0.2/24
net_address
10.0.2.0
net_mask
255.255.255.0
net_range

10.0.2.2
10.0.2.254



allow

xx:xx:xx:xx:xx:xx

bootp_enabled

detect_other_dhcp_server

dhcp_enabled

en1

use_server_config_for_dhcp_options



[/xml]

allowの部分に注目して欲しいのですが、
[xml]
allow

xx:xx:xx:xx:xx:xx

[/xml]
allowで指定したMACアドレスだけに、IPアドレスを割り振るようになります。(その他はデフォルト値です)

実際のオペレーション


[bash]
#設定ファイルを編集して
sudo vim /etc/bootpd.plist

#chflagsを立てます
sudo chflags uchg /etc/bootpd.plist

# インターネット共有開始
[/bash]

ファイルが消されてしまう対策として、BSD系OSで使用出来るchflagsを利用します(chmodでreadOnlyにしても消されるので)。
もっとエレガントな方法ありそうな気はしますが。。。

再度ファイルを編集したくなったら
[bash]
sudo chflags nouchg /etc/bootpd.plist
[/bash]
上記を叩けばOKです。

ではでは。

参考にしました


https://developer.apple.com/library/mac/#documentation/Darwin/Reference/ManPages/man8/bootpd.8.html

2013年7月11日木曜日

2013年前半振り返り

さらっと振り返ってみる

1月

  • インフルで死んでた記憶しかない


2月

  • 新チーム体制になったけど、裏側の保守っぽいことメインに仕事してた気がする。



3月

  • 2月とやってること変わらず保守っぽいのがメインだったけど、エイプリルフールの実装とかは、初めてまともに機能的なものを仕込んだかも。



4月

  • チームでフロント周りのリソースが薄かったので、かなりの部分、マークアップっぽいことしてた気がする。FTL/CSSに少しだけ詳しくなる。



5月

  • r***とか、e***とかのある程度のカタマリ機能を実装。



6月

  • 保守っぽいのから、***の機能とかを実装。手広く浅く。



振り返り

  • この半期開始時点よりは、ずいぶんマシになった気がする(元が酷すぎるんだけど)

  • 6月ぐらいから自分に不足してる知識とかがかなりクリアになってきて、Inputの元気も戻ってきたので、最近は本とかも読めている



後半戦へ向けて

  • もーちょいマシなエンジニアになりたい。

  • QCDをあげていきたい。

  • 設計〜実装〜テスト:やっぱりこのあたりを強化していきたい。分析とかは当分いいいや。

2013年6月11日火曜日

FreeMarkerのハッシュの要素にアクセスする(2)

前回「FTLのハッシュの要素にアクセスする」というのを書いたのですが、このときやりたかったことって、配列の「最後」にアクセスしたかったからなんですね。

でも、値直接指定じゃなくて、配列の最後を判定する構文がちゃんと用意されていたのでした。。。

マニュアルはちゃんと読みましょうというはなし。


[java]
<#assign foobar = ["hoge", "fuga", "piyo"]>

<#list foobar as str>
${str}
<#if str_has_next>さいごじゃ


[/java]


参考


http://freemarker.org/docs/ref_directive_list.html

2013年5月23日木曜日

FreeMarkerのハッシュの要素にアクセスする

T/Oなんですが。FTLのお話。

こんなハッシュがあったとして
[java]
<#assign hoge = [

{
"title":"fuga",
"id":"piyo"
}
] />
[/java]

ずらーっとね。で、特定要素にアクセスするときは、こんな感じで書けるっぽい。
[java]
<#list foo.hoge as bar>
    <#if bar.id == "piyo">
    ぴよぴよ
    

[/java]
みたいな。

2013年5月15日水曜日

ドキュメントについてのリンク集

書きかけ

ウォーターフォール



  • 即活用!業務システムの開発ドキュメント標準化


    • http://thinkit.co.jp/free/project/4/1/1.html


  • グラス片手にアジャイル開発 第4回 - ハイブリッドアジャイルの実践法


    • http://codezine.jp/article/detail/5498



アジャイル



  • ドキュメントを効果的に利用する


    • http://it.impressbm.co.jp/e/2010/08/20/2665


2013年4月20日土曜日

EclipseがWorkbenchのロード中で止まっちゃうとき

環境は

  • MacOS X Lion

  • Eclipse 3.7 (英語版/JavaEE)

  • Java 6




間違って電プチしちゃったときとか、バッテリー切れて落ちたとか、Eclipseが突然死するとかで、
不意に落ちるとworkspace選択->workbenchのロードで止まっちゃうことが多いです。

その時用のまとめ。

やること1.ログを見よう


このへんのログを見る。解決の糸口があるはず。

workspace/.metadata/.log


やること2.cleanで立ち上げよう


こんな感じのログの場合

!ENTRY org.eclipse.core.resources 2 10035 2013-04-20 02:00:14.017
!MESSAGE The workspace exited with unsaved changes in the previous session; refreshing workspace to recover changes.

ワークスペースをリフレッシュせよとあるので、一旦

./eclipse -clean

を試してみる。ケースにもよるけどこれで割りと復活する。

やること3.snap的なファイルを消してみる


こいつらが居たら消す

.metadata/.plugins/org.eclipse.core.resources/.snap
.metadata/.plugins/org.eclipse.core.resources/.projects/*/.*.snap


だいたいこれで治る。

とても参考になりました


http://www.andr0o0id.com/?p=854

2013年4月18日木曜日

シェルスクリプトで添付ファイル付メール送信

例によって、備忘録。CentOS 5系にて

※ わかりにくい箇所を書き直した 2015.10.13

uuencodeが入ってなければInstall
$ sudo yum install sharutils


mailコマンドでメールが送信できる前提での、
動作サンプル:本文+添付ファイル
$ (echo "mail_body"; uuencode file_path file_name) | mail -s 'mail_title' mail_address

見にくいので、ちょっと補足すると、

mail_body : 本文
file_path : 添付するファイルのpath
file_name : 添付ファイル名
mail_title : メールの件名
mail_address : 宛先メールアドレス(to)

ちなみに、日本語とか文字化けするので、
mailコマンドに渡す前に、nkf -j をパイプで通すとよい。