サーバ更新2024
VPSの長期割終了に伴い、サーバの再構築を行う。 今回はCentOS8->CentOS9の更新。
タスク
- 作業ユーザの作成
- hostname
- ssh関連の設定
- swapfileの追加
- docker、docker composeのインストール
- firewall関連の設定
- smtp, root宛のメールの転送設定
- webサーバの設定
- let's encrypt
- vpn
- bgp
hostname
echo host1.example.com > /etc/hostname
などでhostnameを上書き
systemctl restart NetworkManager
を忘れずに実行
ssh関連の設定
PasswordAuthentication no PermitRootLogin no
を/etc/ssh/sshd_configに書き込んで終わりと思ったらそうじゃない。
/etc/ssh/sshd_config.d/01-permitrootlogin.conf /etc/ssh/sshd_config.d/50-cloud-init.conf に
PermitRootLogin yes PasswordAuthentication yes
って書いてある!動作確認せずに設定した気になっていると危ない。
swapfileの追加
swapを増やしておく。
sudo dd if=/dev/zero of=/var/spool/swap/swapfile2 bs=1M count=2048 sudo chmod 600 /var/spool/swap/swapfile2 sudo mkswap /var/spool/swap/swapfile2 sudo swapon /var/spool/swap/swapfile2 free -m # swapが増えたことを確認する # 永続化する場合はfstabに追記する sudo vi /etc/fstab
smtp
インストール
sudo yum install postfix
設定ファイル変更
18c118 < #myorigin = $mydomain --- > myorigin = $mydomain 135c135 < inet_interfaces = localhost --- > inet_interfaces = all
spfやdnsのhostnameを書き換えて以下を実行。/var/log/maillogで送信が問題ないことを確認。
echo -e 'Subject: TitleA\n\nHello!\nWorld' | sendmail -f user_name@from.example.com user_name@to.example.com
/etc/aliasesに
root: <作業用ユーザ> <作業用ユーザ>: <転送したいメールアドレス>
を追記し
sudo newaliases
を実行する。
lets encrypt
以下で、インストールと設定が完了。
sudo yum install epel-release sudo yum install certbot
certbot certonly --manual -d "*.example.com" -m "mail@example.com" --agree-tos --manual-public-ip-logging-ok --preferred-challenges dns-01 --server https://acme-v02.api.letsencrypt.org/directory --manual-auth-hook <path/to/script> --manual-cleanup-hook <path/to/script>
/usr/bin/certbot renew --dry-run --manual -m "mail@example.com" --agree-tos --preferred-challenges dns-01 --server https://acme-v02.api.letsencrypt.org/directory --manual-auth-hook <path/to/script> --manual-cleanup-hook <path/to/script> --post-hook 'systemctl restart httpd'
webサーバの設定
とりあえずapacheの設定をしておく(nginxに移行したいがまた今度)
sudo yum install httpd mod_ssl php-fpm
phpのメジャーバージョンが変わっていてpukiwikiが動かない(php7->8)。。。 別途考える。
vpn
libreswanにてデフォルトでikev1動作しなくなったようである。
(ignoring IKEv1 packet as policy is set to silently drop all IKEv1 packets
となる)
ikev2で動かしてみるがうまくいかなかったので、ikev1で動かすことにする。
sudo yum install libreswan xl2tpd
xl2tpd.service内のmodprobe l2tp_pppをコメントアウトすることで対応した。
ppp0に対するfirewalldの設定
/etc/sysctl.confに以下を追記し、sysctl -p
で反映
net.ipv4.ip_forward=1 net.ipv4.conf.all.accept_redirects = 0 net.ipv4.conf.all.send_redirects = 0 net.ipv4.conf.all.rp_filter = 0 net.ipv4.conf.default.accept_redirects = 0 net.ipv4.conf.default.send_redirects = 0 net.ipv4.conf.default.rp_filter = 0 net.ipv4.conf.eth0.accept_redirects = 0 net.ipv4.conf.eth0.send_redirects = 0 net.ipv4.conf.eth0.rp_filter = 0
にして、ipsec関連の設定ファイルを移植して、
sudo systemctl enable ipsec sudo systemctl start ipsec
をする。
ikev2で動かしてみたところ、これまでトンネルを張っていた対向(strongswan)では
received TS_UNACCEPTABLE notify, no CHILD_SA built failed to establish CHILD_SA, keeping IKE_SA
となっている。ipsec verify
の結果としては
000 IKE SAs: total(1), half-open(0), open(0), authenticated(1), anonymous(0) 000 IPsec SAs: total(0), authenticated(0), anonymous(0)
となる。ちゃんとデバッグしないと動作しなさそう。
/etc/ipsec. confに以下を追記してとりあえずikev1で動かす。v2への移行も進めるか。
ikev1-policy = accept
bgp
sudo yum install bird
をして、設定ファイルを移植。
sudo systemctl enbale bird sudo systemctl start bird
にて完了。設定ファイルの内容は割愛。
ip route
にてbgp経由のルートが表示されることを確認する。