728x90
✔ SSH 접속 제한
국내에서 SSH설정을 하고 열어두면 정말 많은 해외 접속시도가 들어온다.
하나씩 차단을 할수없기 때문에 접속 제한을 두는것이 좋다.
개인적으로 선호하는 방식은 firewall-cmd 에서 접속을 허용하는 방식을 선호한다.
그외 IPTABLES , hosts설정 파일 변경 등 다른방법 또한 존재한다.
Firewall-cmd
✔ firewall-cmd 목록 조회
firewall-cmd --list-all
✔ SSH 포트가 전체 허용되어있다면 제거한다. (기본포트 22)
firewall-cmd --remove-port=22/tcp --permanent
firewall-cmd --remove-service=ssh --permanent
✔ 허용하고자 하는 아이피 대역을 설정한다. 예) 172.10.101.* 를 허용하고자할때
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="172.10.101.0/24" port port="22" protocol="tcp" accept'
✔ Firewall-cmd 재시작
firewall-cmd --reload
✔ Firewall-cmd 에서 제거
firewall-cmd --permanent --remove-rich-rule='rule family="ipv4" source address="172.20.101.0/24" port port="22" protocol="tcp" accept'
hosts 파일 설정
✔ hosts.allow 와 hosts.deny
- linux 에서 /etc/ 경로를 확인해보면 hosts.allow, hosts.deny 파일이 존재할 것이며, vi 모드로 열어보면 내부에 주석으로 설명이 적혀있다.
✔ hosts.allow
- 해당 서버에서 특정 서비스에 대한 접근을 허용할 IP를 정의하는 설정 파일이다.
# /etc/hosts.allow
sshd: 192.168.15.201 # 192.168.15.201 만 ssh 방식 접속 연결을 허가.
sshd: 220.150. #220.150.x.x 범위에 포함되는 IP 들의 ssh 방식 접속 연결을 허가.
sshd: ALL # ssh 접근 방식에 대해 모든 IP 접근을 허용함.
vsftpd: .linux.or.kr #vsftpd 서비스에 대해 linux.or.kr 도메인에 속한 호스트만 허가.
ALL: ALL # 모든 서비스(vsftpd, sshd 등)에 대해 모든 IP 접근을 허용함.
ALL: ALL EXCEPT 127.0.0.1 : 80 # 모든 서비스(vsftpd, sshd 등)에 대해 127.0.0.1:80 을 제외한 모든 IP 접근을 허용함.
✔ hosts.deny
해당 서버에서 특정 서비스에 대한 접근을 차단할 IP를 정의하는 설정 파일이다.
(hosts.allow 에 정의된 IP 들은 아래 제한 설정 대상에서 제외됨)
# /etc/hosts.deny
sshd: 192.168.15.201 # 192.168.15.201 만 ssh 방식 접속 연결을 제한.
sshd: 220.150. #220.150.x.x 범위에 포함되는 IP 들의 ssh 방식 접속 연결을 제한.
sshd: ALL # ssh 접속 연결에 대해 hosts.allow 에 정의된 IP 외 모든 IP를 제한함.
vsftpd: .linux.or.kr #vsftpd 서비스에 대해 linux.or.kr 도메인에 속한 호스트만 제한.
ALL: ALL # 모든 서비스(vsftpd, sshd 등)에 대해 모든 IP 접근을 제한함.
ALL: ALL EXCEPT 127.0.0.1 : 80 # 모든 서비스(vsftpd, sshd 등)에 대해 127.0.0.1:80 을 제외한 모든 IP 접근을 제한함.
✔ 우선순위 비교
- hosts.allow 가 hosts.deny 보다 우선순위가 높다.
- 즉, hosts.deny 에 sshd:192.168.0.0 가 정의되어 있더라도 hosts.allow 에 sshd:192.168.0.0 가 정의되어 있으면 192.168.0.0 IP로 해당 서버에 ssh 접속이 허용된다.
✔ sshd 서버 재시작
- 변경된 환경설정 값들을 적용하기 위해 sshd 서비스를 재시작한다.
# service sshd restart
그리고 다시 서버로 ssh 접속을 시도해보면 아래와 같은 결과가 출력된다.
ssh_exchange_identification: Connection closed by remote host
728x90