忍者ブログ

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

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

   

【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
PR

【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

【Linux】bonding設定

#=============================
# ■ bonding設定
#-----------------------------
# 作業前の設定状態の確認
ls -l /etc/sysconfig/network-scripts/
nmcli c
nmcli d
#-----------------------------
# 再起動時の再接続を無効化する
nmcli c m ens192 connection.autoconnect no
nmcli c m ens224 connection.autoconnect no
#-----------------------------
# bonding対象のコネクション名を一旦削除
nmcli c del ens192
nmcli c del ens224
#-----------------------------
# コネクション名の削除後の状態確認
nmcli c
nmcli d
#-----------------------------
# bonding デバイスの作成
#-----------------------------
nmcli connection add type bond autoconnect no con-name bond0 ifname bond0 mode active-backup
nmcli c
#-----------------------------
# インタフェースをbonding追加(1個目)
#-----------------------------
nmcli connection add type bond-slave autoconnect no ifname ens192 master bond0
nmcli c
nmcli -f connection c s bond-slave-ens192
#-----------------------------
# インターフェースをbonding追加(2個目)
#-----------------------------
nmcli connection add type bond-slave ifname ens224 master bond0
nmcli c
cat /proc/net/bonding/bond0
#-----------------------------
# bonding 情報
#-----------------------------
nmcli -f ipv4 c s bond0
#-----------------------------
# bonding インターフェースにIPアドレスなどを設定する
#-----------------------------
nmcli c e bond0
nmcli> set ipv4.addresses 192.168.222.99/24
nmcli> p ipv4
nmcli> verify
nmcli> save
nmcli> quit
#-----------------------------
# slave 切替わり設定
#-----------------------------
sed -i -e 's/ONBOOT=no/ONBOOT=yes/' /etc/sysconfig/network-scripts/ifcfg-bond-slave-ens192
sed -i -e 's/ONBOOT=no/ONBOOT=yes/' /etc/sysconfig/network-scripts/ifcfg-bond-slave-ens224
sed -i -e 's/ONBOOT=no/ONBOOT=yes/' /etc/sysconfig/network-scripts/ifcfg-bond0
#-----------------------------
# 再起動時の自動再接続を有効化
nmcli c m bond-slave-ens192 connection.autoconnect yes
nmcli c m bond-slave-ens224 connection.autoconnect yes
nmcli c m bond0 connection.autoconnect yes
#-----------------------------
# ネットワークのサービス再起動
systemctl restart NetworkManager
#-----------------------------
# nmcli 設定反映
nmcli c up bond-slave-ens192
nmcli c up bond-slave-ens224
nmcli c up bond0
#-----------------------------
# ネットワークサービス再起動
#-----------------------------
service network restart; sudo nmcli c up bond-slave-ens192
#=============================
# ■ bonding設定内容の確認
#-----------------------------
nmcli c
nmcli d
#-----------------------------
# 設定ファイルの確認
ls -ltr /etc/sysconfig/network-scripts/
cat /etc/sysconfig/network-scripts/ifcfg-bond0
cat /etc/sysconfig/network-scripts/ifcfg-bond-slave-ens192
cat /etc/sysconfig/network-scripts/ifcfg-bond-slave-ens224
diff /etc/sysconfig/network-scripts/ifcfg-bond-slave-ens192 /etc/sysconfig/network-scripts/ifcfg-bond-slave-ens224
#-----------------------------
# nmcli コマンドの内容
nmcli c show bond0
nmcli c show bond-slave-ens192
nmcli c show bond-slave-ens224
nmcli -f connection c s bond0
nmcli -f connection c s bond-slave-ens192
nmcli -f connection c s bond-slave-ens224
#=============================
# slave 切替テスト
#-----------------------------
#【切替前】
grep 'Active Slave:' /proc/net/bonding/bond0
#-----------------------------
#【slave 切替実行】
ifenslave -c bond0 ens224;nmcli c up bond-slave-ens224
#-----------------------------
#【切替後】
grep 'Active Slave:' /proc/net/bonding/bond0
#-----------------------------
#【slave 切り戻し実行】
ifenslave -c bond0 ens192;nmcli c up bond-slave-ens192
#-----------------------------
#【切り戻し後】
grep 'Active Slave:' /proc/net/bonding/bond0
#=============================
# bond0の設定を変更する場合
#-----------------------------
nmcli c m bond0 ipv4.method manual ipv4.address 192.168.222.99/24
nmcli c m bond0 ipv4.gateway 192.168.222.1
nmcli c m bond0 ipv6.method ignore
nmcli c m bond0 connection.autoconnect yes
nmcli c up bond0
nmcli c down bond0 && nmcli c up bond0
#=============================
# bonding ネットワーク速度設定
#-----------------------------
nmcli c m bond0 802-3-ethernet.auto-negotiate no 802-3-ethernet.speed 100 802-3-ethernet.duplex full
#=============================
# コネクション名を変えずにbonding
#-----------------------------
# bonding デバイスの作成
nmcli connection add type bond autoconnect no con-name bond0 ifname bond0 mode active-backup
nmcli c
#-----------------------------
# bonding にインタフェース追加
nmcli connection add type ethernet slave-type bond con-name ens161 ifname ens161 master bond0
nmcli c m ens161 connection.autoconnect yes
nmcli c up ens161
#-----------------------------
# ネットワークのサービス再起動
systemctl restart NetworkManager
#-----------------------------
cat /etc/sysconfig/network-scripts/ifcfg-ens161
diff /etc/sysconfig/network-scripts/ifcfg-ens161 /etc/sysconfig/network-scripts/ifcfg-bond-slave-ens224
nmcli -f connection c s ens161
nmcli -f connection c s bond0
cat /proc/net/bonding/bond0
ethtool bond0

更新日付

02 2026/03 04
S M T W T F S
1 3 4 5 6 7
8 9 10 11 12 13 14
16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31

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]