忍者ブログ

◆当blogは、Linuxサーバ構築する際の実際の設定手順を個人的メモとして記載しております。LinuC試験の役に立つ情報があるかも…?

LinuC(Linux技術者認定資格)&リナックスサーバ構築設定事例

   

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

【Linux】ログ設定

#=============================
# 【共通設定】syslog 設定
# (対象ログファイルの指定)
#-----------------------------
ls -l /etc/logrotate.d/syslog
cat /etc/logrotate.d/syslog
vi /etc/logrotate.d/syslog
  ※対象ログをコメントアウトして除外
  # messages
cat /etc/logrotate.d/syslog | grep messages
#=============================
# 【共通設定】logrotate.confの設定
# (世代管理の間隔を変更)
#-----------------------------
ls -l /etc/logrotate.conf
cat /etc/logrotate.conf
vi /etc/logrotate.conf
  ※世代管理 ⇒ daily(日次)
  ※空ファイルでも必ずローテーション実行 ⇒ ifempty
cat /etc/logrotate.conf | egrep -v "(^$|^#)"
#=============================
# 【個別設定】wtmpの設定
# (共通設定以外の場合)
#-----------------------------
ls -l /etc/logrotate.d/wtmp
cat /etc/logrotate.d/wtmp
vi /etc/logrotate.d/wtmp
  ※全行、コメントアウトして除外※
  ※世代管理 ⇒ daily(日次)
cat /etc/logrotate.d/wtmp | egrep -v "(^$|^#)"
#=============================
# 【確認】ログファイルの出力場所
# (更新日時や世代数を見る)
#-----------------------------
ls -ltr /var/log/ | egrep "(messages|wtmp)"
ls -l /var/log/messages*
ls -l /var/log/wtmp*
ls -ltr /var/log/
#-----------------------------
# 【その他】ログの内容表示
# cat /var/log/messages
# strings /var/log/wtmp
#=============================
# 【テスト】ログ設定の動作確認
#-----------------------------
# debugモード実行で設定確認
/usr/sbin/logrotate -dv /etc/logrotate.conf
#-----------------------------
# 【テスト前】ステータス確認
cat /var/lib/logrotate/logrotate.status
#-----------------------------
# 強制的にログローテーション実行
/usr/sbin/logrotate -f /etc/logrotate.conf
#-----------------------------
# 【テスト後】ステータス確認
cat /var/lib/logrotate/logrotate.status
cat /var/lib/logrotate/logrotate.status | egrep "(messages|wtmp)"
#-----------------------------
# 【事前確認】/var/log/ の内容
ls -ltr /var/log/ | egrep "(messages|wtmp)" | sort
#-----------------------------
# ログファイルを無理やり世代数作る
# ※この後、強制的にログローテーションを実行してテストする
echo "testLOG" > /var/log/messages-20240801
echo "testLOG" > /var/log/messages-20240802
echo "testLOG" > /var/log/messages-20240803
echo "testLOG" > /var/log/messages-20240804
echo "testLOG" > /var/log/messages-20240805
echo "testLOG" > /var/log/messages-20240806
echo "testLOG" > /var/log/messages-20240807
echo "testLOG" > /var/log/messages-20240808
echo "testLOG" > /var/log/messages-20240809
echo "testLOG" > /var/log/messages-20240810
echo "testLOG" > /var/log/messages-20240811
echo "testLOG" > /var/log/messages-20240812
echo "testLOG" > /var/log/messages-20240813
echo "testLOG" > /var/log/messages-20240814
echo "testLOG" > /var/log/messages-20240815
echo "testLOG" > /var/log/messages-20240816
#-----------------------------
echo "testLOG" > /var/log/wtmp-20240801
echo "testLOG" > /var/log/wtmp-20240802
echo "testLOG" > /var/log/wtmp-20240803
echo "testLOG" > /var/log/wtmp-20240804
echo "testLOG" > /var/log/wtmp-20240805
echo "testLOG" > /var/log/wtmp-20240806
echo "testLOG" > /var/log/wtmp-20240807
echo "testLOG" > /var/log/wtmp-20240808
echo "testLOG" > /var/log/wtmp-20240809
echo "testLOG" > /var/log/wtmp-20240810
echo "testLOG" > /var/log/wtmp-20240811
echo "testLOG" > /var/log/wtmp-20240812
echo "testLOG" > /var/log/wtmp-20240813
echo "testLOG" > /var/log/wtmp-20240814
echo "testLOG" > /var/log/wtmp-20240815
echo "testLOG" > /var/log/wtmp-20240816
#-----------------------------
# 【事後確認】/var/log/ の内容
ls -ltr /var/log/ | egrep "(messages|wtmp)" | sort
#-----------------------------
# 強制的にログローテーション実行
/usr/sbin/logrotate -f /etc/logrotate.conf
#-----------------------------
# 【再度、事後確認】/var/log/ の内容
# (設定通りの結果になっているかを確認する)
ls -ltr /var/log/ | egrep "(messages|wtmp)" | sort
PR

【Linux】802-3-ethernet設定

#=============================
# オートネゴシエーション無効、接続の速度を 100 Mbit フルデュプレックス
#-----------------------------
nmcli c m ens160 802-3-ethernet.auto-negotiate no 802-3-ethernet.speed 100 802-3-ethernet.duplex full
#-----------------------------
# アクティベート
nmcli c up ens160

【Linux】パスワードのロック

#=============================
# ■ パスワード有効期限の設定
#-----------------------------
#-----------------------------
# パスワードの有効期限の情報を表示
chage -l <ユーザ名>
#-----------------------------
# パスワードを変更しなくてよい最長日数
# 【例】100日間
chage -M 100 <ユーザ名>
#-----------------------------
# 最終パスワード変更日
# 【例】
chage -d 0 <ユーザ名>
chage -E YYYY-MM-DD <ユーザ名>
#-----------------------------
# 有効期限が切れたとき即座にロックアウト
chage -I 0 <ユーザ名>
#-----------------------------
# パスワード期限が切れる前に警告される日数
# 【例】14日前(2週間)
chage -W 14 <ユーザ名>
#=============================
# パスワードの有効期限の設定値の確認
cat /etc/shadow | grep <ユーザ名>
#=============================
# ■ テスト用ユーザー作成(パスワードロック)
#-----------------------------
useradd locktest
passwd locktest
⇒ Unixp@ssw0rd
#=============================
# パスワードのロック状態確認
passwd -S locktest
cat /etc/shadow | grep locktest
#-----------------------------
# パスワードのロック解除
passwd -u locktest
#-----------------------------
# パスワードのロック状態確認
passwd -S locktest
cat /etc/shadow | grep locktest

【Linux】認証ロックのテスト

#=============================
# ■ PAM設定と認証確認テスト
#-----------------------------
#【設定】以下のファイルに設定する
# /etc/pam.d/system-auth、/etc/pam.d/password-auth
#-----------------------------
#-----------------------------
#【auth セクション】
# ⇒以下の★行を2個追記
#-----------------------------
   auth        required                                     pam_env.so
   auth        required                                     pam_faildelay.so delay=2000000
   auth        [default=1 ignore=ignore success=ok]         pam_usertype.so isregular
   auth        [default=1 ignore=ignore success=ok]         pam_localuser.so
   auth        sufficient                                   pam_unix.so nullok try_first_pass
   auth        [default=1 ignore=ignore success=ok]         pam_usertype.so isregular
   auth        sufficient                                   pam_sss.so forward_pass
★ auth        required                                     pam_faillock.so preauth silent audit deny=3 unlock_time=0
★ auth        [success=1 default=bad]                      pam_unix.so
★ auth        [default=die]                                pam_faillock.so authfail audit deny=3 unlock_time=0
★ auth        sufficient                                   pam_faillock.so authsucc audit deny=3 unlock_time=0
   auth        required                                     pam_deny.so
#-----------------------------
#【account セクション】
# ⇒以下の★行を1個追記
#-----------------------------
   account     required                                     pam_unix.so
★ account     required                                     pam_faillock.so
   account     sufficient                                   pam_localuser.so
   account     sufficient                                   pam_usertype.so issystem
   account     [default=bad success=ok user_unknown=ignore] pam_sss.so
   account     required                                     pam_permit.so
#-----------------------------
#【password セクション】
#-----------------------------
★ password    requisite                                    pam_pwquality.so try_first_pass retry=3 minlen=8 dcredit=-1 ucredit=-1 lcredit=-1 ocredit=-1 enforce_for_root
## password    requisite                                    pam_cracklib.so  try_first_pass retry=3 minlen=8 dcredit=-1 ucredit=-1 lcredit=-1 ocredit=-1 enforce_for_root
★ password    sufficient                                   pam_unix.so      sha512 shadow nullok remember=5 try_first_pass use_authtok enforce_for_root
## password    required                                     pam_pwhistory.so sha512 shadow nullok remember=5 try_first_pass use_authtok enforce_for_root
   password    sufficient                                   pam_sss.so use_authtok
   password    required                                     pam_deny.so
#-----------------------------
#【session セクション】
#-----------------------------
   session     optional                                     pam_keyinit.so revoke
   session     required                                     pam_limits.so
   -session    optional                                     pam_systemd.so
   session     [success=1 default=ignore]                   pam_succeed_if.so service in crond quiet use_uid
   session     required                                     pam_unix.so
   session     optional                                     pam_sss.so
#=============================
# ■ テスト用ユーザー作成(認証ロック)
#-----------------------------
useradd pamtest
passwd pamtest
⇒ Unixp@ssw0rd
#-----------------------------
# 認証ログイン状態確認(失敗無し)
faillock
faillock --user pamtest
#-----------------------------
# ※わざと3回パスワード入力間違えて認証ロックさせる
su - pamtest
#-----------------------------
# 認証ログイン状態確認(3回失敗している)
faillock
faillock --user pamtest
#-----------------------------
# 認証ロックを手動解除
faillock --user pamtest --reset
#-----------------------------
# 認証ログイン状態確認(リセットされている)
faillock
faillock --user pamtest

【Linux】FTP設定

#=============================
# ■ FTPのインストール
#-----------------------------
dnf -y install vsftpd
#=============================
# ■ FTPの設定
#-----------------------------
vi /etc/vsftpd/vsftpd.conf
  ## chrootのローカルユーザ無効化
  chroot_local_user=NO
  ## chrootリスト有効化
  chroot_list_enable=YES
  ## chrootリストファイルの場所
  chroot_list_file=/etc/vsftpd/chroot_list
  ## userlist_fileの有効化(デフォルト値)
  userlist_enable=YES
  ## アクセスファイルの無効化
  tcp_wrappers=NO
  ## パッシブモード有効化
  pasv_enable=YES
  ## FTPサーバのIPアドレス設定
  pasv_address=192.168.222.50
  ## パッシブモードのポート設定
  pasv_min_port=30001
  pasv_max_port=30010
  ## ドットファイルも含めて一覧表示させる
  force_dot_files=YES
  ## ファイルのタイムスタンプ表示
  use_localtime=YES
  ## ユーザーの設定ファイル格納場所
  user_config_dir=/etc/vsftpd/user_conf
  ## 500 OOPS: vsftpd: refusing to run with writable root inside chroot()
  allow_writeable_chroot=YES
#=============================
# ■ FTP接続用ユーザ作成
#-----------------------------
useradd testftp
#=============================
# ■ パスワード設定
#-----------------------------
passwd testftp
#=============================
# ■ FTP用のディレクトリchrootの設定
#-----------------------------
mkdir -p /var/www/FTP
chown testftp /var/www/FTP
chmod 755 /var/www/FTP
s -ld /var/www/FTP
#=============================
# ■ FTP接続用ユーザの登録
#-----------------------------
vi /etc/vsftpd/chroot_list
testftp
root
#=============================
# ■ chrootのディレクトリを設定する
#-----------------------------
mkdir /etc/vsftpd/user_conf
ls -l /etc/vsftpd/user_conf
#-----------------------------
vi /etc/vsftpd/user_conf/testftp
local_root=/var/www/FTP
#-----------------------------
vi /etc/vsftpd/user_conf/root
local_root=/var/www/FTP
#=============================
# ■ テスト用ファイル作成
#-----------------------------
cd /var/www/FTP
pwd
echo "FTP test" > FTP_test.txt
ls -l /var/www/FTP
#=============================
# ■ root接続の許可①
# /etc/vsftpd/ftpusersのrootをコメントアウト
#-----------------------------
vi /etc/vsftpd/ftpusers
  #root
#-----------------------------
cat /etc/vsftpd/ftpusers
#=============================
# ■ root接続の許可②
# /etc/vsftpd/user_listのrootをコメントアウト
#-----------------------------
vi /etc/vsftpd/user_list
  #root
#-----------------------------
cat /etc/vsftpd/user_list
#=============================
# ■ nftables/Firewallの無効化
#-----------------------------
#【firewalldのバックエンド確認】
#-----------------------------
cat /etc/firewalld/firewalld.conf | egrep -v "(^$|^#)" | grep "FirewallBackend"
#=============================
#【サービス状態確認】
#-----------------------------
systemctl status firewalld --no-pager
systemctl status nftables --no-pager
systemctl -t service list-unit-files | egrep "(iptables|nftables|firewalld)"
#=============================
#【ファイアウォール無効化】
#-----------------------------
systemctl disable firewalld
systemctl stop firewalld
#=============================
#【nftables無効化】
#-----------------------------
systemctl disable nftables
systemctl stop nftables
#=============================
#【サービス状態確認】
#-----------------------------
systemctl status firewalld --no-pager
systemctl status nftables --no-pager
systemctl -t service list-unit-files | egrep "(iptables|nftables|firewalld)"
#=============================
# ■ SELinux設定(設定反映に再起動が必要)
#-----------------------------
# 変更前のSELINUX
#-----------------------------
cat /etc/selinux/config | grep "SELINUX"
#=============================
#【GRUB2 メニューエントリーの確認】
#-----------------------------
cat /etc/default/grub | grep selinux=0
grubby --info=ALL | grep selinux=0
#=============================
#【SELinux設定確認】
#-----------------------------
sestatus | grep status
getenforce
#=============================
#【カーネルコマンドライン⇒SELinuxの無効化】
#-----------------------------
grubby --update-kernel ALL --args selinux=0
#=============================
#【再起動⇒SELinux設定反映】
#-----------------------------
reboot
#=============================
# ■ SELinux設定(再起動後の確認)
#-----------------------------
# 変更後のSELINUX
#-----------------------------
cat /etc/selinux/config | grep "SELINUX"
#=============================
#【GRUB2 メニューエントリーの確認】
#-----------------------------
cat /etc/default/grub | grep selinux=0
grubby --info=ALL | grep selinux=0
#=============================
#【SELinux設定確認】
#-----------------------------
sestatus | grep status
getenforce
#=============================
# ■ FTP サービス起動
#-----------------------------
systemctl status vsftpd
systemctl restart vsftpd
systemctl status vsftpd
#=============================
## ■ Windowsの端末からFTP接続を確認する
#-----------------------------
  ※Windowsのファイアウォール無効化しておく
>ftp 192.168.222.50
ユーザー ([FTPサーバーのIPアドレス]:(none)):testftp
331 Please specify the password.<パスワード>
230 Login successful.
ftp>pwd
ftp>ls
ftp>quit

【Linux】Firewall無効化

#=============================
#■ nftables/Firewallの無効化
#-----------------------------
#【firewalldのバックエンド確認】
cat /etc/firewalld/firewalld.conf | egrep -v "(^$|^#)" | grep "FirewallBackend"
#-----------------------------
#【サービス状態確認】
systemctl status firewalld --no-pager
systemctl status nftables --no-pager
systemctl -t service list-unit-files | egrep "(iptables|nftables|firewalld)"
#-----------------------------
#【ファイアウォール無効化】
systemctl disable firewalld
systemctl stop firewalld
#-----------------------------
#【nftables無効化】
systemctl disable nftables
systemctl stop nftables
#-----------------------------
#【サービス状態確認】
systemctl status firewalld --no-pager
systemctl status nftables --no-pager
systemctl -t service list-unit-files | egrep "(iptables|nftables|firewalld)"

【Linux】SELINUX無効化

#=============================
#■ SELinux設定(設定反映に再起動が必要)
#-----------------------------
# 変更前のSELINUX
cat /etc/selinux/config | grep "SELINUX"
#-----------------------------
#【GRUB2 メニューエントリーの確認】
cat /etc/default/grub | grep selinux=0
grubby --info=ALL | grep selinux=0
#-----------------------------
#【SELinux設定確認】
sestatus | grep status
getenforce
#-----------------------------
#【SELinux設定ファイルの確認】
cat /etc/selinux/config | grep "SELINUX"
#-----------------------------
#【カーネルコマンドライン⇒SELinuxの無効化】
grubby --update-kernel ALL --args selinux=0
#-----------------------------
#【再起動⇒SELinux設定反映】
reboot
#-----------------------------
#【SELinux設定確認】
sestatus | grep status
getenforce
#-----------------------------
#【GRUB2 メニューエントリーの確認】
cat /etc/default/grub | grep selinux=0
grubby --info=ALL | grep selinux=0
#-----------------------------
# 変更後のSELINUX
cat /etc/selinux/config | grep "SELINUX"

【Linux】グループ/ユーザー

#=============================
# グループ/ユーザー設定
#-----------------------------
# ※管理者権限で実行すること
#-----------------------------
# グループ名追加
groupadd -g 7777 TEST-GROUP
groupadd -g 8888 TEST-GROUP2
#-----------------------------
# 既に存在するグループ番号に、別のグループ名を追加
groupadd -g 7777 -o TEST-GROUP3
#-----------------------------
# グループ確認
cat /etc/group | grep 7777
#-----------------------------
# グループ削除
groupdel TEST-GROUP3
#-----------------------------
# useraddデフォルト設定確認
useradd -D
#-----------------------------
# グループ名 or GID 指定
useradd -g TEST-GROUP testuser
#-----------------------------
# ユーザー確認
id testuser
cat /etc/passwd | grep testuser
#-----------------------------
# 『補助』のグループ名 or GID 指定
useradd -G TEST-GROUP,TEST-GROUP2 TEST-USER
#-----------------------------
# ユーザー確認
id TEST-USER
cat /etc/passwd | grep TEST-USER
#-----------------------------
# UIDを指定する
useradd -u 9999 TEST-9999
#-----------------------------
# ログインシェル指定
useradd -s /bin/sh TEST-shell
#-----------------------------
# 作成後のユーザーにパスワード付与
passwd testuser
passwd user1
passwd TEST-USER
passwd TEST-9999
passwd TEST-shell
#-----------------------------
# パスワードをロック(ログイン不可)
# ※ rootから切替ることは可能
passwd -l TEST-shell

【Linux】ローカルリポジトリ設定

#=============================
# isoファイルを直接マウントする
#-----------------------------
mkdir -p /mnt/iso
mount -t iso9660 -o loop /tmp/rhel-8.7-x86_64-dvd.iso /mnt/iso
du -hc /mnt/iso
 
#=============================
# isoファイルの中身をコピーする場合
#-----------------------------
mkdir -p /media/repo
cp -rpf /mnt/iso/ /media/repo/
du -hc /media/repo
 
#=============================
# isoファイルをアンマウント
#-----------------------------
umount /mnt/iso
 
#=============================
# リポジトリ表示
#-----------------------------
dnf repolist
 
#=============================
# ローカルリポジトリ設定
#-----------------------------
vi /etc/yum.repos.d/iso.repo
 [Local-Base]
 name=Local - Base
 baseurl=file:///media/repo/iso/BaseOS
 gpgcheck=1
 enabled=1
 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
 [Local-AppStream]
 name=Local - AppStream
 baseurl=file:///media/repo/iso/AppStream
 gpgcheck=1
 enabled=1
 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
 
#=============================
# リポジトリ表示
#-----------------------------
dnf repolist

#=============================
# ローカルリポジトリでインストール
#-----------------------------
yum install --disablerepo=* --enablerepo=local* <パッケージ名>
dnf install <パッケージ名>

#-----------------------------
# エラーが出ないように使わないときは無効化する
vi /etc/yum.repos.d/local.repo
enable=1 (有効化)
enable=0 (無効化)

【Linux】PAM設定

#-----------------------------
# ■ PAM設定
#-----------------------------
#【例】
# |module-type|control    |module-path   |arguments
# |① auth    |② required|③ pam_unix.so|④ 
#-----------------------------
# ①モジュールタイプ(機能)
# account    (アカウント有効期限)
# auth       (パスワードの認証)
# password   (パスワードの変更)
# session    (認証前後に実行させる処理(ログ等))
#-----------------------------
# ②コントロール(成功/失敗した場合の挙動)
# required   (完了するまで処理継続)
# requisite  (失敗したらすぐに通知)
# sufficient (失敗してても次に進む)
# optional   (他のモジュールが無い場合に認証)
# include    (別ファイルを読み込む)
#-----------------------------
# ③module-path(モジュール名)
# 「pam_unix.so」等のモジュール名
#-----------------------------
# ④arguments(追加情報)
# モジュールに与える追加情報
# 無効な名前の引数は無視される
 
#-----------------------------
# PAMモジュールファイル
# /lib64/security/ディレクトリ配下
#-----------------------------
# PAM設定ファイル
# /etc/pam.d/ディレクトリ配下(優先)
# /etc/pam.d/login(ログイン用のPAM設定ファイル)
# /etc/pam.confファイル
#-----------------------------
# PAM設定の詳細情報
# /usr/share/doc/pam-バージョン番号/texts
#=============================
# ログインの試行回数制限
#=============================
#-----------------------------
# 現在のプロファイル
authselect current
#-----------------------------
# プロファイルに追加
authselect enable-feature with-faillock
#-----------------------------
# 現在のプロファイル
authselect current
#-----------------------------
# プロファイルに追加されたことを確認
grep -n faillock /etc/pam.d/system-auth
grep -n faillock /etc/pam.d/password-auth
#-----------------------------
# 設定例(/etc/security/faillock.conf)
vi /etc/security/faillock.conf
 # 3回失敗するとロック
 deny = 3
 # インターバル時間60秒
 fail_interval = 60
 # 10秒後にロックを自動解除
 unlock_time = 0
 # rootも対象とする
 even_deny_root
 # rootの自動ロック解除時間
 root_unlock_time = 10
#-----------------------------
# 設定後の確認の為、testユーザー作成
useradd test
passwd test
※別のteratermからtestユーザーでログインして
以下のようなユーザー切替をテストしてみる
#-----------------------------
※以下の一般ユーザーで3回連続でパスワード間違える
su - user
 ⇒ロックされることを確認
#-----------------------------
※以下のroot切替で3回連続でパスワード間違える
su -
 ⇒ロックが自動解除されることを確認
#-----------------------------
# ログイン失敗回数
faillock --user user
faillock --user root
#-----------------------------
# ロックを手動解除
faillock --user user --reset
faillock --user root --reset

更新日付

05 2025/06 07
S M T W T F S
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30

RECOMMEND

プロフィール

HN:
Account
HP:
性別:
非公開
職業:
--- NODATA ---
趣味:
--- NODATA ---
自己紹介:
◆当blogは、Linuxサーバ構築する際の実際の設定手順を個人的メモとして記載しております。LinuC試験の役に立つ情報があるかも…?

リンク

<<前のページ  | HOME |  次のページ>>
Copyright ©  -- LinuC(Linux技術者認定資格)&リナックスサーバ構築設定事例 --  All Rights Reserved
Design by CriCri / Photo by Melonenmann / powered by NINJA TOOLS / 忍者ブログ / [PR]