先日のカーネル再構築で若干ドツボったので個人で新規に借りたVPSにはCentOS 7をチョイス
・・・したのですが、これまで散々CentOS6までの流儀とオレオレ流に慣れてしまっていたため、初期設定だけでもけっこう戸惑うことが多かったのでまとめ
ifconfig /netstat がない
NICの確認とポートの解放状況のチェックですね、わかります
ip addr show
ss -nat
一応、ifconfigやnetstatはyumで入れられないこともないけど、習熟のためにあえて入れないことにした
さらば/etc/init.d/ こんにちはsystemctl
これまで、デーモンとかの再起動は
sudo /etc/init.d/
でTABを押して補完という感じでやっていたけど7はsystemdに移行したので若干の生き残り以外は
sudo systemctl start httpd
みたいにしないといけない
一応、リストは/usr/lib/systemd/system/近辺をlsしてみると出てくるとはいえ、TABで候補一覧や補完がきかないのが若干やりにくいかも・・・
こりゃbash-completionも必須かな
iptablesの設定も若干面倒(けど慣れるとしっくりくる)
CentOSなどでサーバをたてて優先してやるのはSSHのポート変更、というのは私だけじゃないと信じたい・・・(中華アタックこわいこわい)
で、ポート変更したからにはファイアーウォールに穴を開けなおさないといけないが、実は私、これまであまりiptablesのコマンドたたいてsaveして・・・という作業をやったことがない
/etc/sysconfig/iptablesに設定を追記して
sudo /etc/init.d/iptables reload
なんていう横着をしていた
CentOS7からはfirewalldというiptablesのラッパーと、ゾーンという概念ができてゾーン毎に許可するサービスを設定していく、という方式になっている
さて、SSHのポートをデフォルトの22から2525に変えたという想定でこれをどうするか、という話
まずは、firewalldに使うユーザ定義のサービスを作る
/etc/firewalld/services/ に定義内容を書いたXMLファイルを置くのだけど、 /usr/lib/firewalld/services/に定義済のものが入っているので、そのうちSSHのデフォルトのものをコピーして流用
sudo cp /usr/lib/firewalld/services/ssh.xml /etc/firewalld/services/ssh-alternate.xml
sudo vi /etc/firewalld/services/ssh-alternate.xml
<?xml version="1.0" encoding="utf-8"?>
<service>
<short>SSH</short>
<description>Secure Shell (SSH) is a protocol for logging into and executing commands on remote machines. It provides secure encrypted communications. If you plan on accessing your machine remotely via SSH over a firewalled interface, enable this option. You need the openssh-server package installed for this option to be useful.</description>
<port protocol="tcp" port="2525"/>
</service>
portのところを22から2525に変更しただけ
この変更をfirewalldに教えてあげるためにリロード
sudo firewall-cmd --reload
successが返って来たらssh-alternateというサービス名が有効になっているので、このサービスを解放する
sudo firewall-cmd --add-service=ssh-alternate
sudo firewall-cmd --permanent --add-service=ssh-alternate
本来は --zone=<ゾーン名>の指定もするべきところなんだろうけど
最初のはワンショットで解放される(再起動するとすっかり忘れてしまう)
--permanentオプションをつけると再起動しても自動的にこの定義を有効にしてくれる
これまでiptablesに直書きしてたときは、コメントに残してはいるけどさらっと数字だけ見て「これ何のポートだったっけ」みたいなこともあったので、このサービスを定義してゾーン毎にサービスに紐づいてるポートを開放するという流儀は好みかもしれない
まとめ
そこそこ時間かかりそうだけど、今後はこういうものになるんだと思って慣れるしかない