このブログを検索

ラベル centos7 の投稿を表示しています。 すべての投稿を表示
ラベル centos7 の投稿を表示しています。 すべての投稿を表示

2020/02/15

systemctl status を実行したら degrated と表示された @CentOS7

CentOS7の話

以前さくらのVPSでmysqlをインストールしてちょっと使ってみたことがあったのだが、
久しぶりにDBをいじってみたいと思い、mysqlが起動しているか確認するために

systemctl status

を実行したら、赤字で

State: degrated

と表示された。


うわ!と思い、検索すると起動に失敗したサービスがある場合にそうなるらしいことがわかった。

きっと使ってないしょうもないサービスだろうから無効にしようと思い、

systemctl --failed

を実行すると

● firewalld.service loaded failed failed firewalld - dynamic firewall daemon


firewalldが起動していなかった。

さすがにそれはマズいだろうとちょっと焦ってなんでだろうと調べた結果思い当たったのは、しばらく前にpythonのシンボリックリンクを3系向けに変更したことだった。

それを変更したのはpythonで書いたcgiが動かなくなったからだったのだが、
firewallが起動しないことの方が問題なのでとりあえずシンボリックリンクを2系向けに戻した。

firewalldは起動するようになり、cgiはエラーになった。

cgiの1行目(これなんて言うんだっけ)を

#!/bin/python3.6

に直す。

これでcgiも動くようになった。

pythonのデフォルトバージョンが2系になってしまったが、
コマンドでpythonを実行することはあまりないのでいいか.....

それにしてもpythonの2系・3系問題はウザいね.....

CentOS8はみんなpython3系になっているようなのでこういうことは起こらないみたい。

で、本来確認したかったmysqlは動いてなかった。

2019/10/12

iphoneのメール設定

いつも忘れるので。

名前: john、ドメイン名: example.com の場合

まず、サーバに john というユーザがあること。
/home/john というフォルダがあること。

メールアドレス john@example.com

メールサーバホスト名(incoming, outgoingともに): mail.example.com

advanced で

INCOMING SETTINGS
Use SSL: on
Authentication: password
server port: 993


OUTGOING MAIL SERVER

Use SSL: on
Authentication: password
Server Port: 587

2019/06/22

さくらのVPSを1台解約するにあたって移行

2台もいらない。
低スペックの方を残す。

よく使うcgiと、メールと、twitter botと、それぐらいしか使わないから。

centos6からcentos7への移行となる。

途中で気づいたがpythonも2.7から3.6の移行となる。

python3系にするとyumでエラーになる。
yumは2系を前提としているからだ。

/bin/yum
を直すのは以前にもやった。

mod_sslをインストールしようとしたら、

Downloading packages:
  File "/usr/libexec/urlgrabber-ext-down", line 28
    except OSError, e:
                  ^
SyntaxError: invalid syntax

なんてエラーも出たので
/usr/libexec/urlgrabber-ext-down
も直す。

こんなことでいいのかな。

以前centos6でやったhttpsを使う設定をしていき、
最後にfirewallで443を開けるところまで来て、
そういえば7はiptableじゃない....

いまどうなってるかな...
firewall-cmd --list-all-zones

とやると、エラーになる。
これもpython2系にしないとダメだ。

どいつもこいつもpythonを使っていて、しかも2系なんだな...
3系にするのは先走りなのか...

サービスで開ける。

firewall-cmd --add-service=https --zone=public
firewall-cmd --add-service=https --zone=public --permanent
firewall-cmd --reload

終わり。


2018/05/02

openvpn@centos7 iPhoneで接続

参考
https://www.marbacka.net/blog/openvpn_iphone/

アプリをインストール。

クライアントプロファイルを作成する。(上記参考サイトを参照)
プロファイルの中に証明書を貼ってしまう。

PCに接続し、iTunesでiPhoneをバックアップする画面を開く。
左側のメニューの「ファイル共有」をクリックし、
Appで「OpenVPN」を選択し、「OpenVPNの書類」の下にある
「ファイルを追加...」をクリックしてプロファイルを追加し、同期する。
(同期は必要だよね?)

iPhoneでOpenVPNのアプリを起動すると、追加したプロファイルが表示されている。
あとはわかると思うので略。

iPhoneでもつながった。


openvpn@centos7 その2スプリットトンネリング

さくらのvpsの2台のサーバは同じゾーンなので、
スイッチに接続するとローカルネットワークで通信できるようになる。

コントロールパネルでスイッチを作成し、サーバを停止してから接続する。

firewalldとiptablesの設定でローカルの通信を許可する。

pingが通ることを確認。

openvpn接続後、サーバのローカルネットワーク宛の通信ができることを確認。

ローカル間で接続したもう一台のサーバへのpingは応答がない。

openvpnで割り当てるサブネットのルーティングを追加してアクセスできるようになった。


接続したクライアントでroutingテーブルを見てみると、
デフォルトルートがVPN向けになっている...と思ったが
よくみると 0.0.0.0 128.0.0.0 だ。



IPv4 ルート テーブル
===========================================================================
アクティブ ルート:
ネットワーク宛先        ネットマスク          ゲートウェイ       インターフェイス  メトリック
          0.0.0.0          0.0.0.0      192.168.0.1     192.168.0.11     25
          0.0.0.0        128.0.0.0         10.8.0.5         10.8.0.6    281
         10.8.0.1  255.255.255.255         10.8.0.5         10.8.0.6    281
         10.8.0.4  255.255.255.252            リンク上          10.8.0.6    281
         10.8.0.6  255.255.255.255            リンク上          10.8.0.6    281
         10.8.0.7  255.255.255.255            リンク上          10.8.0.6    281
===========================================================================




設定ファイルserver.confの以下をコメントにする。

push "redirect-gateway def1 bypass-dhcp"


そして、以下を追加する。サーバのローカルネットワークである。

push "route 172.16.0.0 255.255.0.0"

これによって、サーバのローカルネットワークのみがVPN経由になる。





IPv4 ルート テーブル
===========================================================================
アクティブ ルート:
ネットワーク宛先        ネットマスク          ゲートウェイ       インターフェイス  メトリック
          0.0.0.0          0.0.0.0      192.168.0.1     192.168.0.11     25
         10.8.0.1  255.255.255.255         10.8.0.5         10.8.0.6    281
         10.8.0.4  255.255.255.252            リンク上          10.8.0.6    281
         10.8.0.6  255.255.255.255            リンク上          10.8.0.6    281
         10.8.0.7  255.255.255.255            リンク上          10.8.0.6    281
       172.16.0.0      255.255.0.0         10.8.0.5         10.8.0.6    281
===========================================================================



こういうVPNの設定は「スプリットトンネリング」と言うと思うのだが、
openvpnではそのキーワードで検索してもヒットしない。





2018/04/29

openvpn@centos7

参考
https://gtrt7.com/blog/linux/install-openvpn


流れとしては、
openvpnはrpmを作ってrpmからインストール

CA作成、サーバおよびクライアント証明書作成
※easyrsaを使うのが流行っているようだがopensslでもできるはず

openvpnの設定

firewalldの設定

クライアントにクライアント証明書一式をコピー
クライアント側設定



# cat /etc/openvpn/openvpn-status.log
OpenVPN CLIENT LIST
Updated,Sun Apr 29 15:01:14 2018
Common Name,Real Address,Bytes Received,Bytes Sent,Connected Since
myclient,xxx.xxx.xxx.xxx:58735,105510,491554,Sun Apr 29 14:59:27 2018
ROUTING TABLE
Virtual Address,Common Name,Real Address,Last Ref
10.8.0.6,myclient,xxx.xxx.xxx.xxx:58735,Sun Apr 29 15:01:09 2018
GLOBAL STATS
Max bcast/mcast queue length,0
END


とりあえずつながって、サーバに10.8.0.xのアドレスでsshできることを確認。

本当はサーバのローカルネットワークにアクセスしたいのだが
うまくいってない。
後でやる。


2018/04/28

新VPS

さくらのVPSで新しいサーバを借りた。

メモリ1GB

Centos7

userを作り、wheelに登録

sshのポート変更

firewalldでsshのポート許可、firewalld再起動

さくらのコントロールパネルでゾーンの登録

dns設定はすでにあり

yum update

selinuxはすでに無効

ntpdは動いていないが chronydというもので時刻は同期されている。

yum install httpd
systemctl start httpd
systemctl enable httpd
firewall-cmd --zone=public --add-service=http --permanent
firewall-cmd --reload

パソコンからアクセスしてテストページが表示されるのを確認。

/var/www/html
にindex.htmlを作る。

パソコンからアクセスして作ったindex.htmlが表示されるのを確認。

2016/05/06

さくらのクラウドで起きた不可解な現象

※(後記)料金未払いとメールの受信ができないことは関係なかったと思う。
再起動後I/Fがupしなかったのはなぜか不明だが、ifupであがった。
その他、chkconfigとかselinuxを無効かするなどして、もとに戻った。

dovecotは設定ミスがあった。

systemctl status dovecot をやると、正常に起動しておらず、以下のログがあった。

doveconf: Fatal: Error in configuration file /etc/dovecot/conf.d/10-mail.conf line 61: Unknown setting: inbox


10-mail.confのnamespace inboxのところは、centos6の方は無効になっていたので、
こっちも無効にした。
しかしそのときinbox=yesが残っていた。

namespace inboxのコメントを外して正常に起動するようになった。

いまいち、namespaceの設定の意味がわからないが・・・・



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


わたしはさくらのVPSで1台、さくらのクラウドで1台サーバを借りている。

VPSのほうでpostfix + dovecotを使っているので、クラウドのほうも同じように設定しようと思った。


vpsはcentos6、クラウドは7であるが、やることはほとんど同じ。


だが、どうしてもクラウドの方でメールが受信できない。


送信はできる。

クライアントの設定は何度も見直した。

DNS設定も見直した。

最後は、二つのサーバの設定ファイルの差分を比較して全部同じにしてみた。

それでもダメだ。


これはなんかおかしい、と、クラウドのサーバをリブートした。


pingを打って再起動を待つ。

なかなか復活しない。

pingを許可していなかったっけ?

と、sshするが入れない。


コンソールに入って、ip a とやると、アドレスが消えている!

えええ!?全部消えちゃった?


・・・と、もしかしてと思って請求情報を見ると、クラウドの料金の支払いが滞納されていて支払い期限を1週間くらい過ぎていた。

多分、このためにサービス停止になっていたのではないだろうか。

料金を払って、様子を見ることにした。

2016/04/23

centos7のコマンド






centos7を仕事で使った。

ifconfigがない

tracerouteがない

netstatがない



7を触るのは初めてではなく、コマンドが変わったのは知っていたがこんなに何にもなかったっけ?

とあきれた。


とりあえず yum install traceroute

をやった。



後でしらべたら、tracepathというコマンドがあった。

ifconfigに相当するコマンドは、

ip addr

ip a

でよい

# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 9c:a3:ba:xx:xx:xx brd ff:ff:ff:ff:ff:ff
    inet xxx.xxx.xxx.xxx/24 brd xxx.xxx.xxx.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::xxxx:xxxx:xxxx:xxxx/64 scope link
       valid_lft forever preferred_lft forever


routingテーブルの表示は

ip route

ip rでよい


ルートの追加・削除

 ip route add 192.168.99.0/24 via 10.0.0.254
 ip route del 192.168.99.0/24 via 10.0.0.254

2016/03/06

ldapserver@centos7


最近仕事で認証がらみのことをよくやるようになったので、
ldapサーバを設定してみる。

ldapというのは、アクティブディレクトリで使われるプロトコルである。

というか、ldapといったらADつまりWindowsサーバである場合がほとんどではないだろうか。

Windowsサーバを買ったり借りたりするのはまだまだ高価なので、

さくらのクラウドで借りているcentos7で作ってみる。




インストール

yum install openldap openldap-servers openldap-lclients


DB設定をつくる(exampleをコピー)

cp /userr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG


パスワード生成(この値をあとで使う)

[root@adam ~]# slappasswd
New password: 
Re-enter new password: 
{SSHA}xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx


firewallでldapを許可

[root@adam ~]# firewall-cmd a--add-service=ldap --zone=public
success
[root@adam ~]# firewall-cmd --add-service=ldap --zone=public --permanent
success



slapd を起動

[root@adam ~]# systemctl enable slapd
[root@adam ~]# systemctl enable slapdstart slapd


設定はファイルを直接編集するのではなく、
.ldifという拡張子のついたファイルを作ってそこに設定内容を書き、
それをコマンドで読み込ませておこなう。


.ldifファイルは任意の場所で任意の名前で作ってよいようだ。


rootパスワードの設定(slappasswdで生成された値を書く)

[root@adam]# cat rootpw.ldif
dn: olcDatabase={0}config,cn=config
changetype: modify
replace: olcRootPW
olcRootPW: {SSHA}xxxxxxxxxxxxxxxxxxxxxxxx



ここではまったのが、「replace: olcRootPW」の部分だ。
参考にした複数の情報では「add: olcRootPW」になっていたが、
それだと下記のようなエラーになる。


[root@adam]#  ldapadd -Y EXTERNAL -H ldapi:/// -f rootpw.ldif 
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
modifying entry "olcDatabase={0}config,cn=config"
ldap_modify: Inappropriate matching (18)
additional info: modify/add: olcRootPW: no equality matching rule


成功すると下記のようになる

[root@adam]# ldapadd -Y EXTERNAL -H ldapi:/// -f rootpw.ldif
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
modifying entry "olcDatabase={0}config,cn=config"


(なんでこうするのかはわからない。後で調べる)
→たぶん、参考にしたある情報ではrootpasswordを直接書き込んでいて、
olcRootPWのエントリがすでにあったから「add」ができなかったのだと思う。
デフォルト状態であればaddでよいはず。


ドメイン名

[root@adam]# cat change-domain.ldif
dn: olcDatabase={1}monitor,cn=config
changetype: modify
replace: olcAccess
olcAccess: {0}to * by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth"
  read by dn.base="cn=Manager,dc=monqy,dc=net" read by * none

dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcSuffix
olcSuffix: dc=monqy,dc=net

dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcRootDN
olcRootDN: cn=Manager,dc=monqy,dc=net

dn: olcDatabase={2}hdb,cn=config
changetype: modify
add: olcRootPW
olcRootPW: {SSHA}xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx



[root@adam]# ldapmodify -Y EXTERNAL -H ldapi:/// -f .change-domain.ldif 
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
modifying entry "olcDatabase={1}monitor,cn=config"

modifying entry "olcDatabase={2}hdb,cn=config"

modifying entry "olcDatabase={2}hdb,cn=config"

modifying entry "olcDatabase={2}hdb,cn=config"



組織情報(Users, Groups)



[root@adam]# cat org.ldif
dn: dc=monqy,dc=net
objectClass: dcObject
objectClass: organization
dc: monqy
o: monqy

dn: ou=Users,dc=monqy,dc=net
objectClass: organizationalUnit
ou: Users

dn: ou=Groups,dc=monqy,dc=net
objectClass: organizationalUnit
ou: Groups
[root@adam]#



[root@adam]# ldapadd -x -D "cn=Manager,dc=monqy,dc=net" -W -f org.ldif
Enter LDAP Password:
adding new entry "dc=monqy,dc=net"

adding new entry "ou=Users,dc=monqy,dc=net"

adding new entry "ou=Groups,dc=monqy,dc=net"




クライアントからアクセスしてみる。

WindowsにJXPlorerというアプリをインストールする。

左上の connect to DSAというアイコンをクリックし、
ldapサーバのホスト名を入力して「はい」をクリックすると、
上記で設定したUsersやGroupsが表示される。


実際の認証は、後程



2015/11/23

centos7 postfix 送れない

さくらのクラウドで借りている、centos7のサーバでlogwatchの設定をした。

mailtoを自分のgmailのアカウントにして、
でもpostfixの設定とかMXレコードとかなにもしてないから送れないよな・・・
と思いつつlogwatchを実行してみるとなぜか送れた。

サービスを確認すると、postfixは動いていた。デフォルトで動くのか?

ちなみにcentos7ではサービスを確認するコマンドは変わっている。

# systemctl status postfix

のように。再起動や停止もsystemctlを使う。


logwatchのサーバのホスト名が localhost.localdomainになっていた。
まず、サーバのホスト名を直す。

postfix設定ファイルを見るとなにもやってなかったので、
ググって、必要そうな設定を、例によって確証のないままなんとなくやる。

すると、メールが送れなくなった。

/var/log/maillog

Nov 23 10:01:50 localhost postfix/qmgr[30237]: 867B65FDCA: from=<root@adam.monqy.net>, size=1848, nrcpt=1 (queue active)
Nov 23 10:01:50 localhost postfix/qmgr[30237]: D56C15FDD7: from=<root@adam.monqy.net>, size=418, nrcpt=1 (queue active)
Nov 23 10:01:50 localhost postfix/smtp[30346]: 867B65FDCA: to=<じーめーるのあどれす>, relay=none, delay=2221, delays=2221/0/0/0, dsn=4.4.3, status=deferred (Host or domain name not found. Name service error for name=gmail.com type=MX: Host not found, try again)


ゾーンを編集する。

変わらない。

名前解決ができてないのか?

適当なホスト名にpingを打つと、名前解決していない。

/etc/resolv.conf を見たら何も書いてない。

nameserverを書く。

解決。



自分のドメインのゾーンとか、mxとかは、自分のドメイン宛のメールを受信するときに必要な設定だから今回の件とは関係ないか。


解決したからいいけど、なぜ最初送れたのかが気になる。
host名がlocalhost.localdomainだったから名前解決が必要なかったのかと思ったがそれは自分のホストだし。

postfixでmyhostとかmydomainとかを設定したからか?

2015/11/03

さくらのクラウドのサーバ設定

sshの設定を変える。

今どうなってたっけ、とつないでみると22番でrootで入れる。

これは危険だ。

ポート番号を変えて、PermitRootLoginをnoにする。

sshd.conf


変えたポート番号をfirewalldで許可する。

9999番を開けるには

# firewall-cmd --permanent --add-port=9999/tcp



ちょっと簡単なcgiを動かそうと思った。

VPSの方はパフォーマンス向上を狙ってnginxにしたが

やっぱりapacheの方が簡単で情報も多い。


さて、cgiってデフォルト状態で動くんだっけ?

cgi-binにスクリプトを置いて実行するとinternal server errorになる。


httpd.confを直すのかな・・・と、

適当にいじるがダメ。


なんでだろう・・・と思ったら、perlが入ってなかった。

yum install perl


動いた。

2015/10/06

centos7@さくらのクラウド

apacheをインストール、
vsftpdをインストール。

netstatもない。ssというコマンドを使う。

iptablesはあるが、firewalldというのを使うようになった。

vsftpdはやったことがあるがちょっとはまる。
user_listとかchroot_listとかselinuxとか。

selinuxはpermissiveにする。