Contents
1.SSHによるリモート接続の設定
SSHはサーバーへリモートで接続するためのサービスで、基本的にはOSインストール直後に動作していますが、デフォルトの設定ではややセキュリティに難があります。
ここではデフォルトの設定を変更してssh接続のセキュリティを高める設定を行います。
1.1 SSHサービスの設定ファイル変更
SSHサービスの設定を変更するために設定ファイルを変更します。
SSHサービスの設定ファイルは"/etc/ssh/sshd_config"になります。設定ファイルをviエディターで開きます。(viエディタの使い方はネットに情報がたくさんありますので調べて下さい)
viエディタで開くと次のような画面が出ます。
1 |
# vi /etc/ssh/sshd_config |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
# $OpenBSD: sshd_config,v 1.103 2018/04/09 20:41:22 tj Exp $ # This is the sshd server system-wide configuration file. See # sshd_config(5) for more information. # This sshd was compiled with PATH=/usr/bin:/bin:/usr/sbin:/sbin # The strategy used for options in the default sshd_config shipped with # OpenSSH is to specify options with their default value where # possible, but leave them commented. Uncommented options override the # default value. #Port 22 Port 2244 #AddressFamily any ListenAddress 0.0.0.0 #ListenAddress :: #HostKey /etc/ssh/ssh_host_rsa_key #HostKey /etc/ssh/ssh_host_ecdsa_key #HostKey /etc/ssh/ssh_host_ed25519_key # Ciphers and keying #RekeyLimit default none # Logging #SyslogFacility AUTH #LogLevel INFO # Authentication: #LoginGraceTime 2m PermitRootLogin no #StrictModes yes #MaxAuthTries 6 #MaxSessions 10 |
SSH の再起動
1 |
# systemctl restart sshd.service |
2.ファイアウォール(firewalld)の設定方法
openSUSEではファイアウォールはfirewalldがデフォルトに設定されており、OSインストール時に有効になっています。
「firewalld」について簡単に説明すると、通信制御のポリシーを設定する場合、事前に定義されたゾーンに対して通信の許可・遮断ルールを適用し、そのゾーンを各NIC(ネットワークアダプタ)に割り当てていくという方式になっています。
2.1 「firewalld」を制御するための「firewall-cmd」コマンド使用方法
1)ゾーンについて
初期状態で9つのゾーンが用意されています
ゾーン | 通信許可サービス | 説明 |
block | なし 外部からの接続はすべて遮断 | 設定変更不可 遮断時は「CIMP Pohibited」を返し、内部からの通信時は戻りの通信も許可される |
dmz | ssh | dmz用に定義されたゾーン |
drop | なし 外部からの通信はすべて遮断 | 設定変更不可 内部からの通信は送信できるが、外部からの戻りの通信は遮断されるため、結果的にすべての通信が出来ない |
external | ssh | IPマスカレード有効でルータなど外部ネットワークとの接続で使用するために定義されたゾーン |
home | dhcpv6-client ipp-client mdns samba-client ssh | 自宅などで使用するために定義されたゾーン |
internal | dhcpv6-client ipp-client mdns samba-client | 内部ネットワークで使用するために定義されたゾーン |
public | dhcpv6-client ssh | 公共の場所で使用するために定義されたゾーン |
trusted | すべての通信を許可 | 設定変更不可 |
work | dhcpv6-client ipp-client ssh | 職場などの業務エリアで使用するために定義されたゾーン |
2)「fierwalld」の状態や設定内容を確認するためのコマンド
①firewalld稼働状況確認
1 |
# firewall-cmd --state |
または
1 2 3 4 5 6 7 8 9 10 11 12 |
# systemctl status firewalld ● firewalld.service - firewalld - dynamic firewall daemon Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: disabled) Active: active (running) since Fri 2022-09-09 20:43:27 JST; 11min ago Docs: man:firewalld(1) Main PID: 704 (firewalld) Tasks: 2 (limit: 2245) CGroup: /system.slice/firewalld.service mq 704 /usr/bin/python3 /usr/sbin/firewalld --nofork --nopid Sep 09 20:43:25 Lepard systemd[1]: Starting firewalld - dynamic firewall daemon... Sep 09 20:43:27 Lepard systemd[1]: Started firewalld - dynamic firewall daemon. |
Active: inactive (dead)と表示され、firewalldが停止していることが分かります
➁defaultゾーン設定を表示
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
# firewall-cmd --list-all public (active) target: default icmp-block-inversion: no interfaces: eth0 sources: services: dhcpv6-client ssh ports: protocols: forward: no masquerade: no forward-ports: source-ports: icmp-blocks: rich rules: |
上記の例ではpublic」ゾーンが「default」設定となっていて、「eth0」のNICに割り当てられており、サービス「dhcpv6-client」「ssh」が許可されていること等がわかります
➂指定したゾーンの設定を表示
下記の実行例は「dmz」ゾーンの設定を表示させた例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
# firewall-cmd --zone=dmz --list-all dmz target: default icmp-block-inversion: no interfaces: sources: services: ssh ports: protocols: forward: no masquerade: no forward-ports: source-ports: icmp-blocks: rich rules: |
④「--permanent」オプションについて
サーバの再起動や「firewalld」サービスの再起動で設定が消えてしまわないようにするためには、
「--permanent」オプションを使用して設定を行う必要があります。その際、「--permanent」オプションを指定して設定を行った場合は、そのままでは「firewalld」に設定が反映されないため「fiewall-cmd --reload」で設定を反映させる必要があります
例としてHTTPサービスをシステムを再起動しても初期化されず恒久的に利用するためには
1 2 |
# firewall-cmd --add-service=http --permanent # firewall-cmd --reload |
⑤ゾーンへのサービス追加・削除
# firewall-cmd [--permanent] --zone=ゾーン名 --add-service=サービス名
恒久的にゾーンにサービスを追加したい場合は「--permanent」オプションをつけて設定を行う必要があります。
一時的にサービスを追加する設定例
1 2 |
# firewall-cmd --zone=public --add-service=http success |
恒久的にサービスを追加する設定例
「--permanent」オプションを指定して、「public」ゾーンに「http」サービスを追加する例
1 2 |
# firewall-cmd --permanent --zone=public --add-service=http success |
⑥サービス削除
ゾーンに設定されているサービスを削除するには「--remove-service」を使用
# firewall-cmd [--permanent] --zone=ゾーン名 --remove-service=サービス名
例として「http」サービスを「public」ゾーンから削除
1 2 3 4 |
# firewall-cmd --permanent --zone=public --remove-service=http success # firewall-cmd --reload success |
⑦ゾーンへのポート追加・削除
サービスとして追加されていない通信をゾーンに追加する場合は、ポート番号とプロトコルを指定して追加する
ゾーンを指定してポートの追加
ゾーンへのポート追加は「--add-port」を使用して行います
# firewall-cmd [--permanent]--zone=ゾーン --add-port=ポート番号/プロトコル
設定例
「public」ゾーンにポート番号「10022」プロトコル「TCP」のルールを追加してみます
1 2 3 4 |
# firewall-cmd --permanent --zone=public --add-port=10022/tcp success # firewall-cmd --reload success |
ゾーンを指定してポートの削除
ゾーンからポートを削除するには「--remove-port」を使用
# firewall-cmd [--permanent]--zone=ゾーン --remove-port=ポート番号/プロトコル
設定例
先ほど追加した「public」ゾーンの「10022/tcp」ルールを削除します
1 2 3 4 |
# firewall-cmd --permanent --zone=public --remove-port=10022/tcp success # firewall-cmd --reload success |
⑧起動・停止方法
「firewalld」は「systemd」で制御されているので、起動と停止には「systemctl」コマンドを使用
1 2 3 4 |
firewalldの起動 # systemctl start firewalld firewalldの停止 # systemctl stop firewalld |
2.2 変更したSSHポート2244番を解放する
1 2 |
# firewall-cmd --add-port=2244/tcp --permanent # firewall-cmd --reload |
3.Windowsからリモート接続
Windowsでの設定
Windowsからリモート接続するための設定を始めます、ターミナルエミュレーターは「Tera Term」を使用します。
Tera Termを起動し、起動画面のキャンセルをした後、Tera Termメニューの「File」から「New Connection」を選択する
次の画面になりますので次の通り入力します。
Host : サーバーのIPアドレス
TCP port : 上記で変更したSSHポート番号
次の画面になる
User name : 一般ログインユーザー名
Passphrase : 上記ユーザーのパスワード
情報が正しければ下図のように正常にログインできるはずです。
4. NTP サーバーの設定
Chrony をインストールして、時刻同期のための NTP サーバーを構築します。なお、NTP は 123/UDP を使用します。
4.1 Chronyインストール
1 |
# zypper -n install chrony |
4.2 Chrony の設定
1 2 3 4 5 6 7 8 9 10 |
# vi /etc/chrony.conf # 3行目:コメントアウト #pool 0.opensuse.pool.ntp.org iburst 追記 server ntp.nict.jp iburst server ntp1.jst.mfeed.ad.jp iburst # 26行目あたり: 時刻同期を許可する範囲を追記 allow 192.168.11..0/24 |
1 2 |
# systemctl start chronyd # systemctl enable chronyd |
4.3 NTPポートの開放
Firewalld を有効にしている場合は NTP サービスの許可が必要です。なお、NTP は 123/UDP を使用します。
1 2 3 4 |
# firewall-cmd --add-service=ntp --permanent success # firewall-cmd --reload success |
4.4 動作確認
1 2 3 4 5 6 7 8 9 10 11 12 |
# chronyc sources MS Name/IP address Stratum Poll Reach LastRx Last sample =============================================================================== ^- 122x215x240x52.ap122.ftt> 2 6 377 36 +35ms[ +35ms] +/- 73ms ^* ntp-b2.nict.go.jp 1 7 377 34 -442us[ -434us] +/- 5825us ^- any.time.nl 2 7 377 98 +682us[ +691us] +/- 44ms ^- time.cloudflare.com 3 7 377 96 +2633us[+2641us] +/- 141ms ^- 122x215x240x51.ap122.ftt> 2 7 377 32 +35ms[ +35ms] +/- 73ms ^- x.ns.gin.ntt.net 2 6 377 38 -2593us[-2586us] +/- 89ms ^- 138.3.216.120 2 7 177 94 -229us[ -221us] +/- 9751us ^+ ntp-a2.nict.go.jp 1 7 377 108 -193us[ -184us] +/- 5999us |