LoginSignup
26
26

More than 5 years have passed since last update.

CentOS(RedHat系)の6→7で流儀が変わった件

Last updated at Posted at 2014-12-21

先日のカーネル再構築で若干ドツボったので個人で新規に借りたVPSにはCentOS 7をチョイス
・・・したのですが、これまで散々CentOS6までの流儀とオレオレ流に慣れてしまっていたため、初期設定だけでもけっこう戸惑うことが多かったのでまとめ

ifconfig /netstat がない

NICの確認とポートの解放状況のチェックですね、わかります

CentOS7
ip addr show
ss -nat

一応、ifconfigやnetstatはyumで入れられないこともないけど、習熟のためにあえて入れないことにした

さらば/etc/init.d/ こんにちはsystemctl

これまで、デーモンとかの再起動は

CentOS6まで
sudo /etc/init.d/

でTABを押して補完という感じでやっていたけど7はsystemdに移行したので若干の生き残り以外は

CentOS7
sudo systemctl start httpd

みたいにしないといけない
一応、リストは/usr/lib/systemd/system/近辺をlsしてみると出てくるとはいえ、TABで候補一覧や補完がきかないのが若干やりにくいかも・・・
こりゃbash-completionも必須かな

iptablesの設定も若干面倒(けど慣れるとしっくりくる)

CentOSなどでサーバをたてて優先してやるのはSSHのポート変更、というのは私だけじゃないと信じたい・・・(中華アタックこわいこわい)
で、ポート変更したからにはファイアーウォールに穴を開けなおさないといけないが、実は私、これまであまりiptablesのコマンドたたいてsaveして・・・という作業をやったことがない
/etc/sysconfig/iptablesに設定を追記して

CentOS6
sudo /etc/init.d/iptables reload

なんていう横着をしていた

CentOS7からはfirewalldというiptablesのラッパーと、ゾーンという概念ができてゾーン毎に許可するサービスを設定していく、という方式になっている
さて、SSHのポートをデフォルトの22から2525に変えたという想定でこれをどうするか、という話

まずは、firewalldに使うユーザ定義のサービスを作る
/etc/firewalld/services/ に定義内容を書いたXMLファイルを置くのだけど、 /usr/lib/firewalld/services/に定義済のものが入っているので、そのうちSSHのデフォルトのものをコピーして流用

CentOS7
sudo cp /usr/lib/firewalld/services/ssh.xml /etc/firewalld/services/ssh-alternate.xml
sudo vi /etc/firewalld/services/ssh-alternate.xml

/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に教えてあげるためにリロード

CentOS7
sudo firewall-cmd --reload

successが返って来たらssh-alternateというサービス名が有効になっているので、このサービスを解放する

CentOS7
sudo firewall-cmd --add-service=ssh-alternate
sudo firewall-cmd --permanent --add-service=ssh-alternate

本来は --zone=<ゾーン名>の指定もするべきところなんだろうけど
最初のはワンショットで解放される(再起動するとすっかり忘れてしまう)
--permanentオプションをつけると再起動しても自動的にこの定義を有効にしてくれる

これまでiptablesに直書きしてたときは、コメントに残してはいるけどさらっと数字だけ見て「これ何のポートだったっけ」みたいなこともあったので、このサービスを定義してゾーン毎にサービスに紐づいてるポートを開放するという流儀は好みかもしれない

まとめ

そこそこ時間かかりそうだけど、今後はこういうものになるんだと思って慣れるしかない

26
26
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
26
26