あらゆるビジネスのインターネットへの依存度が高まるにつれ、サイバーセキュリティが組織的にますます重視されるようになってきています。この点において、Linux システムは良い出発点となります。 Linux システムは、オープンソース、広く使用されている、認可が必要ないという特徴により、多くの組織や企業で選ばれるオペレーティング システムとなっています。ただし、Linux システムのリスクも増加しています。この記事では、Linux システムの脆弱性を強化して修復する方法を紹介し、より安全な Linux システムを構成するのに役立つサンプル コードをいくつか紹介します。
まず、ユーザー管理、ファイルとディレクトリのアクセス許可、ネットワークとサーバーの構成、アプリケーションのセキュリティという側面に焦点を当てる必要があります。各側面の詳細な対策とサンプルコードを以下に説明します。
強力なパスワード
ユーザーに複雑なパスワードの選択とパスワードの定期的な変更を要求するパスワード ポリシーを作成します。
#强制用户选择具备最低密码强度的密码 auth requisite pam_passwdqc.so enforce=users #强制/用户更改自己的密码 auth required pam_warn.so auth required pam_passwdqc.so min=disabled,disabled,12,8,7 auth required pam_unix.so remember=24 sha512 shadow
root リモート ログインを禁止
root 権限を持つユーザーのみが直接接続できるようにすることをお勧めします。 /etc/ssh/sshd_config の PermitRootLogin を no に構成します。
ログイン タイムアウト
タイムアウト設定により、一定のアイドル時間が経過した後に接続が自動的に切断されるようにすることができます。 /etc/profile または ~/.bashrc で次のように設定します。
#设置空闲登陆超时退出时间为300秒 TMOUT=300 export TMOUT
デフォルトの構成
デフォルトの構成では、次のように許可されます。 all ユーザーはすべてのファイルとディレクトリを表示できます。次の内容を /etc/fstab ファイルに追加します。
tmpfs /tmp tmpfs defaults,noatime,mode=1777 0 0 tmpfs /var/tmp tmpfs defaults,noatime,mode=1777 0 0 tmpfs /dev/shm tmpfs defaults,noatime,mode=1777 0 0
機密ファイルとディレクトリのアクセス許可を決定する
アクセス許可は、特定のユーザー グループまたは個人に制限する必要があります。ファイルとディレクトリのアクセス許可を変更するには、chown および chmod コマンドを使用します。次の例では、root ユーザーのみが変更できるディレクトリを設定します:
#修改某目录只能root用户修改 chown root /etc/cron.deny chmod 600 /etc/cron.deny
SUID、SGID、およびスティッキー ビットのビットを確認します
SUID (ユーザー ID の設定)、SGID (グループ ID の設定)、スティッキー ビットおよびその他のビットは、Linux システムのセキュリティ マークであり、定期的に監査する必要があります。次のコマンドを使用して、不適格なアクセス許可条件を検索します。
#查找SUID权限未被使用的文件和目录 find / -perm +4000 ! -type d -exec ls -la {} ; 2>/dev/null #查找SGID权限未被使用的文件和目录 find / -perm +2000 ! -type d -exec ls -la {} ; 2>/dev/null #查找粘滞位未设置的目录 find / -perm -1000 ! -type d -exec ls -la {} ; 2>/dev/null
ファイアウォール
iptables は、Linux で最も一般的に使用されます。ファイアウォール アプリケーションの 1 つ。次のサンプル コードは、すべての受信アクセスをブロックします。
#清空所有规则和链 iptables -F iptables -X #允许所有本地进出的通信,并拒绝所有远程的访问 iptables -P INPUT DROP iptables -P OUTPUT DROP #添加规则 iptables -A INPUT -i lo -j ACCEPT iptables -A OUTPUT -o lo -j ACCEPT
サービス アクセスの制限
一部のサービスはローカルでのみ実行する必要があり、外部ネットワークからアクセスされる危険性が高くなります。 /etc/hosts.allow ディレクトリと /etc/hosts.deny ディレクトリにルールを作成して、サービスへのアクセス時間、IP、その他の情報を制限します。
ソフトウェア パッケージの更新
カーネル ソフトウェアとユーザー スペース ソフトウェアの両方で、既知のバグや脆弱性を解決するために定期的な更新が必要です。 yum、rpm、その他のツールを使用してソフトウェア パッケージを更新できます。サンプル コードを以下に示します。
#更新已安装的所有软件包 yum -y update #更新单个软件包 yum -y update <package>
アプリケーションの実行に root ユーザーを使用しないでください
アプリケーションを実行するときは、特権のないユーザーを使用し、アプリケーションの実行に root ユーザーを使用しないでください。
静的リンク ライブラリをコンパイルする
静的リンク ライブラリには、アプリケーションを作成するためのすべての依存関係が含まれており、他のユーザーが依存パッケージを改ざんするのを防ぐことができます。サンプルコードを以下に示します。
#编译静态链接库 gcc -o app app.c -static
結論
Linux システムのセキュリティ強化と脆弱性修復作業はこれで終わりではありませんが、上記の対策は Linux システムのセキュリティを強化するのに役立ちます。なお、これらの対策だけではシステムのセキュリティを完全に保証できるものではありませんので、組織や企業は複数の対策を講じてセキュリティを確保する必要があります。
以上がLinux システムでセキュリティ強化と脆弱性修復を実行する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。