Linux 一覧

前のTeraTermのマクロを作成していて、Linuxのコマンド投入する為に、sedを使えばよいか!って思っていたら・・・・・

 

あれ、しばらくやっていなかったから、全然できない~~!!!(;一_一)

 

ってなってしまいました。

 

恥ずかしい・・・やっぱり少しやっていないだけで、こんなことになるんだって改めて認識・・・・

 

https://bi.biopapyrus.jp/os/linux/sed.html

 

また勉強しなおしです。といっても、簡単なことであれば上記を参照にすぐに書けるので、作業の自動化、検索等でうまくできりようになるべく使おうと思います。

ネットワークをやっている人は誰でもやっているとは思いますが、その場その場で、設定が必要な都合上、特に必要と感じることなくやってきました。

 

ただ、今RasberryPi3を使用して気軽にVPNをできる装置を作成して、お客様に設置しているのですが、最近数が増えてきて、毎度ユーザ名とパスワード、ポートの変更 またはシリアルポート指定とかするのが面倒になってきたので、マクロを組んで楽に作業ができるようにしようと思い、やってこなかったマクロを組むのをはじめました。

 

あまり難しいことはしていませんが、sshで、公開鍵を使用、ポートも変更してあるのを、サクッとログインできるためのマクロを下記を参照に作成しました。

https://www.j-oosk.com/

 

ほぼ丸パクリですが、こんな感じです。

;================================================
;; 引数
HOSTADDR = 'IPアドレス記載' 
USERNAME = 'ユーザ名' 
PASSWORD = 'パスワード' 
KEY_FILE = 'PC内のkeyファイルをフルパスで指定'
PORT_NUM = ':ポート番号を記載。(例:22  :を忘れないように)'
;============================================== 
COMMAND = HOSTADDR 
strconcat COMMAND PORT_NUM
strconcat COMMAND ' /ssh /2 /auth=publickey /user=' 
strconcat COMMAND USERNAME 
strconcat COMMAND ' /passwd=' 
strconcat COMMAND PASSWORD
strconcat COMMAND ' /keyfile='
strconcat COMMAND KEY_FILE
strconcat COMMAND ' /F='
 

connect COMMAND
 

end

 

 

 

やってみて、こりゃ楽! ってやっと気づいたので、もっと勉強してみようと思っています。

今まで、Trancendの32Gのカードを使って、RaberryPi3のイメージ焼いていたのですが、新しい製品がTrancendから発売されたため、そちらを購入して、イメージを焼きこんだらRasberryPi3が起動しない(;一_一)

 

なんでだろうと、悩んでいて、ふと気がついたのですが、前に製品と、新しい製品で、Windows上で言うと、容量が違うことに気付きました。

 

前の製品はWindows上では29.8Gぐらい、新しい製品が28.8Gぐらい・・・・・・

 

32Gの同じで容量で、なんで容量が違うの?って思ったのですが、下記のサイトに記載がありました。

http://uzurea.net/flashmemory-capacity-and-spec/

 

同じ32Gでもロット違いで、容量が変わってこともあるみたいで、製品ごとで、結局違うみたいです。

 

前にTrancendのために作成したイメージは、使える目いっぱいに容量を使用領域に与えたため、同じでイメージで、新しいSDカードに入れるとOS自体が立ち上がらない事になったみたいです。

 

そのため、一から作り直し、領域も少なめに設定したイメージを作成したところ、無事RasberryPi3が動き出しました。

 

動作確認が取れたSDカードは、

 

【Amazon.co.jp限定】Transcend microSD カード 32GB UHS-I Class10 Nintendo Switch/3DS 動作確認済 TS32GUSD300S-AE

 

【Amazon.co.jp限定】シリコンパワー microSD カード 32GB Nintendo Switch 動作確認済 class10 UHS-1対応 最大読込85MB/s アダプタ付 永久保証

あと、東芝と。I/Oデータの32Gの物も確かめてみようと思っています。

pwdしないで、chownは危険

  • Linux

検証環境だったからよかったのですが、ぼーっとしていて、初心者がやってしまうミスをしてしまいました・・・・・・・・

 

あるディレクトリに移動して、chown ユーザ:グループ -Rf ./* ってやろうとしたら、ふと見ると・・・・・・

 

chown ユーザ:グループ -Rf /*

 

って打っていた!( ゚д゚ ) うわ~~~ってなった時にはすでに手遅れ・・・・・

 

すべてのディレクトリのユーザが変更に、sshはできないし、webサーバは立ち上がらないし、DBは死ぬし、sambaも・・・・何もかも逝ってしまいました(ToT)

 

 

完全に、確認ミス。必ずどこにいるか確認の上やらないといけないのは承知なんですけど・・・・・ すっごく自己嫌悪。

 

sshを戻して、Apacheを戻して、DBを入れなおして、sambaも入れなおしてってやって、必要なデータを吸い出すのに丸っと一日・・・・・

 

時間がもったいない。

 

特にmariaDBを戻すのに苦労しました。mysql.sockの扱いがわかっていなかったので、ホント時間がかかりました。

 

データの収容しているディレクトリから、他の所にデータを移動させてから、アンインストール。それから再インストールして、my.cnfの設定をして、データを戻して動作させようと思ったのですが、起動しない・・・・

 

 

ここで、mysql.sockの扱いがわかっていなかったせいです。データを貼り付けた後、一旦mysql.sockを消して、touchコマンドで、mysql.sockを作成し、mariadbを起動させたら、データを読み込むことができました。

 

ここまでくるのに、ググり方がよくなかったのかもしれませんが(こんなミスする人も滅多にいないので、情報もあまりありませんしね。ちゃんと皆さんダンプしていますものね)、とにかく時間がかかった・・・

 

何回でも書いているような気もしますが、慣れが一番怖いです。これがお客様の所でやったら、眼も当てられない状態になります。

 

ホント気をつけよっと

それが、なんと管理用ユーザ!!しかも、異様に遅くなっただけでなく、遅すぎてタイムアウトしちゃう。

 

sshが有効にしていなかったのですが、シリアルログインできるようにしていたため、設定ファイルを直接追記して、何とか復旧。

 

/etc/webmin/miniserv.usersの、該当ユーザの行をコピーして、貼り付け。ユーザ名だけを変更しました。
例えばですが、下記ようになっていたとして、adminが使えないとして、adminの行をコピーします。

user:5dcZ$W3xE+qq0KOfhQR19$8!5>o7kmg|246:::::::10:0::::
admin:OJ8#2KT5Z0Nq$wc794$$Plr+3pbmW1ovn:::::::12:0:0:::

コピーして貼り付けた、adminをadmin111に変更します。(これで、adminと同じパスワードになります)

user:5dcZ$W3xE+qq0KOfhQR19$8!5>o7kmg|246:::::::10:0::::
admin:OJ8#2KT5Z0Nq$wc794$$Plr+3pbmW1ovn:::::::12:0:0:::
admin111:OJ8#2KT5Z0Nq$wc794$$Plr+3pbmW1ovn:::::::12:0:0:::

 

同じように、アクセス権限のファイル/etc/bmin/webmin.aclで、ユーザ権限を割り振る為、adminの行をコピーして、admin111と変更して貼り付けます。

user: acl syslog init samba mailboxes net 
admin: webmincron usermin webminlog servers acl webmin change-user backuup-config bacula-backup fsdump
ldap-client ldap-useradmin mailcap mon pam at cronn package-updates inittab syslog-ng system-status
~~~~省略~~~~~
admin111: webmincron usermin webminlog servers acl webmin change-user backuup-config bacula-backup fsdump
ldap-client ldap-useradmin mailcap mon pam at cronn package-updates inittab syslog-ng system-status
~~~~省略~~~~~

 

これで、Webminを再起動して、admin111でアクセスして無事にアクセスできるように・・・・・

 

 

ちなみに原因は、古いテーマを一回適用したためだったようです。

参照:http://www.pageone.ne.jp/blog/notes/dont_use_webmin_old_theme/

 

ここからの引用ですが、

---------------------------------------------------------------------------

adminを古いUIテーマに戻しました。そして、adminを無効化するために、新しいWebminユーザーを作成し、全権限を新しいユーザーに付与しようとしました。adminを先に古いテーマに戻したことが大きな間違いでした。実はこの古いテーマに重大なバグが残っていたのです。

その重大なバグというのは、「折りたたまれた設定項目を展開することができない」というものです。

------------------------------------------------------------------------

 

ちなみに、モロにこれでした、メニューがまったく触れなくなったのです。

 

上記のサイトにもかいてありますが、古いテーマは使わない!!ってことに越したことはないようです。

 

 

すげ~~ 簡単な話ですが、NTPで時間を取得してから、サービスを起動したいって事がありまして、そこで考えたのが、サービスを眠らさせて、NTPでちゃんと時間を取得してから動かせば!!

 

って思って、やったのが、

/usr/lib/systemd/system内の該当サービスのUnit内のAfterに追加した上で、sleppを追記し、chronyが時間を取得する時間を作る。

例えばclamavサービスの

[root@vpn-rpi3 ~]# vi clamd@.service

[Unit]

Description = clamd scanner (%i) daemon

After = syslog.target nss-lookup.target network.target chronyd.service   <----chronyd.serviceを追加

[Service]

Type = simple

ExecStartPre = /bin/sleep 90    <----スタート前に実行するコマンドを追記

ExecStart = /usr/sbin/clamd -c /etc/clamd.d/%i.conf --foreground=yes

Restart = on-failure

PrivateTmp = true

て感じで、やってみました。

歳をとったせいもあるのですが、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サーバを構築して仮のインターネット環境を立てるやり方を公開します、

どのサービスも反応しなくなり、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

に変更しました。

このページの上部へ

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

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

 

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

ホームページ

 

facebook

 

 

 

 

Microsoft Public Affiliate Program (JP)(マイクロソフトアフィリエイトプログラム)

 

Microsoft Public Affiliate Program (JP)

サイト内検索

最近のピクチャ