トップ 一覧 置換 検索 ヘルプ RSS ログイン

sshd_configでmatch(条件分岐)するの変更点

  • 追加された行はこのように表示されます。
  • 削除された行はこのように表示されます。
!!!CentOS7以降(Systemd)
!sshd のシンボリックリンクの作成
 cd /usr/sbin
 ln -s sshd sshd-out
!!!はじめに
sshd_configのmatchを使えば、設定の適用を条件分岐できる。
例えば、外部からは公開鍵認証でchrootし、内部はパスワード認証するという設定ができる。

!設定ファイルを作る
/etc/sshd/sshd_config 
をコピーして
/etc/sshd/sshd_config.out 
を作成する。
!!注意
Matchブロックは次のMatchブロックかEOFまで続く。
そのため、Matchはファイルの最後に書いたほうが無難。

PortやPidFileを変更する
 Port 8122
 PidFile /var/run/sshd-out.pid
など。

!pam の設定
pam認証を行う場合
 cd /etc/pam.d
 cp sshd sshd-out

!サービスを作成する
 cd /usr/lib/systemd/system
 cp -p sshd.service sshd-out.service
 vi sshd-out.service

 # ExecStart=/usr/sbin/sshd -D $OPTIONS
 ExecStart=/usr/sbin/sshd-out -f /etc/ssh/sshd_config.out  -D $OPTIONS

!SELinuxの設定
selinuxが有効になっている場合は、sshd が利用するポートを設定する
22ポートの利用状況確認
 semanage port -l | grep -i 22
8122をsshで利用するように登録
 semanage port -a -t ssh_port_t -p tcp 8122

!起動
 systemctl start sshd-sub.service
 systemctl status sshd-sub.service

!!!CentOS6以前(SysVinit)
http://bird-memo.seesaa.net/article/82813147.html
!sshd のシンボリックリンクの作成
 cd /usr/sbin
 ln -s sshd sshd-out

!起動ファイルの作成
/etc/rc.d/init.d/sshd 
をコピーして 
/etc/rc.d/init.d/sshd-out
を作成する

以下を修正する
 22c22
 < prog="sshd"
 ---
 > prog="sshd-out"
 26c26
 < SSHD=/usr/sbin/sshd
 ---
 > SSHD=/usr/sbin/sshd-out
 30c30
 < PID_FILE=/var/run/sshd.pid
 ---
 > PID_FILE=/var/run/sshd-out.pid
 107c107
 <       initlog -c "$SSHD $OPTIONS" && success || failure
 ---
 >       initlog -c "$SSHD -f /etc/ssh/sshd_config.out" && success || failure
 109c109
 <       [ "$RETVAL" = 0 ] && touch /var/lock/subsys/sshd
 ---
 >       [ "$RETVAL" = 0 ] && touch /var/lock/subsys/$prog
 122c122
 <       [ "$RETVAL" = 0 ] && rm -f /var/lock/subsys/sshd
 ---
 >       [ "$RETVAL" = 0 ] && rm -f /var/lock/subsys/$prog
 153c153
 <               if [ -f /var/lock/subsys/sshd ] ; then
 ---
 >               if [ -f /var/lock/subsys/$prog ] ; then

!設定ファイルを作る
/etc/sshd/sshd_config 
をコピーして
/etc/sshd/sshd_config.out 
を作成する。

以下を修正する
 PidFile /var/run/sshd-out.pid

!pam の設定
pam認証を行う場合
 cd /etc/pam.d
 cp sshd sshd-out

!hosts の編集
 /etc/hosts.allow
を編集する

!サービス登録
 chkconfig --add sshd_out
 chkconfig --level 2345 sshd_out on

!!例1
 # Change to no to disable tunnelled clear text passwords
 PasswordAuthentication no #パスワードで認証を禁止する。鍵だけ。
 #中略
 #192.168.*.*からの接続だけパスワードで認証許可する
 Match Address 192.168.*.*   
 PasswordAuthentication yes
 


{{category2 OS,Linux}}