안녕하세요. 달소입니다.
이번글은 혹혹혹시나..외부에 SSH를 오픈할 필요가 생긴다면 반드시 해야할 보안 관련 설정입니다.
기본적으로 SSH와 같은 원격 터미널 포트는 오픈하지않는편이 가장좋지만 피치못하게 오픈해야하는 경우라면 우리가 오라클 클라우드를 접근하듯이 설정해주시는게 가장 좋습니다.
일반적인 홈 네트워크 환경이라면 단순히 포트포워딩으로 ssh만 오픈해주셔도 되지만 이럴경우 스캔성 공격이나 brute force 공격에 매우 위험하게 노출되기때문에 아래와같은 설정을 반드시 진행해주시는게 좋습니다.
**VPN으로 내부서버에 접속 후 연결하시는게 가장 좋습니다
1. SSH를 Key값으로만 접속가능하게하기.
SSH를 일반 id/pw가 아닌 key값으로 로그인할 수 있도록 설정해주신다면 안전한 방법중 하나입니다..
GCP나 오라클클라우드등에서 사용하는 방식이 이러한 key인증 방식입니다.
https://svrforum.com/os/369753
서버포럼 – Linux SSH PW가 아닌 Key로만 접근하게하기.(.ppk로변환하기)
안녕하세요. 달소입니다. 이번글은 피치못하게 외부로 ssh를 오픈해야할 경우 필수 설정이라고 보시면 되겠습니다. 클라우드서비스
2. 외부 노출되는 SSH 포트변경하기.
포트포워딩을하실때 정직하게 22:22 이렇게 포트포워딩을 하시지 마시고 9898:22와 같이 포트를 변경해주시는게 좋습니다.
아예 서비스하는 ssh포트를 바꿔도 무방합니다. vi /etc/ssh/sshd.conf 의 ports 설정
22번은 well known 포트라고 알려진 포트에 속하기때문에 공격자들의 가장 손쉬운 먹잇감입니다.
3. IP로 통제하기.
Source IP를 통제하는 방법입니다. 원천적으로 접근하고자하는 ip를 알고계시고 해당 ip만 iptables나 pfsense/opnsense 와 같은 방화벽에서 source ip로 통제해주시면됩니다.
*불특정 ip에서 접속하셔야하는 환경이라면.. 설정하시면안됩니다
iptables -I INPUT -p tcp -s [SourceIP] –dport 22[SSH포트번호] -j ACCEPT
iptables -L 로 정책 확인 후
service iptables save로 정책 저장.
pfsense/opnsense나 기타 방화벽/라우터를 쓰신다면 아예 포트포워딩 설정시에도 Source ip 필터링이 가능합니다.
source port는 어떤 포트에서 접속할지모르니 any로 두셔야합니다.
이정도의 보안설정이 귀찮으시다면,,, 외부로 SSH노출은 가급적 안하시는게좋습니다