CentOS 7にGraylogサーバーをインストールする方法
CentOS 7にGraylogサーバーをインストールし、ログ管理を行う方法を学びます。
このチュートリアルの目的は、パブリックSSHおよびパブリックRDP接続を取り除くことです。これを非常に便利なHTML5クライアントの背後に配置することで、クラウドにアクセスするためのセキュリティレイヤーを追加できます。
ワカモレもリモートアクセスをログに記録するので、不正アクセスははるかに追跡可能になります。
注:Let's暗号化(オプションB)には、ドメイン名が必要です。ない場合は、この手順をスキップして、オプションAを実行するだけです。
まず、目的のVultrゾーンでVPSをスピンアップします。A 1024 MB
ワカモレが厳しいということではないようVPSは、十分でしょう。
まず、VPSでプライベートネットワークを有効にします。これはよく文書化されています
まず、画像を少し固めましょう。そして、プロビジョニングされたイメージがufw
有効になっているかどうかを確認しましょう。
root@vultr:~# ufw status
Status: inactive
デフォルトでは無効になっているため、いくつかのルールを追加する必要があります。
これらのポートの設定から始めましょう。
ufw allow 22/tcp
ufw allow 8080/tcp
次にファイアウォールを有効にします。
ufw enable
警告を受けても心配しないでください。ポートを追加した場合22
、問題は発生しません。
root@vultr:~# ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup
有効にしたら、ファイアウォールのステータスをリクエストすると、ポート構成が表示されます。
ufw status
Status: active
To Action From
-- ------ ----
22/tcp ALLOW Anywhere
8080/tcp ALLOW Anywhere
22/tcp (v6) ALLOW Anywhere (v6)
8080/tcp (v6) ALLOW Anywhere (v6)
インストールを開始する前に、リポジトリを更新してアップグレードする必要があります。Tomcat
Javaベースののようなパッケージでは、発見されたバグとそれに関連するバグ修正が常に流れています。通常、インストールに急いで行く代わりに、最初にこれを行うことをお勧めします。
apt-get update
apt-get -y upgrade
次はすべての依存関係です。ワカモレにはかなりの数があります。(依存関係とその機能の完全なリストはここにあります)。それらすべてをインストールして続けましょう。
apt-get -y install build-essential tomcat8 freerdp libcairo2-dev libjpeg-turbo8-dev libpng12-dev libossp-uuid-dev libavcodec-dev libavutil-dev libfreerdp-dev libpango1.0-dev libssh2-1-dev libtelnet-dev libvorbis-dev libwebp-dev mysql-server mysql-client mysql-common mysql-utilities libswscale-dev libvncserver-dev libpulse-dev libssl-dev
インストーラーがMySQLルートパスワードを要求する場合は、パスワードを入力し、必ずメモしてください。このパスワードは後でワカモレデータベースを作成するために使用します。
すべての依存関係が揃ったので、Guacamoleのダウンロードを続行できます。ワカモレ自体はほとんどバイナリ形式ではなくソース形式で提供されます。まず/tmp
、ディスクの他の部分が乱雑にならないように、フォルダに移動します。次に、すべてのソースコードをダウンロードします。
ダウンロードする4つのソース/バイナリファイルがあります。
guacamole-0.9.13-incubating.war
:これはWebアプリケーションです。WAR
ファイルには、TomcatのWebサイトにホストされている単一のウェブサイトを提供するzip形式のウェブパッケージですguacamole-server-0.9.13-incubating.tar.gz
:このファイルはバックエンドguacd
アプリケーションを提供します。これにより、RDPとSSHを介してストリームが作成されます。guacamole-auth-jdbc-0.9.13-incubating.tar.gz
:ローカルのMySQLデータベースを使用するため、関連するJDBC
コネクタが必要です。mysql-connector-java-5.1.43.tar.gz
:データベースドライバーがなければ、JDBCコネクターは何もしません。このファイルは、MySQLチーム自身によって提供されます。注:ダウンロードは最も近いサーバーに解決されました。
cd /tmp
wget http://apache.belnet.be/incubator/guacamole/0.9.13-incubating/binary/guacamole-0.9.13-incubating.war
wget http://apache.cu.be/incubator/guacamole/0.9.13-incubating/source/guacamole-server-0.9.13-incubating.tar.gz
wget http://apache.cu.be/incubator/guacamole/0.9.13-incubating/binary/guacamole-auth-jdbc-0.9.13-incubating.tar.gz
wget https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.43.tar.gz
これらのファイルをすべてダウンロードしたら、を抽出しますtar.gz
。
tar -xzvf guacamole-server-0.9.13-incubating.tar.gz
tar -xzvf guacamole-auth-jdbc-0.9.13-incubating.tar.gz
tar -xzvf mysql-connector-java-5.1.43.tar.gz
すべてのソースコードを抽出したので、いくつかのguacamole
フォルダーを作成しましょう。これらは、ワカモレアプリケーションとその依存関係で使用されます。
mkdir -p /etc/guacamole/lib
mkdir -p /etc/guacamole/extensions
新しいワカモレバイナリの準備がすべて整いました。これで、コンパイルとインストールのプロセスを開始できます。解凍したGuacamole Serverフォルダーに移動します。
cd /tmp/guacamole-server-0.9.13-incubating
init.d
後でサービスとして実行するためのファイルも作成するようにアプリケーションを構成します。
./configure --with-init-dir=/etc/init.d
コマンドは、すべてのライブラリとプロトコルで「はい」で終了する必要があります。そうでない場合は、戻ってapt-getコマンドをチェックし、パッケージを見逃していないことを確認してください。
------------------------------------------------
guacamole-server version 0.9.13-incubating
------------------------------------------------
Library status:
freerdp ............. yes
pango ............... yes
libavcodec .......... yes
libavutil ........... yes
libssh2 ............. yes
libssl .............. yes
libswscale .......... yes
libtelnet ........... yes
libVNCServer ........ yes
libvorbis ........... yes
libpulse ............ yes
libwebp ............. yes
Protocol support:
RDP ....... yes
SSH ....... yes
Telnet .... yes
VNC ....... yes
Services / tools:
guacd ...... yes
guacenc .... yes
Init scripts: /etc/init.d
Type "make" to compile guacamole-server.
次に、Gucamoleサーバーをコンパイルしてインストールします。
make && make install
これがすべて完了したら、実行ldconfig
して、追加されたライブラリの検索パスを再構築します。
ldconfig
を使用systemctl
してguacd
続行し(Guacamole Daemon)起動時に開始します。
systemctl enable guacd
ワカモレのバイナリがインストールされました。これで、Tomcat用のWebアプリケーションの準備が整いました。
war
ファイルguacamole
を先ほど作成したフォルダーに移動することから始めます。これが完了したら、tomcatディレクトリーにwar
ファイルを指す論理リンクを作成します。
cd /tmp
mv guacamole-0.9.13-incubating.war /etc/guacamole/guacamole.war
ln -s /etc/guacamole/guacamole.war /var/lib/tomcat8/webapps/
次に、mysqlコネクタとJDBCが必要です。extensions
フォルダーにはJDBCドライバーが、フォルダーにはコネクターが必要ですlib
。
cp mysql-connector-java-5.1.43/mysql-connector-java-5.1.43-bin.jar /etc/guacamole/lib/
cp guacamole-auth-jdbc-0.9.13-incubating/mysql/guacamole-auth-jdbc-mysql-0.9.13-incubating.jar /etc/guacamole/extensions/
コネクタとJDBCを配置したら、tocamt8
ファイルを編集する必要があります。このファイルには多くのtomcat8
設定が含まれています。この場合GUACAMOLE_HOME
、ファイルの最後に変数を追加する必要があります。
nano /etc/default/tomcat8
以下を追加します。
GUACAMOLE_HOME=/etc/guacamole
次はデータベースの作成です。ワカモレは、ファイル内ではなくデータベースに接続構成を保存します。
root password
インストール時に使用したでログインします。
mysql -u root -p
最初のステップは、「guacamole_db」というデータベースを作成することです。
create database guacamole_db;
次に、create user
コマンドを実行します。これにより、パスワードを持つユーザーが作成されますmysupersecretpassword
。このユーザーはからのみ接続できlocalhost
ます。
create user 'guacamole_user'@'localhost' identified by "mysupersecretpassword";
CRUD
このユーザーにデータベースの操作を許可しますguacamole_db
。
GRANT SELECT,INSERT,UPDATE,DELETE ON guacamole_db.* TO 'guacamole_user'@'localhost';
特権をフラッシュし、シェルを終了します。
flush privileges;
exit
最後に、新しく作成したデータベースにワカモレスキーマを追加します。
cat /tmp/guacamole-auth-jdbc-0.9.13-incubating/mysql/schema/*.sql | mysql -u root -p guacamole_db
これが完了したら、guacamole.properties
ファイルを編集する必要があります。このファイルには、最近作成したMySQLサーバー構成が含まれています。
nano /etc/guacamole/guacamole.properties
MySQL接続の詳細と資格情報を追加します。
mysql-hostname: localhost
mysql-port: 3306
mysql-database: guacamole_db
mysql-username: guacamole_user
mysql-password: mysupersecretpassword
最後に、tomcat共有フォルダへのシンボリックリンクを作成します。これは、WAR
ファイルがこれらのプロパティを検索する場所であるためです。
ln -s /etc/guacamole /usr/share/tomcat8/.guacamole
tomcat8
サーバーを再起動して終了し、guacd
サーバーデーモンを起動します。
service tomcat8 restart
service guacd start
statusコマンドを使用して確認できます。
service tomcat8 status
service guacd status
これで、ポートでVPSを参照できます 8080
http://<yourpublicip>:8080/guacamole/
ユーザー名guacadmin
と同じパスワードを使用しますguacadmin
。これにより、空のGuacamoleサーバーへのアクセスが許可されます。
ユーザー名の右上隅をクリックして、guacadmin
を選択しますSettings
。設定ページが表示されたら、Users
タブに移動してユーザーを選択しますguacadmin
。
次に、パスワードを別のパスワードに変更するか、新しい管理ユーザーを作成してデフォルトのユーザーを削除しますguacadmin
。
これらは最後のステップです。終了後のクリーンアップです。
ダウンロードしたソースコードとバイナリを/tmp
フォルダから削除します。
rm -rf /tmp/guacamole-*
rm -rf /tmp/mysql-connector-java-*
また、Guacamole Webアプリケーションをデフォルトにします。Tomcatエコシステムでは、ROOT
フォルダーを取得するアプリケーションは、Webサイトにアクセスしたときにデフォルトで開始されるアプリケーションです。
古いROOT
プレースホルダーを削除します。
rm -rf /var/lib/tomcat8/webapps/ROOT
そして、ワカモレサーバーがシンボリックリンクになるようにしますROOT
。
ln -s /var/lib/tomcat8/webapps/guacamole /var/lib/tomcat8/webapps/ROOT
これには、tomcatの再起動が必要です。
service tomcat8 restart
tomcat8/server.xml
ファイルを編集し、コネクタポートを変更します。
nano /etc/tomcat8/server.xml
を検索しますConnector port
。
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
URIEncoding="UTF-8"
redirectPort="8443" />
そして、交換してください8080
と80
。
デフォルトでは、tomcatは以下のポートのバインドを許可しません1024
。これを有効にするには、認証されたバインドを作成するようtomcat8に指示する必要があります。
default
tomcat8 のファイルを編集し、AUTHBIND
行のコメントを外してオプションを使用しますyes
nano /etc/default/tomcat8
AUTHBIND=yes
これが完了したら、インストールしauthbind
ます。
apt-get install authbind
80
tomcat8がポートを要求できるように構成します。
touch /etc/authbind/byport/80
chmod 500 /etc/authbind/byport/80
chown tomcat8 /etc/authbind/byport/80
80
ファイアウォール経由のポートを許可し、のルールを削除し8080
ます。
ufw allow 80/tcp
ufw delete allow 8080/tcp
Tomcatを再起動します。
service tomcat8 restart
これで、Guacamoleはポートで実行されているはずです80
。
Tomcatは、で使用するのに最適で最も堅牢なアプリケーションの1つではありませんcertbot
。幸運にもNginxはそうです。TomcatをNginxにプロキシするだけです。少しRAMを犠牲にする代わりに、certbotの標準機能を使用します。
apt-get install nginx
インストールしたら、デフォルトの構成を編集します。
nano /etc/nginx/sites-available/default
サンプル構成をすべて削除し、次の構成を追加します。
server {
listen 0.0.0.0:80;
proxy_request_buffering off;
proxy_buffering off;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $server_name;
}
}
これにより、で実行されているWebサイトのプロキシが作成され8080
ます。Nginxを再起動し、起動時に有効にします。
systemctl restart nginx
systemctl enable nginx
すべてが機能しているかどうかを確認します。
systemctl status nginx
テストポート8080
を無効にし、ポートでのトラフィックを許可します80
。
ufw allow 80/tcp
ufw delete allow 8080/tcp
を使用する前に、certbotパッケージを含むシステムにcertbot
正しいものppa
を追加する必要があります。
add-apt-repository ppa:certbot/certbot
「ENTER
」を押して構成変更を受け入れます。
apt
新しいパッケージを収集するために更新します。
apt-get update
最後に、証明書を割り当てるためのNginxモジュールをインストールします。
apt-get -y install python-certbot-nginx
を許可するようにファイアウォールを設定しますHTTPS
。
ufw allow 443/tcp
新しい証明書をリクエストする前に、DNS名が必要です。
nano /etc/nginx/sites-available/default
以下のserver_name
設定を追加します。
server_name rdp.example.com;
この新しい設定を反映するように構成を変更します。
server {
server_name rdp.example.com;
listen 0.0.0.0:80;
proxy_request_buffering off;
proxy_buffering off;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $server_name;
}
}
すべてが機能していることを確認し、Nginxを再起動します。
nginx -t
service nginx restart
次に、certbotで証明書を要求します。
certbot --nginx -d rdp.example.com
メールアドレスを入力し、インストーラーからの質問に同意してください。(No
メールを共有するために「」を安全に選択できます。)Certbotは、何をする必要があるかを自動的に尋ねますHTTPS
。オプション2を使用しますredirect to HTTPS
。
Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
-------------------------------------------------------------------------------
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
-------------------------------------------------------------------------------
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2
最後に、DH
パラメーターを更新します。デフォルトでは、これらは2017年の標準に対して少し弱いです。
新しいものをいくつか作成します。
openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048
次に、それらをNginxのデフォルトサイトに追加します。
nano /etc/nginx/sites-available/default
それらをサーバー構成に追加します。
server {
server_name rdp.example.com;
listen 0.0.0.0:80;
ssl_dhparam /etc/ssl/certs/dhparam.pem;
proxy_request_buffering off;
proxy_buffering off;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $server_name;
}
}
エラーをチェックします。
nginx -t
サーバーを再起動して変更を適用します。
service nginx restart
古い8080
ルールをクリーンアップする
ufw delete allow 8080/tcp
注:「502 Bad Gateway」を受け取った場合は、tomcat8を再起動する必要があります。
service tomcat8 restart
更新が必要な証明書を暗号化しましょう。このためのcronジョブを作成できます。まず、を編集しcrontab
ます。
crontab -e
次の行を追加します。
00 2 * * * /usr/bin/certbot renew --quiet
これにより、証明書が更新を必要とするかどうかが午前2時にチェックされ、更新が必要な場合は更新されます。
Guacamoleサーバーに移動します(http://<ip>/
またはhttps://rdp.example.com)
)。
このテストでは、さらに2つのインスタンスが必要です。1つはLinux VM、もう1つは両方でプライベートIPが有効になっているWindows Server 2012 R2です。
username
右上の「」をクリックして、「」に移動しSettings
ます。次に、「Connections
」に移動して「」を選択しますNew Connection
。
以下の設定を入力します(他の設定はデフォルトのままにすることができます)。
Name: Windows Server 2012 R2
Location: ROOT
Protocol: RDP
Maximum number of connections: 1
Maximum number of connections per user: 1
Parameters > Hostname: 10.99.0.12
Parameters > Port: 3389
Username: Administrator
Password: <password> (provided by Vultr)
Security mode: Any
Ignore server certificate: <checked>
「save
」を押して、ホーム画面に戻ります。「Windows Server 2012 R2
」接続をクリックすると、このマシンにRDPされます。
「Ctrl+Shift+Alt
」を押します。サイドのメニューが飛び出します。ここでは、ワカモレの接続を解除したり、他の管理タスクを実行したりできます。
username
メニュー上部のをクリックし、「Settings
」に移動します。次に、「Connections
」タブに移動し、「」を選択しますNew Connection
。
以下の設定を入力します(他の設定はデフォルトのままにすることができます)。
Name: Linux
Location: ROOT
Protocol: SSH
Maximum number of connections: 5
Maximum number of connections per user: 2
Parameters > Hostname: 10.99.0.11
Parameters > Port: 22
Username: root
Password: <password> (provided by Vultr)
「save
」を押して、ホーム画面に戻ります。これで、この新しく作成された接続をクリックして、SSH経由でLinuxサーバーに接続できます。
これで、Web RDP / SSH HTML5ゲートウェイができました。これで、プラットフォームのパブリックRDPおよびSSHアクセスをファイアウォールで保護し、最新のブラウザーから環境にアクセスできます。ワカモレが提供できるものの詳細については、ここにプラットフォームのすべての可能性を示す素晴らしいビデオがあります。
CentOS 7にGraylogサーバーをインストールし、ログ管理を行う方法を学びます。
Debian 10にWebDAVをデプロイする方法を学び、WsgiDAVとSSL証明書で安全な接続を実現しましょう。
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の未来は、日々成長を続けています。