さて、私はこの投稿を準備していた 私のブログ しばらくの間、彼らは私にそれを提案しました DesdeLinux、そして時間の不足のために、彼はできなかった、または進んでいませんでした。 少し怠け者なら ????。 しかし今、キューバで言うように、彼らはストライキを行っています...
0- 最新のセキュリティアップデートでシステムを最新の状態に保ちます。
0.1- 重要な更新メーリングリスト[Slackwareセキュリティアドバイザー, Debianセキュリティアドバイザー、 私の場合]
1- 権限のない担当者によるサーバーへの物理的アクセスはゼロです。
1.1- パスワードを適用する BIOS 私たちのサーバーの
1.2- CD / DVDによる起動なし
1.3- GRUB / Liloのパスワード
2- 良いパスワードポリシー、英数字など。
2.1- 「chage」コマンドを使用したパスワードのエージング[パスワードエージング]、およびパスワードの変更から最終変更日までの日数。
2.2- 以前のパスワードの使用は避けてください。
/etc/pam.d/common-password内
password sufficient pam_unix.so use_auth ok md5 shadow remember 10
これは、パスワードを変更する方法であり、ユーザーが持っていた最後の10個のパスワードを思い出させます。
3- ネットワーク[ルーター、スイッチ、VLAN]とファイアウォールの適切な管理/セグメンテーションポリシー、およびフィルタリングルールINPUT、OUTPUT、FORWARD [NAT、SNAT、DNAT]
4- シェル[/ etc / shells]の使用を有効にします。 システムにログインする必要のないユーザーは、/ bin / falseまたは/ bin / nologinを取得します。
5- ログインに失敗したときにユーザーをブロックし[faillog]、システムユーザーアカウントを制御します。
passwd -lpepe->ブロックユーザーpepepasswd -vpepe->ブロック解除ユーザーpepe
6- 「sudo」の使用を有効にします。ssh「NEVER」でrootとしてログインしないでください。 実際、この目的を達成するには、ssh構成を編集する必要があります。 sudoを使用してサーバーで公開/秘密鍵を使用します。
7- 私たちのシステムに「最小特権の原則"
8- サーバーごとに、サービスを随時確認してください[netstat-lptun]。 このタスクに役立つ監視ツールを追加します[Nagios、Cacti、Munin、Monit、Ntop、Zabbix]。
9- IDS、Snort / AcidBase、Snotby、Barnyard、OSSECをインストールします。
10- Nmapはあなたの友達です、それを使ってあなたのサブネットをチェックしてください。
11- OpenSSH、Apache2、Nginx、MySQL、PostgreSQL、Postfix、Squid、Samba、LDAP [最もよく使用されるもの]、およびネットワークで必要なその他のサービスでの優れたセキュリティプラクティス。
12- 私たちのシステム、SSL、gnuTLS、StarTTLS、ダイジェストなどで可能な限りすべての通信を暗号化します...そして機密情報を扱う場合は、ハードドライブを暗号化します!!!
13- 最新のセキュリティ、ブラックリスト、スパム対策のルールでメールサーバーを更新します。
14- logwatchとlogcheckを使用したシステムでのアクティビティロギング。
15- top、sar、vmstat、freeなどのツールの知識と使用。
sar->システムアクティビティレポートvmstat->プロセス、メモリ、システム、i / o、cpuアクティビティなどiostat-> cpu i / oステータスmpstat->マルチプロセッサステータスと使用状況pmap->空きプロセスによるメモリ使用量-> iptrafメモリ->ネットワークのリアルタイムのトラフィックethstatus->コンソールベースのイーサネット統計モニターetherape->グラフィカルネットワークモニターss->ソケットステータス[tcpソケット情報、udp、rawソケット、DCCPソケット] tcpdump->トラフィックvnstatの詳細分析->選択したインターフェイスのネットワークトラフィックモニターmtr->診断ツールとネットワークethtoolの過負荷の分析->ネットワークカードに関する統計
今のところそれがすべてです。 このタイプの環境にはXNUMX以上のセキュリティ提案があることを私は知っていますが、これらは私に最も密接に衝撃を与えたもの、またはある時点で私が管理した環境で適用/行使しなければならなかったものです。
抱擁とうまくいけばそれはあなたに役立つでしょう😀
コメントであなたを招待し、読者の知識を増やすために、すでに述べたものとは別に、あなたが実装した他のいくつかのルールについて教えてください😀
さて私は追加します:
1.- sysctlルールを適用して、dmesg、/ proc、SysRQアクセスを防止し、PID1をコアに割り当て、ハードシンボリックリンクとソフトシンボリックリンクの保護を有効にし、IPv4とIPv6の両方のTCP / IPスタックを保護し、完全なVDSOをアクティブにして最大のランダム化ポインターを取得します。メモリスペースの割り当てとバッファオーバーフローに対する強度を向上させます。
2.-タイプSPI(ステートフルパッケージインスペクト)の防火壁を作成して、作成されていない、または以前に許可されていた接続がシステムにアクセスできないようにします。
3.-リモートロケーションからの昇格された特権での接続を必要とするサービスがない場合は、access.confを使用してそれらへのアクセスを取り消すか、それができない場合は、特定のユーザーまたはグループのみへのアクセスを有効にします。
4.-ハード制限を使用して、特定のグループまたはユーザーへのアクセスがシステムを不安定にするのを防ぎます。 実際のマルチユーザーが常にアクティブになっている環境で非常に役立ちます。
5.- TCPWrappersは友だちです。サポートされているシステムを使用している場合、TCPWrappersを使用しても問題はないため、システムで事前に構成されていない限り、どのホストからのアクセスも拒否できます。
6.-2048文字を超える英数字キーを使用して4096ビット以上の16ビット以上のSSHRSAキーを作成します。
7.-あなたはどのくらい世界に書き込み可能ですか? ディレクトリの読み取り/書き込み権限を確認することはまったく悪いことではなく、マルチユーザー環境での不正アクセスを回避するための最良の方法です。言うまでもなく、特定の不正アクセスがユーザーの情報にアクセスするのがより困難になります。それらを望まない。他の誰も見ない。
8.-オプションnoexec、nosuid、nodevを使用して、それに値しない外部パーティションをマウントします。
9.- rkhunterやchkrootkitなどのツールを使用して、システムにルートキットやマルウェアがインストールされていないことを定期的に確認します。 安全でないリポジトリ、PPA、または信頼できないサイトからコードをライブコンパイルするだけの人の場合は、賢明な方法です。
うーん、おいしい…いいコメント、みんな追加…😀
SElinuxで強制アクセス制御を適用しますか?
とても良い記事
友達に感謝します😀
こんにちは。私が通常のユーザーの場合、suまたはsudoを使用する必要がありますか?
私はsudoが好きではないので、suを使用します。私のユーザーパスワードを持っている人は誰でも、su noを使用する代わりに、システム上で必要なものを変更できるからです。
PCではsuを使用する必要はなく、問題なく使用できます。サーバーでは、suの使用を無効にしてsudoを使用することを強くお勧めします。多くの人が、誰がどのコマンドを実行したかを監査したためだと言います。そしてsudoはそのタスクを実行します...私は特に、私のPCでは、あなたと同じように彼を使用します...
確かに、サーバー上でどのように機能するのかはよくわかりません。 とはいえ、sudoには、他のコンピューターのユーザーに特権を与えることができるという利点があったようですが、私が間違っていなければ。
興味深い記事ですが、たとえば、ディスク上の膨大な情報の海で失われた原因不明のバイナリを実行したい場合に備えて、最小特権など、いくつかのファイルをgnu-gpgで暗号化します。アクセスを削除するにはどうすればよいですか。特定の機能?
その部分はあなたに借りがありますが、sudo / rootとしてのみ実行する必要があると思いますが、信頼できるプログラム、つまり、リポジトリから取得されます...
GNU / LinuxおよびUNIXのマニュアルでroot機能を有効にする方法があることを読んだことを覚えています。それを見つけたら、それを置きます😀
@andrewここに私が言及した記事といくつかのヘルプがあります
http://www.cis.syr.edu/~wedu/seed/Labs/Capability_Exploration/Capability_Exploration.pdf
http://linux.die.net/man/7/capabilities
https://wiki.archlinux.org/index.php/Capabilities
未知のバイナリを実行するためにケージをchownしますか?
常にsudoを使用する方がはるかに優れています。
または、sudoを使用することもできますが、パスワードが記憶される時間を制限します。
私がPCを監視するために使用する同様のツール、«iostat»の代わりに«iotop»、«htop»優れた«タスクマネージャー»、«iftop»帯域幅監視。
多くの人はそれが誇張されていると思うでしょうが、ボットネットにサーバーを含める攻撃はすでに見ています。
https://twitter.com/monitolinux/status/594235592260636672/photo/1
ps:中国の物乞いと彼らのサーバーハッキングの試み。
また便利なのは、サービスにchownケージを使用することです。そのため、何らかの理由で攻撃されても、システムが危険にさらされることはありません。
psコマンドの使用は監視にも優れており、セキュリティ上の欠陥をチェックするアクションの一部になる可能性があります。 ps -efを実行すると、すべてのプロセスが一覧表示されます。topと似ていますが、いくつかの違いがあります。 iptrafのインストールは、機能する可能性のあるもうXNUMXつのツールです。
グッド貢献。
追加します:SELinuxまたはApparmorは、ディストリビューションに応じて、常に有効になっています。
私自身の経験から、これらのコンポーネントを無効にするのは悪い習慣であることに気づきました。 サービスをインストールまたは構成するときは、ほとんどの場合、問題なく実行されるという言い訳でそれを行います。実際にすべきことは、そのサービスを許可するようにサービスを管理する方法を学ぶことです。
挨拶。
1.ファイルシステム全体を暗号化する方法は? 価値がある??
2.システムを更新するたびに復号化する必要がありますか?
3.マシンのファイルシステム全体を暗号化することは、他のファイルを暗号化することと同じですか?
あなたが話していることをあなたが知っていることをどうやって知っていますか?
また、プログラムや複数のユーザーをケージに入れることもできます。 これを行うのはもっと手間がかかりますが、何かが起こって、そのフォルダの以前のコピーを持っていた場合、それはただ叩いて歌っているだけです。
最善かつ最も便利なセキュリティポリシーは、偏執的であってはなりません。
それを試してみてください、それは間違いありません。
私はcsfを使用していますが、アクセス中にパスワードを置き忘れたクライアントのロックを解除すると、プロセスが遅延しますが、実際に発生します。 正常ですか?
sshからブロックを解除するコマンドを探しています...提案