[Linux / Rocky] 공격 대상 서버, 서비스 설치 및 방화벽 설정
공격 대상 서비스 설치
포트 스캐닝 실습을 진행하기 전에, 사전 실습 환경을 설정하도록 한다. KALI 리눅스에서 Rocky 리눅스의 서비스 포트들을 스캐닝할 예정이기에, Rocky 에서 다음과 같은 서비스 데몬들을 설치한다. (서버 측 데몬 설치)
- httpd : 웹 서버 데몬 => 80 TCP
- vsftpd : 파일 전송 프로토콜 FTP 서비스 데몬 => 21 TCP
- bind : DNS 서버 구축을 위한 데몬 => 53 UDP / TCP
- net-snmp : 네트워크 관리를 위한 SNMP 서비스 데몬 => 161 ~ 162 UDP
- telnet-server : 원격 접속을 위한 Telnet 서비스 데몬 (평문) => 23 TCP
netstat 명령어로 22번 port 의 상태를 확인해보면, SSH 서비스 데몬이 활성화되어있는 것을 확인할 수 있다.
dnf install -y telnet-server*
대표적으로, telnet-server 서비스 데몬을 설치 과정을 살펴보도록 한다.
rpm -qa | grep telnet
rpm -qa | grep [서비스명]
정상적으로 설치가 완료되면, rpm -qa 명령을 통해 설치된 패키지의 목록을 확인할 수 있다.
rpm -ql telnet-server
rpm -ql [패키지명]
또한 rpm -ql 명령을 통해 패키지 내의 파일 목록을 확인해보면, /usr/lib/systemd/system 디렉토리 하위에 위치한 파일이 서비스 데몬 파일인 것을 확인할 수 있다. 서비스 데몬의 환경설정 파일은 대게 /etc 디렉토리 하위에 데몬 이름으로 위치한다.
service telnet.socket restart
서비스 설치가 완료된 후 데몬을 재구동하면, 해당 서비스가 활성화되어 대기 상태에 있는 것을 확인할 수 있다.
systemctl list-unit-files |grep telnet
systemctl list-unit-files |grep [서비스명]
다음으로는 서비스 활성화 상태를 살펴보자. enable 로 설정되어있으면 부팅 시 자동 활성화된다는 의미이다. 현재 telnet 서비스는 disable 된 상태이므로 enable 상태로 변경한다.
systemctl enable telnet.socket
systemctl enable [서비스 데몬명]
부팅 시 자동 활성화되도록 설정하게되면, enable 상태로 변경되는 것을 확인할 수 있다.
단, telnet 서비스를 설치했음에도 cmd 에서 원격 접속이 불가능하다. 해당 서비스에 대한 방화벽이 해제되지 않았기 때문이다.
firewall-cmd --list-all
설치된 서비스들에 대한 방화벽 설정을 확인해보도록 하자. 현재는 ssh 서비스 포트만 열려있는 것을 확인할 수 있다.
firewall-cmd --permanent --add-port 23/tcp
firewall-cmd --permanent --add-port [포트]
영구적으로 23 / tcp 포트를 public (active) 정책에 추가하여 해당 서비스 포트에 대한 방화벽을 해제한다.
firewall-cmd --permanent --add-service ftp
firewall-cmd --permanent --add-service [서비스명]
서비스명으로도 추가가 가능하다.
netstat -lntup | grep -P "snmp|vsftpd|httpd|named|init"
다른 서비스들도 위와 같은 과정으로 설치하며, init 6 명령어를 통해 재부팅한 후 서비스 활성화 상태를 확인한다.
--permanent 옵션을 통해, 영구 설정을 한 방화벽 정책도 다음과 같이 유지된 것을 확인한다.
firewall-cmd --permanent --remove-port [포트]
firewall-cmd --permanent --remove-service [서비스명]
방화벽 정책에서의 포트 삭제 및 서비스 삭제는 다음과 같이 설정한다.
ssh 서비스만을 남기고 모든 포트와 서비스가 정책에서 사라진 것을 확인할 수 있다.
방화벽 ON / OFF
1) 방화벽 OFF
service firewalld stop
방화벽을 끄게 되면, 방화벽 상태 확인 명령어를 사용할 수 없는 것을 확인할 수 있다.
2) 방화벽 ON
service firewalld restart
방화벽을 활성화 하면, 방화벽 상태 확인 명령어를 사용할 수 있음을 확인할 수 있다.
공부하면서 정리한 내용을 글로 작성하였습니다.
혹시나 잘못된 내용이 있다면 댓글로 알려주시면 감사하겠습니다. :)