요즘들어 서버에 불법적인 공격이 많이 보인다..
대부분의 서버가 보안때문에 기본 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번 포트에 달라붙던 연결들을 더이상 안보게 되었다. ^^
[TIP] 리눅스(CentOS) 에서 PHP 소켓 Permission Denied 나올때 (0) | 2016.02.15 |
---|---|
[리눅스] 서버 시간 변경 (Timezone 변경) (1) | 2015.05.26 |
[CentOS] 서비스 자동시작 설정 (0) | 2015.02.24 |
[PHP] flash, activex 없이 파일업로드 상태바 보여주기 (0) | 2014.08.25 |
CentOS 6.5 에 mysql 5.6 yum 으로 설치하기 (0) | 2014.07.29 |