CentOS 7にApacheをインストールする方法
CentOS 7サーバーにApache 2.4をインストールする方法を説明します。安定したウェブサーバーを構築するための前提条件と手順を解説します。
LXCコンテナー(Linuxコンテナー)は、単一のホスト上で複数の分離されたLinuxシステムを実行するために使用できるLinuxのオペレーティングシステム機能です。
これらの手順では、隔離されたLinuxコンテナをホストするためのサーバー構成の基本的な手順を説明します。次の機能を設定します。
ssh [email protected]
およびと同じくらい簡単なコンテナー管理のためのSSH転送ssh [email protected]
このガイドでは、次のことを前提としています。
チュートリアルの最後に、インターネットにアクセスできるが、相互にpingできない2つの仮想コンテナーを取得します。example.com
からコンテナへのポート転送も設定します。Proxmoxパケットのツールを使用して、安全な構成と管理パネルを展開します。
LXCコンテナの管理にのみProxmoxを使用します。一般に、KVMもサポートしていますが、Vultrではネストされた仮想化は禁止されています。開始する前に、Proxmox ISOを公式Webサイトからダウンロードする必要があります。を使用しProxmox VE 5.0 ISO Installer
ます。デフォルト設定でイメージからOSをインストールし、仮想マシンを再起動します。また、ソースからproxmoxを手動でインストールすることもできますが、ほとんどの場合は必要ありません(こちらの手順に従ってください)。
SSHでホストに接続し、proxmoxテンプレートリストを更新して、コンテナに適したテンプレートをダウンロードします。
apt-get update
pveam update
pveam available
pveam download local ubuntu-14.04-standard_14.04-1_amd64.tar.gz
次に、Linuxブリッジに接続されたネットワークインターフェイスを備えたLinuxコンテナーを作成する必要があります。/etc/network/interfaces
次の行を開いて追加します。
auto vmbr1
iface vmbr1 inet static
address 10.100.0.1
netmask 255.255.255.0
bridge_ports none
bridge_stp off
bridge_fd 0
システムの再起動後、Ubuntu 14.04
テンプレートから新しいコンテナを作成できます。
pct create 200 /var/lib/vz/template/cache/ubuntu-14.04-standard_14.04-1_amd64.tar.gz -storage local-lvm -net0 name=eth0,bridge=vmbr1,ip=10.100.0.200/24,gw=10.100.0.1
を使用してコンテナを確認しpct list
、コンテナ#200で開始しpct start 200
、でシェルに入ることができますpct enter 200
。を使用して、ネットワーク設定とアドレスを確認することもできますip addr
。
コンテナ内でインターネット接続を提供するには、を有効にする必要がありますNAT
。次の例では、NATテクノロジーを利用して、コンテナーからインターネットにトラフィックを転送できます。vmbr0
ブリッジは、外部インターフェースに接続され、vmbr1
ブリッジが容器に接続されています。
sysctl -w net.ipv4.ip_forward=1
iptables --table nat --append POSTROUTING --out-interface vmbr0 -j MASQUERADE
iptables --append FORWARD --in-interface vmbr1 -j ACCEPT
コンテナーを入力し、pct enter 200
内部にWebサーバーを構成します。
apt-get update
apt-get install nginx
service nginx start
exit
次に、サーバー上でNginxを構成して、Webサイトをコンテナーにプロキシする必要があります。
apt-get update
apt-get install nginx
/etc/nginx/sites-available/box200
次の内容で新しい構成ファイルを作成します。
server {
listen 80;
server_name server200.example.com;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
location / {
proxy_pass http://10.100.0.200/;
}
}
Nginxはserver200.example.com
、サーバーからコンテナへの各HTTPリクエストをIP 10.100.0.200でプロキシします。この構成をアクティブにします。
ln -s /etc/nginx/sites-available/box200 /etc/nginx/sites-enabled/
service nginx restart
サンドボックスに簡単にアクセスできるようにする場合は、SSHセッションをコンテナに転送する必要があります。そのためには、ルートサーバーに新しいユーザーを作成します。パスワードを入力することを忘れないでください、他のパラメータは必要ありません。
adduser box200
su - box200
ssh-keygen
cat .ssh/id_rsa.pub
exit
このSSHキーをコピーし、コンテナを入力してキーを追加します。
pct enter 200
mkdir .ssh
nano .ssh/authorized_keys
exit
サーバーで、次の行を.ssh/authorized_keys
ファイルに追加します。
command="ssh [email protected]",no-X11-forwarding,no-agent-forwarding,no-port-forwarding <YOUR SSH KEY>
<YOUR SSH KEY>
自宅の公開鍵に変更することを忘れないでください。または、コマンドラインから次のコマンドを実行することもできます。
echo 'command="ssh [email protected]",no-X11-forwarding,no-agent-forwarding,no-port-forwarding <YOUR SSH KEY>' >> .ssh/authorized_keys
次に、sshを使用してサンドボックスに接続できます。
`ssh box200@<your_server_IP>`
いくつかのセキュリティ改善を実装する時が来ました。まず、デフォルトのSSHポートを変更します。次に、基本的なHTTP認証でProxmox管理ページを保護します。
nano /etc/ssh/sshd_config
コメントを外して行を変更する
#Port 22
に
Port 24000
sshを再起動します。
service ssh restart
新しいポートでsshに再接続します。
ssh root@<your_IP> -p 24000
ファイルを作成します/etc/default/pveproxy
。
ALLOW_FROM="127.0.0.1"
DENY_FROM="all"
POLICY="allow"
pveproxy
変更を有効にするために再起動します。
/etc/init.d/pveproxy restart
nginxを構成します(まだ実行していない場合)。
apt-get install nginx
service nginx restart
でデフォルト設定を作成します/etc/nginx/site-available/default
。
server {
listen 80;
server_name example.com;
rewrite ^ https://$hostname.example.com$request_uri? permanent;
}
server {
listen 443 ssl;
server_name example.com;
#auth_basic "Restricted";
#auth_basic_user_file htpasswd;
#location / { proxy_pass https://127.0.0.1:8006; }
}
有効なSSL証明書を取得し、nginx構成を更新します。たとえば、certboxとletsencryptを使用して実行できます。詳細については、ここをクリックしてください。
wget https://dl.eff.org/certbot-auto
chmod +x certbot-auto
./certbot-auto --nginx
これで、nginxの設定は次のようになります(または後で手動で変更できます)。ssl、auth、location行のコメントを外すことを忘れないでください。
server {
listen 80;
server_name example.com;
rewrite ^ https://$hostname.example.com$request_uri? permanent;
}
server {
listen 443 ssl;
server_name example.com;
ssl on;
auth_basic "Restricted";
auth_basic_user_file htpasswd;
location / { proxy_pass https://127.0.0.1:8006; }
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; # managed by Certbot
}
Htpasswdジェネレーター/etc/htpasswd
を使用してファイルを作成します。
nano /etc/nginx/htpasswd
Nginxを再起動します
service nginx restart
これでhttps://example.com
、基本認証後の管理コンソールを表示できます。
コンテナはHTTPリクエストとSSHで利用できるようになりました。これで、外部サーバーからコンテナーへのポート転送を構成できます。たとえば、次の入力をマッピングexample.com:8080
する場合10.100.0.200:3000
。
iptables -t nat -A PREROUTING -i vmbr0 -p tcp --dport 8080 -j DNAT --to 10.100.0.200:3000
現在のルールを表示できます。
`iptables -t nat -v -L PREROUTING -n --line-number`
次のようにして、番号でルールを削除することもできます。
`iptables -t nat -D PREROUTING <#>`.
これで、あるコンテナから別のコンテナにアクセスできます。
pct create 250 /var/lib/vz/template/cache/ubuntu-14.04-standard_14.04-1_amd64.tar.gz -storage local-lvm -net0 name=eth0,bridge=vmbr1,ip=10.100.0.250/24,gw=10.100.0.1
pct start 250
pct enter 250
ping 10.100.0.200
コンテナー250から200へのアクセスを制限する場合は、各コンテナーをパーソナルブリッジに接続し、ブリッジ間の転送を無効にする必要があります。
既存のコンテナを削除します。
pct stop 200
pct stop 250
pct destroy 200
pct destroy 250
の内容を変更します/etc/network/interfaces
。
auto vmbr1
iface vmbr1 inet static
address 10.100.1.1
netmask 255.255.255.0
bridge_ports none
bridge_stp off
bridge_fd 0
auto vmbr2
iface vmbr2 inet static
address 10.100.2.1
netmask 255.255.255.0
bridge_ports none
bridge_stp off
bridge_fd 0
reboot
システム
転送を有効にする
`sysctl -w net.ipv4.ip_forward=1`
これらの変更を永続的にするには、/etc/sysctl.conf
ファイルを編集して次のテキストを見つけます。
#net.ipv4.ip_forward=1
コメントを外します。
net.ipv4.ip_forward=1
を実行sysctl -p
して、変更をすぐに有効にすることもできます。
コンテナを作成します。
pct create 200 /var/lib/vz/template/cache/ubuntu-14.04-standard_14.04-1_amd64.tar.gz -storage local-lvm -net0 name=eth0,bridge=vmbr1,ip=10.100.1.200/24,gw=10.100.1.1
pct create 250 /var/lib/vz/template/cache/ubuntu-14.04-standard_14.04-1_amd64.tar.gz -storage local-lvm -net0 name=eth0,bridge=vmbr2,ip=10.100.2.250/24,gw=10.100.2.1
pct start 200
およびでコンテナを開始しpct start 250
ます。
iptables
ルールをフラッシュします。
iptables -F
NATを有効にします。
iptables --table nat --append POSTROUTING --out-interface vmbr0 -j MASQUERADE
vmbr0
外部インターフェースを含むブリッジです。
外部インターフェースからの転送を許可します。
iptables --append FORWARD --in-interface vmbr0 -j ACCEPT
コンテナからインターネットへの転送を許可します。
iptables -A FORWARD -i vmbr1 -o vmbr0 -s 10.100.1.0/24 -j ACCEPT
iptables -A FORWARD -i vmbr2 -o vmbr0 -s 10.100.2.0/24 -j ACCEPT
他の転送をドロップします。
iptables -A FORWARD -i vmbr1 -j DROP
iptables -A FORWARD -i vmbr2 -j DROP
ここで、10.100.1.200
pingできるがping 8.8.8.8
できないこと10.100.2.250
、およびpingできるがping できないことを確認します。10.100.2.250
8.8.8.8
10.100.1.200
iptablesに関連するコマンドの順序は重要です。ルールを操作する最良の方法は、を使用することiptables-persistent
です。このパッケージは、ファイルにiptablesのルールを保存するのに役立ちます/etc/iptables/rules.v4
と/etc/iptables/rules.v6
、それは自動的にシステムの再起動後にそれらをロードすることができます。以下のようにインストールするだけです。
apt-get install iptables-persistent
YES
プロンプトが表示されたら選択します。
CentOS 7サーバーにApache 2.4をインストールする方法を説明します。安定したウェブサーバーを構築するための前提条件と手順を解説します。
FreeBSD 11.1におけるBlacklistdのインストール方法について詳しく解説します。この方法を通じて、強力なセキュリティ対策を実装できます。
サーバーマネージャーを使用して、Windows Serverの管理が向上します。セキュリティリスクを軽減し、効率的な管理を実現します。
CentOS 7にSeafileサーバーをインストールする方法。Seafile(コミュニティバージョン)は、ownCloudに似た無料のオープンソースファイル同期および共有ソリューションです。
Snortは無料のネットワーク侵入検知システムです。最新の方法で、SnortをDebianにインストールし、設定する手順を紹介します。ネットワークのセキュリティを強化しましょう。
CentOS 7にGraylogサーバーをインストールし、ログ管理を行う方法を学びます。
WindowsサーバーでWebサイトを実行している場合、電子メールも受信できるようにするためにhMailServerを使用する方法を解説します。
FiveMサーバーをUbuntu 19.04にインストールするための詳細なガイド。必要条件からインストール、起動、トラブルシューティングまで、すべてのステップを含みます。
Debian 10にWebDAVをデプロイする方法を学び、WsgiDAVとSSL証明書で安全な接続を実現しましょう。
ヘルスケアにおけるAIは、過去数十年から大きな飛躍を遂げました。したがって、ヘルスケアにおけるAIの未来は、日々成長を続けています。