(ページの作成:「== CentOS 7 (他でも行けるかも)で、sshdをtcpserver経由で動かします ==」) |
|||
行1: | 行1: | ||
== CentOS 7 (他でも行けるかも)で、sshdをtcpserver経由で動かします == | == CentOS 7 (他でも行けるかも)で、sshdをtcpserver経由で動かします == | ||
+ | |||
+ | == パッケージのインストール == | ||
+ | tcpserverを入れます。 | ||
+ | ucspi-tcp……なのですすが、標準のリポジトリにないので、リポジトリの追加が必要です。 | ||
+ | opensuseあたりを入れると良いでしょう。 | ||
+ | /etc/yum.repos.dに、qmailtoaster.repoってファイルを作ります。 | ||
+ | 中身はこんな感じ。 | ||
+ | <pre>[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</pre> | ||
+ | この状態で、yum updateをしておきましょう。 | ||
+ | yum search ucspi-tcpでヒットするようになるハズです。 | ||
+ | ここで | ||
+ | <pre>yum install ucspi-tcp</pre> | ||
+ | として、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 <b>no</b>に書き換えてください。 | ||
+ | |||
+ | そのためだけです(笑) | ||
+ | |||
+ | == アクセス制限ファイルの作成 == | ||
+ | tcpserverで使う、アクセス制限ファイルの設定をします。 | ||
+ | |||
+ | /etc/ssh/sshd_22 (と、/etc/ssh/sshd_22.cdb)を使う事にします。 | ||
+ | |||
+ | /etc/ssh/sshd_22に例えば次のように書きます。 | ||
+ | <pre>=.jp:allow | ||
+ | :deny</pre> | ||
+ | |||
+ | <nowiki>IP:allow</nowiki>と書くと、許可IPを追加できます。 | ||
+ | |||
+ | <nowiki>:deny</nowiki>で拒否。 | ||
+ | |||
+ | tcprulesで変換します | ||
+ | <pre>tcprules sshd_22.cdb t < sshd_22</pre> | ||
+ | これで、sshd_22.cdbが出来ます。 | ||
+ | |||
+ | == systemd用ファイルの作成 == | ||
+ | /etc/systemd/systemで作業を行います。 | ||
+ | |||
+ | サービス名は適当で良いですが、今回はsshd_22とします(sshdとすると、システム標準と被る場合があります) | ||
+ | |||
+ | sshd_22.serviceというファイルを作ります。中身はこんな感じ。 | ||
+ | <pre>[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</pre> | ||
+ | |||
+ | ここまで書いたら、テストしてみましょう。 | ||
+ | |||
+ | <pre>systemctl start sshd_22</pre> | ||
+ | |||
+ | でスタートできます。 | ||
+ | |||
+ | systemctl status sshd_22 でステータスを見て、エラーが出ないことを確認しましょう。 | ||
+ | |||
+ | また、外からログインして見て、アクセスできることを確認しましょう。 | ||
+ | |||
+ | /etc/hosts.denyと/etc/hosts.allowの影響を受けるっぽいので、それは注意。 | ||
+ | |||
+ | 問題無く動いているようなら、次のコマンドで永久に有効にします。 | ||
+ | |||
+ | <pre>systemctl enable sshd_22</pre> | ||
+ | |||
+ | これで設定はおしまいです。 |
2016年10月16日 (日) 12:41時点における版
目次
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
これで設定はおしまいです。