2009년 4월 26일 일요일

SSH포트를 변경하기

SSH기본 포트 22를 다른 값으로 변경하기

서버를 운영하다보면 여러가지 공격을 많이 받게 되는데 그중에서 가장 흔하면서 또한 가장 기본으로 되는 해킹방법이 바로 포트 스캔이다. 서버에 포트스캔을 막어주는 portsentry를 깔고 기본 쉘접속 포트인 22를 다른값으로 변경하면 해킹을 어느정도 막을 수 있다.(어느정도이다, 절대로 해킹당하지 않는다는 보장은 없다...)

1. ssh 설정변경
ssh설정 파일은 /etc/ssh/sshd_config 에 위치하고 있다.


vi편집기로 열고 #port 22 이 라인중에서 #주석문을 제거하고 port xx로 바꾼다.(xx에는 바꿀 포트숫자를 써준다.)
저장하고 vi편집기에서 빠져나온다.


2. iptables에 새로 추가한 포트에 대한 rule을 추가한다.

또한 iptables에 rule을 추가하여 기존에 22포트를 블럭하고 새로 설정한 포트에 대한 input 컨넥션을 accept해준다.

# iptables -L -n

위 명령어를 이용하여 현재 적용된 iptable 룰들을 살펴 볼수 가 있다.


여기서 주의해서 봐야할 것은 포트 22를 사용하는 SSH가 accept rule로 등록이 되어있는지 확인하는것이다. 보다 싶이 현재 이미 등록이 되어 있는 상태이다. 이 상태에서 우리가 추가한 포트도 xx포트로 접속이 가능하도록 rule을 추가해야 한다.

# iptables -A INPUT -p TCP --dport xx -m state --state NEW -j ACCEPT

(RH나 CentOS일 경우 -A INPUT 대신 -A RH-Firewall-1-INPUT 을 사용하여야 한다.)

또한 기존에 추가된 22포트를 iptables룰에서 삭제 해야한다.

# iptables -D INPUT -p TCP --dport 22 -m state --state NEW -j ACCEPT

(RH나 CentOS일 경우 -A INPUT 대신 -A RH-Firewall-1-INPUT 을 사용하여야 한다.)

# service iptables save

위 명령어를 이용하여 추가한 룰을 iptable에 적용시킨후 다시금 iptable의 상태를 살펴본다.


그림에처럼 22포트는 정확히 삭제되고 우리가 추가한 xx포트가 떠있는것을 확인 할 수 있다.

3. SSH 재시동
포트가 정확히 iptables에 추가되었음이 확인 되면 ssh데몬을 재시동하여 포트 xx에서 서비스를 시작하게 한다.

# service sshd restart

새로운 컨넥션을 만들고 접속을 시도한다.
정확히 쉘에 접속이 됨을 확인 할 수 있다~

댓글 없음:

댓글 쓰기