Centos7 で ssh の接続を IP で制限する

なお、Amazon AWS の EC2 を使っている場合は セキュリティグループ を使用しましょう

● Centos7 で ssh の接続を IP で制限する

Centos7 からは firewalld を使用します。
( /etc/hosts.deny , /etc/hosts.allow は使用しません )

● 現在の firewalld 設定を確認する

firewall-cmd --list-all

(例)

public (active)
  target: default
  icmp-block-inversion: no
  interfaces: eth0
  sources: 
  services: http https imap imaps pop3 pop3s smtp smtps
  ports: 22000/tcp 587/tcp
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 

● 1. まず既存の 「全てのIPを許可している sshポート」 を閉じます

・標準の sshポート(22番) を使用している場合

例: sshポート(22番)を削除します。

firewall-cmd --permanent --remove-service=ssh

・22番 以外の特定のポートを使用している場合

例: 22000番を削除します。

firewall-cmd --remove-port=22000/tcp --permanent 

● 2. IP許可する設定を追加します

firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="接続を許可するIPアドレス" port protocol="tcp" port="22" accept"

設定例

IP : 123.123.123.123
ポート : 22000
を許可します。

firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="123.123.123.123" port protocol="tcp" port="22000" accept"

● 2. 全ての接続元に対してポートを開放する場合

ポート22000を開放します

firewall-cmd --add-port=22000/tcp --zone=public --permanent

● 3. 再度 firewalld を再起動して設定を確認する

firewall-cmd --reload
firewall-cmd --list-all
No.1594
09/21 13:55

edit