セキュリティ

HOMELinuxtips > セキュリティ

セキュリティ:記事リスト

セキュリティのカテゴリーには以下の記事がリストされています。

CentOS7でrootのSSHログインを無効化する

2019年3月31日
CentOS7環境下で、SSHを使用したrootのログインを禁止するには、
/etc/ssh/sshd_configファイルを編集します。

SSHは、暗号化された状態でリモート接続することができるサービスで、
sshdデーモンが提供しています。

CentOSでは、デフォルト環境のままだと、
SSHでのrootログインが行えてしまいます。
インターネットに公開するサーバーを構築する場合、
その設定のままだとセキュリティ上非常に好ましくないので
無効化する必要があります。

続きを読む "CentOS7でrootのSSHログインを無効化する"

CentOS7でfirewalldの確認と停止(ファイアウォール)

2019年3月30日

CentOS7のファイアウォールでは、これまでのCentOS6系で使用されていた
iptablesよりもfirewalldを使用することが推奨されています。

※CentOS7でもiptablesが使用できます。その場合、firewalldを停止する必要があります。
 逆に、firewalldを使用する場合は、iptablesを停止する必要があります。

インターネットに公開するサーバーでは、ファイアウォールは必須になりますが、
信頼できる内部ネットワーク、開発環境及びテスト環境では無効にしておいた方が
良い場合もあります。

本ページでは、CentOS7から推奨されているfirewalldの状態の確認と、
停止方法を紹介します。

続きを読む "CentOS7でfirewalldの確認と停止(ファイアウォール)"

CentOS7でSELinuxを無効化する

2019年3月29日
SELinuxとは、Linuxのセキュリティ機能の一種になります。
ディレクトリビューションではありません。
現在のLinuxシステムの問題点として挙がっているものに、
root(スーパーユーザー)の権限が強すぎるというものがあります。

正規のユーザーが、rootを使用する分には問題ないのですが、
万が一、不正ユーザーがrootを奪取した場合、
システムを完全に乗っ取られてしまい、被害が大きくなりすぎるのです。

そこで誕生したのがSELinuxになります。
アメリカ国家安全保障局 (NSA) が開発し、GPL下で提供しています。

機能を簡単に説明すると、rootの権限を弱くすることがSELinuxの役割になります。

rootに集中している権限を、ユーザーやプロセスごとに振り分けることで、
root権限を奪取されたとしても、被害を限定的に抑えるというのが目的になり、
前提として、サーバーに侵入された場合に、その機能が役立つというものです。
従って、サーバー侵入を防ぐというものではありません。

また、扱うデータの重要度や他のセキュリティ対策での防衛、
設定の複雑さなどからくるサーバー管理のしにくさなどを
総合的に鑑みて、敢えてSELinuxを無効にしているシステムも多く存在します。

CentOS7でSElinux(Security-Enhanced-Linux)を無効化する手順を紹介します。
SELinux無効化設定を行う前に、現在のSElinuxの状態を確認しましょう。

SELinuxの状態を確認するには、getenforceコマンドを使用します。
このコマンドを実行すると、SELinuxの状態が確認できます。
ステータスは、次の通りです。
Enforcing 有効な状態
Permissive 無効な状態であるが、SELinuxのログは記録している状態
Disabled 無効な状態

続きを読む "CentOS7でSELinuxを無効化する"

CentOS7バージョンアップ手順

2018年6月13日

CentOSを最新バージョンにアップデートする手順を紹介します。
本作業を行うことで、常に最新のCentOS を利用することが可能になります。

注意
実行タイミングやサーバー環境によっては、システムやアプリケーションの誤作動や
不具合、場合によっては、サーバー自体が起動しなくなる可能性があります。
そうなっても良いように、実行する場合は、必ずテスト環境(壊れても良い環境)で
事前確認を行ってください。

今回の例では、CentOS7.4を使用していますが、
他のバージョンでも基本的に手順は同じになります。


1.Linux のバージョンを確認します。
$ su -
パスワード:    ←rootパスワードを入力します(パスワードは入力しても表示されません)
# cat /etc/redhat-release
CentOS Linux release 7.4.1708 (Core)


2.カーネルバージョンを確認します。
# uname -a
Linux Tiger 3.10.0-693.el7.x86_64 #1 SMP Tue Aug 22 21:09:27 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux


3.カーネルをアップデート対象から除外する設定を行います。
バージョンアップの多くのトラブル原因は、
カーネルアップデートなので、取り敢えず除外します。
13 行目に「exclude=kernel*」を追加します。
# vi /etc/yum.conf
--------------------------------------------------------------------
[main]
cachedir=/var/cache/yum/$basearch/$releasever
keepcache=0
debuglevel=2
logfile=/var/log/yum.log
exactarch=1
obsoletes=1
gpgcheck=1
plugins=1
installonly_limit=5
bugtracker_url=http://bugs.centos.org/set_project.php?project_id=23&ref=http://bugs.centos.org/bug_repor
t_page.php?category=yum
distroverpkg=centos-release
exclude=kernel*  ←「exclude=kernel*」を追加します。
--------------------------------------------------------------------
編集後、「:wq」で保存終了します。


4.yumアップデートを実施します。
yum コマンドでアップデートを実施します。
途中、処理を続行するか問われるので「y」を入力します。
※表示される内容は、実行タイミングによって異なります。
--------------------------------------------------------------------
# yum update
読み込んだプラグイン:fastestmirror, langpacks
base | 3.6 kB 00:00:00
extras | 3.4 kB 00:00:00
updates | 3.4 kB 00:00:00
(1/4): extras/7/x86_64/primary_db | 147 kB 00:00:03
(2/4): updates/7/x86_64 /primary_db | 2.0 MB 00:00:08

〜中略〜

libinput x86_64 1.8.4 -2.el7 base 142 k
libwayland-client x86_64 1.14.0-2.el7 base 32 k
libwayland-cursor x86_64 1.14.0 -2.el7 base 20 k
libwayland-server x86_64 1.14.0 -2.el7 base 38 k
llvm-private x86_64 5.0.0 -3.el7 base 20 M
lz4 x86_64 1.7.5 -2.el7 base 98 k
mesa-libwayland-egl x86_64 17.2.3 -8.20171019.el7 base 17 k
unbound-libs x86_64 1.6.6 -1.el7 base 405 k
volume_key-libs x86_64 0.3.9-8.el7 base 140 k

トランザクションの要約
============================================================
インストール 4 パッケージ(+20 個の依存関係のパッケージ)
更新 613 パッケージ  ←この辺りの数字は、実行タイミングによって異なります。

合計容量: 642 M
総ダウンロード容量: 641 M
Is this ok [y/d/N]: y  ←「y」を入力します。

〜中略〜

xorg-x11-server-common.x86_64 0:1.19.5-5.el7
xorg-x11-xinit.x86_64 0:1.3.4-2.el7
yum.noarch 0:3.4.3-158.el7.centos
yum-plugin-fastestmirror.noarch 0:1.1.31 -45.el7
yum-utils.noarch 0:1.1.31-45.el7

置換:
grub2.x86_64 1:2.02-0.64.el7.centos grub2 -tools.x86_64 1:2.02-0.64.el7.centos

完了しました!
--------------------------------------------------------------------


5.サーバーを再起動します。
# shutdown -r now


6.再起動後、Linux のバージョンを確認します。
下記の例では、CentOS7.5 にバージョンアップしていますが、
実行タイミングによってバージョンが異なる場合があります。
$ su -
パスワード:
# cat /etc/redhat-release
CentOS Linux release 7.5.1804 (Core)


7.カーネルバージョンを確認します。
カーネルのバージョンはアップデートから除外しているので、変わっていません。
# uname -a
Linux Tiger 3.10.0-693.el7.x86_64 #1 SMP Tue Aug 22 21:09:27 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux


8.カーネルのバージョンアップをします。
13 行目の「exclude=kernel*」行頭に「#」を追加します。
# vi /etc/yum.conf
--------------------------------------------------------------------
[main]
cachedir=/var/cache/yum/$basearch/$releasever
keepcache=0
debuglevel=2
logfile=/var/log/yum.log
exactarch=1
obsoletes=1
gpgcheck=1
plugins=1
installonly_limit=5
bugtracker_url=http://bugs.centos.org/set_project.php?project_id=23&ref=http://bugs.centos.org/bug_repor
t_page.php?category=yum
distroverpkg=centos-release
#exclude=kernel*    ←行頭に「#」を追加します。
--------------------------------------------------------------------
編集後、「:wq」で保存終了します。


9.yumアップデートを実施します。
yum コマンドでアップデートを実施します。
途中、処理を続行するか問われるので「y」を入力します。
※表示される内容は、実行タイミングによって異なります。
--------------------------------------------------------------------
# yum update
読み込んだプラグイン:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* base: ftp.nara.wide.ad.jp
* extras: ftp.nara.wide.ad.jp

〜中略〜

---> パッケージkernel-tools-libs.x86_64 0:3.10.0-693.el7 を更新
---> パッケージkernel-tools-libs.x86_64 0:3.10.0-862.3.2.el7 をアップデート
--> 依存性解決を終了しました。

依存性を解決しました

============================================================
Package アーキテクチャーバージョン リポジトリー 容量
============================================================
インストール中:
kernel x86_64 3.10.0-862.3.2.el7 updates 46 M
kernel-devel x86_64 3.10.0-862.3.2.el7 updates 16 M
更新します:
kernel-headers x86_64 3.10.0-862.3.2.el7 updates 7.1 M
kernel-tools x86_64 3.10.0-862.3.2.el7 updates 6.2 M
kernel-tools-libs x86_64 3.10.0-862.3.2.el7 updates 6.2 M

トランザクションの要約
============================================================
インストール 2 パッケージ  ←この辺りの数字や内容は、実行タイミングによって異なります。
更新 3 パッケージ

総ダウンロード容量: 81 M
Is this ok [y/d/N]: y ←「y」を入力します。

〜中略〜

検証中 : kernel-headers-3.10.0-693.el7.x86_64 7/8
検証中 : kernel-tools-libs-3.10.0-693.el7.x86_64 8/8

インストール:
kernel.x86_64 0:3.10.0-862.3.2.el7 kernel -devel.x86_64 0:3.10.0-862.3.2.el7

更新:
kernel-headers.x86_64 0:3.10.0-862.3.2.el7 kernel-tools.x86_64 0:3.10.0-862.3.2.el7
kernel-tools-libs.x86_64 0:3.10.0-862.3.2.el7

完了しました!
--------------------------------------------------------------------


10.サーバーを再起動します。
# shutdown -r now


11.カーネルバージョンを確認します。
カーネルがバージョンアップしています。
$ su -
パスワード:
[root@Tiger ~]# uname -a
Linux Tiger 3.10.0-862.3.2.el7.x86_64 #1 SMP Mon May 21 23:36:36 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux


本手順を実施することで、常に最新のCentOS を利用することが出来ます。
しかし、冒頭でも説明しましたが、アップデートによるトラブルが発生する場合も
ありますので、実施する際は、必ずテスト環境で問題がないことを確認してから、
本番環境で実施してください。

Linuxで一時的に管理者(root)にスイッチする

2012年12月19日

管理者(root)にスイッチする場合、suコマンドを実行して管理者パスワードを
入力する必要があります。

suコマンド:ユーザーを切り替える

しかし、複数のユーザーがrootを利用する環境だと、パスワード変更の度に
全員に伝えなければなりません。そうなると、第三者にrootパスワードが
漏れる危険性がありますし、運用上とても面倒です。

その為、sudoコマンドを利用して、これらの危険性を防ぐことができます。
sudoコマンドは、root権限を必要とするコマンドを実行する際、
ユーザーパスワードを入力することで、一時的にrootのシェルを
利用してコマンド実行が出来るようになるコマンドです。

また、sudoコマンドには、パスワードキャッシュという仕組みがあり、
一度コマンドを使用して、有効なパスワードを入力すれば
そのユーザーについては、次回以降パスワード入力が
求められなくなります。ただし、これを永久的に許可したのでは
意味が無いので、デフォルトでは5分間だけパスワード入力が不要になります。

sudoコマンドを利用するには、/etc/sudoersファイルの編集が必要になります。
このファイルを編集するには、visudoコマンドを実行します。
visudoは、事前に変数のEDITORに定義されているエディタが起動して
/etc/sudoersファイルの編集が行え、ファイルのロック
(編集中他人が編集できないようにする)や、構文チェックが使用できます。

1.事前準備 /etc/sudoersファイルの編集
[pakira@Tiger ~]$ su - ←root権限になります。
パスワード:
[root@Tiger ~]# visudo  ←visudoコマンドで/etc/sudoersファイルを編集します。

編集箇所はCentOS6.3の場合、104~105行目あたりにあります。
## Allows people in group wheel to run all commands
# %wheel ALL=(ALL) ALL
%pakira ALL=(ALL) ALL  ←sudoコマンドが使用できるようpakiraを追加します。

※行頭のハッシュマーク(#)はコメントアウトを意味し、
 システム的にその行は無効になります。

上記の例では、pakiraグループに属するユーザーはsudoコマンドが
利用できるよう設定を行なっています。
特定のユーザーのみに許可したい場合は、「%」を付けずに
ユーザー名のみを記述します。

「%」はグループを意味しています。

また、下記の箇所を編集すると、
コマンド実行時にユーザーパスワードを求められなくなります。
編集箇所はCentOS6.3の場合、107~108行目あたりにあります。
## Same thing without a password
# %wheel ALL=(ALL) NOPASSWD: ALL
%pakira ALL=(ALL) NOPASSWD: ALL

上記のどちらを設定するかは、
運用ルールやセキュリティ・ポリシーに則り決めることになります。
visudoを実行してviエディタが起動した場合は、
編集後、visudoを「:wq」で保存終了します。

viエディタの詳しい操作方法などは、下記ページで無料配布している
Linux無料マニュアルで習得できます。
Linuxサーバー構築マニュアル

2.sudoコマンド実行テスト
[root@Tiger ~]# logout  ←rootから一般ユーザー「pakira」に戻ります。
[pakira@Tiger ~]$ whoami  ←ユーザー名を表示します。
pakira   ←pakiraユーザーであることを確認します。
[pakira@Tiger ~]$ tail /var/log/messages ←messagesファイルを表示します。
tail: `/var/log/messages' を 読み込み用でオープンできません: 許可がありません
↑権限がないのでエラーになります。(パーミッションエラー)

[pakira@Tiger ~]$ sudo tail /var/log/messages ←sudoコマンドでrootシェル得て実行します。

We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:

#1) Respect the privacy of others.
#2) Think before you type.
#3) With great power comes great responsibility.

[sudo] password for pakira:     ←pakiraユーザーのコマンドを入力します。
Dec 19 03:14:24 Tiger kernel: EXT4-fs (sda1): mounted filesystem with ordered data mode. Opts:
Dec 19 03:14:24 Tiger kernel: Adding 2064376k swap on /dev/mapper/vg_tiger-lv_swap. Priority:-1 extents:1 across:2064376k
Dec 19 03:14:24 Tiger kernel: ip_tables: (C) 2000-2006 Netfilter Core Team
Dec 19 03:14:24 Tiger kernel: NET: Registered protocol family 10
Dec 19 03:14:24 Tiger kernel: lo: Disabled Privacy Extensions
Dec 19 03:14:24 Tiger kernel: eth0: link up
Dec 19 03:14:29 Tiger abrtd: Init complete, entering main loop
Dec 19 03:14:31 Tiger kernel: warning: `proftpd' uses 32-bit capabilities (legacy support in use)
Dec 19 03:14:31 Tiger proftpd[1395]: 127.0.0.1 - ProFTPD 1.3.4b (maint) (built 火 8月 21 2012 17:12:41 JST) standalone mode STARTUP
Dec 19 03:14:31 Tiger kernel: ip_tables: (C) 2000-2006 Netfilter Core Team
↑messagesファイルの内容が表示されます。

パスワードに有効期限を設ける

2007年4月12日

ユーザのパスワードを変更するにはpasswdコマンドを使用しますが、オプションを指定することでパスワードに有効期限を設けることができます。

この作業はroot権限のみが実行することが出来ます。

続きを読む "パスワードに有効期限を設ける"

図解60pのLinux無料マニュアル
登録10秒/自動返信でDL
無料で受け取る