상세 컨텐츠

본문 제목

[TIP] 서버 ssh (Secure Shell) 22번 포트에서 다른 포트로 변경하기 - 보안이슈

서버설정

by fsteam 2015. 4. 8. 14:26

본문

요즘들어 서버에 불법적인 공격이 많이 보인다..

대부분의 서버가 보안때문에 기본 Telnet(23번 포트)을 이용하지 않고 ssh(22번 포트)를 이용하는데

가끔 서버의 네트워크 상태를 살펴보면.. 22번 포트에 접속하려는 시도가 끊임없이 관찰된다.


서버의 네트워크 접속상태 및 연결상태는 다음의 명령으로 확인 가능하다.

# netstat -an | more


가끔 22번 포트에 접속되어 있는 수많은 IP가 보인다.. (ESTABLISHED 상태)

이러한 IP들을 조회해보면 대부분 중국 IP로 나온다.


일단 다른 포트가 불필요하게 열려있는지 확인해 보려면.. LISTEN 중인 포트만 살펴보면 된다.

# netstat -an | grep LISTEN


위 명령을 입력했을때 나는 아래와 같은 결과를 얻었다.

# netstat -an | grep LISTEN

tcp        0      0 0.0.0.0:3306             0.0.0.0:*                 LISTEN

tcp        0      0 0.0.0.0:21                0.0.0.0:*                 LISTEN

tcp        0      0 0.0.0.0:22                0.0.0.0:*                 LISTEN

tcp        0      0 0.0.0.0:25                0.0.0.0:*                 LISTEN

tcp        0      0 :::80                       :::*                        LISTEN

tcp        0      0 :::22                       :::*                        LISTEN

unix  2      [ ACC ]     STREAM     LISTENING     6015   /var/lib/mysql/mysql.sock


tcp 포트 5가지가 열려있는 것으로 확인이 된다. 각각의 포트 용도는 다음과 같다.

3306 : MYSQL

21 : FTP

22 : SSH

25 : MAIL

80 : HTTP (웹서버)


여기서 하려는 것은 sshd 가 사용하는 22번 포트(표준 포트)를 나만의 포트로 변경하고자 하는것이다.

설정은 아래 파일을 열어서 변경한다.

# vi /etc/ssh/sshd_config


파일을 열어보면.. 아래와 같은 Port 설정 부분이 주석으로 막혀있음을 볼수 있다.



ssh는 기본 포트가 22번이기 때문에 별도로 포트설정을 하지 않으면 22번 포트를 사용하게 된다.

이 부분의 주석을 풀고 원하는 포트로 변경한다. 이제 sshd 를 재시작하면.. 변경된 포트가 ssh에 사용되게 된다.

# /etc/init.d/sshd restart

혹은

# service sshd restart


하지만 여기서 주의할 점이 있다. 방화벽을 사용하고 있는 경우.. 변경한 포트를 열어주지 않으면 외부에서 접속할 수 없게된다.

ssh 포트를 변경한 상태에서도 현재 접속된 연결은 유지가 되기 때문에 반드시 변경한 포트로 연결해보고 정상적으로 연결이 되면

현재 접속된 연결을 끊어야 한다. 아니면.. IDC를 찾아가야 될지도 모른다. ㅠ.ㅠ


나는 방화벽으로 iptable을 사용하기 때문에 방화벽에 포트를 열어주었다.

# vi /etc/sysconfig/iptables



위 그림과 같이 현재는 22번 포트가 열려있는데.. 변경한 포트로 바꿔주고 iptable을 재 시작해 준다.

# /etc/init.d/iptables restart


이렇게 변경하고 며칠간 지켜보니.. 쓸데 없이 22번 포트에 달라붙던 연결들을 더이상 안보게 되었다. ^^

관련글 더보기