728x90
반응형
 

Hyper-V 를 이용한 가상머신 생성하기 ( Linux )

Windows에서 Linux를 실행할 수 있는 다양한 방법이 존재 하는데, 이번 프로젝트에서는 Hyper-V를 이용해서 구성하고자 한다.   Windows10 기준으로 아래 검색 창에 "Windows 기능 켜기/끄기" 검색하여 실

dokeeo.tistory.com

 

 

Hyper-V 가상 스위칭, 네트워크 설정 ( VM 인터넷 통신 )

https://dokeeo.tistory.com/53 Hyper-V 를 이용한 가상머신 생성하기 ( Linux )Windows에서 Linux를 실행할 수 있는 다양한 방법이 존재 하는데, 이번 프로젝트에서는 Hyper-V를 이용해서 구성하고자 한다.   Win

dokeeo.tistory.com

 

이전 포스팅을 통해 VM 생성 및 네트워크 설정까지 진행하였다.

 

이번 포스팅은 Host > VM 접근 및 Nginx 설치 후 확인까지의 과정이다.

 

(좌) VM / (우) Host

 

 

VM 생성 후, 네트워크 설정까지 끝마쳤는데도

Host(192.168.45.55)에서 VM(192.168.137.78)에 22번 포트(SSH)를 접근을 못하고 있다.

 

이 경우 VM에 정상 통신이 가능한지 혹은 방화벽에 막히는지 확인이 필요하다.

 

 

우선 VM에 Ping을 날렸을 때 정상적으로 응답하는걸로 봐서는 라우팅(통신) 문제는 아닌걸로 확인된다.

 

 

그렇다면 telnet 명령어를 통해 22번 포트에 대해 요청을 진행해본다. 

위에 ssh 명령어와 동일하다고 보면되지만 일단 진행해보면, 연결 안되는걸 볼 수 있다.

이 경우에는 방화벽이나 서비스 문제를 확인해봐야 한다.

 

 

VM에서 아래 명령어를 사용해, 서버에서 리스닝중인 tcp 포트에 대해서 확인한다.

netstat -nlp | grep tcp

 

명령어 결과를 보면, ssh 통신을 할 수 있게 해주는 22번 포트에 대한 서비스가 없는걸 볼 수 있다.

 

 

systemctl start sshd  ## 서비스 실행
systemctl enable sshd  ## 서비스 등록
systemctl status sshd  ## 서비스 정상 확인

netstat -nlp | grep tcp  ## Tcp Listen 확인

 

ssh 데몬을 띄워서 22번 포트에 대해서 통신할 수 있게 해준다. 

 

 

서비스 실행 후, Host 서버에서 ssh 명령어로 접속하면 정상접근 할 수 있는걸 볼 수 있다.

리눅스 유저 생성 및 권한은 아래 포스팅 참고

 

 

dnf update -y  ## 패키지 업데이트 
dnf install nginx -y  ## nginx 설치

systemctl enable nginx  ## nginx 서비스 등록(부팅 시, 자동 실행 )
systemctl start nginx ## nginx 서비스 실행
systemctl status nginx  ## 상태 확인

 

이제 서비스를 할 수 있게, Nginx 설치하여 접속해보도록 하겠다.

위 명령어를 차례대로 진행하여 nginx 서비스를 등록 및 실행시킨다.

 

 

정상적으로 설치 후, 서비스도 정상이라면 위에처럼 active 상태를 볼 수 있다.

 

 

하지만 Host서버 > 웹서버(VM)로 접근이 불가능한데, 아래를 참고하여 어떤 부분이 막힌지 확인해준다.
( os 마다 바로 접근할 수 있을 수도 있음 )

# VM에서 확인할 부분

방화벽(인바운드) 확인 / 서비스 정상 동작(netstat)

# Host에서 확인할 부분

라우팅 정상 확인 / 포트 확인 / 방화벽(아웃바운드)

 

 

 

확인을 해보니, 기본 이미지에 firewalld라는 os 방화벽이 있어 접속이 안된걸 볼 수 있다.

" systemctl stop firewalld " 명령어를 통해 os 방화벽을 내려 통신을 할 수 있도록 한다.

 

이 외에 iptables, ufw 등 다양한 os 방화벽이 있으니, 각자 서버에 맞게 올라온 방화벽 확인하고 수정을 해준다.

 

 

 

방화벽이 내려간걸 확인 후, host서버에서 웹서버에 들어가보면 fedora의 nginx 디폴트 페이지를 볼 수 있다.

 

 

이후에는 gitlab 서버를 생성 및 구축을 하여 관리를 할 수 있는 환경을 만들도록 하겠다.

반응형
728x90
반응형

방화벽(firewall) 

- 미리 정의된 보안 규칙에 기반, 들어오고 나가는 네트워크 트래픽을 모니터링하고 제어하는 시스템

- 모든 방화벽은 순서대로 처리

 

리눅스 방화벽의 기본 : IPtables(패킷필터방식 : 패킷 자체만을 보고 미리 설정된 정책에 따라 허용 또는 거부를 결정)

 

IPtables 

INPUT : 서버로 들어오는 기본 정책

FORWARD : LAN에서 패킷이 전송될 위치를 제어 

OUTPUT : 서버에서 나가는 기본 정책

 

sudo iptables -L (현재 적용 룰 확인)
sudo iptables -F (초기화)
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT  (tcp/22 port 허용)
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT  (tcp/80 port 허용)
sudo iptables -A INPUT -p udp --dport 1024 -j ACCEPT  (udp/1024 port 허용)


sudo iptables -A INPUT -p tcp --dport 21 -j DROP  (tcp/21 port 거부)
sudo iptables -A INPUT -p udp --dport 53 -j DROP  (udp/53 port 거부)

원격 접속 시 22번 허용 필요

 

 

UFW

우분투에서 iptables 방화벽 구성을 더 쉽게 하기 위해 개발 (데비안,ubuntu 사용 가능)

 

sudo apt-get install ufw (설치)
sudo ufw reset (초기화)

sudo ufw enable ( 원격 접속 시 SSH 포트를 열고 재부팅 필요 - sudo ufw allow ssh)

sudo ufw status (상태확인)

sudo ufw allow 22/tcp (tcp/22 port 허용)
sudo ufw allow 80/udp (udp/80 port 허용)
sudo ufw allow form 192.168.1/24(주소 허용 서브넷마스크: 24)

sudo ufw deny 53/tcp (tcp/53 port 거부)
sudo ufw deny 21/tcp (tcp/21 port 거부)

 

 

-log

sudo ufw loggin on

cat /var/log/sys/log (확인)

 

 

 

-무차별 대입 공격 확인(ssh)

sudo ufw allow 22/tcp (ssh 포트 개방)
journalctl -f (실시간 ssh 로그인 실패기록 확인)

 

반응형

+ Recent posts