10 steps to secure Linux Server for Production Environment

11月 28, 2021
admin
Megha Pandey
Megha Pandey

Follow

10月5日, 2017 – 6 min read

Linux Serverのセキュリティは、ハッカーからデータを守るために必要不可欠なものです。 しかし、サーバーの保護は複雑である必要はありません。効率的な管理とともに、最も頻繁に起こる攻撃からサーバーを保護する方法を採用すべきです。

必要なものをインストールする

最初のルールは、サーバーを無駄のないものに保つことです。 本当に必要なパッケージのみをインストールします。 もし不要なパッケージがあれば、パージしてください。

SELinuxをオンにする

Security-Enhanced Linux (SELinux) は、カーネルで提供されるアクセス制御のセキュリティメカニズムです。

  • Permissive: このモードでは、SELinux はシステムに対してセキュリティポリシーを適用せず、警告とログのみを出力します。
  • Disabled: SELinux がオフになります。
  • これは、’/etc/selinux/config’ ファイルから管理でき、有効または無効にできます。

    Secure Console Access

    BIOS 設定後 DVD / CD / USB ペンなどの外部デバイスから起動を無効にして Linux サーバーのコンピュータへのアクセスを保護しなければなりません。 また、BIOSやgrubブートローダーのパスワードを設定し、これらの設定を保護します。

    古いパスワードの使用を制限する

    ユーザーが同じ古いパスワードを使用することを制限することができます。 古いパスワードのファイルは、/etc/security/opasswdにあります。

    RHEL / CentOS / Fedoraでは、’/etc/pam.d/system-auth’ ファイルを開きます。

    # vi /etc/pam.d/system-auth

    Ubuntu/Debian/Linux では ‘/etc/pam.d/common-password’ ファイルを開きます。

    # vi /etc/pam.d/common-password

    「auth」セクションに以下の行を追加します。

    auth sufficient pam_unix.so likeauth nullok

    「password」セクションに以下の行を追加し、直近の3つのパスワードの再利用を禁止します。

    Check Listening Ports

    Use ‘netstat’ command to view open ports and corresponding services.というコマンドを使用すると、過去3つの古いパスワードを使用するとエラーが表示されるようです。

    netstat -tunlp 

    「chkconfig」コマンドを使用して、システムから不要なサービスを無効にし、不要なポートを閉じます。

    chkconfig serviceName off

    ルートログインを無効にする

    スーパーユーザー(ルート)でサーバーにsshすることは推奨されません。 サーバーのrootユーザでのsshを無効にすべきですが、その前に、sudo権限を持つユーザを作成して、サーバーにsshして管理作業を行えるようにしましょう。 サーバーにログインした後は、必要に応じていつでもユーザーを root に切り替えることができます。

    Create a new user :

    useradd user1

    Create password for the user added :

    passwd user1

    Provide sudo permissions to the newly added user :

    echo 'user1 ALL=(ALL) ALL' >> /etc/sudoers

    SSH with the new user and ensure the login work.

    これから root ログインを無効にします。つまり、誰も root ユーザーとしてサーバーに ssh またはログインすることができなくなります。 これを行うには、sshd 設定ファイルを開きます。

    nano /etc/ssh/sshd_conf

    次に、

    PermitRootLogin no

    それからこのファイルを保存して閉じ、サービス

    service sshd restart

    Important を再起動してください。 まだ、サーバーからログアウトしないでください。 まず、以前に作成したユーザーを使って、サーバーに正常にsshでログインできるかどうかテストしてください。 ターミナルの別のインスタンスを開き、以前に作成したユーザーを使ってサーバーに ssh してください。 すべてがうまくいけば、root として安全にサーバーからログアウトできます。

    Change the Port

    サーバーを安全に保つために、デフォルトの SSH ポートを変更して、不透明さの層を追加することができます … 続きを読む

    /etc/ssh/sshd_config ファイルを開く

    replace default Port 22 with different port number say 1110

    save & exit from the file

    service sshd restart

    Now to login define the port No.で、ログインする。

    ssh username@IP -p 1110

    Disable Ctrl+Alt+Delete in Inittab

    Ctrl+Alt+Delete を押すとサーバが再起動されるようになりました。

    Ctrl+Alt+Del の動作は /etc/init/control-alt-delete.conf で定義されています。以下の行をコメントする

    パスワードなしログイン

    ssh-keys を作成すれば簡単にパスワードなしで SSH でサーバーにログインすることができます。 ただ、ssh-keysを生成したマシンからしかサーバにログインできないので注意が必要です

    Generating SSH-keys :

    ssh-keygen - t rsa

    自分の公開鍵をコピーしておくこと. を作成し、同じものをサーバーに追加します。ssh ディレクトリを作成し、その中に authorized_keys というファイルを作成し、その中にユーザーの公開 ssh 鍵を追加します

    mkdir .ssh
    cd /home/admin/.ssh
    vim authorized_keys

    公開 ssh 鍵を追加し、その所有者を変更します。 ファイル

    chown user1 authorized_keys

    sshログインを無効にする

    編集 /etc/ssh/sshd_config

    Passwordauthentication no
    PermitRootLogin no

    これで、。 コマンド

    ssh user-name@serverIP -p(port Number)

    Fail2Banでサーバーにログインできるのは正規ユーザーのみ SSHログイン用

    Fail2banは、一定回数ログインに失敗したアドレスを禁止するために、ファイアウォールのルールを動的に変更することで動作します。

    Fail2banのインストール:

    sudo apt-get update
    apt-get install fail2ban

    新しいファイル jail.local を作成して jail.config の内容をコピーし、jail.local ファイルのみ変更する

    cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

    /etc/fail2ban/jail.local を編集し、jail.local を変更する。ローカルファイル

    必要な変更を行います。


    enabled = true
    port = ssh ( provide the port number if the default port is changed )
    protocol = tcp
    filter = sshd
    logpath = /var/log/secure
    maxretry = 3 ( max no. of tries after which the host should be banned)
    findtime = 600 (This parameter sets the window that fail2ban will pay attention to when looking for repeated failed authentication attempts in seconds)
    bantime = 600 (time duration for which the host is banned -in seconds)

    その後、fail2banサービスを再起動します

    service fail2ban restart

    IPはbantime = -1として永久的にブロックすることができます。

    注意: FAIL2BAN はグローバル IP をブロックします。

    Security used to be an inconvenience sometimes, but now it is a necessity all the time – Martina Navratilova

    Thanks for reading .NET NET は、セキュリティが重要であることを説明します。 この記事が役に立ったなら、拍手をしていただけるととても嬉しいです!

    Stay tuned 🙂

    コメントを残す

    メールアドレスが公開されることはありません。