さくらのVPS CentOS 7でファイアーウォールの設定
パケットフィルタの設定
さくらのVPSのコントロールパネルでパケットフィルタの設定を確認すると、パケットフィルタの利用設定が利用する、接続可能ポートにSSH(22)が設定されています。
ファイアウォールの設定はサーバー側で行うので、パケットフィルタの利用設定は利用しないに設定します。
このあと、さくらのVPS - コントロールパネルでコンソールを起動しファイアウォールの設定を進めます。
ファイアウォールの設定
firewalld.serviceの状態を確認すると起動していません。
$ systemctl status firewalld.service
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
Active: inactive (dead)
Docs: man:firewalld(1)
firewalld.serviceを起動します。
$ sudo systemctl start firewalld.service
firewalld.serviceの状態を確認するとactiveになっているのでOK
firewalld.serviceを自動起動するように設定
$ sudo systemctl enable firewalld.service
httpとhttpsを許可する
$ sudo firewall-cmd --zone=public --add-service=http --permanent
$ sudo firewall-cmd --zone=public --add-service=https --permanent
$ sudo firewall-cmd --reload
設定を確認する
$ sudo firewall-cmd --list-all
public (active)
target: default
icmp-block-inversion: no
interfaces: eth0
sources:
services: dhcpv6-client http https ssh
ports:
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
sshのポートを変更
sshd_configを開きポートを設定します。
$ sudo vi /etc/ssh/sshd_config
今回はポート番号を61203に設定しました。
Port 61203
rootユーザーでsshでログインできないようにnoを設定
PermitRootLogin = no
パスワード認証を許可する
PasswordAuthentication yes
sshdを起動する
$ sudo systemctl start sshd.service
sshdが起動しているか確認する
$ sudo systemctl status sshd.service
ファイアウォールのsshのデフォルトの設定を確認するとportが22になっています。
$ cat /usr/lib/firewalld/services/ssh.xml
<?xml version="1.0" encoding="utf-8"?>
SSH
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 thisoption. You need the openssh-server package installed for this option to be useful.
ポート番号を変更したい場合は、このファイルを/etc/firewalld/にコピーして編集します。
$ sudo cp /usr/lib/firewalld/services/ssh.xml /etc/firewalld/services/ssh.xml
$ sudo vi /etc/firewalld/services/ssh.xml
/etc/ssh/sshd_configに設定したポート番号を指定します。
<service>
<short>SSH</short> <description>Secure Shell (SSH) is a protocol for logging into and executing ccommands on remote machines. It provides secure encrypted communications. If youplan on accessing your machine remotely via SSH over a firewalled interface, enaable this option. You need the openssh-server package installed for this option tt
o be useful.</description>
<port protocol="tcp" port="61203"/>
</service>
設定を反映します。
$ sudo firewall-cmd --reload
これでコマンドでポート番号を指定してsshで接続できるようになります。