目次
CentOS 7 (他でも行けるかも)で、sshdをtcpserver経由で動かします
パッケージのインストール
tcpserverを入れます。 ucspi-tcp……なのですすが、標準のリポジトリにないので、リポジトリの追加が必要です。 opensuseあたりを入れると良いでしょう。 /etc/yum.repos.dに、qmailtoaster.repoってファイルを作ります。 中身はこんな感じ。
[home_weberho_qmailtoaster] name=The qmailoaster (CentOS_xi75) type=rpm-md baseurl=http://download.opensuse.org/repositories/home:/weberho:/qmailtoaster/CentOS_7/ gpgcheck=1 gpgkey=http://download.opensuse.org/repositories/home:/weberho:/qmailtoaster/CentOS_7/repodata/repomd.xml.key enabled=1
この状態で、yum updateをしておきましょう。 yum search ucspi-tcpでヒットするようになるハズです。 ここで
yum install ucspi-tcp
として、ucspi-tcp(tcpserverが含まれる)をインストールします。 daemontoolsも入りますが、気にしない。
コンフィグファイルの作成
他のポートで動いているsshd_configと別の物を使いたい場合だけこの設定をします。
ファイル名は、sshd_config_22とします。もし、他のポートで動いてるものと同じで良い、または、そもそもこれで動かすのが全ての場合は、sshd_config_22をsshd_configと置き換えてください。
まず、cd /etc/sshして、cp sshd_config sshd_config_22とします。
何を変更するかというと、公開鍵以外は受け付けないようにします。
PasswordAuthentication yesをPasswordAuthentication noに書き換えてください。
そのためだけです(笑)
アクセス制限ファイルの作成
tcpserverで使う、アクセス制限ファイルの設定をします。
/etc/ssh/sshd_22 (と、/etc/ssh/sshd_22.cdb)を使う事にします。
/etc/ssh/sshd_22に例えば次のように書きます。
=.jp:allow :deny
IP:allowと書くと、許可IPを追加できます。
:denyで拒否。
tcprulesで変換します
tcprules sshd_22.cdb t < sshd_22
これで、sshd_22.cdbが出来ます。
systemd用ファイルの作成
/etc/systemd/systemで作業を行います。
サービス名は適当で良いですが、今回はsshd_22とします(sshdとすると、システム標準と被る場合があります)
sshd_22.serviceというファイルを作ります。中身はこんな感じ。
[Unit] Description=OpenSSH server daemon After=syslog.target network.target auditd.service [Service] EnvironmentFile=/etc/sysconfig/sshd #ExecStartPre=/usr/sbin/sshd-keygen ExecStart=/usr/bin/tcpserver -v -p -R -x /etc/ssh/sshd_22.cdb 0 22 /usr/sbin/sshd -i -f /etc/ssh/sshd_config_22 ExecReload=/bin/kill -HUP $MAINPID KillMode=process Restart=on-failure RestartSec=42s SyslogIdentifier=sshd SyslogFacility=daemon SyslogLevel=info [Install] WantedBy=multi-user.target
ここまで書いたら、テストしてみましょう。
systemctl start sshd_22
でスタートできます。
systemctl status sshd_22 でステータスを見て、エラーが出ないことを確認しましょう。
また、外からログインして見て、アクセスできることを確認しましょう。
/etc/hosts.denyと/etc/hosts.allowの影響を受けるっぽいので、それは注意。
問題無く動いているようなら、次のコマンドで永久に有効にします。
systemctl enable sshd_22
これで設定はおしまいです。