UJP - 技術情報1

Life is fun and easy!

不正IP報告数

Okan Sensor
 
メイン
ログイン
ブログ カテゴリ一覧

sshスキャン対策 sshd_config,rootユーザ接続不許可

sshスキャン対策 sshd_config,rootユーザ接続不許可


0.改訂履歴

  • 2005.08.23 新規作成
  • 2005.08.30 接続辞書ユーザに関しての追記

1.はじめに

 このドキュメントでは,RedHat ES3.0にて,rootユーザがsshを使って接続できないようにする設定の手順を説明する.

 きっかけは,某サーバにてインターネットにグローバルIPアドレスを持ってサービスを提供しているが,不正なアクセスを試みている痕跡がサーバのログに残されてある事を発見した為. 不正なアクセスは,rootユーザとしてのログインを繰り返し実行している為,これを放置するといつの日か接続されてしまう可能性があり,rootユーザの接続を遮断する事とした.

2.現状確認

  • messagesファイルを確認すると,次のようなログが大量に.アクセスログを見ると,次のようなログが大量に出力されている.
authentication failure; logname= uid=0 euid=0 tty=NODEVssh ruser= 
rhost=222.106.123.nnn  user=root
  • rootユーザとしての接続であるが,パスワード認証に失敗しているとの事.
  • rhost(接続元)サーバは,全く心当たりのないところである.
  • いつからこのログが表示されているかを確認する.
Aug 10 21:42:29 jupiter sshd(pam_unix)[4981]: session closed for user root
Aug 10 21:42:47 jupiter sshd(pam_unix)[5160]: session closed for user root
Aug 10 21:56:31 jupiter sshd(pam_unix)[4680]: session closed for user root
Aug 10 21:56:31 jupiter su(pam_unix)[4863]: session closed for user root
Aug 11 03:30:36 jupiter sshd(pam_unix)[6014]: authentication failure; 
logname= uid=0 euid=0 tty=NODEVssh ruser= rhost=222.106.123.nnn  
user=root
Aug 11 03:30:39 jupiter sshd(pam_unix)[6016]: check pass; user unknown
Aug 11 03:30:39 jupiter sshd(pam_unix)[6016]: authentication failure;
 logname= uid=0 euid=0 tty=NODEVssh ruser= rhost=222.106.123.nnn
  • このマシンをセットアップしてグローバルに接続してから半日程度でアクセス(不正侵入の試み)が行われている事がわかる.

3.rootユーザでsshログインできないようにする

  • UNIX系OSでは,管理者権限を持つrootユーザでログインできてしまえば何でもできる.rootユーザは必ず存在しているので直接侵入するにはちょうど良いアカウントと言える.
  • rootユーザからの接続を拒否する設定は,sshdではデフォルトで持っており,デフォルトではOffになっている. この設定を有効にする事で実現できる.
  • 設定ファイルsshd_configは次の通り.
[root@jupiter root]# head -n 10  /etc/ssh/sshd_config
#       $OpenBSD: sshd_config,v 1.59 2002/09/25 11:17:16 markus Exp $

# This is the sshd server system-wide configuration file.  See
# sshd_config(5) for more information.

# This sshd was compiled with PATH=/usr/local/bin:/bin:/usr/bin

# The strategy used for options in the default sshd_config shipped with
# OpenSSH is to specify options with their default value where
# possible, but leave them commented.  Uncommented options change a
[root@jupiter root]#  
  • このファイルの中の,PermitRootLoginパラメータを確認する.
変更前
     35 
     36 #LoginGraceTime 120
     37 #PermitRootLogin yes
     38 #StrictModes yes
変更後
     35  
     36 #LoginGraceTime 120
     37 #PermitRootLogin yes
     38 PermitRootLogin no
     39 #StrictModes yes
  • デフォルトではコメントアウトになっているが,コメントアウトしてnoとして設定し,保存する.
  • 設定を変更したら,sshdをリスタートする.
[root@jupiter root]# /etc/init.d/sshd restart
sshdを停止中:                                                  [  OK  ]
sshdを起動中:                                                  [  OK  ]
[root@jupiter root]# /etc/init.d/sshd status 
sshd (pid 32126 32039 32037 31993 31991 31928 31891 31889 31646 30932)
 を実行中...
[root@jupiter root]# 

4.動作確認

  • sshを使ってrootユーザで接続してみる.
iMacG5:~ shinnai$ ssh root@jupiter.ujp.jp
root@jupiter.ujp.jp's password: ■■■
Permission denied, please try again.
root@jupiter.ujp.jp's password: ■■■
Permission denied, please try again.
root@jupiter.ujp.jp's password: ■■■
Permission denied (publickey,password,keyboard-interactive).
iMacG5:~ shinnai$ ssh shinnai@jupiter.ujp.jp
shinnai@jupiter.ujp.jp's password: 
[shinnai@jupiter shinnai]$ 
  • rootでログインできない事がわかる.
  • また,この時のアクセスログを確認する.
Aug 23 14:35:51 jupiter sshd(pam_unix)[32616]: session opened for user yamada by (uid=0)
Aug 23 14:47:55 jupiter sshd(pam_unix)[32616]: session closed for user yamada
Aug 23 15:11:38 jupiter sshd(pam_unix)[32710]: session opened for user shinnai by (uid=0)
  • rootで接続が試みられた事がログに残らない.
  • これはDoS(サービス拒否攻撃)をさける為か?と思われる.

5.rootユーザ以外の認証エラーの確認

  • ssh接続のエラーについてはsecureログに記録されている.
[root@jupiter log]# tail -n 3 /var/log/secure
Aug 23 16:27:03 jupiter sshd[690]: Failed password for illegal user felix
 from 219.198.120.65 port 43035 ssh2
Aug 23 16:27:12 jupiter sshd[692]: Illegal user fred from 219.198.120.65
Aug 23 16:27:15 jupiter sshd[692]: Failed password for illegal user fred 
from 219.198.120.65 port 43194 ssh2
[root@jupiter log]#  
  • ログを見るとまさに辞書アタック.片っ端からユーザとパスワードを試している事がわかる.
  • もう少し詳細を見てみる.
Failed password for root from 218.66.123.nnn port
Failed password for root from 218.66.123.nnn port
Failed password for root from 218.66.123.nnn port
Failed password for root from 218.66.123.nnn port
Failed password for root from 218.66.123.nnn port
Failed password for root from 218.66.123.nnn port
Failed password for illegal user admin from 218.
Failed password for illegal user admin from 218.
Failed password for illegal user admin from 218.
Failed password for illegal user administrator f
Failed password for illegal user administrator f
Failed password for illegal user administrator f
Failed password for illegal user tads from 218.6
Failed password for illegal user tads from 218.6
Failed password for illegal user tads from 218.6
Failed password for illegal user tip from 218.66
Failed password for illegal user tip from 218.66
Failed password for illegal user tip from 218.66
Failed password for illegal user myra from 218.6
Failed password for illegal user myra from 218.6
  • rootユーザでアクセスできないようにしたとたんに,辞書アタックに切り替わったようである.
  • どのようなユーザで接続してきているかを確認してみる.
    1. secureログの中からFailed(password)が含まれている行を取り出す.
    2. ログの11列目(ユーザ名が入っているところ)を取り出す.
    3. IPアドレスが含まれるものがあるので,それは-vで除いておく.
    4. 結果をソートしておく.
    5. 複数回同一ユーザで試みられているので,出現数も入れてユニークリストを取り出す.
[root@jupiter root]# grep Failed /var/log/secure \
> | cut -f 11 -d' ' | grep -v [0-9]. | sort | uniq -c
      2 Chicago
      1 Christ
      2 Dakota
      2 Jordan
      2 Joshua
      2 Justin
      2 Nicole
      2 Robert
      3 aaron
      3 abby
      3 abilenki
      1 absurdir_deadphp
     12 adam
      3 adi
      4 adine
     13 admin
      3 admin2
      4 administrator
      7 adrian
      4 aecpro
      4 ahmed
      2 aho
      2 alan
      5 albert
      5 alberto
     10 alex
      3 alexander
      3 alexandru
      3 alexie
      4 alfred
      4 ali
      4 alice
      6 alin
      3 alka
      4 allan
      3 almacen
      3 alvin
      4 amanda
      3 amdsa
      4 andi
      3 andreea
      4 andrei
      4 andres
      4 andrew
      3 andy
      3 angel
      4 angela
      4 angie
      4 anita
      3 ann
      4 anna
      3 anonymous
      3 anthony
      3 anton
      8 apple
      1 apple1
      3 apples
      3 arbaiah
      1 arbgirl_phpbb1
      3 areyes
      3 aris
      3 arnold
      4 aron
      4 arthur
      4 ashley
      3 atir
      4 austin
      3 backup
      4 bandit
      3 bank
      3 banner
      5 barbara
      4 bart
      3 bash
      3 bayonne
      3 bcampion
      4 bear
      3 beavis
      4 beginner
      3 belea
      7 ben
      4 beny
      3 bernard
      4 bert
      7 bill
      3 billy
      4 bind
      3 bird
      3 black
      4 bob
      4 bobby
      3 bogdan
      3 bonec
      3 bong
      3 boon
      3 boss
      4 bret
      7 brian
      4 bruce
      3 bryan
      3 bull
      3 bunny
      3 burrelli
      3 buster
      4 carl
      4 carol
      4 carshowguide
      3 cassie
      3 center
      7 cesar
      3 charlott
      3 cheryl
      1 chicago
      3 chipmast
      2 chris
      1 christia
      7 clark
      3 claudia
      7 clinton
      3 clock
      3 colleen
      3 collins
      3 control
      4 corinna
      3 courier
      4 craig
      3 crichard
      3 cristi
      3 cvs
      6 cycle
      3 cynthia
      3 cyp
      3 cyrus
      1 dakota
      3 dale
      3 dan
      3 dana
      4 daniel
      3 daniela
     10 danny
      4 dave
      3 david
      3 davis
      4 db
      3 deb
      3 debbie
      3 deborah
      3 denise
      3 dev
      7 dexter
      3 diamond
      4 dick
      3 dkauffman
      3 doctor
      3 doming
      3 dominic
      6 drive
      3 duckie
      3 dujoey
      3 duncan
      3 dust
      3 dylan
      4 earl
      4 ed
      4 eddie
      4 edgar
      3 edward
      3 elena
      3 elizabet
      3 elizabeth
     11 ellen
      3 elly
      4 emil
      3 emmanuel
      4 enzo
      9 eric
      3 erica
      4 ethereal
      3 eugen
      3 eva
      3 faridah
      3 fauzi
      3 fax
      4 felix
      3 fernie
      6 filip
      1 filippid_admin
      3 fletcher
      3 flower
      3 fluffy
      9 francis
      3 francois
      3 frank
      3 franklin
      7 fred
      3 friends
      3 ftphome
      2 ftpuser
      3 gabi
      3 gary
      3 gemma
      3 george
      3 ginger
      3 girl
      3 godzilla
      3 gordon
      3 grace
      3 graham
      3 gregory
     11 guest
      3 guest2
      3 guinness
      3 gwen
      6 hack
      6 hacker
      3 hal
      3 hall
      3 hamlet
      3 hammer
      3 harley
      3 harold
      3 harris
      3 harrison
      3 harry
      3 hatton
      3 henry
      3 hera
      3 herbert
      4 hiperg
      3 honey
      3 http
      3 httpd
      3 ian
      3 iceuser
      2 iesse
      4 info
      4 instrume
      3 internet
      3 ioana
      3 ionut
      6 isabelle
      3 ismail
      7 jack
      6 james
      3 janice
      3 jeff
      3 jeffrey
      3 jeremy
      6 jerry
      1 jesse
      3 jessie
      3 jester
      4 jesus
      3 jet
      3 jim
      3 jimmy
      4 jking
      3 jmartin
      3 joanna
      3 joeflores
      3 joerg
      3 joey
      5 john
      3 johny
      1 jordan
      4 joshua
      3 jukebox
      3 julie
      3 junior
      3 jupiter
      2 justin
      2 justin1
      4 karika
      3 karl
      3 kathleen
      3 kathrine
      3 kathy
      3 katie
      3 kay
      6 kayla
      3 keith
      4 kelly
      9 ken
      3 kevin
      3 kim
      3 kinder
      3 kjayroe
      3 kramer
      3 kristen
      3 kristin
      3 larry
      3 laurentiu
      3 lee
      1 lemancaf_leman
      3 leon
      3 leonard
      3 leroy
      3 leslie
      3 library
      3 linda
      3 linux
      3 lisa
      3 lloyd
      3 lucas
      3 madison
      3 magic
      2 mailtest
      3 marcus
      3 margaret
      3 maria
      3 mario
      3 marivic
      3 mark
      3 marleth
      3 marlon
      3 martin
      3 martinez
      4 marvin
      3 master
      3 matilda
      6 matt
      3 matthew
      3 maurice
      3 maverick
      3 max
      3 merlin
      3 mia
      3 mich
      3 michael
      1 michey
      2 mickey
      3 mihai
      3 mikael
      6 mike
      3 miller
      3 mirc
      3 monica
      3 monique
      3 moon
      3 mortimer
      3 mouse
      4 mri
      3 mustang
      3 myra
      1 myrhodesiaiscom
      3 mysql
      5 nathan
      3 netadmin
      4 nicole
      3 nina
      3 nishiyama
      3 nora
      3 norm
      3 norman
      3 notused
      3 o2
      3 one
      4 oracle
      3 orange
      3 paintball
      5 paintball1
      3 pascal
      3 patrick
      9 paul
      3 paulj
      3 peaches
      3 peewee
      3 penelope
      3 pete
      2 peter
      3 petru
      3 pgsql
      3 phil
      6 philip
      3 play
      3 porno
      1 postgres
      3 press
      3 princess
      3 purple
      3 quincy
      3 resin
      3 rezvie
      3 richard
      2 robert
      3 rock
      3 roland
      3 rolo
      9 ronald
      3 rosa
      6 russ
      1 sales
      3 samba
      3 samir
      3 sammy
      3 samuel
      3 sandra
      1 sangley_xmb1
      3 sarah
      3 save
      3 scan
      3 scorpion
      3 sean
      3 semenov
      4 seoulselection
      1 service
      3 sham
      3 sharon
      3 sharp
      3 shaun
      4 shell
      3 shop
      4 signalhill
      3 silver
      4 simon
      3 skkb
      3 sll
      3 sm
      3 sme
      3 smith
      4 snoopy
      3 sonny
      3 spam
      3 spencer
      3 spider
      3 spike
      6 stephanie
      3 stephen
      3 steve
      3 steven
      3 superman
      3 suva
      3 sven
      3 sya
      4 sybase
      3 sylvia
      3 sys_admin
      3 system
      3 tads
      3 tamara
      3 tara
      3 tasha
      3 temp
      5 test
      2 testuser
      3 thaiset
      3 theo
      3 theresa
      6 thomas
      3 tiffany
      3 tigger
      3 tim
      3 timothy
      3 tino
      3 tip
      3 tir
      3 tmp
      3 tom
      3 tomcat
      3 tony
      3 trash
      1 travel_phpb1
      3 tweety
      3 ultra
      3 union
      3 unix
      8 user
      3 username
      3 valentin
      3 valerie
      2 vanesa
      1 vanessa
      3 vdi
      3 venom
      3 ventas
      3 vermont
      3 vicky
      3 vinci
      3 vincintz
      3 viorel
      6 viper
      3 virginia
      1 wallimo_phpbb1
      4 walter
      3 wang
      3 wanker
      3 waterboy
      3 watson
      3 wayne
      3 web
      3 webmaster
      3 webpop
      6 webster
      3 weenie
      6 white
      3 will
      1 wille
      5 willie
      3 willow
      3 willy
      3 wilma
      3 win
      3 word
      3 www
      3 wwwdata
      3 wwwrun
      3 xbox
      3 xtra
      3 xxx
      3 yolanda
      3 zena
[root@jupiter root]#
  • いろいろと思い当たるアカウントもあったりするようなしないような.
  • その後一週間ほど経過した結果を,トップ10で表示してみる.
[root@jupiter nagios]# grep Failed /var/log/secure | ¥
> cut -f 11 -d' ' | grep -v [0-9]. | sort | uniq -c | ¥
> sort --reverse |head -n10
   1026 a
     33 admin
     24 test
     21 tester
     21 spam
     17 oracle
     14 amanda
     12 testuser
     11 alan
     11 administrator
[root@jupiter nagios]#  
  • 圧倒的に多いので,単なるアタックのような感じです.

6.それ以外に

  • rootユーザでのログインだけでなく,推測しやすいアカウント名や長いパスワードを利用しない運用等も必要で,可能であれば接続して来れるサーバを制限する.


広告スペース
Google