무작위로 ssh 로 들어오려고 하는 로그땜시 신경쓰이네요
글쓴이: doodoo / 작성시간: 금, 2008/10/24 - 1:29오후
Oct 24 12:58:12 doodoo sshd[19006]: Invalid user unix from 222.90.65.251 Oct 24 12:58:12 doodoo sshd[19006]: pam_unix(sshd:auth): check pass; user unknown Oct 24 12:58:13 doodoo sshd[19006]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=222.90.65.251 Oct 24 12:58:14 doodoo sshd[19006]: Failed password for invalid user unix from 222.90.65.251 port 10176 ssh2 Oct 24 12:58:20 doodoo sshd[19009]: Invalid user webadmin from 222.90.65.251 Oct 24 12:58:20 doodoo sshd[19009]: pam_unix(sshd:auth): check pass; user unknown Oct 24 12:58:20 doodoo sshd[19009]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=222.90.65.251 Oct 24 12:58:22 doodoo sshd[19009]: Failed password for invalid user webadmin from 222.90.65.251 port 11987 ssh2 Oct 24 12:58:28 doodoo sshd[19013]: Invalid user ftp from 222.90.65.251 Oct 24 12:58:28 doodoo sshd[19013]: pam_unix(sshd:auth): check pass; user unknown Oct 24 12:58:28 doodoo sshd[19013]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=222.90.65.251 Oct 24 12:58:30 doodoo sshd[19013]: Failed password for invalid user ftp from 222.90.65.251 port 13886 ssh2 Oct 24 12:58:36 doodoo sshd[19017]: Invalid user test from 222.90.65.251 Oct 24 12:58:36 doodoo sshd[19017]: pam_unix(sshd:auth): check pass; user unknown Oct 24 12:58:36 doodoo sshd[19017]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=222.90.65.251 Oct 24 12:58:38 doodoo sshd[19017]: Failed password for invalid user test from 222.90.65.251 port 15711 ssh2
지금도 이렇게 자꾸 들어오려고 하는데....
같은 아이피에 대해 5번 이상 실패하면 1시간 동안 아이피 블럭!
이런식으로 막을수 있는 방법이 있을까요?
iptable 을 이용하면 될것 같기는 한데 ... 이쪽으로는 무지하므로 질문을 올립니다.
Forums:
denyhosts를
denyhosts를 사용하세요
------
이것은 시그너쳐입니다.
USE="어리고 착하고 돈많고 이쁘고" emerge girl
------
이것은 시그너쳐입니다.
USE="어리고 착하고 돈많고 이쁘고" emerge girl
fail2ban도
fail2ban도 좋습니다.
http://www.fail2ban.org/wiki/index.php/Main_Page
서버라면 특정 IP를 제외하고 전부 막는게 속편합니다.
그럴 상황이 못되면 ssh 포트를 22번 말고 다른걸로 변경하면
무작위 접속은 피할 수 있습니다.
http://star4u.org
http://mirror.star4u.org
감사합니다. 우분투
감사합니다. 우분투 페키지 안에 있군요.... 컴파일 하기 직전 확인했습니다.
http://my.oops.org/56
http://my.oops.org/56
예전에 이거
예전에 이거 했었는데, 풀어버렸습니다.
이유는 '실패시'를 카운트 할 수 없기 때문입니다.
emerge money
http://wiki.kldp.org/wiki.php/GentooInstallSimple - 명령어도 몇개 안되요~
http://xenosi.de/
https://xenosi.de/
실패시를 카운트 할
실패시를 카운트 할 필요는 없죠. 몇초 안에 몇번의 접속이 들어오냐를 측정하면 되는 것이니까요.
저의 경우에는 60초 동안 10번의 접속이 들어올 경우를 막습니다. 보통 이렇게 들어올 이유는 없으니까요. broute force attack 의 좀 관대하게 설정 하자면, 60초 동안 20번의 접속을 막는 것도 잘 막아지기는 할 겁니다.
ssh 의 port 22 는 sftp 나
ssh 의 port 22 는 sftp 나 scp 도 해당됩니다.
모니터링을 위해 ssh 한 5개 열고 scp 몇번 하면 막힙니다.
message 로그를 보면 60초 5번의 실패 정도를 막아야 효과적일거라 생각됩니다.
emerge money
http://wiki.kldp.org/wiki.php/GentooInstallSimple - 명령어도 몇개 안되요~
http://xenosi.de/
https://xenosi.de/
블로그에 가서
블로그에 가서 보니깐
잘 이해가 안가서 (워낙...iptables 쪽은 문외한이라서...ㅠ)
우분투에서는 자동으로 시작하는 /etc/initrd/iptables 등이 없는데....
http://kldp.org/node/90468#comment-427005
여기 보니깐 resent 모듈을 써서 하는것도 있군요..
근데 내용이 조금 다릅니다.
아...근데...두개다 몇번의 로그인 실패시 Drop 하는 룰은 아닌것 같네요..
제가 잘 모르는건지도 .........
1분에 4번 이상
1분에 4번 이상 접속을 시도했다면, 1분에 '4번 이상 로그인 실패' 를 한 거죠.
암호를 까먹은 나머지 닥치는대로 이것저것 시도하는 사람일 가능성도 있고,
세션 여러 개를 단시간 내에 연결해서 뭔가를 하려는 사람일 가능성도 있지만,
공격을 감행하는 bot 일 가능성이 절대적으로 높습니다.
몇 번 이상 실패한 '계정' 에 대해 '계정블럭'을 하는 것은 아마도 PAM 모듈 중에 구현된 것이 있을 것도 같은데,
아시겠지만 굉장히 위험합니다. 누군가가 다른 사람의 계정을 의도적으로 혹은 실수로 블록시키는 것이 가능하니까요.
그리고, 공격패턴을 보면 특정id 에 대해 특정한 passwd 로 딱 한번만 시도하고는 다음 계정으로 재시도하니... 이건 뭐...
몇 번 이상 실패한 '접속지 주소'에 대해 deny 하는 것도 PAM 모듈들을 잘 조합하면 가능할 것 같습니다.
없으면 만드는 것도 불가능한 것은 아닌데,
이건 계정단위가 아니라 접속지 주소로 카운팅을 해야하니 로그파일이 엄청나게 커지고 관리도 힘들겠네요.
이런 삽질을 하느니 위의 iptables rule에 맡기고 말겠습니다.
영원히 금지하는 것도 아니기 때문에 사유가 있는 정상적인 사용자라면 1분 후에 다시 재시도 하면 될테고요.
사실, 저렇게 iptables 로 막는 이유는 저런 공격으로 뚫릴까봐 걱정되서라기 보단
log 파일에 계속 쓰레기가 쌓이는 바람에 의미 있는 뭔가를 놓치는 게 두려워서...일 수도.
OTL
scp 를 즐겨쓰는 (특히
scp 를 즐겨쓰는 (특히 bash-completion 까지 이용하는) 저는 분당 수십번의 접속을 합니다.
bot 은 오히려 과부하 공격이 될 정도의 공격은 잘 안합니다.
로그인 실패 정보를 이용하는 솔루션이 훨씬 좋다고 생각합니다.
확실한 실패인 경우 5번 실패시 '영원히' 막아버리면 로그도 깔끔하겠죠.
emerge money
http://wiki.kldp.org/wiki.php/GentooInstallSimple - 명령어도 몇개 안되요~
http://xenosi.de/
https://xenosi.de/
sshfs 가 필요한 것
sshfs 가 필요한 것 같으신데요.
로그인실패정보를 이용하는 솔루션이 훨씬 더 좋은 것은 의심의 여지 없는 사실이지만,
위에 적었듯 '누가' 실패했는가가 아니라 '어디서' 실패했는지를 기록해야하고,
그 자체로 DoS 를 허용하는 게 됩니다.
OTL
포트 바꾸고
포트 바꾸고 인증방식을 publickey로 바꾸세요. publickey는 키파일 도난 안당한다면 그리 쉽게 못뚫을걸요.
Written By the Black Knight of Destruction
Written By the Black Knight of Destruction
정기적으로 포트만 바꾸면...
1년에 한두번정도 port 바꿔주면 확~ 사라지는 듯합니다.
Hello World.
doodoo@doodoo:/etc/init.d$
우분투 에서 수동으로 doodoo@doodoo:/etc/init.d$ sudo ./fail2ban start 하고서
한참 뒤에 봤더니 이렇게 나오네요..먼가 문제가 있어서 동작하지 않는것 같은데...
https://bugs.launchpad.net/ub
https://bugs.launchpad.net/ubuntu/+source/fail2ban/+bug/223706
여기에 보면 /var/run/fail2ban 디렉토리를 수동으로 만들어 주어야 하네요..ㅎㅎㅎ
이제 로그보면서 쾌감(?)을 느껴야지..ㅎㅎㅎㅎ
혼자서만 쓰려고
혼자서만 쓰려고 설치한 SSH서버이거나 SSH서버로 접속할 사람들의 수가 적고 그 사람들의 IP가 일정하다면....
hosts.allow와 hosts.deny를 통해서 특정 아이피만 허용하고 나머지는 다 불허용하면 됩니다.
예를 들어서 /etc/hosts.allow에는
sshd: 123.456.123.456, 999.999.999.999, 127.0.0.1
라는 한 줄이 있고 /etc/hosts.deny 에는
sshd: ALL
라는 한 줄이 있으면 아이피가 123.456.123.456, 999.999.999.999, 127.0.0.1중 하나인 컴퓨터만 SSH서버에 접속할 수 있습니다.
만약 SSH서버가 윈도우즈XP이상에서 가동되는 경우는 hosts.allow와 hosts.deny를 쓰는 대신 윈도우즈자체방화벽을 이용해서 아이피제한을 걸 수 있습니다.
특정 국가에서만 들어온다면
특정 국가쪽에서만 들어온다면 (이를테면 동쪽의 큰 나라)
iptable + geoip 를 써서 차단해 보시는것도 나쁘진 않을듯 하군요.
over the rainbow...
over the rainbow...
댓글 달기