Ubuntu Serverをできる限り保護するプロジェクトがあります。サーバーはWebホスティングサーバーです。サーバーはLAMP、Mail、およびDNSを実行します。
以下は、サーバーを保護するために行うことのリストです。
Sudo ufw enable
)をオンにして、実際に使用されるポートのみを許可します。 (Sudo ufw allow 80
)Sudo apt-get install denyhosts
)さらに考慮すべきことがいくつかあります。ほとんどの人は、物理的なアクセスを忘れています。物理的にLiveCDを持ち込んでデータを盗むことができれば、世界中のすべてのソフトウェア構成は何の意味もありません。ソーシャルエンジニアリングに注意してください。質問をして、誰が電話をかけているのかを確認し、彼らが行っているリクエストを行うための承認を得ていることを確認します。
私はまだ「新しい」ユーザーなので、3つ以上のリンクを投稿することはできません。このテーマの詳細については、 https://help.ubuntu.com/12.04/serverguide/index.html をご覧ください。 https://help.ubuntu.com/12.04/serverguide/security.html
/ dev/shmは、httpdなどの実行中のサービスに対する攻撃で使用できます。/etc/fstabを変更して、より安全にします。
ターミナルウィンドウを開き、次を入力します。
Sudo vi /etc/fstab
次の行を追加して保存します。この設定を有効にするには、再起動する必要があります。
tmpfs /dev/shm tmpfs defaults,noexec,nosuid 0 0
/etc/sysctl.confファイルには、すべてのsysctl設定が含まれています。着信パケットのソースルーティングを防止し、不正な形式のIPをログに記録する
Sudo vi /etc/sysctl.conf
/etc/sysctl.confファイルを編集し、次の行をコメント解除または追加します。
# IP Spoofing protection
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.default.rp_filter = 1
# Ignore ICMP broadcast requests
net.ipv4.icmp_echo_ignore_broadcasts = 1
# Disable source packet routing
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
# Ignore send redirects
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
# Block SYN attacks
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_max_syn_backlog = 2048
net.ipv4.tcp_synack_retries = 2
net.ipv4.tcp_syn_retries = 5
# Log Martians
net.ipv4.conf.all.log_martians = 1
net.ipv4.icmp_ignore_bogus_error_responses = 1
# Ignore ICMP redirects
net.ipv4.conf.all.accept_redirects = 0
net.ipv6.conf.all.accept_redirects = 0
net.ipv4.conf.default.accept_redirects = 0
net.ipv6.conf.default.accept_redirects = 0
# Ignore Directed pings
net.ipv4.icmp_echo_ignore_all = 1
sysctlを最新の変更でリロードするには、次を入力します:
Sudo sysctl -p
ターミナルを開き、次を入力します:
Sudo vi /etc/Host.conf
次の行を追加または編集します:
order bind,hosts
nospoof on
php.iniファイルを編集します:
Sudo vi /etc/php5/Apache2/php.ini
次の行を追加または編集します:
disable_functions = exec,system,Shell_exec,passthru
register_globals = Off
expose_php = Off
magic_quotes_gpc = On
DenyHostsはpythonプログラムで、/ etc/hosts.denyにエントリを追加することにより、SSH攻撃を自動的にブロックします。また、DenyHostsは、問題のあるホスト、攻撃されたユーザー、疑わしいログインについてLinux管理者に通知します。
ターミナルを開き、次を入力します:
Sudo apt-get install denyhosts
インストール後、構成ファイル/etc/denyhosts.confを編集し、必要に応じて電子メールやその他の設定を変更します。
管理者のメール設定を編集するには、ターミナルウィンドウを開いて次のように入力します:
Sudo vi /etc/denyhosts.conf
サーバーで必要に応じて次の値を変更します。
ADMIN_EMAIL = root@localhost
SMTP_Host = localhost
SMTP_PORT = 25
#SMTP_USERNAME=foo
#SMTP_PASSWORD=bar
SMTP_FROM = DenyHosts nobody@localhost
#SYSLOG_REPORT=YES
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
enabled = falseを *enabled = true*に変更して、fail2banで監視するすべてのサービスをアクティブにします。
たとえば、SSH監視とjailの禁止を有効にする場合は、以下の行を見つけて、enabledをfalseからtrueに変更します。それでおしまい。
[ssh]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
Fail2Banからのメールを受信する場合ホストが禁止されている場合は、次の行をメールアドレスに変更します。
destemail = root@localhost
および次の行を次から変更します:
action = %(action_)s
から:
action = %(action_mwl)s
また、ルールフィルターを作成することもできますデフォルトでは提供されないfail2banに監視させたいさまざまなサービスに対して。
Sudo vi /etc/fail2ban/jail.local
Fail2banを構成し、さまざまなフィルターを作成する方法に関する適切な手順は、 HowtoForge - 例についてはここをクリック にあります。
Fail2Banの構成が完了したら、次を使用してサービスを再起動します。
Sudo /etc/init.d/fail2ban restart
ステータスを確認することもできます。
Sudo fail2ban-client status
RKHunter と CHKRootkit は基本的に同じことを行います-ルートキットがないかシステムを確認してください。両方を使用しても害はありません。
ターミナルを開き、次を入力します:
Sudo apt-get install rkhunter chkrootkit
Chkrootkitを実行するには、ターミナルウィンドウを開いて次のように入力します。
Sudo chkrootkit
RKHunterを更新して実行するには。ターミナルを開き、次を入力します
Sudo rkhunter --update
Sudo rkhunter --propupd
Sudo rkhunter --check
Nmap(「ネットワークマッパー」)は、ネットワークの検出とセキュリティ監査のための無料のオープンソースユーティリティです。
ターミナルを開き、次を入力します:
Sudo apt-get install nmap
以下を使用して、開いているポートがないかシステムをスキャンします。
nmap -v -sT localhost
以下を使用したSYNスキャン:
Sudo nmap -v -sS localhost
Logwatchは、カスタマイズ可能なログ分析システムです。 Logwatchはシステムのログを解析し、指定した領域を分析するレポートを作成します。 Logwatchは使いやすく、ほとんどのシステムでパッケージからすぐに動作します。
ターミナルを開き、次を入力します。
Sudo apt-get install logwatch libdate-manip-Perl
Logwatchの出力を表示するには、lessを使用します。
Sudo logwatch | less
過去7日間のログウォッチレポートを電子メールアドレスに電子メールで送信するには、次を入力し、mail @ domain.comを必要な電子メールに置き換えます。 :
Sudo logwatch --mailto [email protected] --output mail --format html --range 'between -7 days and today'
Tigerは、セキュリティ監査と侵入検知システムの両方として使用できるセキュリティツールです。
ターミナルを開き、次を入力します。
Sudo apt-get install tiger
Tigerを実行するには:
Sudo tiger
すべてのTiger出力は/ var/log/tigerにあります
Tigerセキュリティレポートを表示するには、ターミナルを開き、次を入力します。
Sudo less /var/log/tiger/security.report.*
あなたはこれがweb-hosting-server ...であると言ったので、5 long yearsの私のベストプラクティスと経験をweb-hosting行で共有したいと思います。
私の過去の経験から、すぐに構成の地獄に入るのではなく、最初に与えられた記事に示されているように、セキュリティの低いぶどうを組み立てる必要があります。
LAMPを使用しているため、PHPについて非常に慎重でなければなりませんとそのphp.ini設定。これは、PHPを保護するのに適した link です。 PHPには、適切に設定されていない場合にセキュリティループになる可能性がある超能力があります。
cron jobを使用して、ファイルが許可なく変更され、ハッキングされた可能性があるかどうかを確認できます。 このcronジョブ を使用します。 Notepad ++ を使用して、cronの結果を比較します(Webサーバーから直接cronメールをダウンロードして、Notepad ++で開きます)。
SEMをインストールする場合は、cPanelをお勧めします(ただし有料)。 Webmin および zpanel は非常に優れた無料の代替手段です。 Webminは、少なくとも自己署名証明書を使用し、セキュリティを追加するため、より優れています。
すぐに動作するようにしたい場合は、 Turnkey Linux。 を選択してください。Ubuntuベースで、実装が非常に簡単で、ニーズに柔軟に対応できます。わずかな労力で、すぐにセキュリティを確保できます。これは彼らの LAMPスタック です。 私は個人的に使用し、これだけを好みます。
ゼロから始める場合は、ISPconfig3もインストールできます。指示 ここ 。
セキュリティに侵入しようとするを使用してセキュリティをテストできます。 Back-Track-Linux を使用します。
複雑な長さを保つランダムなパスワード。 PCに保存しないでください。それらを書き留めます。ライブCDを使用して、これらのログインにアクセスします。
brute force protection fail2banのようなソフトウェアを入手します。
必要のないデーモンを実行しないでください。
不要なポートをすべてブロック。 SSHポート(22)には特に注意してください。
サーバーを管理するシステムの静的IPを取得します。 ほとんどのIPブロックを作成し、特定のIPのみにアクセスを許可するポート22などの設定場所。
1日の終わりに...完全な心で作業します感情的にならないでくださいインストールと常識の適用により、はるかに先に進みます。
**My heartiest best wishes to you. good luck.**
Bastille Linuxプロジェクトを使用します。
追加のセキュリティ強化対策を実行して、全体的なセキュリティを高め、Ubuntuシステムのセキュリティ侵害の危険性を減らすインタラクティブツールを提供します( Bastille Linux から)。
システムのどの部分がロックダウンされていないかを判断できるように、評価およびレポート機能を提供します。システムを読み取り専用で検査し、各強化項目のステータスを報告します。たとえば、Bastilleは、DNSサーバーがchroot刑務所にロックされているかどうか、telnetがオフになっているかどうか、またはパスワードに十分な長さが必要かどうかをチェックします。このリンクからWebのみのデモを見ることができます(詳細 info )。
Web(のみ)デモのプレビューを表示できます here 。
マシンのすべてのインターフェースでnmap
を使用して、マシンで実行しているサービスを把握します。これはセキュリティに不可欠なツールです。
外部インターフェイスで不要なサービスをすべて削除します。 localhostなどの特定のインターフェイスでのみリッスンするようにMySQLを構成できます。
Ufwを使用してSSHサービス(および可能性のある他のサービス)を保護し、同じマシンからの1分あたりの(失敗した)接続が多すぎないようにします。これにより、ブルートフォース攻撃が難しくなります。ポート番号を変更することはそれほど有用ではなく、単に不明瞭であり、セキュリティはありません。
マシン上のアカウントの数を制限してください。また、実際に使用するよりも多くのパッケージ/プログラムをインストールしないでください。 X11サーバーではなく、X11クライアントのみをインストールします。
デジタル証明書、no passwordを使用したマシンへのssh-loginのみを許可します。それはまた、ブルートフォース攻撃を困難/不可能にします。
CIS Debian Benchmarks ドキュメントも参照します。これには、Debianの派生物であるUbuntuに適用されるオペレーティングシステムを強化するための非常に多くの手順とプロセスがあります。私も相談します:
セキュリティには常に代償が伴います。現実的な境界を設定すると、目標を達成するのに役立ちます。次の側面を検討します。
ここに掲載されているすべてのリンクを確認して、このリンクを追加する必要があると思います。ソフトウェアのセットアップ方法だけでなく、セキュリティ計画についても検討します。プラスとして、実行するすべてのコマンドは、そのソースと共に説明されています。
少し前に、ubuntu 16.04-18.04を保護する方法について投稿しました。これらの手順は次のとおりです。
パスワードログインを認証済みキーに置き換えるLinuxサーバーにファイアウォールをインストールする
その他 https://hostup.org/blog/how-to-secure-a-ubuntu-linux-server-in-3-simple-steps/