CentOS 7にGraylogサーバーをインストールする方法
CentOS 7にGraylogサーバーをインストールし、ログ管理を行う方法を学びます。
iptablesLinuxカーネルの統合ファイアウォールを構成するために使用される強力なツールです。ほとんどのUbuntuディストリビューションにプリインストールされていますが、カスタマイズされたUbuntuバージョンを使用している場合、またはコンテナ内で実行している場合は、手動でインストールする必要があります。
sudo apt-get install iptables iptables-persistent
インストール後、現在のルールを保存するかどうかを尋ねられた場合、後で削除または新しいルールを作成するため、現時点では問題ありません。
netcat(サーバーとは別のコンピューターで)コマンドを使用して、どのポートが開いているか閉じているかをテストできます。
nc -z -w5 -v SERVER_IP PORT
nc netcatコマンドです。-z ペイロードなしでパケットを送信するだけです。-w5 応答を最大5秒待ちます。-v 冗長モード。SERVER_IPサーバーのアドレスに置き換えます。PORT開いているかどうかをテストするポートに置き換えます(例:)22。サーバーでnetstatコマンドを使用して、現在接続を待機しているポートを確認できます。
sudo netstat -tulpn
注:netstatは、操作したいポートを見つけるのに便利ですが、サーバーに現在インストールされているアプリケーションとリッスンしているポートを知っておく必要がありますnetstat。出力で見つけたすべてのポートを許可する必要はありません。
sudo iptables -A INPUT -p tcp -m tcp --dport 22 --m geoip --src-cc PE -j ACCEPT
-A INPUTINPUTチェーンにルールを追加します。チェーンはルールのグループです。このガイドで最もよく使用されるのはINPUT、OUTPUTとPREROUTINGです。-p tcptcpこのルールが適用されるプロトコルとして設定します。またはudp、などの他のプロトコルを使用することもできます。icmpall-m tcptcpモジュールを使用します。iptablesモジュールを介して追加機能をサポートします。その一部はすでにプリインストールされてiptablesおり、その他はgeoipモジュールなどです。--dport 22で始まるコマンド--は、以前に使用されたモジュールの追加オプションを示します。この場合、tcpモジュールにポートにのみ適用するように指示します22。-m geoipgeoipモジュールを使用します。国ごとにパケットを制限します(ステップ5で詳細)。--src-cc PEgeoip着信パケットをペルーからのパケットに制限するようにモジュールに指示します。その他の国コードについてISO 3166 country codesは、インターネットで検索してください。-j ACCEPT-j引数が伝えiptablesたパケットが、前の引数で指定された制約と一致した場合にどうしますか。この場合、ACCEPTそれらのパケット、その他のオプションはREJECTにDROPなります。iptables jump targetsインターネットで検索すると、さらに多くのオプションを見つけることができます。すべてのルールをリストします。
sudo iptables -L
現在使用されているルールの作成に使用されたすべてのコマンドをリストします。ルールの編集または削除に役立ちます。
sudo iptables -S
特定のルールを削除するには、からルールを選択しsudo iptables -Sて交換-Aして-D。
# -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
sudo iptables -D INPUT -p tcp -m tcp --dport 22 -j ACCEPT
INPUTチェーン内のすべての番号付きルールをリストします。
sudo iptables -L INPUT --line-numbers
番号付きルールを削除します。
sudo iptables -D INPUT 2
すべてのルールをクリアします。
sudo iptables -F
警告:SSHで接続すると、接続が失われる可能性があります。
OUTPUTチェーン内のルールのみをクリアします。
sudo iptables -F OUTPUT
許可SSHにeth0インタフェース
sudo iptables -A INPUT -i eth0 -p tcp -m tcp --dport 22 -j ACCEPT
-i eth0 特定のインターフェイスにルールを適用して、任意のインターフェイスからこのコマンドを削除できるようにします。着信パケットを特定のIP(つまり10.0.3.1/32)に制限します。
sudo iptables -A INPUT -i eth0 -s 10.0.3.1/32 -p tcp -m tcp --dport 22 -j ACCEPT
-s 10.0.3.1/32 接続を許可するIP /サブネットを指定します。デフォルトのチェーンルールを設定します。
警告:リモートサーバーで作業する場合は、続行する前に正しいSSHルールを適用していることを確認してください。
sudo iptables -P INPUT DROP
sudo iptables -P FORWARD DROP
sudo iptables -P OUTPUT ACCEPT
-P INPUT DROP すべての着信パケットを拒否します(つまり、Apache、SQLなどの実行中のサーバーに誰も接続できなくなります)。-P FORWARD DROP 転送されたすべてのパケットを拒否します(つまり、システムをルーターとして使用している場合)。-P OUTPUT ACCEPTすべての発信パケットを許可します(つまり、HTTPリクエストを実行するとき)。ループバックインターフェイス上のすべてのトラフィックを許可します(推奨)。
sudo iptables -A INPUT -i lo -j ACCEPT
sudo iptables -A OUTPUT -o lo -j ACCEPT
現在のiptablesルールを保存します。
sudo netfilter-persistent save
sudo netfilter-persistent reload
コンテナー内で実行している場合、netfilter-persistentコマンドは機能しない可能性が高いため、iptables-persistentパッケージを再構成する必要があります。
sudo dpkg-reconfigure iptables-persistent
DNSクエリを許可します。
sudo iptables -A OUTPUT -p tcp --dport 53 -m state --state NEW -j ACCEPT
sudo iptables -A OUTPUT -p udp --dport 53 -m state --state NEW -j ACCEPT
stateモジュールを使用して、パケットの送信RELATEDとESTABLISHED送信を許可します。
sudo iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
必要なポートを許可します。この場合、HTTPポート。
sudo iptables -A OUTPUT -p tcp --dport 80 -m state --state NEW -j ACCEPT
使用する可能性のあるその他のポート。
FTP:ポート21のTCPHTTPS:ポート443のTCPDHCP:ポート67のudpNTP:ポート123のudp注:許可するapt-get場合は、FTPおよびを許可する必要がある場合がありHTTPSます。
返されたトラフィックをRELATED、すでにESTABLISHED接続されている場合にのみ許可します(場合によっては双方向通信が必要になるため推奨されます)。
sudo iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
外部からのping要求を許可します。
sudo iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
sudo iptables -A OUTPUT -p icmp --icmp-type echo-reply -j ACCEPT
上のトラフィックを転送eth0ポート2200に10.0.3.21:22(あなたは、コンテナ内で実行されているSSHサーバーを公開する場合に便利)。
sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 2200 -j DNAT --to-destination 10.0.3.21:22
SSHを使用してサーバーに正常にログインすると、永続的な接続が作成されます(つまり、1時間以上接続しても新しい接続はありません)。失敗して再度ログインしようとすると、新しい接続が作成されます。これは、1時間あたりの新しい接続を制限することにより、継続的なSSHログイン試行をブロックします。
sudo iptables -I INPUT -p tcp --dport 22 -m state --state NEW -m recent --set
sudo iptables -I INPUT -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 3600 --hitcount 4 -j DROP
ポート上のすべての要求をポート443にリダイレクトします4430(443なしでポートにバインドする場合に便利ですroot)。
sudo iptables -t nat -A PREROUTING -i ens3 -p tcp --dport 443 -j REDIRECT --to-port 4430
sudo iptables -A INPUT -p tcp -m tcp --dport 4430 -m geoip --src-cc PE -j ACCEPT
ens3 ネットワークインターフェース。-m geoip 国ブロックモジュール(ステップ5を参照)。警告:を使用しないでくださいlo。OSは、ループバックインターフェイスにリダイレクトされたすべてのパケットを破棄します。
xtables-addonsxtables-addonsさまざまな方法でモジュールをインストールできます。最適なインストール方法を自由に使用してください。
を使用してインストールしapt-getます。
sudo apt-get install xtables-addons-common
を使用してインストールしmodule-assistantます。
sudo apt-get install module-assistant xtables-addons-source
sudo module-assistant --verbose --text-mode auto-install xtables-addons
ソースからインストールします。
sudo apt-get install git bc libncurses5-dev libtext-csv-xs-perl autoconf automake libtool xutils-dev iptables-dev
git clone git://git.code.sf.net/p/xtables-addons/xtables-addons
cd xtables-addons
./autogen.sh
./configure
make
sudo make install
「国」データベースを構築します。
sudo apt-get install libtext-csv-xs-perl unzip
sudo mkdir /usr/share/xt_geoip
sudo /usr/lib/xtables-addons/xt_geoip_dl
sudo /usr/lib/xtables-addons/xt_geoip_build -D /usr/share/xt_geoip *.csv
sudo rm GeoIPCountryCSV.zip GeoIPCountryWhois.csv GeoIPv6.csv
システムを再起動します。
sudo reboot
後はxtables-addons正常にインストールされている、最初の再起動後、実行してdepmodそれ以外の国のブロッキングは、(これは初回のみ必要です)正常に動作しません。
sudo depmod
でデータベースを毎月/etc/cron.monthly/geoip-updater更新するスクリプトを作成しますgeoip。
#!/usr/bin/env bash
# this script is intended to run with sudo privileges
echo 'Removing old database---------------------------------------------------'
rm -rf /usr/share/xt_geoip/*
mkdir -p /usr/share/xt_geoip
echo 'Downloading country databases-------------------------------------------'
mkdir /tmp/geoip-updater
cd /tmp/geoip-updater
/usr/lib/xtables-addons/xt_geoip_dl
echo 'Building geoip database-------------------------------------------------'
/usr/lib/xtables-addons/xt_geoip_build -D /usr/share/xt_geoip *.csv
echo 'Removing temporary files------------------------------------------------'
cd /tmp
rm -rf /tmp/geoip-updater
確認し/etc/cron.monthly/geoip-updater、実行可能。
sudo chmod +x /etc/cron.monthly/geoip-updater
_注:ルールiptables: No chain/target/match by that nameを適用しようとしたときにエラーが発生した場合はgeoip、xtables-addons正しくインストールされていない可能性があります。別のインストール方法を試してください。
中国、香港、ロシア、韓国からのすべての着信パケットをブロックします。
sudo iptables -A INPUT -m geoip --src-cc CN,HK,RU,KR -j DROP
80上記の国を除くすべての場所からのポートでの着信パケットを許可します。
sudo iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
ペルーからのens3ポートのインターフェースで22のみ着信パケットを許可します(たとえば、US米国からのパケットを受け入れる国コードを自由に選択してください)。
sudo iptables -A INPUT -i ens3 -p tcp -m tcp --dport 22 -m geoip --src-cc PE -j ACCEPT
443ペルーからのポートでのみ着信パケットを許可します。
sudo iptables -A INPUT -p tcp -m tcp --dport 443 -m geoip --src-cc PE -j ACCEPT
CentOS 7にGraylogサーバーをインストールし、ログ管理を行う方法を学びます。
Debian 10にWebDAVをデプロイする方法を学び、WsgiDAVとSSL証明書で安全な接続を実現しましょう。
LiteCartは、PHP、jQuery、およびHTML 5で記述された無料のオープンソースのショッピングカートプラットフォームです。シンプルで軽量、使いやすいeコマースソフトウォー
NFSはネットワークベースのファイルシステムであり、コンピューターはコンピューターネットワークを介してファイルにアクセスできます。このガイドでは、NFを介してフォルダーを公開する方法について説明します
別のシステムを使用していますか?Matomo(旧Piwik)は、Google Analyticsのオープンな代替手段であるオープンソースの分析プラットフォームです。Matomoのソースはoでホストされています
McMyAdminは、サーバーの管理に使用されるMinecraftサーバーコントロールパネルです。McMyAdminは無料ですが、複数のエディションがあり、一部はパイです
TeamTalkは、ユーザーが高品質のオーディオ/ビデオ会話、テキストチャット、ファイルの転送、および画面の共有を可能にする会議システムです。それは
別のシステムを使用していますか?はじめにCyberPanelは、オープンソースでありOpenLiteSpeedを使用する市場で最初のコントロールパネルの1つです。なんてこった
Ruby on Railsは、プログラマーの生産性を向上させるために開発されたRubyの人気のあるWebフレームワークです。ただし、さまざまな宝石と依存関係を取得する
Vultrは、VPSにアクセスして構成、インストール、および使用するためのいくつかの異なる方法を提供します。アクセス認証情報VPS arのデフォルトのアクセス認証情報
GolangはGoogleが開発したプログラミング言語です。汎用性、シンプルさ、信頼性のおかげで、Golangは最も人気のあるものの1つになりました
LinuxおよびUnixのシステム管理者の間では、sudoユーザーを使用してサーバーにアクセスし、コマンドをルートレベルで実行することは非常に一般的です。sudの使用
別のシステムを使用していますか?DokuWikiは、データベースを必要としないPHPで記述されたオープンソースのWikiプログラムです。データをテキストファイルに保存します。ドクウィク
この記事では、Debianでchroot jailをセットアップする方法を説明します。私はあなたがDebian 7.xを使っていると思います。Debian 6または8を実行している場合、これは機能する可能性があります、bu
はじめにDebianでVPNサーバーを設定する簡単な方法は、PiVPNを使用することです。PiVPNは、OpenVPNのインストーラーおよびラッパーです。それはあなたのための簡単なコマンドを作成します
別のシステムを使用していますか?はじめにCyberPanelは、オープンソースでありOpenLiteSpeedを使用する市場で最初のコントロールパネルの1つです。なんてこった
別のシステムを使用していますか?BigTree CMS 4.2は、高速で軽量な無料のオープンソースのエンタープライズグレードのコンテンツ管理システム(CMS)であり、
別のシステムを使用していますか?Brotliは、Gzipよりも圧縮率が高い新しい圧縮方法です。そのソースコードはGithubで公開されています。ティ
PleskはネイティブのHTTP / 2サポートを備えています。PleskでのHTTP / 2のロールアウトは、他のコンポーネントに比べてはるかに簡単ですが、その導入プロセスには慎重な計画が必要です
別のシステムを使用していますか?osTicketは、オープンソースのカスタマーサポートチケットシステムです。osTicketのソースコードはGithubで公開されています。このチュートリアルでは
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の未来は、日々成長を続けています。