Linux および Unix サーバーのセキュリティを強化する方法

PHPz
リリース: 2023-05-19 14:43:06
転載
1270 人が閲覧しました

1. システム セキュリティ記録ファイル

オペレーティング システム内の記録ファイルは、ネットワーク侵入があるかどうかを検出するための重要な手がかりとなります。システムがインターネットに直接接続されており、多くの人がシステムに Telnet/FTP ログインを試行していることがわかった場合は、「#more /var/log/secure grep拒否」を実行してシステムへの攻撃をチェックできます。 Telnet/rlogin の代わりに ssh を使用するなどの対応策を講じることができます。

2. 起動とログインのセキュリティ

1. BIOS セキュリティ

BIOS パスワードを設定し、ブート シーケンスを変更して、フロッピー ディスクからのシステムのブートを禁止します。

2.ユーザー パスワード

ユーザー パスワードは、Linux セキュリティの基本的な開始点です。多くの人が使用するユーザー パスワードは単純すぎるため、侵入者への扉を開いてしまいます。理論上は、十分な時間とリソースがある限り、インターネット セキュリティの助けを借りれば、解読できないユーザー パスワードはありませんが、適切に選択されたパスワードを解読するのは困難です。より良いユーザー パスワードは、そのユーザーだけが簡単に覚えて理解できる文字列であり、決してどこにも書き出すべきではありません。

3.デフォルト アカウント

は、オペレーティング システム自体によって開始されるすべての不要なアカウントを禁止する必要があります。これは、システムを初めてインストールするときに行う必要があります。Linux には多くのデフォルト アカウントが用意されており、アカウントの数が増えるほど、優れているほど、システムは攻撃に対して脆弱になります。

次のコマンドを使用してアカウントを削除できます。

# userdel用户名
ログイン後にコピー

または、次のコマンドを使用してグループ ユーザー アカウントを削除します。

rreeee

4.パスワード ファイル

chattr コマンドは、権限のないユーザーがアクセス許可を取得できないように、次のファイルに変更不可能な属性を追加します。

rreeee

5. ctrl alt delete コマンドを無効にしてマシンを再起動します。

/etc/inittab ファイルを変更し、「ca::ctrlaltdel:/sbin/shutdown -t3 -r now」行をコメント アウトします。 。次に、/etc/rc.d/init.d/ ディレクトリ内のすべてのファイルの権限をリセットし、次のコマンドを実行します。

# groupdel username
ログイン後にコピー

これにより、root のみが上記のすべてのスクリプトの読み取り、書き込み、または実行を行うことができます。ファイル。

6. su コマンドを制限する

誰も root として su できないようにするには、/etc/pam.d/su ファイルを編集して、次の 2 行を追加します。

# chattr +i /etc/passwd

# chattr +i /etc/shadow

# chattr +i /etc/group

# chattr +i /etc/gshadow
ログイン後にコピー

現時点では、isd グループ ユーザーのみが root として su になれます。その後、ユーザー admin が root として su できるようにしたい場合は、コマンド

# chmod -r 700 /etc/rc.d/init.d/*
ログイン後にコピー

7 を実行します。ログイン情報の削除

デフォルトでは、ログイン プロンプト情報には、Linux ディストリビューションのバージョン、カーネルのバージョン名、サーバーのホスト名などが含まれます。高度なセキュリティ要件を備えたマシンの場合、これにより漏洩する情報が多すぎます。 /etc/rc.d/rc.local を編集して、システム情報を出力する次の行をコメント化できます。

auth sufficient /lib/security/pam_rootok.so debug

auth required /lib/security/pam_wheel.so group=isd
ログイン後にコピー

次に、次の操作を実行します:

# usermod -g10 admin
ログイン後にコピー

3. ネットワーク アクセスを制限します

1。 nfs access

nfs ネットワーク ファイル システム サービスを使用する場合は、/etc/exports のアクセス許可設定が最も制限されていることを確認する必要があります。つまり、ワイルドカードを使用せず、root 書き込み許可を許可しないことを意味します。読み取り専用ファイル システムとしてのみマウントされます。ファイル /etc/exports を編集し、次の 2 行を追加します。

# this will overwrite /etc/issue at every boot. so, make any changes you

# want to make to /etc/issue here or you will lose them when you reboot.

# echo "" > /etc/issue

# echo "$r" >> /etc/issue

# echo "kernel $(uname -r) on $a $(uname -m)" >> /etc/issue

# cp -f /etc/issue /etc/issue.net

# echo >> /etc/issue
ログイン後にコピー

/dir/to/export は出力するディレクトリ、host.mydomain.com はこのディレクトリにログインしているマシンの名前、ro は読み取り専用システムとしてマウントすることを意味し、root_squash はroot がディレクトリへの書き込みを禁止します。変更を有効にするには、次のコマンドを実行します。

rreeee

2。 inetd 設定

まず、/etc/inetd.conf の所有者が root であり、ファイルのアクセス許可が 600 に設定されていることを確認します。設定完了後は「stat」コマンドで確認できます。

# rm -f /etc/issue

# rm -f /etc/issue.net

# touch /etc/issue

# touch /etc/issue.net
ログイン後にコピー

次に、/etc/inetd.conf を編集して次のサービスを無効にします。

/dir/to/export host1.mydomain.com(ro,root_squash)

/dir/to/export host2.mydomain.com(ro,root_squash)
ログイン後にコピー

ssh/scp がインストールされている場合は、telnet/ftp を無効にすることもできます。変更を有効にするには、次のコマンドを実行します:

# /usr/sbin/exportfs -a
ログイン後にコピー

デフォルトでは、ほとんどの Linux システムはすべてのリクエストを許可しており、tcp_wrappers を使用してシステムのセキュリティを強化するのは簡単です。/etc / を変更できます。 hosts.deny および /etc /hosts.allow を使用してアクセス制限を強化します。たとえば、/etc/hosts.deny を「all: all」に設定すると、デフォルトですべてのアクセスが拒否されます。次に、許可されたアクセスを /etc/hosts.allow ファイルに追加します。たとえば、「sshd: 192.168.1.10/255.255.255.0 Gate.openarch.com」は、IP アドレス 192.168.1.10 とホスト名gate.openarch.com が ssh 経由で接続できることを意味します。

設定が完了したら、tcpdchk を使用して次のことを確認できます。

# chmod 600 /etc/inetd.conf
ログイン後にコピー

tcpchk は tcp_wrapper 設定チェック ツールで、tcp ラッパー設定をチェックし、見つかったすべての潜在的/既存の問題をレポートします。

3.ログイン端末設定

/etc/securetty ファイルは、root ログインを許可する tty デバイスを指定します。これは、/bin/login プログラムによって読み取られます。その形式は、許可された名前のリストです。/etc/securetty は編集できます次の行をコメントアウトします。

ftp telnet shell login exec talk ntalk imap pop-2 pop-3 finger auth
ログイン後にコピー

現時点では、root は tty1 端末にのみログインできます。

4.システムおよびバージョン情報を表示しないようにします。

リモート ログイン ユーザーにシステム情報とバージョン情報を表示させたくない場合は、次の操作を通じて /etc/inetd.conf ファイルを変更できます。

#killall -hup inetd
ログイン後にコピー

-h を追加して、Telnet であることを示します。システム情報は表示されず、「login:」のみが表示されます。

4. 攻撃を防ぐ

1. ping をブロックする 誰もシステムに ping を送信できない場合、セキュリティは自然に強化されます。これを行うには、/etc/rc.d/rc.local ファイルに

# tcpdchk 
ログイン後にコピー

2 という行を追加します。 IP スプーフィングを防止する

编辑host.conf文件并增加如下几行来防止ip欺骗攻击。

order bind,hosts

multi off

nospoof on 
ログイン後にコピー

3.防止dos攻击

对系统所有的用户设置资源限制可以防止dos类型攻击。如最大进程数和内存使用数量等。例如,可以在/etc/security/limits.conf中添加如下几行:

  • * hard core 0

  • * hard rss 5000

  • * hard nproc 20

然后必须编辑/etc/pam.d/login文件检查下面一行是否存在。

session required /lib/security/pam_limits.so
ログイン後にコピー

上面的命令禁止调试文件,限制进程数为50并且限制内存使用为5mb。

以上がLinux および Unix サーバーのセキュリティを強化する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:yisu.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート