Ubuntuサーバーを保護するために何ができるでしょうか?



What Can Be Done Secure Ubuntu Server



解決:

これが私のサーバーを保護するために私がすることのリストです。

  1. UFWをオンにします(sudo ufw enable)次に、実際に使用されているポートのみを許可します。 ((sudo ufw allow 80)
  2. MySQLがローカルホストからの接続のみを許可することを確認してください。
  3. メールサービスでTLSを有効にします。自己署名証明書であっても。パスワードを平文で送信したくない。
  4. denyhostsやfail2banなどのsshブルートフォースブロッカーをインストールします。 ((sudo apt-get install denyhosts)
  5. sshキーベースのログインのみを行うことを検討してください。
  6. AppArmorを学びましょう。かなりバニラな構成を使用する場合、それは非常に簡単です。オンになっていることを確認してください。ゼロデイエクスプロイトの削減に役立ちます。
  7. サーバーへの物理的なアクセスによっては、ハードディスク上のデータの暗号化を検討することもできます。
  8. https://help.ubuntu.com/18.04/serverguide/security.htmlの他の推奨事項に従ってください。
  9. ユーザーを絶対に信用しないでください。システムにアクセスできる複数のユーザーがいる場合は、それらをロックダウンします。 sudoアクセスを許可する必要がある場合は、必要なものだけを許可してください。
  10. 常識を使用してください。あなたがロックアウトされた場合、あなたがどのように入るのかについて真剣に考えてください。次に、それらの穴を閉じます。

考慮すべきいくつかの事柄。ほとんどの人は物理的なアクセスを忘れています。私がLiveCDを持って物理的に立ち入り、データを盗むことができれば、世界中のすべてのソフトウェア構成は何の意味もありません。ソーシャルエンジニアリングに注意してください。質問をして、誰が電話をしているのかを確認し、要求を行う権限があることを確認します。



このテーマの詳細については、https://help.ubuntu.com/18.04/serverguide/index.htmlを参照し、https://help.ubuntu.com/18.04/serverguide/security.htmlに特に注意してください。


あなたが言ったのでこれは ウェブホスティングサーバー ...のベストプラクティスと経験を共有したいと思います 5年の長い年 ウェブホスティングラインで。



  1. 私の過去の経験から、すぐに構成の地獄に入るのではなく、与えられた記事に示されているように、最初にセキュリティの低いぶどうを組み立てる必要があります。

  2. あなたはランプを持っているので、したがってあなたは PHPについては非常に慎重でなければなりません およびそのphp.ini設定。これは、PHPを保護するための優れたリンクです。 PHPには、適切に構成されていない場合にセキュリティループになる可能性のあるスーパーパワーがあります。

  3. あなたは使用することができます cronジョブ ファイルが許可なく変更され、ハッキングされた可能性があるかどうかを確認するため。このcronジョブを使用します。 cronの結果を比較するためにNotepad ++を使用します(Webサーバーからcronメールを直接ダウンロードし、Notepad ++で開きます)。



  4. SEMをインストールする場合は、cPanelをお勧めします(ただし有料)。 Webminとzpanelは非常に優れた無料の代替手段です。 Webminは、少なくとも自己署名証明書を使用し、セキュリティを追加するために優れています。

  5. 箱から出してすぐに機能するものが必要な場合は、TurnkeyLinuxを使用できます。これはUbuntuに基づいており、実装が非常に簡単で、ニーズに柔軟に対応できます。ほんの少しの努力で、箱から出してセキュリティを得ることができます。これが彼らのLAMPスタックです。 私は個人的にこれを使用し、これだけを好みます。

  6. ゼロから始める場合は、ISPconfig3をインストールすることもできます。ここでの説明。

  7. あなたはによってあなたのセキュリティをテストするかもしれません あなたのセキュリティを突破しようとしています Back-Track-Linuxを使用します。

  8. 複雑さを長く保ち、 ランダムなパスワード。それらを保存しないでください PCで。それらを書き留めます。これらのログインにアクセスするには、ライブCDを使用してください。

  9. 入手する ブルートフォースプロテクション fail2banのようなソフトウェア。

  10. 不要なデーモンは実行しないでください。

  11. 不要なポートをすべてブロックする 。 SSHポート(22)には特に注意してください。

  12. サーバーを管理するためのシステムで静的IPを使用してください。 ほとんどのものをIPブロックにして、特定のIPのみにアクセスを許可します ポート22のような構成場所。

一日の終わりに...完全な心で作業し、 感情的にならないでください インストールと常識の適用で、はるかに超えてあなたを連れて行きます。

**心からお祈り申し上げます。幸運を。** 

安全な共有メモリ

/ dev / shmは、httpdなどの実行中のサービスに対する攻撃で使用される可能性があります。 / etc / fstabを変更して、より安全にします。

ターミナルウィンドウを開き、次のように入力します。

sudo vi / etc / fstab

次の行を追加して保存します。この設定を有効にするには、再起動する必要があります。

tmpfs / dev / shm tmpfs defaults、noexec、nosuid 0 0

sysctl設定でネットワークを強化する

/etc/sysctl.confファイルには、すべてのsysctl設定が含まれています。着信パケットのソースルーティングを防止し、不正な形式のIPをログに記録します。ターミナルウィンドウに次のように入力します。

sudo vi /etc/sysctl.conf

編集する /etc/sysctl.conf ファイルを作成し、コメントを解除するか、次の行を追加します。

#IPスプーフィング保護net.ipv4.conf.all.rp_filter = 1 net.ipv4.conf.default.rp_filter = 1#ICMPブロードキャスト要求を無視しますnet.ipv4.icmp_echo_ignore_broadcasts = 1#ソースパケットルーティングを無効にしますnet.ipv4.conf.all .accept_source_route = 0 net.ipv6.conf.all.accept_source_route = 0 net.ipv4.conf.default.accept_source_route = 0 net.ipv6.conf.default.accept_source_route = 0#送信リダイレクトを無視するnet.ipv4.conf.all.send_redirects = 0 net.ipv4.conf.default.send_redirects = 0#SYN攻撃をブロックするnet.ipv4.tcp_syncookies = 1 net.ipv4.tcp_max_syn_backlog = 2048 net.ipv4.tcp_synack_retries = 2 net.ipv4.tcp_syn_retries = 5#火星人のネットを記録するipv4.conf.all.log_martians = 1 net.ipv4.icmp_ignore_bogus_error_responses = 1#ICMPリダイレクトを無視しますnet.ipv4.conf.all.accept_redirects = 0 net.ipv6.conf.all.accept_redirects = 0net.ipv4.conf.default。 accept_redirects = 0 net.ipv6.conf.default.accept_redirects = 0#指示されたpingを無視するnet.ipv4.icmp_echo_ignore_all = 1

最新の変更でsysctlをリロードするには、次のように入力します。

sudo sysctl -p

IPスプーフィングの防止

ターミナルを開き、次のように入力します。

sudo vi /etc/host.conf

次の行を追加または編集します。

注文バインド、ホストnospoof on

セキュリティのためにPHPを強化する

php.iniファイルを編集します。

sudo vi /etc/php5/apache2/php.ini

次の行を追加または編集します。

disable_functions = exec、system、shell_exec、passthru register_globals =オフexpose_php =オフmagic_quotes_gpc =オン

Webアプリケーションファイアウォール-ModSecurity

http://www.thefanclub.co.za/how-to/how-install-apache2-modsecurity-and-modevasive-ubuntu-1204-lts-server

DDOS(サービス拒否)攻撃からの保護-ModEvasive

http://www.thefanclub.co.za/how-to/how-install-apache2-modsecurity-and-modevasive-ubuntu-1204-lts-server

ログをスキャンし、疑わしいホストを禁止します-DenyHostsとFail2Ban

@DenyHosts

DenyHostsは、/ etc / hosts.denyにエントリを追加することにより、SSH攻撃を自動的にブロックするPythonプログラムです。 DenyHostsは、問題のあるホスト、攻撃されたユーザー、疑わしいログインについてLinux管理者に通知します。

ターミナルを開き、次のように入力します。

sudo apt-get install denyhosts

インストール後、構成ファイルを編集します /etc/denyhosts.conf 必要に応じて、メールやその他の設定を変更します。

管理者の電子メール設定を編集するには、ターミナルウィンドウを開き、次のように入力します。

sudo vi /etc/denyhosts.conf

サーバーで必要に応じて、次の値を変更します。

ADMIN_EMAIL = [メール保護] SMTP_HOST = localhost SMTP_PORT = 25#SMTP_USERNAME = foo#SMTP_PASSWORD = bar SMTP_FROM = DenyHosts [メール保護] #SYSLOG_REPORT = YES

@ Fail2Ban

Fail2banは、ログ監視をSSH、Apache、Courier、FTPなどの他のサービスに拡張するため、DenyHostsよりも高度です。

Fail2banはログファイルをスキャンし、悪意のある兆候を示すIPを禁止します。パスワードの失敗が多すぎる、エクスプロイトを探すなどです。

通常、Fail2Banを使用してファイアウォールルールを更新し、指定された期間IPアドレスを拒否しますが、他の任意のアクションを構成することもできます。すぐに使用できるFail2Banには、さまざまなサービス(apache、courier、ftp、sshなど)用のフィルターが付属しています。

ターミナルを開き、次のように入力します。

sudo apt-get install fail2ban

インストール後、構成ファイルを編集します /etc/fail2ban/jail.local 必要に応じてフィルタールールを作成します。

設定を編集するには、ターミナルウィンドウを開き、次のように入力します。

sudo vi /etc/fail2ban/jail.conf

変更して、fail2banで監視するすべてのサービスをアクティブ化します enabled = false to * 有効= true *

たとえば、SSHの監視と刑務所の禁止を有効にする場合は、以下の行を見つけて、有効に変更します。 falseからtrue 。それでおしまい。

[ssh] enabled = true port = ssh filter = sshd logpath = /var/log/auth.log maxretry = 3

受け取りたい場合 Fail2Banからのメール ホストが禁止されている場合は、次の行を自分のメールアドレスに変更してください。

destemail = [メール保護]

次の行を次のように変更します。

アクション=%(action_)s

に:

アクション=%(action_mwl)s

あなたもすることができます ルールフィルターを作成する デフォルトで提供されていない、fail2banで監視するさまざまなサービス。

sudo vi /etc/fail2ban/jail.local

fail2banを構成し、さまざまなフィルターを作成する方法についての適切な説明は、HowtoForgeにあります-例については、ここをクリックしてください

Fail2Banの構成が完了したら、次のコマンドでサービスを再起動します。

sudo /etc/init.d/fail2ban restart

でステータスを確認することもできます。

sudofail2ban-クライアントステータス

ルートキット(RKHunterとCHKRootKit)を確認します。

RKHunterとCHKRootkitはどちらも基本的に同じことを行います。システムでルートキットを確認してください。両方を使用しても害はありません。

ターミナルを開き、次のように入力します。

sudo apt-get install rkhunter chkrootkit

chkrootkitを実行するには、ターミナルウィンドウを開き、次のように入力します。

sudo chkrootkit

RKHunterを更新して実行します。ターミナルを開き、次のように入力します

sudo rkhunter --update sudo rkhunter --propupd sudo rkhunter --check

開いているポートをスキャンする-Nmap

Nmap(「ネットワークマッパー」)は、ネットワーク検出とセキュリティ監査のための無料のオープンソースユーティリティです。

ターミナルを開き、次のように入力します。

sudo apt-get install nmap

次のコマンドを使用して、システムで開いているポートをスキャンします。

nmap -v -sT localhost

次のSYNスキャン:

sudo nmap -v -sS localhost

システムLOGファイルの分析-LogWatch

Logwatchは、カスタマイズ可能なログ分析システムです。 Logwatchはシステムのログを解析し、指定した領域を分析するレポートを作成します。 Logwatchは使いやすく、ほとんどのシステムでパッケージからすぐに機能します。

ターミナルを開き、次のように入力します。

sudo apt-get install logwatch libdate-manip-perl

ログウォッチの出力を表示するには、使用量を減らします。

sudo logwatch |以下

過去7日間のログウォッチレポートをメールアドレスにメールで送信するには、次のように入力し、[メール保護]を必要なメールに置き換えます。 :

sudo logwatch --mailto [email protected] --output mail --format html--range'-7日から今日まで '

システムセキュリティを監査します-Tiger。

Tigerは、セキュリティ監査と侵入検知システムの両方として使用できるセキュリティツールです。

ターミナルを開き、次のように入力します。

sudo apt-get install tiger

tigerを実行するには、次のように入力します。

sudo tiger

すべてのTiger出力は/ var / log / tigerにあります

Tigerのセキュリティレポートを表示するには、ターミナルを開いて次のように入力します。

sudo less / var / log / tiger / security.report。*

さらにヘルプが必要