Server
をテンプレートにして作成
LECTURE
担当科目一覧
コンピュータ概論/2024
データサイエンス/2024
3DCG演習/2024
情報デザイン研究/2024
卒業研究/2024
KEYWORDS
WEB DESIGN
SOCIAL DESIGN
SQUARES
LINKS
九州産業大学
芸術学部
芸術研究科
九産大美術館
九産大図書館
年間スケジュール
動画ニュース他
交通情報
気象・環境情報
危機に備えて
K'sLife
Office365Mail
Tools
SEARCH
開始行:
*Server
サーバー構築メモ|CentOS7 x86_64
~
***CONTENTS
#contents2_1
~
**前提
-OS:CentOS 7(研究室内 Mac > VirtualBox > 仮想マシン > C...
-IPアドレス:192.168.XX.XX
-サーバーに root としてSSH接続して操作
# ssh root@XXX.XXX.XXX.XXX
-OSのバージョン確認
# cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core)
-アーキテクチャの確認
# arch
x86_64
-カーネルのバージョン確認
# uname -a
Linux CentOS7 3.10.0-957.el7.x86_64
-SELinuxの設定状況を確認(# sestatus でも確認可)
# getenforce
Enforcing(有効)
--個人の実験用なので、これを無効化
---configのバックアップ
# cp -piv /etc/selinux/config /etc/selinux/config.`date ...
---vi で編集
# vi /etc/selinux/config
---SELINUX=enforcing を SELINUX=disabled に変更 > 保存
---再起動
# reboot
~
~
**SSHサーバー|openSSH
サーバーはターミナルを使って遠隔操作・・となるので、まず...
~
***sshd のインストール
&color(blue){プレインストールされているので実際には以下の...
~
-openSSH のインストール
# yum install openssh-server
-バージョン確認
# sshd -v
-SSHサーバーの自動起動の設定
# systemctl enable sshd(ちなみに反対は disable)
-SSHサーバーの起動
# systemctl start sshd
-ファイアーウォールの構成(publicゾーンにSSHを追加・固定)
# firewall-cmd --zone=public --add-service=ssh --permanent
~
~
**Webサーバー|Apache
***httpd のインストールとセットアップ
-Apache のインストール
# yum install httpd
参考 yum remove httpd
-バージョン確認
# httpd -v
Server version: Apache/2.4.6 (CentOS)
-httpd の自動起動の設定
# systemctl enable
-httpd の起動と状態確認
# systemctl start httpd
# systemctl status httpd
> Active: active (running) となっていればOK
~
***ファイアーウォールの設定
-ファイアーウォールを開ける(http, https)
# firewall-cmd --zone=public --add-service=http --perman...
# firewall-cmd --zone=public --add-service=https --perma...
# firewall-cmd --reload
''参考'':「不許可」を設定する場合
# firewall-cmd --zone=[ ゾーン名 ] --remove-service=[ サ...
-ファイアーウォールの状態をリストで確認
# firewall-cmd --list-all
public (active)
target: default
icmp-block-inversion: no
interfaces: enp0s3
sources:
services: ssh dhcpv6-client http https
ports:
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
~
***httpd の動作確認
-サーバーのIPアドレスを確認
# ip a
1: lo: <LOOPBACK,UP,LOWER_UP>・・・
inet 127.0.0.1/8 ・・・
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP>・・・
inet 192.168.xxx.xxx/24・・・
一つ目はローカルループバックアドレス(localhost)です。
二つ目が外部からアクセスする場合のサーバーアドレスです。
-/var/www/html に 適当な index.html をアップ
-別のマシンからブラウザで、閲覧できるか確認
http://192.168.xxx.xxx
~
***ディレクトリリスティングの無効化
デフォルトのままだと、ブラウザからアクセスした際にディレ...
-変更するファイルは以下
/etc/httpd/conf/httpd.conf
-変更部分は以下
<Directory "/var/www/html">
:
# Options Indexes FollowSymLinks ← これをコメントア...
Options FollowSymLinks ← これに変更
:
</Directory>
変更を保存して、Apacheを再起動して設定を有効化します。ブ...
-サーバーの再起動は、以下。
# systemctl restart httpd
~
~
**PHP
***リポジトリの設定
-PHPは以下のコマンドで簡単にインストールできますが、標準...
# yum install php
よってこれは参考まで・・ということで、続きをお読み下さい。
-PHPの最新バージョンを使用したい場合は、''Yumリポジトリ(...
--EPELリポジトリ[CentOS7系]
# yum -y install epel-release
--Remiリポジトリ[CentOS7系]
# yum -y install http://rpms.famillecollet.com/enterpris...
--/etc/yum.repo.d の配下の確認
# ls -l /etc/yum.repos.d/
-念のため現在インストール済みのバージョンを確認
# yum list installed | grep php
php.x86_64 5.6.24-1.el7.remi
php-cli.x86_64 5.6.24-1.el7.remi
php-common.x86_64 5.6.24-1.el7.remi
php-gd.x86_64 5.6.24-1.el7.remi
php-intl.x86_64 5.6.24-1.el7.remi
php-ldap.x86_64 5.6.24-1.el7.remi
php-mbstring.x86_64 5.6.24-1.el7.remi
php-mysqlnd.x86_64 5.6.24-1.el7.remi
php-pdo.x86_64 5.6.24-1.el7.remi
php-pecl-jsonc.x86_64 1.3.10-1.el7.remi.5.6
php-pecl-zip.x86_64 1.13.4-1.el7.remi.5.6
php-process.x86_64 5.6.24-1.el7.remi
php-soap.x86_64 5.6.24-1.el7.remi
php-xml.x86_64 5.6.24-1.el7.remi
php-xmlrpc.x86_64 5.6.24-1.el7.remi
-念のため古いものを削除
# yum remove php-*
~
***インストール
-PHPのインストール(php7.4の場合:正しいリポジトリを見に...
# yum install --enablerepo=epel,remi,remi-php74 php php-...
--remi-php74 の 74 がバージョンを意味します
--PHPの日本語環境を実現するため、php-mbstring をお忘れな...
--MySQL(MariaDB)との連携のため、php-mysql をお忘れなく。
-インストール結果の確認
# yum list installed | grep php
php.x86_64 7.4.13-1.el7.remi
php-cli.x86_64 7.4.13-1.el7.remi
php-common.x86_64 7.4.13-1.el7.remi
php-gd.x86_64 7.4.13-1.el7.remi
php-json.x86_64 7.4.13-1.el7.remi
php-mbstring.x86_64 7.4.13-1.el7.remi
php-mysqlnd.x86_64 7.4.13-1.el7.remi
php-pdo.x86_64 7.4.13-1.el7.remi
php-pecl-imagick.x86_64 3.4.4-10.el7.remi...
php-pecl-mcrypt.x86_64 1.0.4-1.el7.remi....
php-sodium.x86_64 7.4.13-1.el7.remi
php-xml.x86_64 7.4.13-1.el7.remi
-動作バージョン確認
# php -v
PHP 7.4.13 (cli) (built: Nov 24 2020 10:03:34) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
~
***MEMO1 特定モジュールの追加インストール
以下の書き方でインストールできます。
# yum install --enablerepo=remi-php7x php-xxxx
x の部分はバージョン番号、 xxxx の部分はモジュール名
~
***MEMO2
PHPのバージョン確認時に以下のエラーが出ることがあります。
PHP Warning: PHP Startup: Unable to load dynamic library...
ネットで探し回ったところ・・
hb_ft_font_set_load_flags comes from HarfBuzz
ということらしく、HarfBuzz をインストールしたら解決しまし...
# yum install harfbuzz
~
***php.ini の編集
-php.ini は以下にあります。
/etc/php.ini
-オリジナルは、php_org.ini などとしてバックアップしておき...
- 以下、変更推奨箇所です。FTPでDL>編集>UP あるいは、タ...
# vi /etc/php.ini
default_charset = "UTF-8"
mbstring.language = Japanese
// ;mbstring.internal_encoding = ← php5.6以降は非推奨>...
// ;mbstring.http_input = ← php5.6以降は非推奨>コメント...
// ;mbstring.http_output = ← php5.6以降は非推奨>コメン...
mbstring.encoding_translation = Off
mbstring.detect_order = UTF-8,SJIS,EUC-JP,JIS,ASCII
:
date.timezone = "Asia/Tokyo"
:
iniファイル書き換え後は、サーバーのリスタートが必要です
# systemctl restart httpd
~
***PHP環境の確認
-ドキュメントルートに 1行コード(<?php echo phpinfo(); ?...
$ cd /var/www/html
$ vi info.php
<?php echo phpinfo(); ?>
:wq
-ブラウザからアクセスするとPHPに関する情報がすべて確認で...
~
~
**FTPサーバー|vsftp
***fttpdのインストールとセットアップ
-vsftpd のインストール
# yum install vsftpd
-バージョン確認
# vsftpd -v
vsftpd: version 3.0.2
-設定ファイル vsftpd.conf のバックアップ
# cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.org
-設定ファイル vsftpd.conf を編集(viを使います)
# vi /etc/vsftpd/vsftpd.conf
--vi のコマンドモードで行番号を有効にします
:set number
--アノニマスFTPサーバーを無効化(12行目付近)
anonymous_enable=NO
--ASCIIでのデータの送受信許可(83,84行目付近)
ascii_upload_enable=YES
ascii_download_enable=YES
--上位ディレクトリ参照可能関連設定(100行目付近)
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
chroot_local_user をYESにすることでホームディレクトリより...
--TCP Wrapperの無効化(127行目付近)
tcp_wrappers=NO
--ローカルタイムの使用(ファイルの末尾に以下の記述を追加)
use_localtime=YES
--/etc/vsftpd/user_list をホワイトリストとして使用(ファ...
userlist_enable=YES
userlist_deny=NO
userlist_enable=YES にすると、user_list を使用したアクセ...
userlist_deny=NO にすることで user_list を「アクセスを許...
--上記編集をすべて完了したらファイルを保存し、vi を終了す...
:w
:q
-FTPサーバーへの接続を許すアカウント名を /etc/vsftpd/user...
--viで user_list を開く
# vi /etc/vsftpd/user_list
--最初に記述されている ユーザーをすべて削除する。
--user01 というユーザーのみをFTP接続させたい場合、以下の...
# vsftpd userlist
# If userlist_deny=NO, only allow users in this file
# If userlist_deny=YES (default), never allow users in t...
# do not even prompt for a password.
# Note that the default vsftpd pam config also checks /e...
# for users that are denied.
user01
--設定したらファイルを保存してviを終了
:w
:q
-/etc/vsftpd/chroot_list ファイルを新規に作成し、上位ディ...
--viで chroot_list を開く
# vi /etc/vsftpd/chroot_list
--user01というユーザーのみに上位ディレクトリ参照の許可を...
user01
--アカウント名を追加したら保存してvimを終了
:w
:q
-root 以外が chroot_list を変更できないようパーミッション...
# chmod 600 /etc/vsftpd/chroot_list
-vsftpdの自動起動設定
# systemctl enable vsftpd.service
-vsftpdの起動
# systemctl start vsftpd
-ファイアーウォールを開ける
# firewall-cmd --add-service=ftp --zone=public --permanent
# firewall-cmd --permanent --add-port=21/tcp
# firewall-cmd --reload
-FTPクライアントから接続を確認
-FTPクライアントから var/www/html が見えない?
>SELinux の設定変更が必要
# setsebool -P ftpd_full_access on
//-''繋がりはしたが、FTPクライアントから var/www/html が...
//SELinux が有効になっていると見えないものがあります。
//一時的に無効にすると /var/ 以下が見えるようになります。
// # setenforce 0
//OSを再起動するとSELinux は有効に戻ります。
//正しく設定するには SELinux の設定変更が必要です。
-vsftpd を再起動
# systemctl restart vsftpd
以上
~
***参考情報
-新しいFTP接続ユーザーを作りたい場合
--useradd で新しいユーザーを追加
# useradd testuser
--passwd で testuser にパスワードを追加
# passwd testuser
--vi で user_list に testuser を追加
# vi /etc/vsftpd/user_list
ファイルの最後尾に testuser を追加
--vi で chroot_list を編集し、ホワイトリストとして testus...
# vi /etc/vsftpd/chroot_list
ファイルの最後尾に testuser を追加
--vsftp の再起動
# systemctl restart vsftpd
--FTPクライアントから接続確認
-rootユーザのFTP接続を有効にしたい場合
rootユーザはデフォルトではFTP接続しない前提で、ftpusers ...
# vi /etc/vsftpd/ftpusers > root をコメントアウト
-パッシブモードでの転送を許可したい場合
--/etc/vsftpd/vsftpd.conf に以下を追加
pasv_enable=YES
pasv_min_port=4000
pasv_max_port=4029
--上記で指定のポートを開ける
# firewall-cmd --permanent --zone=public --add-rich-rule...
-PAM認証で失敗している場合
deny 6なので、6回失敗したらロックがかかる仕組みになって...
--以下で確認できます
# pam_tally2 -u <ユーザ名>
Login Failures Latest failure From
<ユーザ名> <失敗回数> <日付> <リモートIP>
--回数が上限超えしている場合は、以下で失敗の回数をリセッ...
# pam_tally2 -u <ユーザ名> --reset
Login Failures Latest failure From
<ユーザ名> 0
~
~
**DBサーバー|MariaDB
別記事:[[Database/MySQL]]
~
***DBのインストールとセットアップ
-MariaDBのインストール
# yum install mariadb mariadb-server
-自動起動の設定
# systemctl enable mariadb
-サービスの開始
# systemctl start mariadb
-接続(MariaDBの場合も、接続コマンドは mysql です)
# mysql
以下のように表示されれば接続OKです。
Welcome to the MariaDB monitor. Commands end with ; or ...
Your MariaDB connection id is ・・
・・途中略・・
MariaDB [(none)]>
-接続を切る
MariaDB [(none)] > quit
Bye
~
***付記
MySql と postfix の仲良し関係に注意
http://big1to.com/development-note/867
~
~
**Mailサーバー|Postfix
***Postfixのインストール
-インストールの前に|インストールの有無の確認
$ yum list installed | grep postfix
以下のように出ればインストールされています
postfix.x86_64 2:2.10.1-6.el7
-インストールコマンド
# yum install postfix
~
***基本設定
-設定情報の確認
# postconf -n ← デフォルトパラメーターとは異なる設定の...
-配送用メールサーバーを運用するのに必要な設定
--メール配信時に表示されるドメイン名の設定
--メールはサーバーから配信専用に設定
--スパムメール対策(メールリレーを許可しない)
--メールサーバー自身で外部からのメールを受信しない
-/etc/postfix/main.cf の編集手順
--FTPで接続
--main.cf をバックアップ
/etc/postfix/main.cf → main_org.cf など
--/etc/postfix/main.cf をDL
-main.cf の以下の設定を編集して FTP でアップ
-main.cf の設定箇所
--myhostname:メールサーバーのホスト名
--mydomain:メールのドメインを設定
--inet_interfaces:メール受け取りインターフェイスを指定
--inet_protocols:postfixが待ち受けを行うプロトコル(ipv4 ...
--masquerade_domains:送信元メールアドレスのサブドメイン...
-設定後のチェック
# postfix check
エラーが表示されなければ、設定ファイルには問題なし
-main.cf設定ファイル、変更の反映(再起動)
systemctl restart postfix
~
~
**FireWall(firewalld)の設定
***サービスの起動
-サービスの状態確認
# systemctl status firewalld.service
Active: active (running) since ・・ となっていれば稼働中
-サービスの起動
# systemctl start firewalld.service
-サービスの終了
# systemctl stop firewalld.service
-自動起動設定の状態確認
# systemctl is-enabled firewalld.service
enabled
-自動起動の設定
# systemctl enable firewalld.service
~
***設定の確認
-アクティブゾーンの確認
# firewall-cmd --get-active-zones
-デフォルトゾーンの確認
# firewall-cmd --get-default-zone
-デフォルトゾーンのFW設定確認
# firewall-cmd --list-all
デフォルトゾーンとアクティブゾーンが異なる場合はアクティ...
-すべてのゾーンのFW設定確認
# firewall-cmd --list-all-zones
-すべてのゾーンのFW設定確認(恒久的な設定)
# firewall-cmd --list-all-zones --permanent
~
***FWの設定
-登録可能なサービスの確認
# firewall-cmd --get-services
-現在追加されているサービスの確認
# firewall-cmd --list-services --zone=public
dhcpv6-client ftp http https ssh
-現在追加されているサービスの確認(恒久的な設定)
# firewall-cmd --list-services --zone=public --permanent
dhcpv6-client ssh
-サービスの追加(例:publicゾーンに https を追加)
# firewall-cmd --add-service=https --zone=public
-サービスの追加(恒久的な設定)
# firewall-cmd --add-service=https --zone=public --perma...
# firewall-cmd --reload
success
-サービスの削除
--add-service= のかわりに --remove-service=
~
-現在追加されているポート番号の確認
# firewall-cmd --list-ports --zone=public
-現在追加されているポート番号の確認(恒久的な設定)
# firewall-cmd --list-ports --zone=public --permanent
-ポート番号の追加(例:デフォルトゾーンに TCP8080、UDP600...
# firewall-cmd --add-port=8080/tcp --zone=public
# firewall-cmd --add-port=60000/udp --zone=public
-ポート番号の追加(恒久的な設定)
# firewall-cmd --add-port=8080/tcp --zone=public --perma...
# firewall-cmd --add-port=60000/udp --zone=public --perm...
-設定の反映には再読み込みが必要
# firewall-cmd --reload
success
-ポート番号の削除
-add-port= のかわりに --remove-port=
~
-現在追加されているIPアドレスの確認
# firewall-cmd --list-sources --zone=public
-許可アドレスの追加
# firewall-cmd --add-source=192.168.0.0/24 --zone=public
-許可アドレスの追加(恒久的な設定にする場合)
# firewall-cmd --add-source=192.168.0.0/24 --zone=public...
# firewall-cmd --reload
success
-拒否アドレスの追加
# firewall-cmd --add-source=192.168.11.0/24 --zone=drop
-拒否アドレスの追加(恒久的な設定にする場合)
# firewall-cmd --add-source=192.168.11.0/24 --zone=drop ...
# firewall-cmd --reload
success
-アクセス元IPに割り当てられているゾーンの変更(例:dropに...
# firewall-cmd --change-source=192.168.11.0/24 --zone=drop
-同(恒久的な設定)
# firewall-cmd --change-source=192.168.11.0/24 --zone=dr...
# firewall-cmd --reload
success
-アクセス元IPに割り当てられているゾーンの確認
# firewall-cmd --get-zone-of-source=192.168.11.0/24
drop
-IPアドレスの削除
# firewall-cmd --remove-source=192.168.11.0/24 --zone=drop
-同(恒久的な設定)
# firewall-cmd --remove-source=192.168.11.0/24 --zone=dr...
# firewall-cmd --reload
success
~
~
**SELinux の設定
SELinux|Security-Enhanced Linux は、アメリカ国家安全保障...
サーバー構築時に生じる「なぜ動かない?」では、これが「...
-現在の状態は sestatusコマンドで確認できます。
# sestatus
SELinux status: enabled
SELinuxfs mount: /sys/fs/selinux
SELinux root directory: /etc/selinux
Loaded policy name: targeted
Current mode: enforcing ← 現在有効(つまりいろいろ厳格)
Mode from config file: enforcing ← 設定ファイルも「有効...
Policy MLS status: enabled
Policy deny_unknown status: allowed
Max kernel policy version: 31
-一時的に permissiveモードにするには以下。
# setenforce 0
これで症状が解決する場合は、SELinux が効いている・・よっ...
''参考情報''
http://www.yam-web.net/selinux/base.html
~
***SELinux の動作モード
Disabled / Permissive / Enforcing の 3 モードがあります.
-Disabled
SELinux が適用されていない状態。監査ログも残らないしリソ...
-Permissive
SELinux は適用されているがアクセス制御が実行されない。ポ...
-Enforcing
SELinux によるアクセス制御が有効になっている状態。後述の...
~
***設定について
-Permissive と Enforcing の一時的な切り替えは setenforce ...
# setenforce 0
-恒久的にモードを固定する場合は /etc/selinux/config を書...
~
~
終了行:
*Server
サーバー構築メモ|CentOS7 x86_64
~
***CONTENTS
#contents2_1
~
**前提
-OS:CentOS 7(研究室内 Mac > VirtualBox > 仮想マシン > C...
-IPアドレス:192.168.XX.XX
-サーバーに root としてSSH接続して操作
# ssh root@XXX.XXX.XXX.XXX
-OSのバージョン確認
# cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core)
-アーキテクチャの確認
# arch
x86_64
-カーネルのバージョン確認
# uname -a
Linux CentOS7 3.10.0-957.el7.x86_64
-SELinuxの設定状況を確認(# sestatus でも確認可)
# getenforce
Enforcing(有効)
--個人の実験用なので、これを無効化
---configのバックアップ
# cp -piv /etc/selinux/config /etc/selinux/config.`date ...
---vi で編集
# vi /etc/selinux/config
---SELINUX=enforcing を SELINUX=disabled に変更 > 保存
---再起動
# reboot
~
~
**SSHサーバー|openSSH
サーバーはターミナルを使って遠隔操作・・となるので、まず...
~
***sshd のインストール
&color(blue){プレインストールされているので実際には以下の...
~
-openSSH のインストール
# yum install openssh-server
-バージョン確認
# sshd -v
-SSHサーバーの自動起動の設定
# systemctl enable sshd(ちなみに反対は disable)
-SSHサーバーの起動
# systemctl start sshd
-ファイアーウォールの構成(publicゾーンにSSHを追加・固定)
# firewall-cmd --zone=public --add-service=ssh --permanent
~
~
**Webサーバー|Apache
***httpd のインストールとセットアップ
-Apache のインストール
# yum install httpd
参考 yum remove httpd
-バージョン確認
# httpd -v
Server version: Apache/2.4.6 (CentOS)
-httpd の自動起動の設定
# systemctl enable
-httpd の起動と状態確認
# systemctl start httpd
# systemctl status httpd
> Active: active (running) となっていればOK
~
***ファイアーウォールの設定
-ファイアーウォールを開ける(http, https)
# firewall-cmd --zone=public --add-service=http --perman...
# firewall-cmd --zone=public --add-service=https --perma...
# firewall-cmd --reload
''参考'':「不許可」を設定する場合
# firewall-cmd --zone=[ ゾーン名 ] --remove-service=[ サ...
-ファイアーウォールの状態をリストで確認
# firewall-cmd --list-all
public (active)
target: default
icmp-block-inversion: no
interfaces: enp0s3
sources:
services: ssh dhcpv6-client http https
ports:
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
~
***httpd の動作確認
-サーバーのIPアドレスを確認
# ip a
1: lo: <LOOPBACK,UP,LOWER_UP>・・・
inet 127.0.0.1/8 ・・・
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP>・・・
inet 192.168.xxx.xxx/24・・・
一つ目はローカルループバックアドレス(localhost)です。
二つ目が外部からアクセスする場合のサーバーアドレスです。
-/var/www/html に 適当な index.html をアップ
-別のマシンからブラウザで、閲覧できるか確認
http://192.168.xxx.xxx
~
***ディレクトリリスティングの無効化
デフォルトのままだと、ブラウザからアクセスした際にディレ...
-変更するファイルは以下
/etc/httpd/conf/httpd.conf
-変更部分は以下
<Directory "/var/www/html">
:
# Options Indexes FollowSymLinks ← これをコメントア...
Options FollowSymLinks ← これに変更
:
</Directory>
変更を保存して、Apacheを再起動して設定を有効化します。ブ...
-サーバーの再起動は、以下。
# systemctl restart httpd
~
~
**PHP
***リポジトリの設定
-PHPは以下のコマンドで簡単にインストールできますが、標準...
# yum install php
よってこれは参考まで・・ということで、続きをお読み下さい。
-PHPの最新バージョンを使用したい場合は、''Yumリポジトリ(...
--EPELリポジトリ[CentOS7系]
# yum -y install epel-release
--Remiリポジトリ[CentOS7系]
# yum -y install http://rpms.famillecollet.com/enterpris...
--/etc/yum.repo.d の配下の確認
# ls -l /etc/yum.repos.d/
-念のため現在インストール済みのバージョンを確認
# yum list installed | grep php
php.x86_64 5.6.24-1.el7.remi
php-cli.x86_64 5.6.24-1.el7.remi
php-common.x86_64 5.6.24-1.el7.remi
php-gd.x86_64 5.6.24-1.el7.remi
php-intl.x86_64 5.6.24-1.el7.remi
php-ldap.x86_64 5.6.24-1.el7.remi
php-mbstring.x86_64 5.6.24-1.el7.remi
php-mysqlnd.x86_64 5.6.24-1.el7.remi
php-pdo.x86_64 5.6.24-1.el7.remi
php-pecl-jsonc.x86_64 1.3.10-1.el7.remi.5.6
php-pecl-zip.x86_64 1.13.4-1.el7.remi.5.6
php-process.x86_64 5.6.24-1.el7.remi
php-soap.x86_64 5.6.24-1.el7.remi
php-xml.x86_64 5.6.24-1.el7.remi
php-xmlrpc.x86_64 5.6.24-1.el7.remi
-念のため古いものを削除
# yum remove php-*
~
***インストール
-PHPのインストール(php7.4の場合:正しいリポジトリを見に...
# yum install --enablerepo=epel,remi,remi-php74 php php-...
--remi-php74 の 74 がバージョンを意味します
--PHPの日本語環境を実現するため、php-mbstring をお忘れな...
--MySQL(MariaDB)との連携のため、php-mysql をお忘れなく。
-インストール結果の確認
# yum list installed | grep php
php.x86_64 7.4.13-1.el7.remi
php-cli.x86_64 7.4.13-1.el7.remi
php-common.x86_64 7.4.13-1.el7.remi
php-gd.x86_64 7.4.13-1.el7.remi
php-json.x86_64 7.4.13-1.el7.remi
php-mbstring.x86_64 7.4.13-1.el7.remi
php-mysqlnd.x86_64 7.4.13-1.el7.remi
php-pdo.x86_64 7.4.13-1.el7.remi
php-pecl-imagick.x86_64 3.4.4-10.el7.remi...
php-pecl-mcrypt.x86_64 1.0.4-1.el7.remi....
php-sodium.x86_64 7.4.13-1.el7.remi
php-xml.x86_64 7.4.13-1.el7.remi
-動作バージョン確認
# php -v
PHP 7.4.13 (cli) (built: Nov 24 2020 10:03:34) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
~
***MEMO1 特定モジュールの追加インストール
以下の書き方でインストールできます。
# yum install --enablerepo=remi-php7x php-xxxx
x の部分はバージョン番号、 xxxx の部分はモジュール名
~
***MEMO2
PHPのバージョン確認時に以下のエラーが出ることがあります。
PHP Warning: PHP Startup: Unable to load dynamic library...
ネットで探し回ったところ・・
hb_ft_font_set_load_flags comes from HarfBuzz
ということらしく、HarfBuzz をインストールしたら解決しまし...
# yum install harfbuzz
~
***php.ini の編集
-php.ini は以下にあります。
/etc/php.ini
-オリジナルは、php_org.ini などとしてバックアップしておき...
- 以下、変更推奨箇所です。FTPでDL>編集>UP あるいは、タ...
# vi /etc/php.ini
default_charset = "UTF-8"
mbstring.language = Japanese
// ;mbstring.internal_encoding = ← php5.6以降は非推奨>...
// ;mbstring.http_input = ← php5.6以降は非推奨>コメント...
// ;mbstring.http_output = ← php5.6以降は非推奨>コメン...
mbstring.encoding_translation = Off
mbstring.detect_order = UTF-8,SJIS,EUC-JP,JIS,ASCII
:
date.timezone = "Asia/Tokyo"
:
iniファイル書き換え後は、サーバーのリスタートが必要です
# systemctl restart httpd
~
***PHP環境の確認
-ドキュメントルートに 1行コード(<?php echo phpinfo(); ?...
$ cd /var/www/html
$ vi info.php
<?php echo phpinfo(); ?>
:wq
-ブラウザからアクセスするとPHPに関する情報がすべて確認で...
~
~
**FTPサーバー|vsftp
***fttpdのインストールとセットアップ
-vsftpd のインストール
# yum install vsftpd
-バージョン確認
# vsftpd -v
vsftpd: version 3.0.2
-設定ファイル vsftpd.conf のバックアップ
# cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.org
-設定ファイル vsftpd.conf を編集(viを使います)
# vi /etc/vsftpd/vsftpd.conf
--vi のコマンドモードで行番号を有効にします
:set number
--アノニマスFTPサーバーを無効化(12行目付近)
anonymous_enable=NO
--ASCIIでのデータの送受信許可(83,84行目付近)
ascii_upload_enable=YES
ascii_download_enable=YES
--上位ディレクトリ参照可能関連設定(100行目付近)
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
chroot_local_user をYESにすることでホームディレクトリより...
--TCP Wrapperの無効化(127行目付近)
tcp_wrappers=NO
--ローカルタイムの使用(ファイルの末尾に以下の記述を追加)
use_localtime=YES
--/etc/vsftpd/user_list をホワイトリストとして使用(ファ...
userlist_enable=YES
userlist_deny=NO
userlist_enable=YES にすると、user_list を使用したアクセ...
userlist_deny=NO にすることで user_list を「アクセスを許...
--上記編集をすべて完了したらファイルを保存し、vi を終了す...
:w
:q
-FTPサーバーへの接続を許すアカウント名を /etc/vsftpd/user...
--viで user_list を開く
# vi /etc/vsftpd/user_list
--最初に記述されている ユーザーをすべて削除する。
--user01 というユーザーのみをFTP接続させたい場合、以下の...
# vsftpd userlist
# If userlist_deny=NO, only allow users in this file
# If userlist_deny=YES (default), never allow users in t...
# do not even prompt for a password.
# Note that the default vsftpd pam config also checks /e...
# for users that are denied.
user01
--設定したらファイルを保存してviを終了
:w
:q
-/etc/vsftpd/chroot_list ファイルを新規に作成し、上位ディ...
--viで chroot_list を開く
# vi /etc/vsftpd/chroot_list
--user01というユーザーのみに上位ディレクトリ参照の許可を...
user01
--アカウント名を追加したら保存してvimを終了
:w
:q
-root 以外が chroot_list を変更できないようパーミッション...
# chmod 600 /etc/vsftpd/chroot_list
-vsftpdの自動起動設定
# systemctl enable vsftpd.service
-vsftpdの起動
# systemctl start vsftpd
-ファイアーウォールを開ける
# firewall-cmd --add-service=ftp --zone=public --permanent
# firewall-cmd --permanent --add-port=21/tcp
# firewall-cmd --reload
-FTPクライアントから接続を確認
-FTPクライアントから var/www/html が見えない?
>SELinux の設定変更が必要
# setsebool -P ftpd_full_access on
//-''繋がりはしたが、FTPクライアントから var/www/html が...
//SELinux が有効になっていると見えないものがあります。
//一時的に無効にすると /var/ 以下が見えるようになります。
// # setenforce 0
//OSを再起動するとSELinux は有効に戻ります。
//正しく設定するには SELinux の設定変更が必要です。
-vsftpd を再起動
# systemctl restart vsftpd
以上
~
***参考情報
-新しいFTP接続ユーザーを作りたい場合
--useradd で新しいユーザーを追加
# useradd testuser
--passwd で testuser にパスワードを追加
# passwd testuser
--vi で user_list に testuser を追加
# vi /etc/vsftpd/user_list
ファイルの最後尾に testuser を追加
--vi で chroot_list を編集し、ホワイトリストとして testus...
# vi /etc/vsftpd/chroot_list
ファイルの最後尾に testuser を追加
--vsftp の再起動
# systemctl restart vsftpd
--FTPクライアントから接続確認
-rootユーザのFTP接続を有効にしたい場合
rootユーザはデフォルトではFTP接続しない前提で、ftpusers ...
# vi /etc/vsftpd/ftpusers > root をコメントアウト
-パッシブモードでの転送を許可したい場合
--/etc/vsftpd/vsftpd.conf に以下を追加
pasv_enable=YES
pasv_min_port=4000
pasv_max_port=4029
--上記で指定のポートを開ける
# firewall-cmd --permanent --zone=public --add-rich-rule...
-PAM認証で失敗している場合
deny 6なので、6回失敗したらロックがかかる仕組みになって...
--以下で確認できます
# pam_tally2 -u <ユーザ名>
Login Failures Latest failure From
<ユーザ名> <失敗回数> <日付> <リモートIP>
--回数が上限超えしている場合は、以下で失敗の回数をリセッ...
# pam_tally2 -u <ユーザ名> --reset
Login Failures Latest failure From
<ユーザ名> 0
~
~
**DBサーバー|MariaDB
別記事:[[Database/MySQL]]
~
***DBのインストールとセットアップ
-MariaDBのインストール
# yum install mariadb mariadb-server
-自動起動の設定
# systemctl enable mariadb
-サービスの開始
# systemctl start mariadb
-接続(MariaDBの場合も、接続コマンドは mysql です)
# mysql
以下のように表示されれば接続OKです。
Welcome to the MariaDB monitor. Commands end with ; or ...
Your MariaDB connection id is ・・
・・途中略・・
MariaDB [(none)]>
-接続を切る
MariaDB [(none)] > quit
Bye
~
***付記
MySql と postfix の仲良し関係に注意
http://big1to.com/development-note/867
~
~
**Mailサーバー|Postfix
***Postfixのインストール
-インストールの前に|インストールの有無の確認
$ yum list installed | grep postfix
以下のように出ればインストールされています
postfix.x86_64 2:2.10.1-6.el7
-インストールコマンド
# yum install postfix
~
***基本設定
-設定情報の確認
# postconf -n ← デフォルトパラメーターとは異なる設定の...
-配送用メールサーバーを運用するのに必要な設定
--メール配信時に表示されるドメイン名の設定
--メールはサーバーから配信専用に設定
--スパムメール対策(メールリレーを許可しない)
--メールサーバー自身で外部からのメールを受信しない
-/etc/postfix/main.cf の編集手順
--FTPで接続
--main.cf をバックアップ
/etc/postfix/main.cf → main_org.cf など
--/etc/postfix/main.cf をDL
-main.cf の以下の設定を編集して FTP でアップ
-main.cf の設定箇所
--myhostname:メールサーバーのホスト名
--mydomain:メールのドメインを設定
--inet_interfaces:メール受け取りインターフェイスを指定
--inet_protocols:postfixが待ち受けを行うプロトコル(ipv4 ...
--masquerade_domains:送信元メールアドレスのサブドメイン...
-設定後のチェック
# postfix check
エラーが表示されなければ、設定ファイルには問題なし
-main.cf設定ファイル、変更の反映(再起動)
systemctl restart postfix
~
~
**FireWall(firewalld)の設定
***サービスの起動
-サービスの状態確認
# systemctl status firewalld.service
Active: active (running) since ・・ となっていれば稼働中
-サービスの起動
# systemctl start firewalld.service
-サービスの終了
# systemctl stop firewalld.service
-自動起動設定の状態確認
# systemctl is-enabled firewalld.service
enabled
-自動起動の設定
# systemctl enable firewalld.service
~
***設定の確認
-アクティブゾーンの確認
# firewall-cmd --get-active-zones
-デフォルトゾーンの確認
# firewall-cmd --get-default-zone
-デフォルトゾーンのFW設定確認
# firewall-cmd --list-all
デフォルトゾーンとアクティブゾーンが異なる場合はアクティ...
-すべてのゾーンのFW設定確認
# firewall-cmd --list-all-zones
-すべてのゾーンのFW設定確認(恒久的な設定)
# firewall-cmd --list-all-zones --permanent
~
***FWの設定
-登録可能なサービスの確認
# firewall-cmd --get-services
-現在追加されているサービスの確認
# firewall-cmd --list-services --zone=public
dhcpv6-client ftp http https ssh
-現在追加されているサービスの確認(恒久的な設定)
# firewall-cmd --list-services --zone=public --permanent
dhcpv6-client ssh
-サービスの追加(例:publicゾーンに https を追加)
# firewall-cmd --add-service=https --zone=public
-サービスの追加(恒久的な設定)
# firewall-cmd --add-service=https --zone=public --perma...
# firewall-cmd --reload
success
-サービスの削除
--add-service= のかわりに --remove-service=
~
-現在追加されているポート番号の確認
# firewall-cmd --list-ports --zone=public
-現在追加されているポート番号の確認(恒久的な設定)
# firewall-cmd --list-ports --zone=public --permanent
-ポート番号の追加(例:デフォルトゾーンに TCP8080、UDP600...
# firewall-cmd --add-port=8080/tcp --zone=public
# firewall-cmd --add-port=60000/udp --zone=public
-ポート番号の追加(恒久的な設定)
# firewall-cmd --add-port=8080/tcp --zone=public --perma...
# firewall-cmd --add-port=60000/udp --zone=public --perm...
-設定の反映には再読み込みが必要
# firewall-cmd --reload
success
-ポート番号の削除
-add-port= のかわりに --remove-port=
~
-現在追加されているIPアドレスの確認
# firewall-cmd --list-sources --zone=public
-許可アドレスの追加
# firewall-cmd --add-source=192.168.0.0/24 --zone=public
-許可アドレスの追加(恒久的な設定にする場合)
# firewall-cmd --add-source=192.168.0.0/24 --zone=public...
# firewall-cmd --reload
success
-拒否アドレスの追加
# firewall-cmd --add-source=192.168.11.0/24 --zone=drop
-拒否アドレスの追加(恒久的な設定にする場合)
# firewall-cmd --add-source=192.168.11.0/24 --zone=drop ...
# firewall-cmd --reload
success
-アクセス元IPに割り当てられているゾーンの変更(例:dropに...
# firewall-cmd --change-source=192.168.11.0/24 --zone=drop
-同(恒久的な設定)
# firewall-cmd --change-source=192.168.11.0/24 --zone=dr...
# firewall-cmd --reload
success
-アクセス元IPに割り当てられているゾーンの確認
# firewall-cmd --get-zone-of-source=192.168.11.0/24
drop
-IPアドレスの削除
# firewall-cmd --remove-source=192.168.11.0/24 --zone=drop
-同(恒久的な設定)
# firewall-cmd --remove-source=192.168.11.0/24 --zone=dr...
# firewall-cmd --reload
success
~
~
**SELinux の設定
SELinux|Security-Enhanced Linux は、アメリカ国家安全保障...
サーバー構築時に生じる「なぜ動かない?」では、これが「...
-現在の状態は sestatusコマンドで確認できます。
# sestatus
SELinux status: enabled
SELinuxfs mount: /sys/fs/selinux
SELinux root directory: /etc/selinux
Loaded policy name: targeted
Current mode: enforcing ← 現在有効(つまりいろいろ厳格)
Mode from config file: enforcing ← 設定ファイルも「有効...
Policy MLS status: enabled
Policy deny_unknown status: allowed
Max kernel policy version: 31
-一時的に permissiveモードにするには以下。
# setenforce 0
これで症状が解決する場合は、SELinux が効いている・・よっ...
''参考情報''
http://www.yam-web.net/selinux/base.html
~
***SELinux の動作モード
Disabled / Permissive / Enforcing の 3 モードがあります.
-Disabled
SELinux が適用されていない状態。監査ログも残らないしリソ...
-Permissive
SELinux は適用されているがアクセス制御が実行されない。ポ...
-Enforcing
SELinux によるアクセス制御が有効になっている状態。後述の...
~
***設定について
-Permissive と Enforcing の一時的な切り替えは setenforce ...
# setenforce 0
-恒久的にモードを固定する場合は /etc/selinux/config を書...
~
~
ページ名: