블로그 이미지
JEEN

서울에 사는 꽃청년의 IT찌질모험기

Rss feed Tistory
IT 2010.03.12 13:16

[ SSH! ] 서버, SSH, 그리고 보안

  올해들어서 세번정도 데이터센터 입구쪽 서버한대에 SSH 공격이 있었습니다. 

  대략 중국이랑 독일쪽에서 온 공격인데 AllowUsers 지정해놓고, root 로그인 못하게 해놨는데도 계속 찝적거리더군요.
  이대로 놔두면 안되겠다 라는 그런 회의아래에 예방책을 마련하게 되었습니다.

  1. 일정횟수 이상의 인증실패는 나쁜놈으로 간주한다
  2. 걍 SSH 포트 바꿔버린다
  3. 비밀번호 인증을 없애버린다

  저야 뭐 느슨한 정책이 좋아(=사실은 귀찮아서)서 1번만으로 땡하려고 했는데, 다른 여러 의견에 따라서 1,2,3 동시에 다 하자는 결론이 나왔습니다.
 그리고 SA 는 회사, 데이터센터쪽으로 들어오는 입구쪽 서버에 대해서는 회사안에서는 현재 포트로 유지, 외부로부터의 접속에는 특정포트로 지정하겠다는 룰을 정했습니다.

 그래서 2,3번 예방책으로...  
  sshd_config 를 하나 더 만들고 포트번호를 바꾸고, 패스워드 인증을 꺼버렸습니다. 

#/etc/ssh/sshd_config-diff
Port ****
....
PermitRootLogin no
....
PasswordAuthentication no
....
AllowUsers ... ... ... ...

그리고 sshd 를 하나 더 띄웠죠.
$ /usr/sbin/sshd -f /etc/ssh/sshd_config-diff 

어차피 기존에 쓰던 공개키는 같으니까... 공개키인증 해놓고 포트만 바꾸면 사샤샥 잘만 접속 됩니다. :-) 

 그리고 1번은 별다른 고민없이 DenyHosts 를 선택했었는데요.
 이것도 여러가지 선택지가 있었습니다.

  1. DenyHosts
  2. ssh_guard
  3. fail2ban
   ...

 그외 여러가지 있었던 듯 했는데... 방화벽 설정까지 어쩌고 하는 게 귀찮아서 그냥 DenyHosts 깔아서 돌려줬습니다. 기본 설정으로는 5번 인증실패면 나쁜놈 취급하고 해당 호스트를 막아버리던데...(/etc/hosts.deny) 이건 설정파일 이래저래 만져주면서 조정해줬습니다. (denyhosts.conf)
 SSH 뿐만 아니라 FTP 등등의 다른 것들까지도 슥샥 가능하니 :-) 범용성 면에서는 좋지 않나 생각했습니다.

 사실 웹프로그래밍 안에서의 최소한의 보안에 대한 지식만 있을 뿐.. 서버 보안에는 신경쓰지 않았는데..
 이를 계기로 제 섭의 /var/log/auth.log 를 보니 중국애들이 많이도 저질러 놨길래, root 인증만 막아놓고 Denyhosts 돌리고 있습니다. :-)
신고
TOTAL 470,023 TODAY 6

티스토리 툴바