centos
fail2banは動かしている。
特に目立つIPアドレスがあって、即時止めたかったので調べて止めた。
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="80.xx.xx.xxx" drop'
firewall-cmd --reload
centos
fail2banは動かしている。
特に目立つIPアドレスがあって、即時止めたかったので調べて止めた。
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="80.xx.xx.xxx" drop'
firewall-cmd --reload
昨日から今日にかけてpostfix/dovecotの設定をやった。
まずはubuntu 23.10(digital ocean)で、そしてcentos sgreanm release 9(さくらのVPS)で。
同じ設定をしたのだが設定個所や内容は微妙に異なる。osが違うというだけではなく、設定を紹介している人の理解とかやり方によるように見える。つまり、やり方は一つではない。
ubuntuでやった時はgmailのアカウントに送れなかったので、centosでやってみたのだが、こちらはspfもdkimも設定していないのに送れた。
ドメイン名は違っていて、centosでやった方のドメインは逆引きを設定している。逆引きがあれば(spfやdkimがなくても)、gmailに送れるのだろうか?
あと、iphoneの証明書の信頼は、ただCA証明書をインストールするだけではだめで、
Settings > General > About > Certificate Trust Settings
で、ENABLE FULL TRUST FOR ROOT CERTIFICATESを有効にする必要がある。
証明書を作るとき、サーバの秘密鍵は暗号なしで作るのが楽。
いつもこういう風にしているが、
#openssl genrsa -aes256 -out ./server.key
Enter PEM pass phrase:
これでよい。
# openssl genrsa -out ./server.key
秘密鍵を暗号化して作った場合でも、以下のようにして解除できる(パスワードを入力する必要あり)。
# openssl rsa -in server.key -out server.key
centos9を動かしているさくらのVPSにsshしてdnfしたらsshが切れる。
調べてもそんな例は見当たらない。何度やっても、どこからつないでも切れるのでコンソール(さくらの管理画面から)につないでdnfしてみたら、物騒なメッセージが出ていた。
# dnf update
[25559685.849171] dnf invoked oom-killer: gfp_mask=0x140cca(GFP_HIGHUSER_MOVABLE|__GFP_COMP), order=0, oom_score_adj=0
[25559685.852614] CPU: 1 PID: 2780910 Comm: dnf Not tainted 5.14.0-252.el9.x86_64 #1
[25559685.853720] Hardware name: Red Hat Linux KVM, BIOS 0.5.1 01/01/2011
[25559685.854759] Call Trace:
[25559685.855521] <TASK>
(以下略)
oom-killer?
検索してみるとメモリ枯渇の時に出るようだった。
freeを実行してみるとSwapが0 ... ?
# free
total used free shared buff/cache available
Mem: 986668 393268 63280 2956 671788 593400
Swap: 0 0 0
freeなんていつも見ないので、この状態が異常なのか普通なのかわからない...
メモリ不足ということはなんか余計なものが動いているのだろうと思い、メモリを多く使用しているプロセスを確認するコマンドを調べて実行した。
ps aux --sort rss
試しにzabbixをインストールしたときに動かしたが使っていないmariadbだのsnmpdだのが多くのメモリを使っているようだったのでそれらを停止、アンインストールした。
dnf updateができるようになった。
が、よく見るとupdateでzabbixのモジュールを更新しようとしている。
もうzabbixはいらないのに。調べると、リポジトリ置き場(/etc/yum.repos.d)に「zabbix」のついたものがある。
ほかにもいろいろ入っている。これらは何かをインストールするときに「これを追加する」と書いてあるのをそのまま鵜呑みにして追加してそのままになっていたものだ。zabbixなんとかを名前を変えて消す。
などやって、freeを見ると、空き領域は増えたようだ。
swapは相変わらずゼロ。多分、swapを使っていないのだろう。
これはどうかと思うが、とりあえず、今回はok
# free
total used free shared buff/cache available
Mem: 986668 332612 416868 4788 412608 654056
Swap: 0 0 0
ちなみに私が使っているサーバのメモリは1Gである。
さくらのVPSはなんだかんだで10年くらい使っているだろうか?そんな古くない?
今調べたらさくらがVPSを提供開始したのは2010年とある。わたしはレンタルサーバを使っていて、これはいいと思ってすぐ使い始めた覚えがあるのでやはり10年以上使ってきた。
でもメモリの不足を感じたことは一度もなかった。
スケールアップしようかな...
それよりswap設定の方が先か...
サーバがcentos8, クライアントがWindows10で、static keyで接続できた。
その時のクライアント側configをiPhoneにメールで転送してopenvpnアプリに追加して接続しようとすると、 CA not defined というエラーになって接続できない。
このあたりはOSの種類やバージョンによって変わってくることは、違うvpnを設定した時にもあったことだ。 apple製品はこの辺がwindowsより厳しくなっている。
まあ最初から証明書は作るつもりだったので。
証明書はopensslでやる。
サーバの秘密鍵を作る→csr作成→caで署名
ここは何度もやったので省略
opensslの設定はほぼデフォルト
configはサンプルをコピーして作る。configの置き場は /etc/openvpn/server/
# cp /usr/share/doc/openvpn/sample/sample-config-files/server.conf /etc/openvpn/server/
なるべくデフォルト設定を使う。
以下のファイルが必要
ca ca.crt #VPNサーバの証明書を発行(署名)するCAの証明書 cert server.crt #VPNサーバの証明書 key server.key #VPNサーバの秘密鍵 # openssl dhparam -out dh2048.pem 2048 dh dh2048.pem # DHパラメータ # openvpn --genkey --secret ta.key # # The server and each client must have # a copy of this key. # The second parameter should be '0' # on the server and '1' on the clients. tls-auth ta.key 0 # This file is secret # tlsキー、後ろの数字は0がサーバー、1がクライアント
dhパラメータをeasyrsaで作るように説明している情報が多いがsampleコンフィグにopensslのコマンドが書いてあるのでそれを使う。
ごちゃごちゃやったが結局つながったので、configを載せておく。 サーバ証明書とクライアント証明書での接続
サーバ(コメント部分削除)port 1194 proto udp dev tun ca ca.crt cert server.crt key server.key dh dh2048.pem server 10.8.0.0 255.255.255.0 ifconfig-pool-persist ipp.txt push "route 192.168.55.0 255.255.255.0" keepalive 10 120 tls-auth ta.key 0 persist-key persist-tun status openvpn-status.log log-append openvpn.log verb 4 explicit-exit-notify 1
外部ファイル(server.confと同じフォルダ /etc/openvpn/server に置く)
ca.crt
server.crt
server.key
dh2048.pem
pushは接続先のプライベートネットワークセグメント(アクセス先)
加えてサーバ側のfirewalld設定やip forwardingの設定が必要(前回の記事を参照)
ログ出力設定はデフォルトで無効だが有効にした
client remote vpn.example.com port 1194 proto udp dev tun tls-auth ta.key 1 persist-tun persist-key verb 4 mute 10 < ca > -----BEGIN CERTIFICATE----- (省略、サーバ証明書にサインしたCAの証明書) -----END CERTIFICATE----- < /ca > < cert > -----BEGIN CERTIFICATE----- (省略、クライアント証明書) -----END CERTIFICATE----- < /cert > < key > -----BEGIN RSA PRIVATE KEY----- (省略、クライアントの秘密鍵) -----END RSA PRIVATE KEY----- < /key >
外部ファイル
ta.key
client が必要
クライアント(iPhone 15.2.1, Mac Monterey Version12.2)client remote www.monqy.net port 1194 proto udp dev tun persist-tun persist-key verb 4 mute 10 key-direction 1 < ca > -----BEGIN CERTIFICATE----- (省略、サーバ証明書にサインしたCAの証明書) -----END CERTIFICATE----- < /ca > < cert > -----BEGIN CERTIFICATE----- (省略、クライアント証明書) -----END CERTIFICATE----- < /cert > < key > -----BEGIN RSA PRIVATE KEY----- (省略、クライアントの秘密鍵) -----END RSA PRIVATE KEY----- < /key > < tls-auth > -----BEGIN OpenVPN Static key V1----- (省略、ta.keyの中身) -----END OpenVPN Static key V1----- < /tls-auth >ポイントは、 tls-auth ta.key 1 と書くところは ta.keyの内容を< tls-auth >に貼り付けて、
# cat server.conf port 1194 proto udp dev tun ifconfig 10.8.0.1 10.8.0.2 secret static.key cipher AES-128-CBC #comp-lzo keepalive 10 60 ping-timer-rem persist-tun persist-key status openvpn-status.log log-append openvpn.log verb 3 #クライアント側の設定ファイル (client.ovpn) remote vpn.example.com proto udp dev tun port 1194 ifconfig 10.8.0.2 10.8.0.1 secret static.key cipher AES-128-CBC keepalive 10 60 ping-timer-rem persist-tun persist-key route 192.168.55.0 255.255.255.0サーバ側のconfigに下記を入れたがうまくいかない。
push "route 192.168.55.0 255.255.255.0"
route 192.168.55.0 255.255.255.0
sysctl -w net.ipv4.ip_forward=1
firewall-cmd --permanent --direct --passthrough ipv4 -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth1 -j MASQUERADE
firewall-cmd --zone=Internal --add-masquerade
CentOS Linux release 8.3.2011
dnf update
# dnf update CentOS Linux 8 - AppStream 80 B/s | 38 B 00:00 エラー: repo 'appstream' のメタデータのダウンロードに失敗しました : Cannot prepare internal mirrorlist: No URLs in mirrorlist
sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-Linux-*;
エラー: 問題: cannot install both device-mapper-8:1.02.177-10.el8.x86_64 and device-mapper-8:1.02.171-5.el8.x86_64 - package device-mapper-devel-8:1.02.171-5.el8.x86_64 requires device-mapper = 8:1.02.171-5.el8, but none of the providers cae installed - cannot install the best update candidate for package device-mapper-8:1.02.171-5.el8.x86_64 - problem with installed package device-mapper-devel-8:1.02.171-5.el8.x86_64 (競合するパッケージを置き換えるには、コマンドラインに '--allowerasing' を追加してみてください または、'--skip-broken' を追加し インストール不可のパッケージをスキップしてください または、'--nobest' を追加して、最適候補のパッケージのみを使用しないでください
install device-mapper-8:1.02.177-10.el8.x86_64 --allowerasing
dnf update
dnf install openvpn
https://www.openvpn.jp/document/quickstart-statickey/
systemctl start openvpn-server@server.service
● openvpn-server@server.service - OpenVPN service for server Loaded: loaded (/usr/lib/systemd/system/openvpn-server@.service; enabled; vendor preset: disabled) Active: activating (auto-restart) (Result: exit-code) since Fri 2022-02-11 17:56:52 JST; 3s ago
#server.conf proto udp dev tun port 1194 ifconfig 10.8.0.1 10.8.0.2 secret static.key cipher AES-128-CBC comp-lzo keepalive 10 60 ping-timer-rem persist-tun persist-key
#client.ovpn remote vpn.example.com proto udp dev tun port 1194 ifconfig 10.8.0.2 10.8.0.1 secret static.key cipher AES-128-CBC comp-lzo keepalive 10 60 ping-timer-rem persist-tun persist-key