読者です 読者をやめる 読者になる 読者になる

Goldstine研究所

mosuke5's tech blog

ブログ移転しました。5秒後にリダイレクトします。

CentOS7, iptables設定でハマった

最近VPSのOSをcentos7にしたのだが、なかなか手付かずでiptablesの設定も放置していた…
sshの最低限の設定はしていたが、ほんとうに良くない…)

久しぶりに手が空いたので設定するかーと思いきや
まず/etc/sysconfig/iptablesがないし...

Cent7からのsystemctlでiptablesのサービスを確認してもでてこないし…

# systemctl status iptables
iptables.service
   Loaded: not-found (Reason: No such file or directory)
   Active: inactive (dead)

というわけで、調べてみると、まずiptables.serviceをインスールしないといけないとのこと。
そして、centos7からはfirewalldがデフォルトでオンになっているからオフにしないといけない。
(いけないわけではないけど両方使う意味が無いので。)


まずはiptables-serviceをインスールし、firewalldをオフ、iptablesをオンとした。

# yum install iptables-services
#
# systemctl status firewalld
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled)
   Active: active (running) since Sat 2014-09-20 17:47:11 JST; 4s ago
 Main PID: 11162 (firewalld)
   CGroup: /system.slice/firewalld.service
           └─11162 /usr/bin/python -Es /usr/sbin/firewalld --nofork --nopid

#
# systemctl stop firewalld
#
# systemctl status firewalld
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled)
   Active: inactive (dead)

#
#systemctl disable firewalld
#
#systemctl enable iptables
#systemctl start iptables
#
#systemctl status iptables
   Loaded: loaded (/usr/lib/systemd/system/iptables.service; enabled)
   Active: inactive (dead) since Sat 2014-09-20 17:47:10 JST; 2min 48s ago
  Process: 11139 ExecStop=/usr/libexec/iptables/iptables.init stop (code=exited, status=0/SUCCESS)
  Process: 10096 ExecStart=/usr/libexec/iptables/iptables.init start (code=exited, status=0/SUCCESS)
 Main PID: 10096 (code=exited, status=0/SUCCESS)
....

#

iptablesの設定はいつもどおり。
CentOS7の新しいコマンドに戸惑ったので一部メモ。

service, chkconfigコマンドはsystemctlコマンドへ

service, chkconfigコマンドは推奨されずsystemctlコマンドへ切り替わった。
試しにchkconfigコマンドを利用すると…

# chkconfig --list
Note: This output shows SysV services only and does not include native
      systemd services. SysV configuration data might be overridden by native
      systemd configuration.

      If you want to list systemd services use 'systemctl list-unit-files'.
      To see services enabled on particular target use
      'systemctl list-dependencies [target]'.

iprdump        	0:off	1:off	2:on	3:on	4:on	5:on	6:off
iprinit        	0:off	1:off	2:on	3:on	4:on	5:on	6:off
iprupdate      	0:off	1:off	2:on	3:on	4:on	5:on	6:off
netconsole     	0:off	1:off	2:off	3:off	4:off	5:off	6:off
network        	0:off	1:off	2:on	3:on	4:on	5:on	6:off
pmcd           	0:off	1:off	2:off	3:off	4:off	5:off	6:off
pmie           	0:off	1:off	2:off	3:off	4:off	5:off	6:off
pmlogger       	0:off	1:off	2:off	3:off	4:off	5:off	6:off
pmmgr          	0:off	1:off	2:off	3:off	4:off	5:off	6:off
pmproxy        	0:off	1:off	2:off	3:off	4:off	5:off	6:off
pmwebd         	0:off	1:off	2:off	3:off	4:off	5:off	6:off

"If you want to list systemd services use 'systemctl list-unit-files'."

systemdのサービスを表示したければ、systemctl list-unit-filesを利用せよとのこと。
試しに打つと以下のように表示される

# systemctl list-unit-files
UNIT FILE                                   STATE
proc-sys-fs-binfmt_misc.automount           static
dev-hugepages.mount                         static
dev-mqueue.mount                            static
proc-fs-nfsd.mount                          static
proc-sys-fs-binfmt_misc.mount               static
sys-fs-fuse-connections.mount               static
sys-kernel-config.mount                     static
sys-kernel-debug.mount                      static
tmp.mount                                   disabled
var-lib-nfs-rpc_pipefs.mount                static
brandbot.path                               disabled
....

また、サービスの起動・停止・状態確認などは

# service <start/stop/restart/status> <service name>
 ↓
# systemctl <start/stop/restart/status> <service name>

そして、サービスの起動オプションの設定は

# chkconfig <service name> <on/off>
   ↓
# systemctl <enable/disable> <service name>

まずはこんなところ。