So-net無料ブログ作成
検索選択
スポンサードリンク
前の5件 | -

閉ざされたネットワークでNTPサーバを構築するときのメモ [Linux]

テスト環境などでインターネットへ接続が出来なかったり、社内ネットワークのNTPサーバが利用出来ない環境で、時刻同期が必要でNTPサーバを構築するときのメモ。

通常のNTPサーバの設定ファイル「/etc/ntp.conf」で、同期先サーバの設定を

server IPアドレス

でしますが、同期先がない場合は、

server 127.127.1.0

にすると、NTPサーバとして利用可能になる。
127.127.1.0のアドレスを設定すると、システムクロックと同期するようになる。
NTP独自の仕様みたいです。
あとは、NTPを起動し、動作確認コマンドを実行
# systemctl start ntpd   ←CentOS7の場合
# ntpq -p
結果のremote欄が、LOCAL(0)になっていれば成功。

serverの設定を、ループバックアドレス(127.0.0.1)やネットワークインターフェースのアドレスにした場合は、正常に動作しないので注意かな。

NTPサーバにchronyを使用する場合は、「/etc/chrony.conf」ファイルで、
server 127.127.1.0
allow 127.0.0.0/8
local stratum 10
に書き換え、chronyを起動し、動作確認コマンドを実行
# systemctl start chronyd   ←CentOS7の場合
# chronyc sources
の結果で、MS Name/IP address欄が、「^* 127.127.1.0」になっていれば成功。
^? 127.127.1.0」になっている場合は、少し時間をおいて再度動作確認コマンドを実行してみる。

あとは他のクライアントやサーバからも時刻同期が出来ればOKかなと。

CentOS7でRocket.Chatをインストールしたメモ [Linux]

社内などローカルネットワーク環境で、何か良いチャットツールが無いかなと思い、色々調べたらRocket.Chatが良さそうなので、インストールしてみました。
サーバOSはCentOS7です。

インストールはCentOSのみのリポジトリでは出来ないので、EPELリポジトリを追加します。
# yum -y install yum-plugin-priorities
# sed -i -e "s/\]$/\]\npriority=1/g" /etc/yum.repos.d/CentOS-Base.repo
# yum -y install epel-release
# sed -i -e "s/enabled=1/enabled=0/g" /etc/yum.repos.d/epel.repo

Rocket.Chatのインストールに必要なもの、MongoDBNode.js等をインストール。
# vi /etc/yum.repos.d/mongodb.repo
[mongodb]
name=MongoDB Repository
baseurl=http://downloads-distro.mongodb.org/repo/redhat/os/x86_64/
gpgcheck=0
enabled=1

# yum install -y nodejs curl GraphicsMagick npm mongodb-org-server mongodb-org gcc-c++
# npm install -g inherits n
# yum install nodejs npm
# yum --enablerepo=epel install nodejs npm
# npm install -g inherits n
# n 4.5

Rocket.Chatをダウンロードし、インストール。
# cd /opt/
# curl -L https://rocket.chat/releases/latest/download -o rocket.chat.tgz
# tar zxvf rocket.chat.tgz
# mv bundle Rocket.Chat
# cd Rocket.Chat/programs/server/
# npm install

サイト名等編集
# vi /opt/Rocket.Chat/rocketchat.env
PORT=3000
ROOT_URL=ホスト名またはIPアドレス:3000/
MONGO_URL=mongodb://localhost:27017/rocketchat

ポート番号は3000になっているけど、変更も可能。

MongoDBの起動と自動起動設定
# systemctl start mongod
# chkconfig mongod on

# systemctl enable mongod
で、自動起動設定をすると、以下の表示が出る。
mongod.service is not a native service, redirecting to /sbin/chkconfig.
Executing /sbin/chkconfig mongod on

Rocket.Chatの起動ファイル作成
[Unit]
Description=The Rocket.Chat server
After=network.target remote-fs.target nss-lookup.target nginx.target mongod.target
[Service]
ExecStart=/usr/local/bin/node /opt/Rocket.Chat/main.js
EnvironmentFile=/opt/Rocket.Chat/rocketchat.env
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=rocketchat
User=root
[Install]
WantedBy=multi-user.target

Rocket.Chatの起動と自動起動設定
# systemctl daemon-reload
# systemctl enable rocketchat.service
# systemctl start rocketchat.service

サービス起動確認
# systemctl status rocketchat

あとは、クライアントからWebブラウザを起動してアクセス出来ればOKかと。
アクセスできない場合は、firewalldの設定またはIptablesの設定を追加またはサービス停止。
SELINUXの無効化等をすればいけるかと。

インターネットへ公開する場合は、nginxやsquidなどでリバースプロキシを構築・設定して利用したほうが良さそうです。

squidで上位proxy利用環境時に設定したほうが良い設定 [proxy]

上位proxyへ接続するproxyサーバでsquidを使用する時に、しておいた方が良い設定のメモ。

上位proxyへ接続する設定には、必ず上位proxyへ接続する設定
never_direct allow all
が、入っていることが多く、この設定が入っているとクライアントからのアクションに対して、
全て上位proxyにリクエストを送付するようになる。
しかし、ローカルアドレスへのリクエストについては、利用する上位proxyの環境にもよるけど、
上位proxyからローカルアドレスへのアクセスが出来ない場合が有り、接続したいサイトへ
アクセスが出来ない現象が発生する。

クライアントのブラウザ設定で、ネットワーク接続プロキシ設定のプロキシを使用しないアドレスが
設定されていれば、この現象は出ないが、設定漏れや設定が出来ないデバイスが有ると、
squidの設定で回避する必要が有る。

方法はaclで回避したいネットワークアドレスやIPアドレスを指定し、直接接続をする設定を入れることで改善できる。
squid.confに上位proxyへリクエストしないアドレスを指定する。
(例)プライベートアドレスを指定
acl locala dst 10.0.0.0/8
acl localb dst 172.16.0.0/12
acl localc dst 192.168.0.0/16

always_direct allow locala localb localc

設定を入れた後は、configのチェックとsquidの再起動で完了。
# squid -k parse
# systemctl restart squid

この設定を、never_direct allow allの前に入れることで、設定したネットワークアドレスの
リクエストは上位proxyへ接続せず、proxyからダイレクトに接続するようになる。

KVMを管理するコマンドのメモ。 [仮想サーバ]

仮想サーバKVM上で動作しているゲストOSの管理を全てGUIで出来れば、コマンドはあまり必要無いと思うのですが、リモートで管理だとそうはいかないので、そのためのメモ。
基本的にvirshコマンドを使用。

ゲストOSの確認
# virsh list
起動しているゲストの一覧を表示
# virsh list --all
--allを付けることで、シャットダウンしているゲストも表示される。

ゲストOSの停止
# virsh shutdown ゲスト名
これでも停止しない場合は、
# virsh destroy ゲスト名
で、強制停止する。オススメはしないので、それなりに待っても停止しない場合に実行かな。

ゲストOSの起動
# virsh start ゲスト名
ゲストOSの自動起動(ホストOS起動時にゲストも起動させる)
# virsh autostart ゲスト名
自動起動解除は--disableを付ける
# virsh autostart --disable ゲスト名

ゲストOSの登録
# virsh define /etc/libvirt/qemu/ゲスト名.xml
他のKVM仮想サーバからゲストOSを移動して登録したりなど。

ゲストOSの解除
# virsh undefine ゲスト名
管理から解除する。

イメージファイルの削除は手順が少し有る。
# virsh pool-list --all
で、削除対象のpoolを確認。
削除するイメージの確認。
# virsh vol-list pool名
イメージの削除
# virsh vol-delete --pool pool名 イメージファイル名

または、
# virsh vol-delete /var/lib/libvirt/images/イメージファイル名
でも削除可能。

ゲストOSへコンソール接続
# virsh console ゲスト名
接続出来ない場合は、ゲスト側にコンソール接続の設定を入れる。
grub.cfgのkernel設定に
console=tty0 console=ttyS0,115200n8
を追加。
CentOS7の場合は
/etc/default/grub
の”GRUB_CMDLINE_LINUX="行に追加し、
# grub2-mkconfig -o /boot/grub2/grub.cfg
を実行する。
# /etc/inittab
S0:12345:respawn:/sbin/agetty ttyS0 115200
行を追加し、ゲストOSを再起動すれば、ホストからのゲスト接続が出来るようになる。

postfixでドメイン名ではなく、IPアドレスでメールを送信するとエラーになる場合は。 [postfix]

社内などのLAN内で名前解決をしていない環境で、メールサーバ宛にメール送付をしようとする場合は、
test@192.168.0.100
などのメールアドレスで送付するようになるけど、送信するメールサーバがpostfixだと送信がエラーになる。
この時のmaillogを確認すると、

postfix/smtpd[1111]: warning: Illegal address syntax from unknown[192.168.0.100] in MAIL command: <test@192.168.0.100>

のエラーログが出ている。

postfixのデフォルト設定だと、@以降がIPアドレスのメールアドレスは許可されていないみたい。
なので、postfixの設定ファイルに、許可する設定をすれば良い。

# vi /etc/postfix/main.cf
  resolve_numeric_domain = yes
を追加する。

設定変更後にpostfixを再起動すれば、@以降がIPアドレスになっているメールアドレスも許可されるようになる。
CentOS6の場合
# service postfix restart

CentOS7の場合
#systemctl restart postfix

メールサーバのリプレースとか、sendmailなど他のメールサーバから移行する場合は、気をつけたほうが良さそうです。
前の5件 | -
スポンサードリンク
シャンパン酵母エキス