ポートをサブミッションポートを使わず、25で送るようにしたら、タイムアウトすることはなくなったんですが、以下のようなエラーメールが帰ってきます。つなぎに行っていることでした。なんだ?と思って思いついたのがMXレコードです。MXレコードの値でした。見に行っていたわけです。くくることが必要みたいでした。くくるsendmailの設定はなかなかクセが強いので、苦労しました。前回は設定の意味もよくわかっていないままでしたが、今回はだいぶsendmailの挙動について理解できるようになりました。メールサーバを構築し別メールサーバに全転送【Postfix編】で書いています。自宅サーバー対応)☆お便利サーバー.com☆sendmailをSMTPクライアントにしてWAKWAKからメール送信する。Linuxルータでポート変換(非推奨)会社のインターネット用プロバイダが、今まで固定IP使ってたんですが、経費削減で動的IPに変更させられました。Blocking)されています。Blocking等参考。)で、会社のメインのメールはプロバイダとは別のレンタルサーバを使っています。クライアントのメーラはサブミッションポート(587)を使うように設定しなおせばいいんですが、問題は各種サーバはPCの監視ソフト、スキャンメールができる複合機で、送信ポートが設定できないものがあるということです。いうことで、送信ポートが設定できないソフトや機械でどうやってレンタルメールサーバに送るか検討してみました。一つはルータでのポート変換を行うという強引策と、もうひとつは自社にメールサーバを立てるという方法です。Linuxルータでポート変換これはかなり強引な方法で、送信先ポートが25になっているのをルータで587に変換してしまうという方法です。レンタルサーバ上のメールサーバがSMTP認証がなくても使えるので、クライアントからメールサーバ宛のパケットの送信先ポートを変換してしまいます。手持ちのインターネットゲートウェイに使っているルータが、送信先ポート変換ができなさそうだったので、ゲートウェルータとLANとの間にLinuxルータを置いてみました。iptablesのDANT機能でポートを変換します。イメージとしては以下のような感じです。Linuxルータのiptablesの設定は以下のようにしました。静的NATを使って設定したので、仮想インターフェイスの作成が必要です。xxx.xxx.xxx.xxx:587この環境で、クライアントからメール送信(25ポート宛て)した時に、Linuxルータ側でパケットキャプチャしたときは以下のようになってました。kernelどうやら、ちゃんとレンタルのメールサーバと会話できているようです。上記のiptablesの設定は、あくまで実験環境なので実際に運用するにはLinuxルータ側でNAPTの設定が必要かと思われます。ポート変換がかけれるわけですが、IPも必ず指定しないと行けません。いうことで、インターネット側のメールサーバはひとつしか使えないことになるので、複数メールサーバを使っている場合にはNGです。指定時はIPアドレスでないといけないこともネックですね。(もし、レンタルサーバのメールサーバのIPが変わったら変更しないといけません)ということで、この方法は余り現実出来ではありません。sendmailでメールサーバを構築し別メールサーバに全転送(推奨)のほうが現実的です。メールサーバを構築し別メールサーバに全転送【Postfix編】で書いています。これを使えば、ポートだけ変換できるじゃん!と思ったんですが、これはLinux自身でパケットを受信する場合のみポートリダイレクトするようです。今回のように、ルータとしての役割を持たせてパケット転送するときには使えないということです。REDIRECT」は、ホスト自身の別サービスポートにしかリダイレクトできません。そのためLinuxルータとHTTPプロキシサーバが同一のホストで動作していない場合は、REDIRECTも使用できません。REDIRECTがホスト自身に対してしか適用されないことが書いてません。ネットワークPrivoxyでホワイトリスト方式のプロキシを立ててみたWindowsPCで、許可したサイトしか閲覧できないようにして欲しいという依頼がありました。IEのコンテンツアドバイザを使っても良かったんですが、今回はそのPC自身にプロキシソフトをいれて、そこでフィルタリング出来ないか試してみました。PrivoxyはオープンソースのWebフィルタでプロキシとして動作するようです。フィルタの設定がかなり柔軟で、主に広告コンテンツを除去したりするのに使われているようです。torと一緒に使ってさらに匿名性を挙げるためにも使われるようです。インストールファイルが終われば設定ファイルを触ります。config.txtには全般的な設定が入っています。アクションファイルには、どのURLにどのフィルタをかけるかの設定を書きます。フィルタファイルには、フィルタを正規表現で定義します。ホワイトリスト方式の設定はFAQ(公式日本語訳)/設定に載っていました。config.txtを探して以下のようにuser.acitionファイルを使う設定になっているか確認します。user.action(個別のアクションはuser.actionファイルに記述するのが良いようです)次に、user.actionファイルで以下のように定義すると、全てのURLがブロックされます。}を定義し許可するサイトを指定していきます。}.jehupc.exblog.jp.youtube.com.google.com.jehupc.comこの時、パターンの書き方がちょっと特殊なので気をつけます。千里眼に書かれています。)このドメインのパターンが部分一致でないのです。jehupc.comと定義した時、jehupc.comのページはOKですが、xx.jehupc.comはNGになります。そのドメイン全体に適用させたい場合は、ドメイン名の先頭に「.」を入れればOKなようです。設定が終わればブラウザにプロキシの設定しをします。デフォルトであれば待ち受けポートは8118なので、127.0.0.1:8118をプロキシ先として設定します。これでprivoxy.exeを起動し、ブラウザでアクセスすると指定したURL以外は見なくなっているはずです。"をいうリンクを押下すると見えてしまいます。このリンクをのけます。以下のように設定するといいようです。1また、毎回exeを起動するのも面倒なのでサービスとしてインストールしてしまう方法も書いておきます。つければいいようです。Manualアクションファイルの公式マニュアル。Privoxyで、Webページの読み込みが不完全になることがある件。いう場合、keep-alive-timeoutを無効化するといいようです。コンテンツアドバイザを使う場合の方法です。ネットワークインターフェイスを指定してrouteコマンドで静的ルートを設定するルーティングテーブルを操作しゲートウェイを設定するで、Windows環境でスタティックルートを設定する方法を書きました。NICが複数ある場合はどのNICにするか指定しないといけないようです。オプションで指定できます。ヘルプを見ると、インターフェース・インデックスを指定するようにとなっています。以下のような感じです。Adapter)に設定するには以下のようにします。L2スイッチを使っているんですが、その内の8番ポートにLANケーブルを接続しても通信できません。このL2スイッチはIPを設定できるんですが、設置時の設定資料が残ってないためIPも不明です。裏側にコンソール用のRJ45ポートがあったので、コンソールケーブル(RJ45-DB9)を使って、ターミナルから設定を見てみました。CLIのコマンドの一覧は、http://www.cisco.com/cisco/web/support/JP/docs/SW/LANSWT-Access/CAT2940SWT/CR/001/15505_05_2.html?bid=0900e4b1825ae691で確認できます。interfacesコマンドを叩いてみました。すると、8番ポートの部分が以下のようになっていました。いうことはミラーの設定がされているのか?と思い、ミラーの設定の確認をしてみました。以下のコマンドで確認できるようです。Disabledやはり、ミラーの設定がされていたようです。3番ポートのパケットをミラーするようになっていますね。加えるとさらに詳しい情報が確認できます。Noneミラーの設定は以下のようにするようです。(キャプチャ元のポート設定。(キャプチャ先のポート設定。叩くとデフォルトのDNSサーバに対してクエリを発行します。第二引数にDNSサーバを指定してやればいいようです。ネットワークRTX1000でNATテーブルが溢れたRTX1000でIPマスカレードを使ってて、ふとNATテーブルを確認すると、結構な量使ってました。以下のコマンドが使えます。IPマスカレードの変換テーブルも見れます。TTL(秒)このままでは端末が増えたときにテーブル使いきってしまうおそれがあるため、ポート範囲を広げようと思いました。コマンドで40000-60000までにしてみます。RTX1500や1100も同様でした。RTX1200はポート範囲20000までいけるようです。元大学生の悪魔^H^H魔神OL日記-で対応策が載ってました。NATテーブルで保持してるセッション情報の保持期間を短くしてやるといいようです。デフォルトは全プロトコルで15分間(900秒)IPマスカレードのセッション情報を保持しているようです。timerコマンドを使うようです。NATディスクリプタ1の全プロトコルでセッション保持期間を10分に変更するには以下のようにします。600TCPの80宛のセッション保持期間を120秒にするには以下のようにします。120セッション保持期間を短くすると確かに、使うポート範囲が小さくなり使用するNATテーブルの使用量を抑えれました。limitコマンドでホスト毎のセッションの最大数を指定してやるといいようです。(RTX1100以上。RTX1000は使えないみたい)例えば以下のようにすると端末毎のセッション数を200に出来ます。情シスで何でも屋の三流プログラマのコーディング、サーバ管理、PC生活関係のメモ書き。このメモが忘れっぽい自分とググってきた技術者の役に立ってくれれば幸いです。29検索カテゴリ全体Linuxサーバがらみ.Net開発PHP開発C/C++開発JavaSQLツール思ったこととかニュースとか。メッセージを入力してください。