歳をとったせいもあるのですが、2週間前に、調べながらできたことが、2週間後にはできなくなっていた・・・・・

 

やっぱり、スキルアップの為にやっていることでもありますが、検証しながらマニュアルというか、自分手順書を作らねば!って改めて思いました。

 

ローカル内のWebサーバにPukiwikiを立てて、マニュアル作成していたのですが、3年ぐらい更新してなかったので、改めて、今月の頭から開始しました。

 

 

 

サイトをみればわかることも多いのですが、そのサイトがいつ閉鎖になるかもしれないので、人に公開しないローカルサーバって事もあるのですが、参照文献として そのサイトの内容を自分なりの文章にして、すぐにPukiwiki内にみれるようにもしています。

 

と言っても、手順も書いて、参考にした文章も書いてってやっていると結構時間が取られますね・・・・

 

そう思っていたら、Pukiwikiで書き込みができなくなり、sshやほかのサービスにもアクセスできなくなりって事が発生しはじめました。

 

なんでだろうと行き着いた結果が、ClamAVのせいだったって事になったのですが、改めてローカル内のWebサーバのClamAVを再構築している手順書をPukiwikiにも書いています。

 

その際に参考にしたのが、下記のサイト 作者の方ありがとうございました。

http://www.server-memo.net/server-setting/clamav/epel-clamav-install.html

 

http://d.hatena.ne.jp/flageo/20120301/p1

 

http://d.hatena.ne.jp/flageo/20120301/p1

 

これらをみるまで、calmd とclamscanの違いを知らなかったという恥ずかしい話もありますが、この違いがわかったおかげで、再構築しなおした事により、この数日は問題なく動作しています。

 

 

 

CentOS7で、VPN検証の為、仮のインターネット環境を作成。 pppoeサーバと、iptablesを利用したNATルータにする為、CentOS7のNICを2枚にする。

※間違っていたらすいません。CentOSは最少構成でインストールしていないので、条件が違うのはご容赦ください)

それと、色々情報をあげていている方々ありがとうございます。参照したサイトのリンクも貼らせていただきました。

ネットワークはこんな感じ

 

検証用ネットワーク.png

 

NICを追加するが、前提条件として、インターネット側にでるNICを追加したNIC。検証ネットワーク側を、元々ついていたNICにする。

NICを選定

AX88179というチップのNICは、自動認識してくれるので、だいぶ前に買った、logitec LAN-GTJU3を使用することに。

挿したらすぐに認識された。

状態確認

[root@samba_test ~]#  lsusb
  Bus 002 Device 002: ID 0b95:1790 ASIX Electronics Corp. AX88179 Gigabit Ethernet
 Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

状態確認

[root@localhost ~]# nmcli d
 デバイス     タイプ    状態      接続
 virbr0       bridge    接続済み  virbr0
 enp0s29f7u4  ethernet  接続済み  有線接続 1
 ens32        ethernet  接続済み  ens32
 lo           loopback  管理無し  --
 virbr0-nic   tun       管理無し  --
 wls33        wifi      管理無し  --

PLANEXのUSBタイプのNICで USB-LAN100R、USB-LAN1000Rが自動認識してくれるらしいから、これでも良いかも。(参照:http://blog.treedown.net/entry/2016/06/12/010000


長い名前が勝手につくので、変更する。 ちなみに、私のノートPCの場合、日本語で「有線接続 1」って勝手についた為、「eth-usb1」と変えた。
参考:http://www.maruko2.com/mw/NetworkManager_CLI_(nmcli)_%E3%81%A7%E3%83%8D%E3%83%83%E3%83%88%E3%83%AF%E3%83%BC%E3%82%AF%E3%82%92%E8%A8%AD%E5%AE%9A%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95

[root@samba_test ~]# nmcli c m "有線接続 1" connection.interface-name eth-usb1 connection.id enp0s29f7u4
[root@samba_test ~]#

 

PPPoEサーバインストール 

[root@samba_test ~]#yum install ppp rp-pppoe
[root@samba_test ~]#

参照:http://www.kroom.net/index.php?Linux%2FPPPoE%E3%82%B5%E3%83%BC%E3%83%90

上記の記載通りに、SELinuxも無効にする。
SELINUX=enforcing

SELINUX=disabled  に変更

[root@samba_test ~]# vi /etc/selinux/config
 # This file controls the state of SELinux on the system.
 # SELINUX= can take one of these three values:
 #     enforcing - SELinux security policy is enforced.
 #     permissive - SELinux prints warnings instead of enforcing.
 #     disabled - No SELinux policy is loaded.
 #SELINUX=enforcing
 SELINUX=disabled
 # SELINUXTYPE= can take one of three two values:
 #     targeted - Targeted processes are protected,
 #     minimum - Modification of targeted policy. Only selected processes are protected.
 #     mls - Multi Level Security protection.
 SELINUXTYPE=targeted
[root@samba_test ~]#
[root@samba_test ~]#

ネットワーク設定 

IP設定、ルーティングを有効、

ネットワークマネージャーを止める 

自分が確認した所、CentOS7から導入されているネットワークマネージャーが動作していると、PPPoEサーバの設定がうまくいかないので、(IPアドレスを0.0.0.0って設定しようとすると、ネットワークマネージャーがインターフェースを落としてしまうため、PPPoEがしゃべれない)

[root@samba_test ~]# systemctl stop network
[root@samba_test ~]#


再起動した時に、動作しないようにしたい場合は、続けて

[root@samba_test ~]# systemctl disable network
[root@samba_test ~]#

ルーティングを有効にする

[root@samba_test ~]# vi /etc/sysctl.d/10-ipv4.conf
 net.ipv4.ip_forward = 1

 

 

PPPoE設定 

PAP,CHAP認証を設定

[root@samba_test ~]# vi /etc/ppp/pppoe-server-options
 # PPP options for the PPPoE server
 # LIC: GPL
 require-pap
 require-chap
 #login
 lcp-echo-interval 10
 lcp-echo-failure 2


CHAP、PAP登録

[root@samba_test ~]#
[root@samba_test ~]#
[root@samba_test ~]# vi /etc/ppp/chap-secrets
 # Secrets for authentication using CHAP
 # client        server  secret                  IP addresses
 test@test * test *
 test1@test * test 10.0.0.1

構文は
"ユーザ名" "リモートサーバ名" "パスワード" "割り当てIPアドレス" の順に、半角スペースをいれる。固定IPアドレスを使い時以外は。割り当てIPはワイルドカードでよい。あくまで検証用なので、上記の用に、固定IPアドレスを振りたい相手と、不定のIPアドレスでよいパターンとを作ると、インターネットVPNみたいな仮環境にできる。
リモートサーバ名は、ワイルドカードで良い。

[root@samba_test ~]# vi /etc/ppp/pap-secrets
 # Secrets for authentication using CHAP
 # client        server  secret                  IP addresses
 test@test * test *
 test1@test * test 10.0.0.1

PPPoEサーバを起動させる 

PPPoEの受け口のNICのIPアドレス設定 

一回落として、0.0.0.0のIPアドレスを振る。

[root@samba_test ~]#ifdown ens32
[root@samba_test ~]#ifconfig ens32 0.0.0.0 up
[root@samba_test ~]#

 

 

 

PPPoEサーバ起動 

[root@samba_test ~]#pppoe-server -I ens32 -L 10.0.0.254
[root@samba_test ~]#


常時起動したい時は、起動スクリプトを作成し、登録。自分はあくまで検証の為、常時起動させたくなかったので、作成せず。
起動スクリプト作成方法参照:
http://www.kroom.net/index.php?Linux%2FPPPoE%E3%82%B5%E3%83%BC%E3%83%90

iptablesの設定 

firwwalldを止めてから、IPマスカレードの設定をする。

firewalldを止める。

[root@samba_test ~]#systemctl stop firewalld
[root@samba_test ~]#

再起動時にもどうさせたくない時は、下記を行う

[root@samba_test ~]#systemctl disable firewalld
[root@samba_test ~]#

 

iptablesの設定 

すべての設定を初期化してから、投入

[root@samba_test ~]#iptables -F
[root@samba_test ~]#
[root@samba_test ~]#iptables -t nat -A POSTROUTING -s 10.0.0.0/8 -j MASQUERADE
[root@samba_test ~]#

IPマスカレード(NAT)の設定を確認

 

[root@samba_test ~]#
[root@samba_test ~]# iptables -t nat -L
  Chain PREROUTING (policy ACCEPT)
  target     prot opt source               destination
 
  Chain INPUT (policy ACCEPT)
  target     prot opt source               destination
 
  Chain OUTPUT (policy ACCEPT)
  target     prot opt source               destination
 
  Chain POSTROUTING (policy ACCEPT)
  target     prot opt source               destination
  MASQUERADE  all  --  10.0.0.0/24          anywhere

これで、PPPoEで接続したネットワークから、インターネットにも接続できるはず。
確認は、/var/log/messagesと、ifconfig及び、検証ネットワークのPPPoEクライアントのルータ等で確認が取れる

うまく動作しません。

 

設定する時にPPPoEをしゃべらせるインターフェースにIPを振らないで、Upさせるのですが、CentOS7では、NetworkManagerが邪魔して、インターフェースを落としてしまいました。

 

その為、NetworkManagerを止めて、従来のifconfigで設定したら、うまく動作しました。

 

そのうち、じぶんが経験したPPPoEサーバを構築して仮のインターネット環境を立てるやり方を公開します、

#text は、「空白のみのテキストノード」ってやつですが、HTMLで、

<div id="title">

<div class="hoge00">aaaaa</div>

<div class="hoge01">bbbbb</div>

<div class="hoge02">ccccc</div>

</div>

としたときに、ブラウザ上では、下記ように空行が入ってしまいました。

aaaaa

(←ここに空行がはいる)

bbbbb

(←ここに空行がはいる)

ccccc

 

これが、単純な話ですが、<div class=~~~~>の前に、思わず、半角スペースをいれてしまうという超初歩的なミス・・・・・・

それを、コピーして使ったから、全部に空行がはいってしまった(-_-;)

 

半角スペースを消して、TABに修正して 無事 空行が消えました。

 

何やってんだか・・・・って思いましたが、忘れないように、恥をさらすようですが、ブログに記載してしまいました。

 

Wordpressで、HPを作成しようとしていて、結構はまっています。

 

今までちゃんとPHPを勉強していなかったせいでもあるんですけど、結構苦労しています。

 

最初に、構成が複雑なテーマの子テーマを改造しようと思ったのですが、構成を理解するだけで、四苦八苦・・・・・

 

現在は基本のテーマから、色々やってみています。今月中に理解して、来月にはアップできたらな・・・・・と思っています。

 

これは関係ありませんが、調べ物をしていて本を見るとすごく読みずらい・・・・ これが老眼か~~~って・・・・・

 

は~~~~~ しょうがないけど、歳をとった実感はいやですね~ とにかく年相応にやるしかないのでがんばろうっと

WAF(Web Application Firewall ) のModSecurity導入したら、Wordpress、MovableTypeでエラーになった・・・・

 

ルールをキビしくしたからって事もあると思うけど、ルールをゆるくするのも違うと思うし・・・・・

 

まず、EPEL リポジトリの追加してからインストール

EPEL リポジトリ追加方法

https://centossrv.com/epel.shtml

 

ModSecurity導入

https://www.websec-room.com/2013/11/17/1019

ここに、IPAのWAF導入の仕方等のリンクもあります。

 

 

簡単にルールを適用外にするには、httpd.confの、Wordpress等を入れたディレクトリ(例えばwordpressディレクトリ)に以下を追記します。

<Directory "/var/www/html/wordpress">

<IfModule mod_security2.c>

   SecRuleEngine Off

</IfModule>

</Directory>

 

これで外れますが、何のためにWAFを導入したかわけのわからない事になります。

 

上記は検証環境とかでよいとは思いますが、外に公開する場合は、だめな方法です。

 

上記ははしょったやり方ですが、実際、ちゃんと動作させてやる場合、自分の場合ですが、まずセキュリティのルールを設定します。と言ってもデフォルトをちょっと変えただけです。

これも、https://www.websec-room.com/2013/12/06/1237を参照に クロスサイト・スクリプティングと SQL インジェクションだけにした場合の話です。そして、ログで、何が弾かれたか確認することを含めて、SecRuleEngine DetectionOnlyを設定します。

[root@localhost ~]# vi /etc/httpd/conf.d/mod_security.conf

<IfModule mod_security2.c>

    # ModSecurity Core Rules Set configuration

        IncludeOptional modsecurity.d/*.conf

      IncludeOptional modsecurity.d/activated_rules/*.conf

    Include modsecurity.d/activated_rules/modsecurity_crs_41_xss_attacks.conf

    Include modsecurity.d/activated_rules/modsecurity_crs_41_sql_injection_attacks.conf

    # Default recommended configuration

    #SecRuleEngine On

   SecRuleEngine DetectionOnly     ←Wordpress動作確認の為


 

 

その後、apahceを再起動し、wordpressにアクセスしてから、ログを確認します。

[root@localhost ~]#less /var/log/httpd/modsec_audit.log   ←ログ

~~~~~~~~~~~~~~~~~~~~

---e50d3d00-H--

Message: Warning. Pattern match "([\\~\\!\\@\\#\\$\\%\\^\\&\\*\\(\\)\\-\\+\\=\\{\\}\\[\\]\\|\\:\\;\"\\'\\\xc2\xb4\\\xe2\x80\x99\\\xe2\x80\x98\\`\\<\\>].*?){4,}" at ARGS_NAMES:data[wp-refresh-post-nonces][post_id]. [file "/etc/httpd/modsecurity.d/activated_rules/modsecurity_crs_41_sql_injection_attacks.conf"] [line "159"] [id "981173"] [rev "2"] [msg "Restricted SQL Character Anomaly Detection Alert - Total # of special characters exceeded"] [data "Matched Data: - found within ARGS_NAMES:data[wp-refresh-post-nonces][post_id]: data[wp-refresh-post-nonces][post_id]"] [ver "OWASP_CRS/2.2.9"] [maturity "9"] [accuracy "8"] [tag "OWASP_CRS/WEB_ATTACK/SQL_INJECTION"]

Apache-Handler: application/x-httpd-php

Stopwatch: 1487313950994609 694681 (- - -)

Stopwatch2: 1487313950994609 694681; combined=10787, p1=165, p2=10609, p3=3, p4=1, p5=8, sr=63, sw=1, l=0, gc=0

Response-Body-Transformed: Dechunked

Producer: ModSecurity for Apache/2.7.3 (http://www.modsecurity.org/); OWASP_CRS/2.2.9.

Server: Apache/2.4.6 (CentOS) OpenSSL/1.0.1e-fips mod_auth_gssapi/1.4.0 mod_auth_kerb/5.4

Engine-Mode: "DETECTION_ONLY"

 

ここで確認するにはIDです。このIDを確認後、このIDを例外処置にする設定をします。

[root@localhost wp_4_2_2]# vi /etc/httpd/conf.d/mod_security.conf<IfModule mod_security2.c>
    # ModSecurity Core Rules Set configuration
        IncludeOptional modsecurity.d/*.conf
    #coment out
    #   IncludeOptional modsecurity.d/activated_rules/*.conf
    Include modsecurity.d/activated_rules/modsecurity_crs_41_xss_attacks.conf

~~~~省略~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    SecAuditLogType Serial
    SecAuditLog /var/log/httpd/modsec_audit.log
    SecArgumentSeparator &
    SecCookieFormat 0
    SecTmpDir /var/lib/mod_security
    SecDataDir /var/lib/mod_security
#wordpress 追加
SecRuleRemoveById 981173



</IfModule>

 

 

他の物も確認し、追記していきます。ちなみにphpmyadminを引っかかりますので、相当なIDを追記する必要があります。

 

お恥ずかしい話ですが最近まで、知らなかったのですが、WordpressのログインIDは何もしないとすぐにばれちゃうみたいです。

 

現在の最新盤4.7.2ではまだ確認していませんが、こりゃ知らんかったびっくり!!!

 

それを避けるための方法で、下記のサイトに記述があって参考になりました。作者の方ありがとうございます。

 

http://tamezatu.com/wordpress-login-user-hidden/

 

どのサービスも反応しなくなり、sshでもログインできない・・・・・・ ログインした後のプロンプトが返ってこない

急になんで?って事で、logを確認したらこんな事が・・・

Jan 23 05:38:52 localhost kernel: INFO: task kthreadd:2 blocked for more than 12
0 seconds.
Jan 23 05:38:52 localhost kernel: "echo 0 > /proc/sys/kernel/hung_task_timeout_s
ecs" disables this message.
Jan 23 05:38:52 localhost kernel: kthreadd        D ffff880118b83900     0     2
      0 0x00000000
Jan 23 05:38:52 localhost kernel: ffff880118b836c0 0000000000000046 ffff880118b1
0b80 ffff880118b83fd8


そのあと、色々あるのですが、どうもこのせいでカーネルが止まったらしい・・・・・


googleに載っていますが、

INFO: task kthreadd:2 blocked for more than 120 seconds.

「RAIDブロックデバイスが120秒間返答なしでタイムアウトでハングした」


って事らしいので、ログに書いてある通り、下記のコマンドを実行

#echo 0 > /proc/sys/kernel/hung_task_timeout_secs


と記述。再起動しても、値が0のままだったので、しばらく様子見をすることに・・・

 

(他の方の記事に、これをしても再発したって書いてあったので・・・)



ついでに/var/log/messagesの大量のログが気になった為、
/etc/systemd/system.confのLogLevelを変更

#LogLevel=info
  ↓
LogLevel=notice

に変更しました。

メールアドレスは、詐称等が結構簡単です。そこで、迷惑メール業者は、実際に存在するメールアドレスを詐称してメールを送信します。


その為、正当性を検証する仕組みがあります。SPFです。


SPFについては、左記を参照してください。http://salt.iajapan.org/wpmu/anti_spam/admin/tech/explanation/spf/


レンタルサーバを使用していて、独自ドメインをもっている場合、レンタルサーバによりますが、DNSにTXT情報として、SPFを記述する事ができます。


レンタルサーバ業者に依頼したり、自分でやったりとかですが、書き方が色々で、どうやって記述したら良いんだろう?って事があるかもしれません。


あくまで、自分の経験上ですが、メールの送信元サーバをIPアドレスで指定するやり方がよいと思います。


TXTレコードの書き方はそれぞれのレンタルサーバによって違いますので、やり方は記述できませんが、TXTレコードにSPFを書くには以下のように記述します。(IPアドレスは、XXXで表現しています)


v=spf1 +ip4:XXX.XXX.XXXX.X/26 +ip4:XXX.XXX ~all


上記はネットワーク指定と、あるIPを決め打ちで指定した感じです。

それと、設定を解説したりするサイトとかで、ip4の前に+がなかったりするのがあるのですが、これの場合は、失敗する事がありますので、+を入れた方が無難です。

 

 

SPFを設定した後に、実際に、メールを送って、メールをソースを見れば、SPF認証が通っているか確認できます。

ソースのヘッダー内のAuthentication-Resultsを確認します。下記は、実際にSPFを設定したメールから、googleにメールを送った場合です。(メールアドレス、IPは記述しません)

Authentication-Results: mx.google.com;
       spf=pass (google.com: domain of xxxx@xxx.com designates XXX.XXX.XXX.XX as permitted sender) smtp.mailfrom=xxxx@xxx.com


passって出ていますので、SPF認証が通った事になります。


ちなみに、上記の+を記述しなかった時ですが、下記のように表示されました。

Authentication-Results: mx.google.com;
       spf=softfail (google.com: domain of transitioning xxxx@xxx.com does not designate XXX.XXX.XXX.XX as permitted sender) smtp.mailfrom=xxxx@xxx.com



それと、SPFが設定できているかを確認できるサイトもありますので、実際にメールを送る前に確認してみてもよいかもしれません。

確認サイト
http://mxtoolbox.com/spf.aspx

HPをみて連絡をくださったお客様からのご依頼で、新しくWindows10で、Fortigateにアクセスしたいとの事だったのですが・・・・・ Fortigateは、僕が構築したわけではなかったのですが、話を聞いてみたら何とかできるかもしれなかったので、伺ってみてみました。

 

FortigateにVPN接続するのに、パソコンでやる場合は、Forticlientというソフトを使うのですが、Windows10と明記してあるのものは、Windowsストアで、ダウンロードしないといけなかったので、伺う前に、お客様にWindowsストアから、ダウンロードしてインストールだけしておいていただきました。

 

ところが、ForitgateにVPNユーザを追加して、アクセスしようとしても、認証で弾かれているように見えます。あれ?って思ってFortigateのログを見ると、認証でエラーになるログ自体が表示されない・・・・・

 

う~~~んと少し悩んで、やり方を速攻で変えました。

 

ForticlientのWindows Vista moretって書いてあるバージョンをダウンロードして、インストールして設定したら、すんなりログイン! ってなんでかな~~?

(ちなみに、詳細を確認しないと、Windows Vista moreって書いてあるバージョンは、Windows10 32bit ,Windows10 64bitに対応しているのは確認できませんでした。Windows10に対応とかいてあるのは、ここhttps://www.fortinet.com/content/dam/fortinet/assets/data-sheets/FortiClient.pdf

 

ま~設定できて、お客様から感謝されたのはうれしかったですが、人が設定したものを触るのはさすがにドキドキしたな~

(ちなみに構築業者と保守契約をしていなかったので、お客様の了承のもとにFortigateの設定を触りました)

このページの上部へ

ネットワーク、パソコン サーバ設定

ネットワーク構築ホリテック

 

紆余曲折しながら、独立して中小企業様向けのネットワーク構築
保守、パソコン サーバ、設定運用管理を行っています。ホームページの作成も行っています

ホームページ

 

facebook

 

icon icon

 

マウスコンピューター/G-Tune マウスコンピューター/G-Tune Microsoft Store (マイクロソフトストア) Microsoft Store (マイクロソフトストア)

サイト内検索

にほんブログ村 IT技術ブログへ
にほんブログ村

にほんブログ村 IT技術ブログ ネットワーク・SEへ
にほんブログ村

最近のピクチャ

  • 検証用ネットワーク.png