반응형

출처 : http://www.aesop.or.kr/Board_Resources_S3C2410/38178


1. 유형목 부장님이 쓰신 글.

2. 설정

1.유형목 부장님이 쓰신 글.


aesop-2440 3차 보드에서 ssh server(dropbear) 를 돌려보았습니다. 잘 됩니다.

minicom 없이 putty 같은거 써서 네트웍으로 여러번 접속이 가능합니다.

1. HOST 작업

우선 dropbear 패키지를 받습니다.

wget http://matt.ucc.asn.au/dropbear/releases/dropbear-0.49.tar.gz

압축을 풀고 다음과 같이 configure 명령을 내립니다.

tar -zxvf dropbear-0.49.tar.gz

./configure --host=arm-linux --disable-shadow

options.h 파일을 열고 DROPBEAR_RANDOM_DEV 항목에서
/dev/random 을 /dev/urandom 으로 고쳐줍니다.

make 를 실행시켜 컴파일 합니다.

실행파일이 네개 생기는데 dbclient 는 ssh client 프로그램이고 dropbear 가 ssh server 프로그램입니다. dropbearkey 는 dropbear 를 구동할때 필요한 키를 생성하는 프로그램이고 dropbearconvert 는 openssh-server 에서 생성한 키를 dropbear에 맞게 변환하는 프로그램입니다.

2. TARGET 작업

네개의 실행파일을 aesop-2440 타겟보드로 복사합니다.

세개의 키를 생성합니다.

dropbearkey -t rsa -f /etc/dropbear/dropbear_rsa_host_key

dropbearkey -t dss -f /etc/dropbear/dropbear_dss_host_key

dropbearkey -t ecdsa -f /etc/dropbear/dropbear_ecdsa_host_key



/etc/inittab 파일을 열고 /sbin/autologin 부분을 /bin/login 으로 고쳐줍니다.
init 를 재구동 시킵니다.

passwd root 명령을 내려서 암호를 설정합니다.

./dropbear -E 옵션을 주어 ssh server 를 구동합니다.

3. 접속 테스트

리눅스에서 ssh root@192.168.??.??
혹은 Windows 에서 putty 를 써서 여러번 접속해 봅니다.





2.설정


특정 아이디 ssh막기

소스컴파일해서 sshd를 설치하셨다면 경로는 다르겠으나,
일반적으로 /etc/ssh/ 에 설정파일들이 있습니다.
여기서 sshd_config를 열어서 아래 설명대로 특정 아이디나 그룹을 추가하세요.
----------------------------------
AllowGroups
:ssh 로그인을 해당 그룹으로 제한한다. 각각의 그룹명은 공백으로 구분한다. 와일드 카드(* 와 ?)를 사용할수 있다.

AllowUsers
:ssh 로그인을 해당 유저로 제한한다. 사용법은 AllowGroups과 같다.

DenyGroups
:AllowGroups의 반대 역할을 한다. 지정된 그룹은 로그인이 거부된다.

DenyUsers
:AllowUsers의 반대 역할을 한다. 지정된 사용자는 로그인이 거부된다.
----------------------------------
자세한 내용은 http://coffeenix.net/doc/KoreanDoc/html/SSH-KLDP/

그리고 ssh든 텔넷이든 로그인한 사람들 볼려면 쉘명령어 w를 쳐서 보세요
옵션은 man으로 보시던지요. 전 그냥 w만 쳐서 봅니다.
그럼 로그인한 사람들 정보 나오죠?
그리고 ps -ef 명령으로 현재 프로세스 떠 있는것들 보시고
이상한 점 있는지 보세요.
bash쉘상태의 사용자들을 보실려면
ps -ef | grep bash 하시면 bash쉘을 사용한 사용자들 볼수 있겠죠?
근데 님의 아이디가 아닌데 root로 들어온 사람들도 여기서 볼수 있겠죠?
ps -ef | grep root 하셔서 root상태의 프로세스중 수상한 넘 있는지 보심 되구요.
그리고 특정 사용자를 강제 로그아웃시키려면,
예를들어 w로 알게 된 test라는 사용자의 tty 정보가 pts/5 라면
ps -ef | grep pts/5 하시면 test이름으로 된 프로세스를 볼수 있겠죠.
이 프로세스 아이디(pid)를 죽이면 됩니다. (다른방법도 있겠죠? 근데 저는 이것밖에)
죽이는 명령은 kill -9 pid(프로세스아이디)
-9는 강제로 죽여라...라는 옵션입니다.
그리고 다시 ps -ef | grep pts/5 해보세요
있음 죽이고 없음 죽은것입니다.
그냥 bash로 떠있는 프로세스 죽임 한방에 죽죠. (넘 무식하게 설명을..)

마지막으로 root권한을 얻었는지 못얻었는지는 저도 잘 모르겠네요.
많은 방법이 있고, 또 여러가지 방법으로 root권한을 얻으려고 하겠죠?
저도 뭐 배운것 없고 혼자서 이렇게 저렇게 하다가
얻은것들이라 설명도 빈약하고, 다른방법도 제시를 못하네요.
암튼 root패스워드 자주 바꾸고, 어렵게 하세요.
저같은경우 암호가 30자 정도 되는데, 저도 이따금씩 잊어버립니다 ㅡ.ㅡ;
암튼 제 짧은 지식이 도움이 되셨으면 좋겠구요.
더 나아가 제 글에 추가지식을 등록해 주시는 분들이 많았으면 좋겠군요.

===================== 추가질문 답변 =================================
저도 잘 모르는데 님의 질문으로 공부하네요 ^^
우선 
http://www.krcert.or.kr/paper/tr2001/tr2001-03/guide%20for%20Linux%20system%20admin.html 
이문서 보세요. 다른 부분에도 많이 필요할 것 같습니다. (더 좋은 자료 많겠지만) 여기 보시면 ssh 설정하는 좋은예도 있군요.
sshd_config 설정하는 예가 나와 있는데 그중에
AllowUsers admin

AllowHosts 172.16.2.123 --> 호스트 IP 주소 (예는 가상 주소임)
이런 부분이 있습니다.
위에서 나왔던 AllowUsers가 있죠? 그리고 한칸 띄우고 admin이란 아이디를
넣어줬네요. 여긴 admin이란 사용자만 ssh를 허락하나 봅니다.
그룹추가는
groupadd 라는 명령을 사용해서 group을 만듭니다.
useradd하실때도 -g 옵션을 사용해서 그룹을 설정하실수 있는데,
이를 사용안하시면 id와 같은 그룹을 만들것입니다.
그래서 ls명령어같은걸로 보시면 test의 아이디는 그룹도 test로 되어 있죠.
chgrp라는 명령으로 특정 아이디의 그룹을 바꿔보세요.

예를들어 test는 현재 test라는 그룹에 소속되어 있다고 하면
groupadd (또는 addgroup) 으로 그룹을 하나 추가합니다
groupadd wind
그럼 wind라는 그룹이 추가되겠죠?
그다음에
chgrp test wind 라고 하면 test라는 아이디는 wind의 그룹소속이 됩니다.
그다음 /etc/ssh/sshd_config에서

DenyGroups wind
해주시면 wind라는 그룹들은 ssh가 안되겠죠?
물론 ssh데몬을 다시 띄워주셔야 하구요.

저도 해보니 잘 되네요.
덕분에 저두 공부했습니다.

그럼 이만...

반응형

'Embeded' 카테고리의 다른 글

용어 정리  (0) 2015.08.07
alto board (알토보드 삽질) syslog, klog, logrotate  (0) 2015.07.10
PCI BUS 이야기 -kelp-  (0) 2015.07.01
Posted by Real_G