2013년 3월 25일 월요일

Archlinux SSH 보안설정 하기(포트) (POGOPLUG SERIES 4용)

1. 시작하기 전에...

 SSH 설정은 Archlinux 한글페이지 에서 참고하였습니다. 이 문서는 포고플러그 시리즈 4에 Archlinux, nginx, php, mysql이 설치되었을 때를 기준으로 설명합니다.

 SSH 포트 설정은 공유기에서 외부 포트만 막아놓아도 안전을 지킬 수 있는데, 왠만하면 외부에서는 SSH 접속을 하지 않을 것을 권합니다.


2. SSH 포트를 바꾸는 이유

내부에서만 접속하고 외부에서 접속하지 않는다면 이 설정을 할 필요는 없습니다. 하지만 외부에서 SSH를 꼭 접속해야 한다면 공유기에 해당 ip를 포트포워딩 하게 됩니다. 그리고 이 상황에서 SSH 포트는 nmap 같은 포트 스캔너에 의해 스캔을 당하고 보안위협에 노출될 수 있습니다. 다음은 원문입니다.
Even though the port ssh is running on could be detected by using a port-scanner like nmap, changing it will reduce the number of log entries caused by automated authentication attempts

SSH를 외부에서 접속할 때 포트를 바꾸려면 다음 두 가지 설정을 변경하고 공유기에서 해당 포트를 포트포워딩 해야 합니다.(2-2. 공유기 DDNS  및 포트포워딩 방법 ) 그런데 위의 참고 페이지에는 openssh를 설치해야 하는데, 포고 s4의 Archlinux에서는 설치하지 않아도 설정할 수 있습니다. 기본적으로 설치되어 있습니다.


2-1. 우선 openssh를 설치합니다.
(포고s4에는 설치하지 않아도 설정이 됩니다. 이 단계는 건너뛰어도 됩니다.)
pacman -S openssh


2-2. SSH 클라이언트 설정에서 포트와 나머지 정보를 바꿉니다.
nano /etc/ssh/ssh_config

# $OpenBSD: ssh_config,v 1.25 2009/02/17 01:28:32 djm Exp $
...쭈~욱 나오고

Host *
...
# IdentityFile ~/.ssh/identity
# IdentityFile ~/.ssh/id_rsa
# IdentityFile ~/.ssh/id_dsa
   Port 888 fff- # 주석을 지우고 원하는 포트 숫자를 씁니다. 예) 777, 999
   Protocol 2 - # 주석을 지우고 '2, 1'을 2로 고칩니다. protocol 1은 불안정하다고 합니다.
# Cipher 3des


SSH데몬 설정에서 포트를 바꿉니다.
nano /etc/ssh/sshd_config

# $OpenBSD: sshd_config,v 1.87 2012/07/10 02:19:15 djm Exp $
...쭈~욱 나오고

# default value.

  Port 888         - #주석을 지우고 원하는 포트 숫자를 입력합니다.
#AddressFamily any
#ListenAddress 0.0.0.0
#ListenAddress ::

# The default requires explicit activation of protocol 1
  Protocol 2     - #주석을 지우고 숫자를 2로 고칩니다.

hosts.allow , hosts.deny 설정은 포고s4용 archlinux에는 없는 파일이기 때문에 설정하지 않습니다. 잘못 만들어서 설정하면 ssh에 접속이 안되는 일이 발생합니다. (지금 이 글을 쓰는 현재 제가 실수한 사항입니다.ㅎㅎㅎ)


2-4. 설정 후 시스템을 다시 시작합니다.
systemctl restart sshd


2-5. ssh접속 프로그램에서 바꾼 포트 숫자를 기입합니다.
예제) 아이피 : 192.168.156.44 포트 : 888


보너스 (비밀번호를 분실하지 않았다는 전제하에)
SSH 비밀번호 변경
passwd

samba(smbd) 비밀번호 변경
smbpasswd -a root

mysql 비밀번호 변경
mysql -u root mysql -p
update user set password=password('root비밀번호') where user='root'; 입력

트랜스미션 비밀번호 변경
systemctl stop transmission
nano /var/lib/transmission/.config/transmission-daemon/settings.json
"rpc-password": "새로운 비밀번호 넣기",

댓글 4개:

  1. 안녕하세요. 디오네님의 블로그에서 포고플러그4에대한 정보를 많이받아 감사합니다. 다름이 아니라 강좌같은걸 다 따라해보았는데요. 실제로 어떻게 써야할지를 모르겠습니다. 저는 기본기능인 포고플러그 서비스를 이용하기위해서 구매했으나 해외 서버로 갔다오기에 느리다고해서 아치리눅스 설치후 웹하드형식으로 설치하면된다고하더라구요. 혹시 추가 강좌를 따로 요청할수있을까요? 지금 제가 하고싶은것은 Smaba가 리부팅시 자동시작, 다른 PC에서 접속하여 웹하드처럼 파일을 다운받는방법, DDNS 설정법을 알고싶습니다. 부탁드리겠습니다.

    답글삭제
    답글
    1. 댓글 주셔서 감사합니다.
      1. 저는 이렇게 씁니다. 홈페이지를 만들고 거기에 비밀게시판을 만들어 파일 업로드 용으로 쓰고 있습니다. 그러면 nas처럼 되겠죠? 그리고 저는 하드 용량이 750기가에 파일 업로드 용량을 파일 한개당 1기가로 해놨습니다. 그래서 고용량의 파일도 올릴 수 있습니다. 웬만한 웹하드보다 쌉니다. 단 질문자 집의 인터넷 속도가 빨라야 업로드 및 다운로드가 빠릅니다.

      2. 저도 리눅스 초보라 재부팅시 프로그램을 자동시작하는 것은 모릅니다. 02시리즈에는 있다고 하는데, 포고 s4에는 자동시작 파일이 없더군요.

      3. 웹하드처럼 쓰고 싶다면 ftp를 설치해보세요. 꼭 웹하드처럼 작동합니다. 저는 ftp사용법을 몰라서 안쓰고 있습니다. 아니면 nginx에서 다운로드를 작성하거나 하시면 됩니다.

      4. ddns는 제 글 아래에 보면 상세하게 나와 있습니다.

      삭제
  2. 안녕하세요 저기.. 밑에서 포트포워딩 설정을 보다가 이글을 보고 따라하다가 포트를 888로 똑같이 설정을 해주었는데 refused가 자꾸 뜨네요 ㅜㅜ

    혹시 아래 강의에서 포트를 80으로 포트포워딩으로 해주게 되면 포트를 80으로 했었어야 했나요?? 여기 강의에서처럼 포트를 888로 해주었을 때에는 다른 설정을 만져줘야 되는지요...

    답글삭제
    답글
    1. SSH설정에서 포트설정을 하는 것으로 알고 설명해 드릴께요

      1. 우선 SSH설정에서 포트를 똑같이 바꿉니다.
      SSH 클라이언트와 SSH 데몬의 포트를 같게 바꾸세요. 만약 클라이언트 포트를 90으로 설정했다면 데몬도 90으로 합니다. 저도 데몬과 클라언트가 어떤 차이가 있는지는 모르겠습니다.

      2. 외부에서 SSH를 접속하려면 공유기에서 포트 포워딩을 해 붜야 합니다. 링크문서를 참고하세요

      삭제