サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
GPT-4o
www.server-memo.net
Ubuntu Server 20.04でcronのログを/var/log/cron.logへ出力させる方法です。 rsyslogの設定変更 Ubuntu Server 20.04の初期設定では、rsyslogでcronの実行ログを/var/log/cron.logへ出力するための設定が無効になっています。 cronのログを/var/log/cron.logへ出力させるためには、/etc/rsyslog.d/rysylog/50-default.confを編集して、rsyslogの設定を変更する必要があります。 $ cd /etc/rsyslog.d $ sudo cp -p 50-default.conf 50-default.conf_$(date "+%Y%m%d_%H%M%S") $ sudo vi 50-default.conf cronに関するログ設定の行頭にある「#」を削除して
バージョンの確認方法 Ubuntuのバージョンは下記の方法で確認することが出来ます。 /etc/issue ファイルの確認 /etc/os-release ファイルの確認 lsb_release -a コマンド実行 /etc/issue 「/etc/issue」ファイルの内容を「cat」等で表示させることで、Ubuntuのバージョン情を確認することが出来ます。 $ cat /etc/issue Ubuntu 20.04.2 LTS \n \l /etc/os-release 「/etc/os-release」ファイルには、Ubuntuのバージョンの他にもコードネームや公式サイトのURL等の情報も記述されています。 $ cat /etc/os-release NAME="Ubuntu" VERSION="20.04.2 LTS (Focal Fossa)" ID=ubuntu ID_LIKE
VSCodeからリモートホストへSSH接続が出来るようになると色々と捗ります。 VSCodeからリモートホストへSSH接続を行うためには、VSCodeの拡張機能である「Remote Development」をインストールする必要がありますので、そのインストール方法やSSH接続用の設定について記述していきます。 ちなみに「Remote Development」拡張機能には下記の機能が含まれています。 「Remote Development」 「Remote - SSH」 「Remote Explorer」 「Remote - SSH:Editing Configuration Files」 「WSL」 インストール VScodeを起動し、画面上部のメニューから「表示」-「拡張機能」と選択します。 拡張機能のマーケットプレースで「Remote Development」を検索し、表示された「Re
コメント書き方 シェルスクリプト内にコメントを書く場合は、「#」を入力してからその後にコメントを書くという形式になり 「#」を入力した位置から行の最後までがコメントとして扱われます。 ただし、「"」(ダブルクォーテーション)や「'」(シングルクォート)で囲っている場合は、文字列として扱われてしまいコメント扱いにはなりません。 記述例 何種類かのパターンを記述して「comment.sh」というシェルスクリプトを作成しました。 行頭に「#」を記述して一行全部をコメントとする 行の途中に「#」を記述してコメントとする 「#」をダブルクォートで囲んでみる 「#」をシングルクォートで囲んでみる #!/bin/bash # # 1.行を全部コメントとする # echo "Hello World." # 2.行の途中からコメントとする echo "Hello World. # 3.ダブルクォートで囲んで
「CentOS7」からNTPのサーバが、「ntpd」から「chronyd」へと変更となりましたので、その設定方法を説明していきます。 ちなみに、NTPクライアントの機能は「chronyc」コマンドとなっています。 chronydの設定 「chronyd」の設定ファイルは「/etc/chrony.conf」となり、初期設定でも時刻同期させる事は可能ですが、とりあえず設定を行っておいたほうがよさそうな項目について説明をしていきます。 ちなみに「CentOS7」での初期設定は下記の通りとなっています。 # Use public servers from the pool.ntp.org project. # Please consider joining the pool (http://www.pool.ntp.org/join.html). server 0.centos.pool.ntp.
TeraTermでファイルを送受信する方法 SSHクライアントであるTeraTermにはSCP使用してサーバとファイルの送受信を行う機能があります。 今回はその機能を使用してファイルを転送する方法を説明します。(とっても簡単です) この機能を使用すると、ファイルを送受信するためにFTPサーバをいちいち構築する必要がなくなるのでとても便利ですよ。 フォルダ(ディレクトリ)は取り扱いできません SCPではフォルダ(ディレクトリ)を送受信することが出来ません。 そのためフォルダを送受信したい場合は、圧縮等を行って1つのファイルとしてから送受信を行う必要がありますので、注意をしてください。 ファイルの送信(アップロード) ファイルの送信を行いたいサーバにSSHで接続したあとに、TeraTermで「ファイル」-「SSH SCP」と選択します。 ファイルを送受信するためのウィンドウが表示されるので、「
virtual_mailbox_domains バーチャルドメインとして運用したいドメインの情報を設定します。 注意点としては、main.cfのmydestinaitonにはバーチャルドメインとして運用したいドメインは記述しないようにしてください。 そちらにも記述があると、バーチャルメールボックスの方ではなくシステムのアカウントの方にメールが配送されてしまいます。 ファイルを指定する形式 この形式の場合はバーチャルドメインとして管理するドメイン情報を記述したファイルを指定します。 virtual_mailbox_domains = /etc/postfix/vdomain この例では「/etc/postfix/vdomain」というファイルを新規に作成して、そこにドメインを記述していくという形になります。(ファイル名に決まりはないのでお好きな名前で作成してください) ドメインを直接指定する
「CentOS7」で用意されてる「gcc」のバージョンは「4.8」と古いものとなっていて、新しいバージョンの「gcc」を使用するためにはソースからコンパイルしインストールする必要がありますので、その手順を説明していきます。 事前準備 gccとgcc-c++ 「gcc」をソースからコンパイルするのに「gcc」と「gcc-c++」が必要なので、事前に「yum」を使用してインストールをしておきます。 # yum install gcc # yum install gcc-c++ ちなみに、「gcc-c++」がインストールされていないと、下記のようなエラーが発生します。 configure: error: in `/usr/local/src/gcc-8.2.0/build/gcc': configure: error: C++ preprocessor "/lib/cpp" fails sani
lastlog 何も指定せずに「last」コマンドを実行すると、「/var/log/lastlog」に記録されているユーザの最終ログイン情報をすべて表示します。 一度もログインしていないユーザについては、「**一度もログインしていません**」とか「**Never logged in**」といったように表示されます。 # lastlog ユーザ名 ポート 場所 最近のログイン root pts/0 土 10月 14 10:55:56 +0900 2017 bin **一度もログインしていません** daemon **一度もログインしていません** adm **一度もログインしていません** ##### 中略 ##### sshd **一度もログインしていません** postfix **一度もログインしていません** chrony **一度もログインしていません** tamohiko pts/
SSH設定 CentOS7ではPAMの「pam_faillock」モジュールの機能を使用することで、任意の回数ログインに失敗したユーザのアカウントをロックすることが出来ます。 そのためsshdでPAMが使用できるように「/etc/ssh/sshd_config」で「UsePAM yes」の設定が有効になっていることを確認して下さい。(CentOS7.5では初期状態で有効になっていました) UsePAM yes 設定変更を行った場合はsshdを再起動して設定を反映させて下さい。 # systemctl restart sshd PAM 設定 (password-auth) SSHで任意の回数ログインに失敗したユーザのアカウントをロックさせたい場合、「/etc/pam.d/password-auth」のauthセクションとaccountセクションに「pam_faillock」モジュールの設定を
シェルスクリプトでファイルやディレクトリが存在しているかどうかを確認する方法です。 確認には「if」文を使っています。 ファイルが存在する場合 if文の演算子で「-e」を使うことでファイルが存在しているかどうかを確認することが出来ます。 if [ -e ファイル ]; then 実行するコマンド fi 「test.txt」というファイルが存在するかどうかを確認し、ファイルが存在する場合「File exists.」と表示させるスクリプトを作成しました。 #!/bin/bash FILE="test.txt" if [ -e $FILE ]; then echo "File exists." fi 動作検証用に「test.txt」ファイルを作成します。 $ touch test.txt 「check_file_1.sh」を実行すると「test.txt」は存在するので「File exists.」
構築環境 今回は外出先からVPNで自宅のOpenVPNサーバに接続し、VPN経由でwebサイトを閲覧したり自宅内のネットワークに接続できる環境を構築していきます。 自宅に構築する「OpenVPNサーバ」の設定は下記を想定しています。 接続方式はtun(ルーティング)方式 認証局(CA)も同じサーバに構築 認証方法は証明書認証 VPN用仮想NIC(tun0)にはIPマスカレード設定 ※ 証明書認証は「証明書」と「秘密鍵」で認証する方式で、クライアント毎に個別の「証明書」と「秘密鍵」を生成して配るという方式になります VPN接続は下記のようなイメージとなります。 クライアントから自宅ルータのグローバルIPの「UDP/1194番」ポートにVPN接続 自宅ルータは「OpenVPNサーバ」へポートフォワーディング 「OpenVPNサーバ」と「クラインアント」間でVPNのトンネルが張られる クライアン
※メール通知を行わないのであればメール関連の設定は必要ありません。 PURGE_DENY 接続を遮断する期間の設定を行います。期間は「数字」+「単位」で設定できます。 m (分) h (時間) d (日) w (週) y (年) 「CentOS7」のデフォルト設定は4週間(4w)となっていましたが、自分で制限に引っかかったときに悲しい思いをするので、今回は1時間で解除されるように変更しました。 PURGE_DENY = 1h 下記のように時間を指定しなかった場合は、永久に自動解除されませんのでご注意を… PURGE_DENY = PURGE_THRESHOLD 接続拒否の設定を自動的に解除する回数を設定します。 初期設定では「0」に設定されていて自動解除の回数に制限はなく、何度でも「PURGE_DENY」で設定した期間が経過すると接続拒否の設定を解除してくれます。 何度も攻撃を受けるのは嫌
fierwalld初期定義サービス 「firewalld」には最初から、ある程度サービスが定義されていて、サービスの定義ファイルは「/usr/lib/firewalld/services」フォルダに格納されています。 # ls /usr/lib/firewalld/services/ RH-Satellite-6.xml ipsec.xml pmwebapis.xml amanda-client.xml iscsi-target.xml pop3s.xml bacula-client.xml kerberos.xml postgresql.xml bacula.xml kpasswd.xml proxy-dhcp.xml dhcp.xml ldap.xml radius.xml dhcpv6-client.xml ldaps.xml rpc-bind.xml dhcpv6.xml libv
「CentOS7」で「sendmail」を使用するための最低限必要な設定をまとめています。 DNSやファイアウォールの設定は完了していることが前提です。 検証環境 今回は下記の環境で検証しています。 CentOS7.3 sendmail.x86_64 0:8.14.7-5.el7 sendmail-cf-8.14.7-5.el7.noarch sendmailインストール 「CentOS7」のデフォルトMTA(Mail Transfer Agent)は「postfix」となっているため、「sendmail」を使用するためには別途インストールをする必要があるので、「yum」で「sendmail」と「sendmail-cf」をインストールします。 # yum install sendmail sendmail-cf 設定項目 「sendmail」を使用するにあたり最低限必要な項目を設定していき
sshfsについて sshfsはsshを経由して他のサーバのディレクトリをマウントすることができます。 一度sshfsでマウントしてしまえば、データをコピーする際に毎回scpやrsyncなどのコマンドを使わずとも、cpコマンドで簡単にデータをコピーできるのでとても便利ですね。 sshfsのインストール CentOSの場合は標準のリポジトリには含まれていないので、「epel」リポジトリを使用してインストールを行う必要があります。 # yum install --enablerepo=epel sshfs 「epel」リポジトリの追加手順はこちらのページを参考にしてください。 sshfsの使用方法 「sshfs」の使用方法について説明していきます。 マウント方法 「sshfs」を使用して別サーバのディレクトリをマウントする方法は下記の通りとなります。 sshfs [ユーザ名@]ホスト:[ディレ
シェルスクリプトで「while read line」を使い、ファイルの中身を一行ずつ読み込ませるための方法色々です。 標準入力へリダイレクトさせて読み込む ファイルを標準入力へリダイレクトさせて中身を一行ずつ読み込ませています。 #!/bin/bash while read line do echo $line done < ファイル名 スクリプト例 「list.txt」というファイルの中身を読み込ませて、一行ずつ「echo」で表示させています。 $ cat list.txt one two three four five #!/bin/bash while read line do echo $line done < ./list.txt 上記スクリプトの実行結果です。 $ sh fileread_1.sh one two three four five ファイルを変数に格納して読み込む
ユーザ名 その名の通りユーザのアカウント名が記述されています。 パスワード 最近のOSでは、このフィールドに記述される設定値は以下の3種類になります。 x 暗号化されたパスワードが「/etc/shadow」ファイルで管理されていること * 一時的にユーザのアカウントを無効化する場合に設定する 設定なし パスワードが設定されていない状態を表す 最近のOSはこのフィールドに「x」と設定されていると思いますが、これはシャドウパスワード(/etc/shadow)を使用していることを表しています。 昔のOSは暗号化されたパスワードがこのフィールドに直接記述されていたのですが、最近は暗号化されているといえ一般ユーザにパスワードを見せるのはセキュリティ上好ましくないため、パスワードは「/etc/shadow」ファイルで管理されるようになっています。 それぞれのパーミッションを確認してみると、「/etc/
CentOSにインストールされている「apache」を「munin」で監視する方法です。 作業は監視対象サーバ(監視されている側)で行います。 監視環境の構築手順は以下のページで説明しています。 Munin+apachでの監視環境構築 Munin+nginxでの監視環境構築 apacheの監視について 初期状態の「apache」は、「munin-node」での監視に必要なステータスの情報が取得できないため、ステータスを取得できるように設定を追加する必要があります。 追加する設定は「CentOS 6」と「CentOS 7」で、設定ファイルの場所や設定内容が異なるため、それぞれの設定について説明をしていきます。 設定する項目は「CentOS6」「CentOS7」ともに下記内容になります。 ステータス表示モジュールの有効化 (LoadModule status_module modules/mo
クォートの種類 シェルスクリプトではクォートによって囲まれた中身の処理がそれぞれ異なります。 そこで、クォートごとの処理内容についてまとめてみました。 シングルクォート 「’」 内容を文字列として出力 ダブルクォート 「”」 変数の内容を文字列として出力 バッククォート 「`」 コマンドとして実行して結果を出力 シングルクォート 囲んだ中身をすべて文字列として使用したい場合に「’」シングルクォートを使用します。 シングルクォートで囲った場合は、たとえ中に変数があったとしても中身を展開することなく変数がそのまま文字列として処理されてしまします。 では、実際にシェルスクリプトを作成して実行してみます。 #!/bin/bash STRINGS='Hello World.' echo '$STRINGS' 変数「STRINGS」に「Hello World.」という文字列を格納してechoで表示
「redmine_ics_export」プラグインを使用して「redmine-3.3.5」とgoogleカレンダーを連携させる方法です。 今回はgoogleカレンダーと連携させていますが、「iCal」形式に対応しているのであれば他のカレンダーとも連携できると思います。(実際に試してみていないので何とも言えませんが…) redmine_ics_export 本手順では「redmine」が「/opt/redmine」にイストールされているものとしていますので、みなさんの環境にあわせて適宜読み替えてください。 インストール 「redmine」の「plugins」フォルダに移動してから、「git」コマンドを使って「redmine_ics_export」リポジトリをローカルにコピーしてきます。 # cd /opt/redmine/plugins/ # git clone https://github
ハッシュ値を比較してファイルの同一性を確認しよう 何かしらのデータをダウンロードしたりコピーする際に、そのデータが配布元のデータと同じであること(データが壊れていないか、改ざんされていないか)を確認することはとても大切なことです。 データの同一性を確認するには、ダウンロードしたデータのハッシュ値を計算して、データの配布元で用意されている「MD5」「SHA1」「SHA256」「CRC」等のハッシュ値と比較することで、ダウロードしてきたデータが破損していなか、改ざんされていないことを確認することができます。 今回はLinux環境とWindows環境のそれぞれで、各形式のハッシュ値を計算する方法ついて説明していきます。 Linux環境 Linux環境で「MD5」「SHA1」「SHA256」「CRC」のハッシュ値を計算する方法をまとめています。 「md5sum」コマンド(MD5) 「md5sum」
夏時間について 日本は夏時間が無いので「DST active: n/a 」となりますが、タイムゾーンを夏時間がある「America/New_York 」に設定してみて、どのように表示されるかを試してみました。 # timedatectl Local time: 火 2016-12-27 01:58:37 EST Universal time: 火 2016-12-27 06:58:37 UTC RTC time: 火 2016-12-27 06:58:38 Time zone: America/New_York (EST, -0500) NTP enabled: n/a NTP synchronized: no RTC in local TZ: no DST active: no Last DST change: DST ended at 日 2016-11-06 01:59:59 EDT
自宅サーバ(CentOS 7.2)でメールサーバを構築する際に、プロバイダがOutbound Port 25 Blocking(OP25B)を行っている場合に対応方法です。 Outbound Port 25 Blocking(OP25B)について Outbound Port 25 Blocking(OP25B)とは、プロバイダーが迷惑メールを減らすために行ってる対策の1つです。 迷惑メールの大多数はプロバイダーのメールサーバは使用されず、ユーザのメールサーバから直接送信されるという特徴があります。 そのため、プロバイダーのメールサーバを使用せずにユーザから直接送信されるメールをブロックすることで、迷惑メールを減らそうという対策内容になります。 簡単に言うと、外向けの25番ポート(smtp)宛通信がブロックされるということです。 Outobound Port 25 Blocking(OP25
postfix配送経路設定 メール中継サーバや、メールゲートウェイなどを構築する際に必要になることが多いと思うのですが、 postfixでドメインやメールアドレスごとに配送先を指定する方法です。 postfix設定変更 postfixの設定ファイルであるmain.cfに「transport_maps」項目を追加し、 メールの配送経路指定を設定します。 # cp -p /etc/postfix/main.cf /etc/postfix/main.cf_yyymmdd # vi /etc/postfix/main.cf 編集箇所 transport_maps = hash:/etc/postfix/transport trapsport.db作成 「transport_maps」項目を追加します。 一般的には、メール配送(transport)経路の情報はtransportファイルに記述して、
現在のロケール確認方法 現在設定されているロケールは、「locale」コマンドを実行することで確認することができます。 $ locale LANG=ja_JP.UTF-8 LC_CTYPE="ja_JP.UTF-8" LC_NUMERIC="ja_JP.UTF-8" LC_TIME="ja_JP.UTF-8" LC_COLLATE="ja_JP.UTF-8" LC_MONETARY="ja_JP.UTF-8" LC_MESSAGES="ja_JP.UTF-8" LC_PAPER="ja_JP.UTF-8" LC_NAME="ja_JP.UTF-8" LC_ADDRESS="ja_JP.UTF-8" LC_TELEPHONE="ja_JP.UTF-8" LC_MEASUREMENT="ja_JP.UTF-8" LC_IDENTIFICATION="ja_JP.UTF-8" LC_ALL= こ
セット作成例 今回作成する「BLACKLIST」という名前のセットには、ネットワークアドレス登録するのでタイプは「hash:net」を指定して作成します。 # ipset create BLACKLIST hash:net ネットワークアドレス追加 セットの作成が完了しましたら、「ipset add」コマンドでネットワークアドレスを追加していきます。 ipset add セット名 ネットワークアドレス/ネットマスク 追加例 先ほど作成したセットである「BLACKLIST」にネットワークアドレスを追加していきます。 # ipset add BLACKLIST 192.168.0.0/24 # ipset add BLACKLIST 192.168.2.0/24 追加確認 セットに登録された情報は下記のコマンドで確認することが出来ます。 ipset list セット名 先ほど実際に登録した内容
オプションの説明 上記コマンドで使用しているオプションの説明となります。 「c」 新しいアーカイブを作成 「x」 アーカイブからファイル・ディレクトリを展開 「t」 アーカイブのリストを表示 「f」 アーカイブ・展開するファイル・ディレクトリを指定 「v」 詳細なログを表示(任意) 「z」 gzipによる圧縮・解凍を実施 アーカイブ Tips アーカイブを作成する際のちょっとしたTipsです。 複数のファイル・ディレクトリをアーカイブ 複数ファイル・ディレクトリをアーカイブする場合は、下記の通りアーカイブ対象のディレクトリやファイルを続けて指定します。 tar czvf アーカイブ名.tar.gz ファイル1 ファイル2 ファイル3 tar czvf アーカイブ名.tar.gz ディレクトリ1 ディレクトリ2 ディレクトリ3 ファイルとディレクトリを一緒にアーカイブすることもできます。 t
検証環境 今回はCentOS6.6上で検証を行っています。 CentOS 6からのネットワーク設定について CentOS 6から「NetWorkManager」という、ネットワーク設定用のサービスが動作しているため、「 /etc/sysconfig/network-scripts/ifcfg-eth0」設定ファイルを手動で編集しても、「NetworkManager」の影響で各種設定ファイルが上書きされるなど色々と問題がでてしまいます。 「NetworkManager」を使用することで、ネットワーク設定が簡単になるなどのメリットもあるのですが、従来の方法で設定を行いたいと言った場合は「NetworkManager」サービスを停止させる必要があります。 NetworkManagerの停止 現在「NetoworkManager」サービスが起動しているか確認を行い、動作している場合は停止させます。
次のページ
このページを最初にブックマークしてみませんか?
『server-memo.net』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く