fedoraを始め多くのLinuxディストリビューションでは、OpenSSHが標準装備されており、サーバのリモート操作が容易にできるようになっている。
便利である半面、ユーザ名・パスワードの総当たり攻撃(brute forceアタック)は現在でも常習的に行なわれており、Logwatchなどの情報を見ると特にsshdを狙った攻撃が非常に多く、プログラムにより断続的に行なわれているのが分かる。
■とある日のLogwatch
################### Logwatch 7.3.6 (05/19/07) ####################
(中略)
--------------------- pam_unix Begin ------------------------
sshd:
Authentication Failures:
unknown (202.169.30.25): 1719 Time(s)
root (202.169.30.25): 393 Time(s)
unknown (65.90.252.67): 294 Time(s)
unknown (213.192.73.162): 127 Time(s)
unknown (125.35.11.211): 60 Time(s)
root (61.134.27.234): 59 Time(s)
root (65.90.252.67): 46 Time(s)
unknown (61.134.27.234): 42 Time(s)
root (125.35.11.211): 32 Time(s)
unknown (122.128.96.6): 28 Time(s)
root (122.128.96.6): 25 Time(s)
root (213.192.73.162): 15 Time(s)
apache (202.169.30.25): 5 Time(s)
hsqldb (202.169.30.25): 5 Time(s)
mysql (125.35.11.211): 5 Time(s)
adm (65.90.252.67): 4 Time(s)
avahi (202.169.30.25): 4 Time(s)
gopher (202.169.30.25): 4 Time(s)
smmsp (202.169.30.25): 4 Time(s)
distcache (202.169.30.25): 3 Time(s)
news (202.169.30.25): 3 Time(s)
unknown (202.165.235.2): 3 Time(s)
adm (61.134.27.234): 2 Time(s)
bin (65.90.252.67): 2 Time(s)
clamav (65.90.252.67): 2 Time(s)
daemon (65.90.252.67): 2 Time(s)
games (65.90.252.67): 2 Time(s)
gopher (65.90.252.67): 2 Time(s)
haldaemon (202.169.30.25): 2 Time(s)
halt (65.90.252.67): 2 Time(s)
lp (65.90.252.67): 2 Time(s)
mail (65.90.252.67): 2 Time(s)
mailnull (65.90.252.67): 2 Time(s)
mysql (202.169.30.25): 2 Time(s)
mysql (65.90.252.67): 2 Time(s)
news (65.90.252.67): 2 Time(s)
nfsnobody (202.169.30.25): 2 Time(s)
nfsnobody (65.90.252.67): 2 Time(s)
nobody (65.90.252.67): 2 Time(s)
operator (65.90.252.67): 2 Time(s)
rpc (65.90.252.67): 2 Time(s)
rpcuser (65.90.252.67): 2 Time(s)
shutdown (65.90.252.67): 2 Time(s)
smmsp (65.90.252.67): 2 Time(s)
sshd (65.90.252.67): 2 Time(s)
sync (65.90.252.67): 2 Time(s)
uucp (65.90.252.67): 2 Time(s)
adm (213.192.73.162): 1 Time(s)
amavis (202.169.30.25): 1 Time(s)
apache (213.192.73.162): 1 Time(s)
apache (61.134.27.234): 1 Time(s)
apache (65.90.252.67): 1 Time(s)
bin (202.169.30.25): 1 Time(s)
bin (213.192.73.162): 1 Time(s)
clamav (213.192.73.162): 1 Time(s)
daemon (202.169.30.25): 1 Time(s)
daemon (213.192.73.162): 1 Time(s)
dbus (202.169.30.25): 1 Time(s)
dovecot (202.169.30.25): 1 Time(s)
ftp (213.192.73.162): 1 Time(s)
games (202.169.30.25): 1 Time(s)
games (213.192.73.162): 1 Time(s)
gdm (202.169.30.25): 1 Time(s)
gopher (213.192.73.162): 1 Time(s)
halt (213.192.73.162): 1 Time(s)
lp (213.192.73.162): 1 Time(s)
mail (202.169.30.25): 1 Time(s)
mail (213.192.73.162): 1 Time(s)
mailnull (213.192.73.162): 1 Time(s)
mysql (122.128.96.6): 1 Time(s)
mysql (213.192.73.162): 1 Time(s)
mysql (61.134.27.234): 1 Time(s)
named (213.192.73.162): 1 Time(s)
named (65.90.252.67): 1 Time(s)
news (213.192.73.162): 1 Time(s)
nfsnobody (213.192.73.162): 1 Time(s)
nobody (213.192.73.162): 1 Time(s)
nobody (61.134.27.234): 1 Time(s)
nscd (202.169.30.25): 1 Time(s)
ntp (202.169.30.25): 1 Time(s)
operator (213.192.73.162): 1 Time(s)
operator (61.134.27.234): 1 Time(s)
polkituser (202.169.30.25): 1 Time(s)
postfix (213.192.73.162): 1 Time(s)
postfix (65.90.252.67): 1 Time(s)
pulse (202.169.30.25): 1 Time(s)
root (202.165.235.2): 1 Time(s)
rpc (213.192.73.162): 1 Time(s)
rpcuser (213.192.73.162): 1 Time(s)
shutdown (213.192.73.162): 1 Time(s)
smmsp (213.192.73.162): 1 Time(s)
smolt (202.169.30.25): 1 Time(s)
sshd (213.192.73.162): 1 Time(s)
sync (213.192.73.162): 1 Time(s)
tcpdump (202.169.30.25): 1 Time(s)
torrent (202.169.30.25): 1 Time(s)
uucp (202.169.30.25): 1 Time(s)
uucp (213.192.73.162): 1 Time(s)
Invalid Users:
Unknown Account: 2273 Time(s)
---------------------- pam_unix End -------------------------
(以下略)
かといって、SSHによる管理をやめてしまうと、うちのような小規模な団体だったらいいが、企業などでは、一元管理上、非常に業務上支障をきたすと思う。
このようなbrutet force攻撃に対しては昔から以下のような対策が慣例になっている。
・rootログインを不許可にする
sshd_config ファイル内にて、
#PermitRootLogin yes
↓
PermitRootLogin no
に変更後、sshd再起動。
・MaxStartupsを利用し、アクセス元に制限をかける
参考)http://www.itmedia.co.jp/help/tips/linux/l0541.html
・IPを動的検知してファイアーウォールに登録する
参考)http://www.otsune.com/diary/2004/10/29/7.html#200410297
・指定した期間に受け入れる(match する)パケットの数を制限
参考)http://dsas.blog.klab.org/archives/50208645.html
しかし、いずれにせよ全てルーターから内側の対策術であり、少なからずCPUやパケットが無駄に浪費されていることに変わりはないし、IPフィルタリングにおいては、アクセス元を無作為に増やされると、それに伴ってこちらのテーブルやログもどんどん肥大化していっていしまう。
くだらないやつらのために、こちらの環境までアップデートを繰り返さなければならないのは非常に頭にくるので今回はsshのポートを変更することにした。
ポート番号は使用されていない番号(10000番代?)あたりで設定。
1./etc/sshd/sshd_configを
#Port 22
↓
Port 10004
に変更。(※コメントアウトした状態だと勝手に22番が指定される)
2.ファイアウォールの設定で、22番ポートを閉じ、10004番ポートを新規作成しTCPを許可する。
3.ルータの静的マスカレード設定で、22番ポートを削除し、新しく10004番ポートを追加し開く。
4.sshデーモンを再起動する。
これだけでも、少なくても22番を想定してアクセスしてくるものは全てLANに侵入する前に跳ね返される。
便利である半面、ユーザ名・パスワードの総当たり攻撃(brute forceアタック)は現在でも常習的に行なわれており、Logwatchなどの情報を見ると特にsshdを狙った攻撃が非常に多く、プログラムにより断続的に行なわれているのが分かる。
■とある日のLogwatch
################### Logwatch 7.3.6 (05/19/07) ####################
(中略)
--------------------- pam_unix Begin ------------------------
sshd:
Authentication Failures:
unknown (202.169.30.25): 1719 Time(s)
root (202.169.30.25): 393 Time(s)
unknown (65.90.252.67): 294 Time(s)
unknown (213.192.73.162): 127 Time(s)
unknown (125.35.11.211): 60 Time(s)
root (61.134.27.234): 59 Time(s)
root (65.90.252.67): 46 Time(s)
unknown (61.134.27.234): 42 Time(s)
root (125.35.11.211): 32 Time(s)
unknown (122.128.96.6): 28 Time(s)
root (122.128.96.6): 25 Time(s)
root (213.192.73.162): 15 Time(s)
apache (202.169.30.25): 5 Time(s)
hsqldb (202.169.30.25): 5 Time(s)
mysql (125.35.11.211): 5 Time(s)
adm (65.90.252.67): 4 Time(s)
avahi (202.169.30.25): 4 Time(s)
gopher (202.169.30.25): 4 Time(s)
smmsp (202.169.30.25): 4 Time(s)
distcache (202.169.30.25): 3 Time(s)
news (202.169.30.25): 3 Time(s)
unknown (202.165.235.2): 3 Time(s)
adm (61.134.27.234): 2 Time(s)
bin (65.90.252.67): 2 Time(s)
clamav (65.90.252.67): 2 Time(s)
daemon (65.90.252.67): 2 Time(s)
games (65.90.252.67): 2 Time(s)
gopher (65.90.252.67): 2 Time(s)
haldaemon (202.169.30.25): 2 Time(s)
halt (65.90.252.67): 2 Time(s)
lp (65.90.252.67): 2 Time(s)
mail (65.90.252.67): 2 Time(s)
mailnull (65.90.252.67): 2 Time(s)
mysql (202.169.30.25): 2 Time(s)
mysql (65.90.252.67): 2 Time(s)
news (65.90.252.67): 2 Time(s)
nfsnobody (202.169.30.25): 2 Time(s)
nfsnobody (65.90.252.67): 2 Time(s)
nobody (65.90.252.67): 2 Time(s)
operator (65.90.252.67): 2 Time(s)
rpc (65.90.252.67): 2 Time(s)
rpcuser (65.90.252.67): 2 Time(s)
shutdown (65.90.252.67): 2 Time(s)
smmsp (65.90.252.67): 2 Time(s)
sshd (65.90.252.67): 2 Time(s)
sync (65.90.252.67): 2 Time(s)
uucp (65.90.252.67): 2 Time(s)
adm (213.192.73.162): 1 Time(s)
amavis (202.169.30.25): 1 Time(s)
apache (213.192.73.162): 1 Time(s)
apache (61.134.27.234): 1 Time(s)
apache (65.90.252.67): 1 Time(s)
bin (202.169.30.25): 1 Time(s)
bin (213.192.73.162): 1 Time(s)
clamav (213.192.73.162): 1 Time(s)
daemon (202.169.30.25): 1 Time(s)
daemon (213.192.73.162): 1 Time(s)
dbus (202.169.30.25): 1 Time(s)
dovecot (202.169.30.25): 1 Time(s)
ftp (213.192.73.162): 1 Time(s)
games (202.169.30.25): 1 Time(s)
games (213.192.73.162): 1 Time(s)
gdm (202.169.30.25): 1 Time(s)
gopher (213.192.73.162): 1 Time(s)
halt (213.192.73.162): 1 Time(s)
lp (213.192.73.162): 1 Time(s)
mail (202.169.30.25): 1 Time(s)
mail (213.192.73.162): 1 Time(s)
mailnull (213.192.73.162): 1 Time(s)
mysql (122.128.96.6): 1 Time(s)
mysql (213.192.73.162): 1 Time(s)
mysql (61.134.27.234): 1 Time(s)
named (213.192.73.162): 1 Time(s)
named (65.90.252.67): 1 Time(s)
news (213.192.73.162): 1 Time(s)
nfsnobody (213.192.73.162): 1 Time(s)
nobody (213.192.73.162): 1 Time(s)
nobody (61.134.27.234): 1 Time(s)
nscd (202.169.30.25): 1 Time(s)
ntp (202.169.30.25): 1 Time(s)
operator (213.192.73.162): 1 Time(s)
operator (61.134.27.234): 1 Time(s)
polkituser (202.169.30.25): 1 Time(s)
postfix (213.192.73.162): 1 Time(s)
postfix (65.90.252.67): 1 Time(s)
pulse (202.169.30.25): 1 Time(s)
root (202.165.235.2): 1 Time(s)
rpc (213.192.73.162): 1 Time(s)
rpcuser (213.192.73.162): 1 Time(s)
shutdown (213.192.73.162): 1 Time(s)
smmsp (213.192.73.162): 1 Time(s)
smolt (202.169.30.25): 1 Time(s)
sshd (213.192.73.162): 1 Time(s)
sync (213.192.73.162): 1 Time(s)
tcpdump (202.169.30.25): 1 Time(s)
torrent (202.169.30.25): 1 Time(s)
uucp (202.169.30.25): 1 Time(s)
uucp (213.192.73.162): 1 Time(s)
Invalid Users:
Unknown Account: 2273 Time(s)
---------------------- pam_unix End -------------------------
(以下略)
かといって、SSHによる管理をやめてしまうと、うちのような小規模な団体だったらいいが、企業などでは、一元管理上、非常に業務上支障をきたすと思う。
このようなbrutet force攻撃に対しては昔から以下のような対策が慣例になっている。
・rootログインを不許可にする
sshd_config ファイル内にて、
#PermitRootLogin yes
↓
PermitRootLogin no
に変更後、sshd再起動。
・MaxStartupsを利用し、アクセス元に制限をかける
参考)http://www.itmedia.co.jp/help/tips/linux/l0541.html
・IPを動的検知してファイアーウォールに登録する
参考)http://www.otsune.com/diary/2004/10/29/7.html#200410297
・指定した期間に受け入れる(match する)パケットの数を制限
参考)http://dsas.blog.klab.org/archives/50208645.html
しかし、いずれにせよ全てルーターから内側の対策術であり、少なからずCPUやパケットが無駄に浪費されていることに変わりはないし、IPフィルタリングにおいては、アクセス元を無作為に増やされると、それに伴ってこちらのテーブルやログもどんどん肥大化していっていしまう。
くだらないやつらのために、こちらの環境までアップデートを繰り返さなければならないのは非常に頭にくるので今回はsshのポートを変更することにした。
ポート番号は使用されていない番号(10000番代?)あたりで設定。
1./etc/sshd/sshd_configを
#Port 22
↓
Port 10004
に変更。(※コメントアウトした状態だと勝手に22番が指定される)
2.ファイアウォールの設定で、22番ポートを閉じ、10004番ポートを新規作成しTCPを許可する。
3.ルータの静的マスカレード設定で、22番ポートを削除し、新しく10004番ポートを追加し開く。
4.sshデーモンを再起動する。
これだけでも、少なくても22番を想定してアクセスしてくるものは全てLANに侵入する前に跳ね返される。

コメントする