サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
衆院選
nai.homelinux.net
SSHとは SSHとはSecure SHellの略であり、一般的にtelnetに暗号化を施した物との認識がある。だが、その他にも便利な機能がたくさんある。今回使用するOpenSSHには、telnetのsshやFTPのSFTPといった機能がある。そして、すばらしいポートフォワードもある。 さっそくインスト apt-get install ssh インスト時にセキュリティ的にバージョン1は問題があるのでバージョン2だけ使えるようにしますか?って聞かれるのでYESと答えてやりましょう。 設定 /etc/ssh/sshd_configに設定ファイルができるので以下を変更してやります。 Port 2222 #22のままだとアタックが激しいので変えてやる PermitRootLogin no #rootログイン拒否 PasswordAuthentication no #パスワードによるログイン拒否
テストメール送信 メールサーバ構築中にテストメールを送信することが多々あると思う。自分はよくtelnetでやるがsmtp-authになると、さすがエンコードやダイジェストの作成はできないので、perl君を使うことにしている。 Net::SMTPモジュールを使うとメール送信がかなり楽チンにできてしまう。便利なので機会があったら是非使ってほしい。 SMTP AUTH試験用 コード auth試験用でメール送信はしません。authは暗号化強度が高い順で実行します。digest-md5、cram-md5、plain、login。指定はできないみたいなので、サーバ側で設定するしかないかな。 #!/usr/bin/perl use Net::SMTP; my ($host, $user, $passwd) = @ARGV; die '引き数が不足しています' if(!$host or !$user or
外部からWEBメールを使いたい!!!ってことで、ApacheのSSLを有効にしたい思います。 設定 基本的にaptでインストすれば、証明書も作ってくれて稼動はします。クライアント認証を使いたければ、自分で作った方がいいですね。これがおれおれ証明書の作り方です インスト 悩まずコレ #apt-get install apache-ssl 設定 初期設定で有効なので気にしなくていいけど、おれおれ証明書で自作した人は、この設定内容を確認してください。設定ファイルはこれ/etc/apache-ssl/httpd.conf。 SSLEnable SSLCACertificateFile /usr/local/ssl/ca.crt SSLCertificateFile /usr/local/ssl/server-ca.crt SSLCertificateKeyFile /usr/local/ssl/s
OpenSSLってめんどくさい ちょっとテストでOpenSSLを作成したいとか、家サーバで適当に使う時にいちいちCAを建てるのがメンドクサイ。そんなあなたにこれ、2行のコマンドでできちゃいます。 2行だけでいいんです たったこれだけ。server.keyってのが秘密鍵、server.crtってのが証明書 openssl genrsa -out server.key openssl req -new -x509 -key server.key -out server.crt 2行目でいろいろ聞かれるので随時答えてください。ちなみに、有効期限が過ぎたら再作成すればいいだけ。 おまけ ブラウザ組み込み用 openssl pkcs12 -export -in server.crt -inkey server.key -out server.p12 動作確認 いちいちApacheに設定を入れるのがメ
無線LANクライアントがいるのでLinuxサーバに無線アダプタPCカードをつけてアクセスポイントを構築することにした。 やりたいこと こんなことがやりたいこと 安いPCカードをつけるだけにしたい。 WEPは解読されるのでWPA2対応にする。 ブリッジ接続させて内部のファイルサーバにアクセスさせたい 無線カード選び 無線カードの選定が一番重要となる。当初何も考えずに動作確認ができていたカードを買ったら、Ad-Hocモード(PCとPC接続のみ)かManageモード(いわゆる子機のようなもの)しかできなかった。調べてみるとその2種類が対応しているのが多い。もともとクライアント用なのでそうなのかもしれないが・・。 Linuxで無線カードを認識動作させるには、Linux用に提供されているドライバを使用したりndiswrapperといったドライバマッピングを使用するなど複数のやり方がある。今回は実績が
iptablesとは iptablesとは、Linuxのカーネル機能を使用したIPパケットフィルタである。L3レベルでのフィルタリングとなる為、プログラムとの関連付けやHTTPの中身でのフィルタといった機能はできない。 通信内容 まず、どのような通信があるか考えてみる。ネットワーク構成は、ルータ配下にサーバとクライアントがある。下の図を見てみればわかるが、通信はインターネットからのサーバとの通信(1、2)とクライアントとの通信(3、4)がある。 iptablesなんかでググったら、もりもり出てくるので今さらiptbalesの基本的な使い方はここでは書かない。ユーザ定義チェインとは、自作のルールみたいなもんだ。これを使うとiptablesを使用する際に、すっきりさせることができる。すでにiptablesを設定してある人がいるならば、iptables -Lで定義してある内容が確認できるので見
設定 基本設定ファイル(named.conf) この基本設定ファイルでは、どの場合にはどのゾーン定義ファイルを使うということを書く 今回であれば以下を書く必要がある。 localhostの正引き 127.0.0.1の逆引き 自己ドメインの正引き 172.16.0.0/24(自己ドメイン)の逆引き これを設定に書くと、こうなる。 include "/etc/bind/named.conf.options"; zone "localhost" { type master; file "/etc/bind/db.local"; }; zone "127.in-addr.arpa" { type master; file "/etc/bind/db.127"; }; zone "nai.homelinux.net" { type master; file "/etc/bind/db.nai.hom
FTPの暗号化の種類 ftpだと丸見えなので、暗号化をかけようと思う。ftpの暗号化には主に2つある。 SFTP SFTPというのはSSH上にFTPをのせるやり方である。ポートもデフォルトだとTCPの22番のみを使用する。基本的にSSHをインストすれば使用できる。クライアントはWinSCPとかFileZillaとかが使える。 FTPS 今回使用するのはこれ。FTP Over SSLである。仕組みはFTP同様でコントロールコネクションとデータコネクションの2つのTCPを使用する。単純にFTPを暗号化していると思えばよい。 FTP Over SSLの種類 FTP Over SSLにはExplicitとImplicitの2種類がある。違いは以下である。 Explicit Explicitとはコントロールコネクションの認証時に暗号化を始める。 Implicit Implicitとはいきなり暗号化を
OpenSwanとは OpenSwanとはLinuxでのIPsec実装となり、FreeS/WANの後継プロジェクトとなる。 l2tp IPsecとは l2tpとはレイヤー2でカプセリングしVPNを構成をするプロトコル。ちなみに、カプセル化自体はIPsecのトンネルモードを使用すれば可能。つまり、l2tp IPsecじゃなく、IPsecのみでもVPN環境は可能。WindowsはIPsecも可能だが個人的に使い勝手が気に入らないのでl2tp IPsecを使うことにした。 IPsecとはデータの暗号化。IPsecの実装は複雑でまだ完全に仕様が決まっていないと思う。IPsecについて細かいことは、いろんなサイトで細かい説明があるのでそれを参照してほしい。 ネットワーク構成 クライアントはWindowsでVPNソフトはOS標準を使う。クライアントはNAT配下にあり、サーバはグローバルをもつ。以下の図
$ telnet localhost 25 Trying 127.0.0.1... Connected to localhost.localdomain. Escape character is '^]'. 220 unko ehlo unko 250-nai.homelinux.net 250-PIPELINING 250-SIZE 10240000 250-VRFY 250-ETRN 250-AUTH NTLM LOGIN PLAIN DIGEST-MD5 CRAM-MD5 250-AUTH=NTLM LOGIN PLAIN DIGEST-MD5 CRAM-MD5 250 8BITMIME mail from:<test@nai.homelinux.net> 250 Ok rcpt to:<root@nai.homelinux.net> 250 Ok data 354 End data
PPTPとは OpenVPNのページでも説明したが、PPTPとはMicrosoft社が開発したVPN技術である。クライアントがWindowsであれば、OSデフォルトの機能で実現が可能である。使用するプロトコルがTCP(1723)と専用プロトコル(GRE)を使用する為、環境によっては使用ができない所が多い。OpenVPNであればTCP,UDPの任意のポートで使用が可能である為、環境を考えればOpenVPNの方が使用しやすいだろう。 2つのコネクション PPTPでは、TCPでサーバに接続し、さらにサーバからクライアントに対してGREで接続ある。NAT環境ではルータがPPTPに対応していないと、まず使用できないだろう。 構成 今回やりたい事は、同じネットワークセグメントに接続して各サーバに接続できる様にする。pptpdはarpプロキシができる為、同じセグメントでも通信が可能みたいだ。 カーネル再
ホスト名 /etc/hostnameに書く NIC設定 auto lo eth0 #auto on iface lo inet loopback #loopback iface eth0 inet static #static address 192.168.1.1 netmask 255.255.255.0 gateway 192.168.1.254 iface eth0:0 inet static #alias address 192.168.1.2 netmask 255.255.255.0 iface eth1 inet dhcp #DHCP インターフェイス起動順序 インターフェイス起動の実行順序 /etc/network/interface内のpre-upコマンド /etc/network/if-pre-up.d/内のスクリプト インターフェイスUP /etc/network
Postfixとは PostfixとはMTA(Message Transfer Agent)である。メール転送サーバですね。SMTPサーバですので、受信するには別途POP3やIMAPサーバが必要になります。MTAとしてはsendmailが一番有名なのですが、設定が呪文のように書かないといけません。かなり細かく設定ができるので利点もあるのですが、自宅サーバではそこまで必要ないと思います。それに比べPostfixは文献も多く、何より設定が簡単です。ほぼ、デフォルトである程度セキュリティも確保されて稼動します。自宅サーバには向いてるかなと思います。 やりたいこと メールサーバでやりたいことです。 ISPがOutbound 25 BlockingをしているのでISPのメールサーバにリレーさせる LAN内部からは無条件で送信 外部からのメール送信は認証をかける(smtp auth) もちろんスパム中
SMTP-AUTH関連のperlを作成していていろいろ試したので書いとく。telnetでSMTP-AUTHはできるが、Base64のエンコードやデコード、MD5でのダイジェストはperlとかのプログラムを使用しないとならない。それならNet::SMTPとか使った方が簡単だ。勉強の用途や、なんかのプログラム作るってなら参考になるかも。 plain plain認証は以下の形でクライアントからサーバへ渡す AUTH PLAIN Base64デコード(ユーザ名NULLユーザ名NULLパスワード) ユーザ名がuserでパスワードがpassなら、こうなる。 AUTH PLAIN dXNlcgB1c2VyAHBhc3M= エンコードの方法 Base64エンコードはこんなんで変換すればよい $perl -MMIME::Base64 -e 'print encode_base64("user\0user\0
Apacheにはrewriteモジュールという大変便利なモジュールがある。こいつは、内部でURLを書き換えることができる。内部でURLを書き換えるって・・・、何ができるんよ。っていう人、こんなんできるんだよー。 PHPやCGIで動的ページを作りたいけど、GoogleやYahooのサーチエンジンに登録されなくなるんだよ・・・ 携帯でのアクセスは別ページにしたいけど、www.a.com/i/みたいにしたくない・・・ 動的ページでページがまだ作成されてない時にCGIへ飛ばしたい・・・ レンタルサーバで共有SSLがあるんだが、CGI、PHPはHTTPSで、それ以外はHTTPにしたいな・・・ 特定のリファイラやロボットにはアクセスさせたくない などなど、この他にもやり方次第でいろいろできちゃうんだよね。こんな便利なモジュールは是非使わないと。。。 前提条件 前提条件としては、もちろんApacheでr
logchekでログを確認しよう 毎日ログを見てられない WEBログやメールログ、システムログを毎日みるのはメンドクサイ。だが、見ないわけにはいかないものだ。そこで、logchek。エラー内容などをまとめてメールで送ってくれるすぐれものだ。これで、必要な所だけメールで確認すればいいのだ。 インストール いつもので #apt-get install logcheck 設定 各種設定ファイルは/etc/logcheck/にある。基本デフォルトで問題ない。 logcheck.conf 基本設定ファイル。得にデフォルトでいいが、ここを各自に変えてもよい。 REPORTLEVEL="server" #次のレポートレベルに関係する SENDMAILTO="root" #メール送信先 logcheck.logfiles 対象となるログファイル。今回は以下を対象とした。 /var/log/syslog
自宅サーバで個人用途でわざわざSSL証明書を買えないけど、外部からWebメールやPOP3sとかSMTPsを使いたい。そんなあなたには、これ!おれおれ証明書。そのまま自分で自分を証明する、俺だよ俺証明書です。クライアント認証ってのは、SSLでサーバを証明するのではなくクライアントを証明し認証する使い方。この組み合わせで安全な仕組みができる どこのサイトを見てもCA作ったりしてめんどくさいと思うあなたには、これ最速!!OpenSSLで簡単に証明書を作成する方法。たった2行のコマンドでおれおれ証明書ができちゃいます。 CA認証局 電子証明書の設置場所 どこでもいいので、場所を決めます。 cd /etc/ssl mkdir CA OpenSSLのデフォルト値を変更しておく 同じ様な質問を何回も聞かれるのでデフォルト値を変更しておく。/etc/ssl/openssl.cnf dir = /etc/s
SSHポートフォワードとは、ルータのポート転送の様な機能です。SSHの暗号化した上に任意のホスト、ポートに対して転送する機能です。この機能を使用すればVPNの様なことが可能になります。 どんなことができるんだよ 何ができるのかというと、teratermなどのSSHクライアントさえつなげれば、簡単にトンネリングができセキュアな通信ができるのだ。基本的には外部から自宅内のLANにアクセスしたいが、外部から直接アクセスは危険な場合に使用するのだ。具体的には、こんなこと ルータの設定を変更したい。 クライアントをリモートコントロールしたい メールを安全にやりとりしたい むふふなページをみたいが、会社とか学校で遮断されたりログに残したくないから自宅経由で見る ※最後のはプロキシをかませてやります。このページの下に「むふふなページを自宅経由で見る」を参照。 ポートフォワード概念 ポートフォワードは、こ
このサイトについて 我が家のDebianによる中古PCノートで自宅サーバを構築した時のメモを公開しています。若輩者の為、誤りがあるかもしれません。ご指摘、ご感想がありましたらお気軽にご連絡して下さい。 Linuxのおもしろさ Linuxのおもしろさは何といっても自分で何でも作れて情報が全てオープンになっているということじゃないでしょうか?Windowsはブラックボックスが多くエラーになっても対応が厳しいことがあります。色んな物に触れてみて機能の理解ができ、勉強としても優れていると思います。それと低スペックのPCでもLinuxではストレス無く動きます。 Debianとは DebianとはLinuxカーネルを使用したフリーなOSです。LinuxをOSと呼ぶ人がいますが、厳密にはカーネルになります。カーネルとは簡単にいうとOSの基本機能(ディスクやキーボードなどの管理、割り込み処理、プロセス間
サーバ構築 ようやく、サーバ構築の説明。 ブリッジの設定 まず、ブリッジ。 カーネルの対応 カーネルがブリッジに対応していないとできない。カーネルメニューの"Networking Options"内の"Ethernet Bridge"かな?これが有効になってないとできない。なければ、めんどうだがカーネルの再構築が必要になる。sargeはデフォルトで有効になっていた。 bridge-utilsのインストール bridge-utilsでブリッジ構成が作れる。いつも通りにインスト。 #apt-get install bridge-utils 手動でブリッジを有効にする brige-utilsのbrctlを使用してブリッジを有効にする。 #brctl addbr br0 #brctl addif br0 eth0 #brctl addif br0 tap0 #ifconfig br0 1
このページを最初にブックマークしてみませんか?
『Kung Noi:Debian自宅サーバ構築メモ』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く