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

+ Recent posts