10 steps to secure Linux Server for Production Environment
10月5日, 2017 – 6 min read
Linux Serverのセキュリティは、ハッカーからデータを守るために必要不可欠なものです。 しかし、サーバーの保護は複雑である必要はありません。効率的な管理とともに、最も頻繁に起こる攻撃からサーバーを保護する方法を採用すべきです。
必要なものをインストールする
最初のルールは、サーバーを無駄のないものに保つことです。 本当に必要なパッケージのみをインストールします。 もし不要なパッケージがあれば、パージしてください。
SELinuxをオンにする
Security-Enhanced Linux (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
パスワードなしログイン
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 🙂