ホームページ >php教程 >php手册 >Linux 簡潔なシステム保守マニュアル (4)

Linux 簡潔なシステム保守マニュアル (4)

WBOY
WBOYオリジナル
2016-06-21 09:08:321134ブラウズ

(7) imap サーバーをインストールします
ほとんどすべての配布パッケージには imap サーバー ソフトウェア (通常はワシントン大学バージョン) が付属しています。最良の方法は、配布パッケージと一緒に IMAP サーバーをインストールすることです。実際、IMAP サーバーはほとんど使用されていないと個人的に感じています。最も一般的な IMAP サーバーのソース コード アドレスをダウンロードします: ftp://ftp.cac.washington.edu/imap/imap.tar.Z


tar zxvf imap.tar.Z
cd imap-2001a
make slx



(うまくいかない場合は、可能だと思う他のシステムタイプを順番に試し、vi を使って Makefile 内の列の名前を確認してください)

次に、inetd が imap サービスを許可できるように /etc/inetd.conf を設定します。 。 [このセクションの内容はテストされておらず、コンパイルは常に失敗します]

(8)イカサーバーのインストール

SQUIDは、フォワードプロキシ、リバースアクセラレーションモードや透過プロキシなど。ただし、SQUID が現在プロキシできるのは HTTP プロトコルのみです。FTP プロトコルをプロキシするには、アクティブな FTP プロトコルをエミュレートするようにブラウザを設定する必要があります。次の手順は、SQUID をインストールするプロセスです。

1.squidを使ってリバースプロキシサーバーソフトをダウンロードします ダウンロードアドレス:http://www.squid-cache.org/

ダウンロード後、/usr/local/srcディレクトリに保存します。 -2.4. STABLE2-src.tar.gz

2. tar zxvf squid-2.4.STABLE2-src.tar.gz 解凍

3. cd /usr/local/src/squid-2.4.STABLE2 ディレクトリに入ります

4. /configure --prefix=/usr/local/squid --enable-heap-replacement --disable-internal-dns 環境を作成し、/usr/local/squid に Squid をインストールします。 2 番目のパラメータは、より高度なバッファリング アルゴリズムの使用を指定します。 3 番目のパラメーターは、内部 DNS 解決をキャンセルすることです (GSLB などのリモート キャッシュ モードで使用する場合は、オプション --disable-internal-dns を追加する必要があります。目的は、内部 DNS をオフにすることです。それ以外の場合、内部 DNS はetc/hosts 設定で無視されると、ドメイン名サーバーを直接検索します。これにより、転送ループが発生します。(ドメイン名が使用されているため) キャッシュによって物理サーバーに送信された更新リクエストも、サーバーによって解析されます。ユーザーのGSLNデバイス、ループを形成します) 5. Makeが始まりCompile

6. Make installして--prefix=

で指定したパスにインストールします 7. インストールが完了するとsquidディレクトリが生成されます指定したインストール パスは、squid ディレクトリの下に 4 つのディレクトリがあります: bin/etc /libexec/logs/。このうち、etc には設定ファイルが、bin には実行ファイルが、logs にはログファイルが含まれます。

8. インストールが完了したら、サーバーをデバッグして、要件に従って動作するようにします。 Squid には、etc ディレクトリにあり、squid.conf という名前の設定ファイルが 1 つだけあります。すべての設定オプションはこのファイルにあります。そして、各設定項目には注釈が付いています。まず、squid ファイル内で次の設定項目を見つけます:

cache_mem ---ここで、squid にキャッシュとして使用する予定のメモリ サイズを追加できます。マシンに N メガバイトのメモリがある場合、ここで追加する推奨数値は N/3 であることに注意してください。

cache_dir /usr/local/squid/cache 100 16 256 ここでの最初の数字 100 は、Squid にキャッシュとして使用する予定のハードディスク容量 (メガバイト単位) です。 100M のスペースをキャッシュとして割り当てたい場合は、ここに 100 と書き込みます。

cache_mgr webmaster@test.com.cn ここにキャッシュ管理者のメールアドレスを入力してください。システムエラーが発生すると、キャッシュ管理者に自動的に通知されます。

cache_replacement_policyとmemory_replacement_policyのパラメータには--enable-heap-replacementコンパイルパラメータが使用されるため、デフォルトのlruアルゴリズムは使用できません:

heap GDSF: Greedy-Dual Size Frequency

heap LFUDA: Dynamic Aging で最も頻繁に使用される

heap LRU : ヒープを使用して実装された LRU ポリシー

例:


cache_replacement_policy heap LRU
memory_replacement_policy heap LRU



以下の ACL アクセス制御リストを設定します。シンプルさ 安全のため、ここではすべての権限を開きます。 ACL は、ACL 定義部分と http_access 部分の 2 つの部分に分かれています。以前の定義は、access_http セクションで使用されます。以前に定義された:


acl all src 0.0.0.0/0.0.0.0



すべての http_access 行をコメントアウトして追加します:

http_accessallow all ---注: all は以前に acl によって定義されています。

これにより、すべての権限が開きます。今後も必要に応じて、さまざまな制限を追加し続けることができます。

9. root としてグループ nogroup を作成します:


%su root (現在 root でない場合)
#groupadd nogroup
#useraddEveryone (そのようなユーザーが存在しない場合)



10. ディレクトリに移動します。 /usr/local、root として次のコマンドを実行して、Squid ディレクトリ全体の所有者をnobody.nogroupに変更します #cd /usr/local
#chown nothing.nogroup -R suck



11. suはnobodyとして実行します。 /usr /local/squid/bin ディレクトリ、#squid -z を実行してキャッシュスワップディレクトリを作成します


#su nothing
$ cd /usr/local/squid/bin
$./squid -z



12. 成功したら、テストします: /usr/local/squid/bin/squid -NCd1 このコマンドは Squid を正式に起動します。すべてが正常な場合は、次の行の出力が表示されます: Ready to Serverequests.

13. ctrl-c を使用してフロントエンド テストを終了します。

14. Squidをデーモンとして起動し、直接実行する: /usr/local/squid/bin/squid

15. squid –k checkでステータスを確認

16. squid -k shutdownでSquidを停止

If基本的なフォワード プロキシを設定すると、上記のものを使用する準備が整いました。複数のドメイン名をサポートするリバース プロキシ サーバーを構成するには、次の手順を使用します。幸いなことに、すべての SQUID 設定は /usr/local/squid/etc の下にあります。リバース プロキシに関連するいくつかの概要は次のとおりです:

17. http_port 80 「http_port」パラメータは、Squid がブラウザ クライアントの要求をリッスンするポート番号を指定します。

18. icp_port 0 「icp_port」パラメータは、Squidが隣接サーバーのバッファからICPリクエストを送受信するポート番号を指定します。 Squid が内部 Web サーバーのアクセラレータとして構成されているため、ここでは 0 に設定されており、近隣サーバーのバッファーを使用する必要はありません。

19. Emulate_httpd_log on 「emulate_httpd_log」オプションをオンにすると、Squid は Web サーバーの形式でアクセス記録を作成します。 Webアクセス記録解析プログラムを使用する場合は、このパラメータを設定する必要があります。

20. redirect_rewrites_host_header off デフォルトでは、Squid はリダイレクトリクエストのホストヘッダーを書き換えます。システムがアクセラレータ モードで Squid を実行している場合、現時点ではリダイレクト機能は必要ありません。このパラメータは、高負荷時にリダイレクタをバイパスしたい場合にのみオンになります

21. httpd_accel_host vartual ここでリバースプロキシのホスト名を設定します 複数のドメイン名をバッファリングしている場合は、仮想ホストモード( など)を使用してください。 。

22. httpd_accel_port 80 ここにリバースプロキシのWEBサービスのポート番号を設定します。

23. #httpd_accel_with_proxy off この行をコメントアウトして、リバースプロキシをオンにした状態で通常のプロキシキャッシュサービスを有効にするかどうかを設定します。この行がコメントアウトされていない場合、キャッシュ機能はありません。

24. アクセス制御リストを定義します:


acl port80 port 80
acl accel_host1 dstdomain .test.com
acl accel_host2 dstdomain .test.net
… …
http_accessallow accel_host1 port80
http_accessallow acc el_host2 port80
http_access をすべて拒否します。



25. 完了したら、squid –k reconfigure を使用して設定ファイルをリロードします。

(9) SSHをインストールする

---

(10) Linuxをルータとして設定する

---

(11) Linuxゲートウェイを設定し、ipchains/iptablesファイアウォールをインストールする

Linux上のファイアウォールは、最も最も一般的に使用されるのは ipchains で、通常はゲートウェイへのアドオンとしてインストールされます。 Ipchain のルールは非常に複雑かつ柔軟性が高く、さまざまな形に定式化できます。これらを実際の状況と組み合わせる必要があります。ここでは、ゲートウェイベースの簡単な構成のみを紹介します。

ほとんどすべての Linux ディストリビューション パッケージにこのソフトウェアが必須インストールとして含まれているため、通常、IPCHAINS のインストールについて心配する必要はありません。もう 1 つの理由は、ipchains はカーネルと大きく関係しているため、システムをインストールするときに関連するオプション (存在する場合) を選択するのが最善であるということです。タイトルで iptables についても触れましたが、このツールは表面的には ipchains と同等ですが、2.4 カーネルでのみ使用されます (2.4 カーネルのこの部分のコードはほぼ書き直され、その機能は大幅に改善されました)。 iptablesツールの設定については後ほど紹介します。 2.2 コアでは ipchains を使用し、2.4 コアでは iptables を使用することを忘れないでください。

まず、サーバーには2枚(またはそれ以上)のネットワークカードが必要です。この種のマシンは「マルチホームホスト」と呼ばれ、特にゲートウェイまたはルーターとして使用されます。以下に文を示します。 通常の状況では、負荷が高くても、通常のサーバーとしてのホストにネットワーク カードが必要になるのは、ゲートウェイまたはルーターとして使用される場合のみです。これはほとんどの人が考えていることとは異なり、ネットワーク カードを追加すると帯域幅が増加します。実際、ネットワーク カードは十分な帯域幅を提供します。さらに、誤って 2 つのネットワーク カードを同じスイッチに接続し、2 つのアドレスを割り当てる人もいます。これは、追加のループ ルーティングを作成し、多数の内部警告エラーを生成し、一部のシステムで警告が発生するため、さらに間違っています。

1. デュアルインターフェース(デュアルホスト)ホストを作成します。

通常、現在の配布パッケージのインストール プログラムは 2 枚のネットワーク カードを認識できるため、手間が省けます。ただし、(おそらく上記の理由により) 最初のネットワーク カードのみを認識する配布パッケージも多くあります。または、(システムを再インストールしたくないため) 既存のマシンにネットワーク カードを追加したい場合は、対処方法は以下の通りです。

1.1. PCIネットワークカードについて話しましょう。インストールする前に、まずネットワーク カード チップを見て、チップ モデルを覚えておいてください (自分でマシンを構築したことがあるといいのですが)。

1.2. MANマニュアルのインストール(配布パッケージを使用)

1.3. /usr/doc/HOWTO/english/txt/Ethernet-HOWTO ファイルでネットワーク カード モデルを検索し (圧縮されている場合は解放します)、対応するドライバー モジュール名を見つけます。

1.4. モジュールが存在しない場合は、コアを再コンパイルする必要があります。 menuconfig ネットワーク デバイス列でモデルを選択し、* または M でマークします。コアをコンパイルした後、モジュールをコンパイルすることを忘れないでください: make modules_install; (方法がわからない場合は、カーネルのコンパイルの前の部分を注意深く確認してください)

1.5. depmod –a コマンドを使用して、/etc/modules.conf を作成します (既にある場合は必要ありません)。 ) 一部の配布パッケージは conf.modules とも呼ばれます
1.6. ファイルを編集して、alias eth1 XXXX という行を追加します。ここで、XXXX は先ほど見つけたモジュール名です。通常、モジュール ファイルは、/lib/modules/kernel version number/net… の XXXX.o ファイルにあります。このファイルは、カーネル モジュールをコンパイルするときに生成され、カーネルを構成するときに、M とマークされたものはすべて .o ファイルにコンパイルされ、ここに配置されます。同様に、選択したネットワーク カード ドライバーもここでモジュールにコンパイルされます。

1.7. modprobe eth1 を実行してモジュールを有効にします。

1.8. /etc/sysconfig/networkファイル内の修正が必要な部分を修正します。

1.9. /etc/sysconfig/network-script/ifcfg-eth1 ファイルを作成または変更し(eth0 のものをコピーするだけです)、アドレスを実際の状況(eth1 に接続するネットワークセグメントなど)に設定します。これら 2 つのファイル (eth0/eth1 は起動時のスクリプトパラメータファイルです)

1.10. ネットワークを再起動します: /etc/rc.d/init.d/network restart

1.11. ifconfig を使用して eth0/eth1 が有効かどうかを確認します。始めました。

1.12. 完了

2. コアを調整してコンパイルする: ゲートウェイとして使用する場合は、いくつかのコア オプションを設定する必要があります。注: ここでのカーネル コンパイル オプションはバージョン 2.2.X にのみ適しており、バージョン 2.4 は完全に異なります。

2.1. /usr/src/linux で make menuconfig を実行して、次のコア オプションを設定します:


ネットワーク オプション
[*] ネットワーク ファイアウォール
[*] IP: 高度なルーター
[*] IP: ファイアウォール
[* ] IP: ファイアウォール パケット ネットリンク デバイス
[*] IP: 透過プロキシ サポート
[*] IP: マスカレーディング
[*] IP: ICMP マスカレーディング
[*] IP: マスカレード特殊モジュール サポート
IP: ipautofw masq support (
2 )



特定のオプションはカーネルのバージョンによって異なります。それらを確認するだけで済みます。モジュールにコンパイルするかコア[*]にコンパイルするかを自由に選択できます。

2.2. 上記のようにカーネルをコンパイルすると、再起動後にゲートウェイ機能が搭載されます。起動後、ファイル /proc/sys/net/ipv4/ip_forward の内容が 1 であるかどうかを確認します。 (8の読み方がわからないとは言わないでください-))

3. ipchainsの設定

本来この作業は非常に複雑ですが、ここで話していることは単純で、ゲートウェイを通すだけです。

3.1. 現在の仮想環境を見てみましょう: あなたのマシンには 2 つのネットワーク カードがあり、1 つは内部ネットワーク スイッチに接続されており、内部ネットワーク アドレスが割り当てられており、もう 1 つは外部ネットワーク スイッチに接続されており、割り当てられています。パブリックネットワークアドレス。このマシンから内部および外部ネットワーク上のマシンに ping できるはずです。また、内部ネットワーク上のマシンはマシンの外部ネットワーク アドレスに ping を送信でき、外部ネットワーク上のマシンはマシンの内部アドレスに ping を実行できます。これは転送機能が有効であることを示しています。

3.2. 再試行: ゲートウェイを内部ネットワーク上のマシンの内部ネットワーク アドレスに設定し、外部ネットワーク上の任意のマシン (このマシンの外部ネットワーク アドレスではない) に ping を実行しますが、結果は到達できません。その理由は、このパケットの応答アドレスが内部ネットワークであるため、ICMP パケットが送信された後、外部ネットワーク上のマシンには適切なルートが存在しないためです。

3.3. ipchains を設定します: (ipchains ソフ​​トウェアは 2.2.X カーネルに適していますが、2.4.X カーネルには適していません。2.4 には iptables を使用することをお勧めします。
ipchains –A forward –s 192.168.1.0 /24 –j MASQ



太字部分はイントラネットアドレスです。これは、内部ネットワークから送信されるすべてのパケットが外部ネットワークのアドレス (そのマシンの外部ネットワーク アドレス) に偽装されることを意味します。このようにして、他の外部マシンが応答すると、そのパケットはこのマシンに送信されます。イントラネットに転送された後に戻ってきました。 OK、簡単なゲートウェイの準備ができました。ファイアウォール (パケット フィルタリング機能) を実装する必要がある場合は、入力/出力/転送チェーンに同時に作用する、より複雑なフィルタリング ルールを構成する必要があります。

3.4. 自動開始: 複雑なチェーンが設定されているため、保存する必要があります。 /etc/rc.d: rc.ipfwadm にファイルを作成し、そこにチェーン スクリプトを追加します。最後に、ファイルに +x 属性を与えます (chmod +x rc.ipfwadm)。

4. iptables を使用して、2.4.X カーネルで Linux ファイアウォール (ゲートウェイ) を確立します。

4.1 手順とダウンロード

前述したように、iptables は 2.4 カーネルで使用され、2.2 カーネルで ipchains が実装されているのと同様の処理を実行します。実際、2.4 カーネルの iptables には、パケット フィルタリングとアドレス変換という 2 つのまったく異なる部分が含まれています。これら 2 つの機能は論理的に分離されており、運用習慣を考慮して設定プログラム (iptables) に統合されています。 2.4 カーネルを使用して配布パッケージをインストールする場合、通常は iptables が付属しており、カーネル構成で構成されます。新しいカーネルをコンパイルする場合、または元のカーネルが iptables をサポートしていない場合は、関連するオプションを選択する必要があります。 make menuconfig を使用してカーネルを構成する場合: 「Networking Options」と入力し、少なくとも次のものを選択します:


[*] Network packet filtering (replaces ipchains)
[*] Network packet filtering debugging (NEW)
Enter: IP: Netfilter Configuration - - ->
[*] 接続追跡 (masq/NAT に必要) (新規)
FTP プロトコルのサポート (新規)
IRC プロトコルのサポート (新規)
お待ちください...
以下のオプションをすべてマークしてください <*>



上記のメニューに段階的に戻り、設定を保存し、カーネルをコンパイルする手順に従います (前の内容を参照)。ここで説明する必要があるのは、カーネルが iptables 機能をサポートしており、外部プログラムが必要であるということです。配布パッケージを 2.4 カーネルとともに直接インストールした場合は、すでに iptables ユーティリティが付属しているはずです。ただし、2.2 コア配布パッケージから 2.4 カーネルに直接アップグレードする場合は、上記の方法に従ってコアを設定したとしても、iptables は使用できません。 iptables 機能を使用するには、iptables 外部プログラムもダウンロードしてコンパイルする必要があります。ダウンロード アドレスは http://www.netfilter.org で、ダウンロードされるファイルは iptables-1.2.6a.tar.bz2 以降のバージョンです。

4.2 インストール:

この .bz2 ファイルはおかしくありませんか?ファイルを /usr/local/src にコピーし、次のコマンドを使用してコンパイルとインストールをリリースします: bzip2 -dc iptables-1.1.2.tar.bz2 |tar vxf - (最後の '-' を忘れないでください)

あなた あなたのシステムには bzip2 ツールがない可能性があります。そうでない場合は、次のステップに進みます:

新しく生成されたディレクトリを入力します: cd iptables-1.2.6a コンパイルしてインストールします: make make install

4.3 設定

簡単なゲートウェイの設定が必要な場合は、転送とアドレス変換機能を設定するだけで済みます。


#begin
echo 1 > ipv4/ip_forward
modprobe iptable_nat
modprobe ip_conntrack
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp
iptables -F INPUT
iptables -F FORWARD
iptables -F POSTROUTING -t nat
iptables -t nat -F
iptables -P FORWARD DROP
iptables -A FORWARD -s 192.168. 1.0/24 -j ACCEPT
iptables -A FORWARD -i eth1 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -t nat -A POSTROUTING -o eth1 -s 192.168.1.0/24
-j SNAT -- to 21.9.22.2
#end



modprobe の 3 行は、iptables 関連の関数をカーネル内のモジュールにコンパイル (選択) する場合にのみ使用されます (3 行を超える場合もあります)。このうち、モジュール (modprobe) を挿入する行がより重要です。NAT を完了した後、FTP が使いにくいことがわかるため、ip_nat_ftp モジュールを手動で挿入する必要があります (構文は modprobe ip_nat_ftp)。太字のアドレス部分は、ネットワークの実際の状況に基づいて決定する必要がある場合があります。最後の文は、送信元アドレス 192.168.1.x を持つすべてのパケットに対してアドレス変換を実行し、ゲートウェイの外部アドレス 21.9.22.2 に変換することを意味します。 OK、基本的なゲートウェイが設定されました。実際、iptables は非常に強力であり、その構成は非常に柔軟です。ファイアウォール機能は -t フィルター パラメーターを通じて実装され、アドレス変換機能は -t nat によって実装されます (上記と同様)。ファイアウォール機能 (パケットフィルター) は主に INPUT、FORWARD、OUTPUT の 3 つのチェーンで構成され、アドレス変換機能 (nat) は主に PREROUTING、POSTROUTING、OUTPUT の 3 つのチェーンで構成されます。現在のステータスを確認するには、コマンド iptables –L –t filter または iptables –L –t nat を使用します。

わかりました。より柔軟で強力なファイアウォール機能を構成するのはあなた次第です。 「Linux 2.4 Packet Filter HOWTO」と「Linux 2.4 NAT HOWTO」の 2 つのマニュアルをお勧めします。これら 2 つのドキュメントは iptables のオリジナルの作成者によって書かれたもので、非常に古典的なものです。下手な英語?関係ありません、どちらの文書にも中国語版があります。 Forever UNIX (http://www.fanqiang.com) からダウンロードすることをお勧めします。




声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
前の記事:3D 円グラフ次の記事:3D 円グラフ