CentOS8で設定したIPAサーバー上でsamba共有を行う

IPAサーバーでsamba固有のオブジェクトクラスと属性を処理するように構成する。
※slapi-nisは有効にしない

# dnf install ipa-server-trust-ad
# ipa-adtrust-install

sambaの設定ファイルを編集する。

[global]
unix charset = UTF-8
dos charset = CP932
realm = LOCAL.EXAMPLE.COM
workgroup = LOCAL
security = ads
dedicated keytab file = FILE:/etc/samba/samba.keytab
kerberos method = dedicated keytab

[share]
path = /var/samba/share
writable = yes
inherit owner = yes
create mask = 0666
directory mask = 0777
valid users = @testgroup

ファイアウォールに例外を登録する。

# firewall-cmd --permanent --add-service=samba
# firewall-cmd --reload

SELinuxに例外を登録する。

# setsebool -P allow_smbd_anon_write=on
# chcon -R -t public_content_rw_t /var/samba/share

サービスを起動する。

# systemctl start smb
# systemctl enable smb

CentOS8でのFreeIPAサーバーの設定

前提条件

※メインメモリが1GBだと失敗するので2GB程度は必要
・プライマリのIPアドレスは192.168.0.10
・セカンダリのIPアドレスは192.168.0.11

プライマリサーバーの設定

FQDNでホスト名を設定する。

# hostnamectl set-hostname ipa1.local.example.com

hostsを編集してFQDNでの名前解決ができるようにしておく。

192.168.0.10    ipa1.local.example.com

モジュールを検索して必要そうなものを特定する。

$ dnf module list

idmのDL1にServerと書いてあったので、それをインストールする。

# dnf install @idm:DL1

モジュールのインストールが完了したら、必要なパッケージをインストールする。

# dnf install ipa-server ipa-server-dns

対話型のインストーラーを起動する。
※同時にbindも設定してもらう
※DNSフォワーダーも設定する
※そのほかは大体yesで設定した

# ipa-server-install

ファイアウォールの例外を登録するよう促されるので登録する。
※サービス名で設定する場合は「ldap」ではなく「freeipa-ldap」なので注意
※freeipa-replicationはセカンダリを構築しない場合はいらない

# firewall-cmd --permanent --add-service={freeipa-ldap,freeipa-ldaps,freeipa-replication,dns,ntp,http,https}
# firewall-cmd --reload

初回ログイン時にホームディレクトリを自動生成するよう設定する。

# authconfig --enablemkhomedir --update

セカンダリサーバーの設定

プライマリのIdMにWEBブラウザでアクセスして、セカンダリのhostを追加、
追加したセカンダリのhostを「ipaservers」グループに追加する。

セカンダリのホスト名をFQDNに変更する。

# hostnamectl set-hostname ipa2.local.example.com

hostsを編集してFQDNでの名前解決ができるようにしておく。

192.168.0.11    ipa2.local.example.com

必要なパッケージをインストールする。

# dnf install @idm:DL1
# dnf install ipa-server ipa-server-dns

IPAクライアントとして設定する。

# ipa-client-install

初回ログイン時にホームディレクトリを自動生成するよう設定する。

# authconfig --enablemkhomedir --update

レプリカインストールを実行する。
※DNSとしても動作させるため「–setup-dns」オプション指定
※プライマリからCA設定をコピーするため「–setup-ca」オプション指定

# ipa-replica-install --setup-dns --forwarder <forwarderのIPアドレス1> --forwarder <forwarderのIPアドレス2> --setup-ca

ファイアウォールの例外を登録する。

# firewall-cmd --permanent --add-service={freeipa-ldap,freeipa-ldaps,freeipa-replication,dns,ntp,http,https}
# firewall-cmd --reload

CentOS7にPHP7.3とMariaDB5.5をインストール

前提条件

今回の環境はCentOS7.6をクリーンインストールして、SELinuxを無効化してある環境で行う手順です。また、mariadbはローカルからのみ利用する。

手順

EPELリポジトリとRemiリポジトリを追加する。

# yum install epel-release
# yum install http://rpms.famillecollet.com/enterprise/remi-release-7.rpm

Apacheとmariadbをインストールする。

# yum install httpd php73-php mariadb-server php73-php-mysqlnd

mariadbの文字コードをutf8にする。

[mysqld]
character-set-server = utf8

mariadbの初期設定をする。

systemctl enable mariadb
systemctl start mariadb
mysql_secure_installation

CentOS7のSANEを利用してGT-S630のスキャンをCLIで行う

はじめにドライバーをここからダウンロードしてインストールする。

SANEをインストールする。

# yum install sane-backgrounds

そのままでは権限の問題でroot以外ではデバイスが利用できないので、専用グループに権限を与えるudevルールを作成する。
まずは専用グループを作成して、使用するユーザーを加える。

# groupadd scanner
# usermod test-user -a -G scanner

「lsusb」コマンドでベンダーIDとプロダクトIDを調べる。
下記の結果の場合はベンダーIDが04b8でプロダクトIDが0142になる。

Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 008 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 007 Device 002: ID 1c4f:0002 SiGma Micro Keyboard TRACER Gamma Ivory
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 002: ID 04b8:0142 Seiko Epson Corp. GT-F730 [GT-S630/Perfection V33/V330 Photo]
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

調べたベンダーIDとプロダクトIDを使用して下記ファイルを作成する。

ATTRS{idVendor}=="ベンダーID", ATTRS{idProduct}=="プロダクトID", MODE="0664", GROUP="scanner", ENV{libsane_matched}="yes"

あとは下記のようにCLIでスキャンできる。
※ 画質やコントラストの調整をする場合はxsaneをインストールすると便利

$ scanimage --format tiff --mode color --resolution 300 --contrast 35 > /home/test-user/Pictures/test.tiff

VPNでSoftetherVPNサーバー自身(CentOS7)にアクセスする

NICが2枚必要なのでAmazonでUSB接続のNICを購入。

ネットワーク設定する。

# nmcli connection modify enp0s3f3u1 ipv4.method manual
# nmcli connection modify enp0s3f3u1 ipv4.addresses "0.0.0.0/32"
# nmcli connection modify enp0s3f3u1 connection.autoconnect yes
# nmcli connection up enp0s3f3u1

GUIの設定ツールからenp0s3f3u1にブリッジするように設定変更して完了。

CentOS7でdhcpとbindを連携させ家庭内DDNS

インストール

今回はDNSサーバーもDHCPサーバーも1台で兼任させる。
まずインストールする。
※Version bind9.9.4 dhcp4.2.5

# yum install dhcp bind

DNSサーバーの設定

bindから設定する。
下記の箇所の内容を変更または追記する。

options {
    // zoneファイルの保存場所
    directory "/var/named/";
    // ほかのdnsサーバーはいないのでno
    notify no;
    // LAN内からの問い合わせを許可
    allow-query {
        localhost;
        192.168.1.0/24;
    };
    // 自分で名前解決できないときの丸投げ先
    forwarders {
        192.168.1.254;
        8.8.8.8;
    };
};

zone "example.jp." IN {
    type master;
    file "example.jp.zone";
    // 自身からの変更を許可しておく
    allow-update {
        localhost;
    };
};

さっき指定したzoneファイルを作成する。

$TTL 86400
@    IN    SOA    dns.example.jp.    root.example.jp. (
           2018042619
           10800
           36400
           604800
           86400
)

       IN    NS   dns.example.jp.
dns    IN    A    192.168.1.11

作成したらファイルの所有グループをnamedに変更する。
※namedに読み書きの権限を持たせるのが目的

# chgrp named /var/named/example.jp.zone

ついでに/var/named/に対して所有グループにも書き込み権限を設定する。
※namedに書き込みの権限を持たせるのが目的

# chmod 770 /var/named/

DHCPサーバーの設定

設定ファイルを下記のように編集する。

# DNSサーバーに更新要求を送信する設定
ddns-update-style interim;
# 普通のDHCPの設定
subnet 192.168.1.0 netmask 255.255.255.0 {
    range 192.168.1.101 192.168.1.120;
    option routers 192.168.1.254;
    option domain-name "example.jp";
    option domain-name-servers 192.168.1.11;
    # 更新を通知するDNSサーバーを指定
    zone example.jp. {
        primary localhost;
    }
}

その他の必要な設定

SELinuxとFirewallに例外を追加する。

# setsebool -P named_write_master_zones on
# firewall-cmd --add-service=dns --permanent
# firewall-cmd --add-service=dhcp --permanent

サービスを有効にして起動。

# systemctl enable named
# systemctl start named
# systemctl enable dhcpd
# systemctl start dhcpd

補足

nsupdate

nsupdateを使用してDNSサーバーを更新をテストするには bind-utils をインストールし、nsupdateコマンドを実行する。実行したら対話型コンソールになるので下記のような感じで入力する。何もエラーが出なければOK。

>server 127.0.0.1
>update add test.example.jp. 3600 A 192.168.1.222
>send
>server 127.0.0.1
>update delete test.example.jp.
>send
rndc

rndcでdumpして現在のDNSレコードを確認する。

# rndc dumpdb -zones
# cat /var/named/data/cache_dump.db | grep dns.example.jp.

CentOS7にVirtualBoxのリポジトリを追加する

公開鍵のインストール。

$ wget http://download.virtualbox.org/virtualbox/debian/oracle_vbox.asc
# rpm --import oracle_vbox.asc

リポジトリを追加する。

$ wget http://download.virtualbox.org/virtualbox/rpm/el/virtualbox.repo
# mv virtualbox.repo /etc/yum.repos.d/virtualbox.repo

CentOS7にWindowsからリモートデスクトップ

GNOME入ってなかったら入れて。

# yum groupinstall "GNOME Desktop"

xrdpのインストール。

# yum install epel-release
# yum install xrdp
# yum install tigervnc-server

/etc/xrdp/xrdp.iniの下記箇所を変更する。

#max_bpp=32
max_bpp=24

ファイアウォールに例外を登録する。

# firewall-cmd --add-port=3389/tcp --permanent
# firewall-cmd --reload

サービスを有効にして、起動。

# systemctl enable xrdp
# systemctl start xrdp