반응형
작성일: 2024년 4월 11일

 

새로 만든 Web 서비스를 운영하기 위해서 인터넷 도메인을 등록했다.

"YesNIC.com" 에서 .KR 도메인을 등록했고,

새로 등록한 Domain name에 맞는 서버 인증서(Certificate)도 발급했다.

 

SSL Certificate(인증서)을 발급하는 순서를 간단하게 정리하면 이렇다. 

  1. "https://yesnic.com/" 에서 인터넷 도메인 등록하기 (예: sejong.kr)
  2. "https://www.sslcert.co.kr/" 에서 *.sejong.kr 도메인을 위한 서버 보안 인증서 발급 요청
    1. DNS, Email 인증 방식 중에서 DNS 인증 방식으로 Domain name 소유자 임을 증명.
    2. Domain name 소유자 증명이 끝나면, 바로 내 Certificate과 Root/Chain Certificate 파일이 압축 파일 1개로 묶여서 Email 첨부로 수신됨.
  3. Email로 수신한 Certificate을 Web server에 등록하기

 

자세한 발급 절차는 아래 Web docs를 참고하면 좋다.

    https://www.sslcert.co.kr/supports/usage

 

 

SSL Certificate(인증서) 발급 비용

인증서 용도 및 도메인 범위에 따라 다르지만, 나는 Wildcard 도메인 옵션을 포함해서 10만원에 발급했다.

인증서 발급 기관, 기관 인증 범위, 도메인 범위에 따른 자세한 금액은 아래 문서를 참고하길~

    https://www.sslcert.co.kr/products

    https://www.sslcert.co.kr/products/wildcard-ssl-certificate-comparison

 

SSL Certificate 발급 심사 수준에 따른 Level 

DV(Domain Validation)

인터넷 도메인 네임의 소유 여부를 검사하고 Certificate을 발급한다.

해당 웹 사이트를 운영하는 회사의 실존 여부를 확인하지 않고 Certificate을 발급하기 때문에 신뢰성이 낮다.

OV(Organization Validation)

사업의 적법성을 검증하고 인터넷 도메인 네임의 소유 여부를 확인하고 Certificate을 발급한다.

이 OV Level의 Certificate을 설치한 Web site는 믿고 거래할 수 있다.

EV(Extended Validation)

Certificate 발급 기관(CA)이 까다롭게 기업 실체를 확인하고 EV Level의 Certificate을 발급한다.

 

지식 공유하는 수준으로 개인 웹 사이트를 운영하는 경우라면, DV Level의 Certificate도 충분하다.
그러나 기업 홍보, 신뢰성이 필요한 기관의 웹 사이트라면 OV Level의 Certificate이 있어야 Client가 믿고 접속할 수 있을 것이다.

 

 


 

 

Apache2 웹 서버에 SSL 인증서 설치하기

 

 

발급 받은 인증서 파일을 Apache2 Web Server에 복사

인증서 관련 파일을 Apache2 Web Server에 복사한다. (아래와 같은 Path에 복사)

파일 종류 파일 경로
CA Root Chain 통합 파일 /etc/apache2/ssl.crt/root-chain-bundle.pem
SSL Certificate 파일 /etc/ssl/certs/_wildcard_.my-domain.kr_20240312.crt.pem
SSL Sertificate Key 파일 /etc/ssl/private/_wildcard_.my-domain.kr_20240312.key.pem

 

mod_ssl 모듈을 활성화

아래 a2enmod 명령을 실행하여 mod_ssl 모듈을 활성화한다.

$ a2enmod ssl

$ cd /etc/apache2/sites-enabled

$ ln -s ../sites-available/default-ssl.conf

 

 

SSL 관련 설정을 추가

$ cd /etc/apache2/sites-enabled

$ vi default-ssl.conf

<IfModule mod_ssl.c>
        <VirtualHost _default_:443>
                ServerAdmin sejong-kanadaramabara-king@gmail.com
                ServerName my-domain.kr
                ServerAlias my-domain.kr
                SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1
                
                ... 중간 생략 ...
                
                SSLEngine on
                
                ... 중간 생략 ...
                
                SSLCertificateFile      /etc/ssl/certs/_wildcard_.my-domain.kr_20240312.crt.pem
                SSLCertificateKeyFile   /etc/ssl/private/_wildcard_.my-domain.kr_20240312.key.pem

... 중간 생략 ...

        </VirtualHost>
</IfModule>

 

 

Apache2 Web Server를 재기동

$ systemctl restart apache2

$ systemctl status apache2

$ netstat -anp | grep apache2
tcp6       0      0 :::80                   :::*                    LISTEN      369206/apache2
tcp6       0      0 :::443                  :::*                    LISTEN      369206/apache2

 

위와 같이 TCP 443 포트를 LISTEN하고 있으면 정상적으로 SSL 적용된 것이다.

Web browser를 이용해서 https://my-domain.kr 과 같은 주소로 접속하면 보안 경고 없이 웹 페이지가 보일 것이다.

 


 

반응형
작성일: 2024년 3월 13일

 

 

CLI 명령 환경 vs. GUI  환경 비교

QEMU/KVM이 돌아가는 Baremetal machine(또는 Host machine)이 GNOME 같은 GUI Desktop 환경이 아닌 경우에는

  1)  QEMU/KVM 서버에 SSH 연결해서

  2)  터미널에서 virsh 명령을 이용해서 VM instance를 기동, 종료, 조회 작업을 해야 한다.

 

virsh CLI 명령에 익숙해지면 어려운 점은 없는데, CPU Memory 통계를 보거나 각종 VM instance의 가상 HW 리소스를 볼 때는

GUI 환경의 Virtual Machine Manager가 편한다.

 

간단하게 아래 화면을 비교해보자 !   어느 것이 더 사용하기 편하겠는가?

 

GUI 환경의 Virtual Machine Manager vs.&nbsp; 터미널 환경의 virsh 명령

 

 


 

Ubuntu 22.04에 Virtual Machine Manager(virt-manager)를 설치하는 절차

 

 

준비 작업: SSH 접속 가능 여부 확인 (필수)

아래와 같이 QEMU/KVM이 설치된 서버에 SSH 접속이 되는지 꼭 확인해야 한다.

아래  SSH 접속에서 중요한 점은 "list of known hosts"에 [my-host.com]을 추가하는 과정이다.

SSH 접속만 잘 된다면, "list of know hosts"에 my-host.com이 잘 추가되었다고 생각하면 된다.

 

[My-PC] $ ssh -p 22678 root@my-host.com

The authenticity of host '[my-host.com]:22678 ([233.52.11.184]:22678)' can't be established.
ED25519 key fingerprint is SHA256:YBk..........................Kg.
This key is not known by any other names
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes

Warning: Permanently added '[my-host.com]:22678' (ED25519) to the list of known hosts.

[my-host.com] $

 

 

Virtual Machine Manager 원격 접속 설정하기

Virtual Machine Manager의 원격 접속을 설정하는 방법은 아래와 같다.

(그냥 예제 화면을 보면서 따라하면 된다)

 

아래 [ Virtual Machine Manager ] 화면에서 [ File ] -> [ Add Connection... ] 메뉴를 선택한다.

 

 

 

[ Add Connection ] 창이 열리면, 각 설정 항목에 값을 입력한다.

  - Hypervisor: QEMU/KVM 을 입력  (특별한 경우가 아니라면, 이 값을 선택하자)

  - Username:  root   (특별한 경우가 아니라면, root 계정을 사용하자)

  - Hostname:  my-host.com:22678  (각자의 인터넷 주소를 사용하자. 왼쪽 22678은 SSH 포트 번호를 의미한다.)

 

 

 

위 화면에서 설정이 끝나면, [ Connect ] 버튼을 누른다.

아래와 같이 원격지 Host machine의 QEMU(KVM)에 연결된 것을 볼 수 있을 것이다.

 

 

 

 

초기 설정에서 주의할 점  (FAQ)

만약 [Virtual Machine Manager]가 QEMU/KVM 서버로 Connect 실패한다면, 

위 "준비 작업"에서 설명한 서버 쪽에 SSH 접속을 한번 해주어야 한다.

SSH 터미널을 열 때, 경고 메시지가 한번 나오는데 여기서 Yes를 입력해주어야 위 GUI가 잘 연결된다.

 

.

.

.

.

.


 

 

macOS에 Virtual Machine Manager(virt-manager)를 설치하는 절차

 

 

대부분 설정하는 과정은 Ubuntu 22.04와 macOS가 비슷하고,
설치하는 명령(brew vs. apt)만 다르다.
따라서 Ubuntu 22.04에서 동일하게 설정했던 내용은 생략하고, 다른 점만 기술하겠다.

 

 

준비 작업: SSH 접속 가능 여부 확인 (필수)

아래와 같이 내 Macbook(또는 Mac Mini)에서 QEMU/KVM이 설치된 서버에 SSH 접속이 되는지 꼭 확인해야 한다.

아래  SSH 접속에서 중요한 점은 "list of known hosts"에 [my-host.com]을 추가하는 과정이다.

SSH 접속만 잘 된다면, "list of know hosts"에 my-host.com이 잘 추가되었다고 생각하면 된다.

 

[My-Macbook] $ ssh -p 22678 root@my-host.com

The authenticity of host '[my-host.com]:22678 ([233.52.11.184]:22678)' can't be established.
ED25519 key fingerprint is SHA256:YBk..........................Kg.
This key is not known by any other names
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes

Warning: Permanently added '[my-host.com]:22678' (ED25519) to the list of known hosts.

[my-host.com] $

 

 

virt-manager 설치하기

참고 매뉴얼: https://formulae.brew.sh/formula/virt-manager

$ brew install virt-manager

 

 

virt-manager 기동하기 (실행하기)

Ubuntu 22.04와 가장 크게 다른 점이 이 부분이다.

Ubuntu 22.04에서는 [Virtual Machine Manager] 실행 아이콘을 찾아서 클릭하면 virt-manager 프로세스가 기동되지만,

macOS에서는 아래와 같이 옵션을 붙여서 실행해줘야 한다.

$ virt-manager -c "qemu:///session" --no-fork

 

아래와 같이 [Virtual Machine Manager]가 구동될 것이다.

 

macOS에서 구동된 Virtual Machine Manager

 

 

참고: 나머지 virt-manager GUI에서 QEMU/KVM 원격 접속 설정하는 절차는 Ubuntu 22.04와 동일하므로 생략함.
         원격 접속 설정까지 마무리하면, 아래와 같이 전체 VM instance list가 보인다.

 

 

macOS에서 구동된 Virtual Machine Manager

 


 

반응형

 

작성일: 2024년 3월 7일

 

 

관련 YouTube 영상 추천

인터넷 암시장 다크 웹 시스템 디자인 | 토르(TOR) 브라우저 작동 원리

https://www.youtube.com/watch?v=-5Y6Sbyx3-w  

 

토르 브라우저에 대한 10가지 사실 / 토르, 양파다?

https://www.youtube.com/watch?v=69HNVF4oyOM

 

토르 브라우저의 모든 것 (feat. 동작원리, 딥웹/다크웹, 완전한 익명성)

https://www.youtube.com/watch?v=-5Y6Sbyx3-w

 

 

 

TOR Node List - Full & Detailed

Exit nodes, All nodes 를 모두 조회할 수 있는 웹 사이트.

https://www.dan.me.uk/tornodes

 

TOR Metrics

https://metrics.torproject.org/

 

 

 

 

 

 

 

 

 

 

 

 


 

반응형
작성일: 2024년 3월 1일

 

 

 

1988년 12월 - 천안에서 서울로 가는 기차 안에서

초등학교 겨울 방학이 시작되었다. 그리고 서울시 영등포에 사는 친척집에 놀러가는 날이다.

시골에 살다보니 기차를 탈 일이 별로 없는데, 이날 기차를 타면서 담배 냄새 때문에 힘들었다.

기차 객실 차량과 차량 사이의 연결 부위에서 담배를 피는 아저씨들이 몇몇 있었고,

이들이 피는 담배 연기와 냄새가 객실 출입문이 열릴 때마다 객실 내부로 들어왔다.

초등학교 꼬맹이가 보기에 이 모습이 많이 싫었나보다.

내가 나중에 커서 힘있는 사람이 되면, 이 세상에서 담배를 없애겠다

 

영등포역에 도착할 때까지 이런 생각을 했었다.

 

 

2001년 어느 날 - 서울시 테헤란로, 어느 고층 빌딩 사무실 내부

2001년, 나는 학교를 다니면서 주 1~2일 정도 테헤란로에 있는 잘 나가는 IT 회사에서 일하고 있었다.

오후 6시쯤, 나는 코딩에 집중하고 있었고 어디선가 타는 냄새가 났다.

엇, 빌딩에 불이 났나? 빨리 대피해야겠다.

 

나는 이렇게 생각하면서 옆자리의 동료들과 멀리 있는 팀장님에게 

타는 냄새가 나는데 빌딩에 불이 난 것 같아요. 빨리 건물 밖으로 나가야겠어요 !

 

라고 말했다.

그런데, 팀장님이 파티션 위로 얼굴을 빼꼼히 내밀면서, 본인의 모습을 보여주었다.

팀장님 입에 담배가 물려있었다 ㅠㅠ

나는 그때 2가지 측면에서 놀랐다.

  - 사무실에서 흡연하다니 !!!

  - 그 당시에 팀장님은 출산한지 몇달 안 된, 그리고 아기한테 수유를 하고 있는 여성 팀장이었다.

     (내가 이것을 왜 알고 있냐면, 팀장님은 쉴 때마다 휴게실에 가서 모유 수축기로 젖을 짜고 있던 것을 알고 있기에...)

 

사무실에서 흡연이 가능했던 시절 ㅠㅠ

사무실 새내기였던 나는 그런 것도 모르고, 빌딩 화재라고 대피하라고 소리를 질렀으니... ㅠㅠ

 

2002년 1월 - Manly Beach, Sydney, Austrailia

학생 때, Sydney에 어학연수 겸 여행을 갔었다.

그때 영국계 백인 가족이 사는 집에서 하숙을 했었는데, 하숙집 아저씨는 내가 한국인이라는 것을 몰랐었다.

아마 나를 일본인으로 알고 있었던 것 같다. (가끔 나한테 일본에 관한 우호적인 얘기를 해서...)

따뜻한 햇살이 내리쬐는 주말에 그 하숙집 가족과 같이 Sydney Olympic Park로 소풍을 갔었는데,

하숙집 백인 아저씨가 자동차 트렁크에서 접이식 킥보드를 꺼내서 아들 딸 꼬맹이가 타기 좋게 사이즈 조정을 하고 있었다.

그런데 킥보드가 뻑뻑하고 뭔가 원하는 대로 사이즈 조절이 안 되니까 무의식 중에 이런 말을 내뱉었다.

 "This product is probably made in Korea. ... (그리고 약간의 욕을 좀 섞어서 신경질적으로 말함~~~)"

 

내 앞에서 한국에 대한 욕을 하다니... ㅠㅠ

피가 거꾸로 솟는 느낌이었다.

이래서 외국에서 살면, 모든 사람이 애국자가 된다고 하는건가... ㅠㅠ

이렇게 투덜거리는 이 백인 아저씨 집의 DVD, Video Player, TV 등 대부분은 한국의 가전회사 LG꺼였다.

심지어 자동차에 장착된 타이어가 "Hankook Tire"였다.

이 백인 아저씨는 LG, 삼성, Hankko Tire가 한국 기업이라는 것도 모르고 있다.

이때 알았다. 외국인은 삼성, LG, 현대차가 만든 제품을 구입하면서 어느 나라의 회사가 만든 것인지 관심이 없었다.


이때, 나의 하숙집 메이트는 아르헨티나에서 온 고등학생이었다.

내가 옆에서 보이게 이 아르헨티나 학생에게 "축구"가 우주의 전부인 것처럼 보였다.

입만 열면, 축구 얘기만 한다.

나한테 물어보는 것도

"너네 나라의 유명한 축구 선수는 누구냐?"
"한국의 축구 리그는 어떠냐?"

 

이런 질문들 뿐...

이 학생과 헤어지고 10년이 흐른 뒤, "메시" 선수가 등장한 것을 보니... 아르헨티나 학생들이 왜 축구에 미쳐있는지 알 수 있었다.

그래.. 너희들은 전 우주의 기운을 끌어 모아서 축구에 몰빵하는구나.
그러니까 이렇게 월드 스타가 나올 수 밖에... ^^

 

 

 

반응형

 

작성일: 2024년 2월 22일

 

함박눈이 내리는 날에 과천 서울랜드 동문주차장 또는 과천 국립현대미술관으로 드라이브를 가보자 !

 

도심에서 10분 정도 벗어난 길인데, 가는 길이 숲속 오솔길이라서 눈이 즐거워진다.

 

 

아래 사진보다 훨씬 실제 풍경이 좋다.

밤에 스마트폰으로 사진을 찍어서 풍경을 잘 담을 수 없는 것이 아쉽다.

 

 

 

 

 


 

반응형
테스트한 날짜: 2024년 2월 20일

 

 

잠깐 !!
PPTP Server 구축하기 전에 PPTP Client 설정 및 터널 생성하는 법을 알고 싶다면 아래 문서를 참고 !

 

       https://andrewpage.tistory.com/257

 

 

PPTP 패키지 설치

$ sudo  apt install pptpd

 

 

PPTP 서버 설정

##
## Tunnel Interface에 할당할 IP address를 설정한다.
##   예를 들어, PPTP server는 ppp0 tunnel interface에 10.1.0.1 주소를 할당.
##            PPTP client는 ppp0 tunnel interface에 10.1.0.100 주소를 할당.
##

$ cat /etc/pptpd.conf
... 중간 생략 ...

localip 10.1.0.1
remoteip 10.1.0.100-130

... 중간 생략 ...


##
## PPTP client에 접속 요청할 때, PPTP server가 아래의 network 구성 정보를 client에게 전달하도록 함.
## mtu 값은 실제 physical NIC의 mtu 값보다 대략 60~100 bytes 정도 작게 설정해야
## tunnel session을 통해서 IP 패킷이 전송될 때, IP 패킷의 꼬리 부분이 짤리는 현상이 없다.
## 예를 들어서, physical NIC의 MTU 값이 1500 이라고 가정해보면
##   PPTP tunnel interface의 MTU는 1400 정도 되어야 IP packet이 버려지지 않고 전송된다.
## 만약 실수로 tunnel mtu를 1500으로 설정하면, 1500 byte 짜리 IP packet이 전송되려 할 것이고
## 이 때 IP packet의 뒷 부분 60~100 bytes 정도가 짤리는 현상이 발생할 것이다.
##

$ cat /etc/ppp/pptpd-options
... 중간 생략 ...

ms-dns 1.1.1.1
mtu 1400
mru 1400

default-asyncmap

... 중간 생략 ...


##
## 반드시 ip_forward를 enable 시켜야 한다.
## ip_forward 설정이 enable 되어야 한개의 Linux OS내부에서 Physical port 'ens3'와 ppp0 간에 패킷이 forward된다.
##

$  sudo sysctl -w net.ipv4.ip_forward=1

$  cat  /etc/sysctl.conf
... 중간 생략 ...

net.ipv4.ip_forward=1

... 중간 생략 ...

$

 

PPTP 계정 설정

PPTP client가 PPTP server에 접속할 때 사용할 Account 정보를 설정한다.

$ cat /etc/ppp/chap-secrets

# client        server  secret                  IP addresses
mynewid         pptpd   my!pass@word            *
gildong         pptpd   me!hahahoho@            *

 

 

PPTP 서비스 기동

$ systemctl start pptpd

$ systemctl enable pptpd

$ systemctl status pptpd
● pptpd.service - PoPToP Point to Point Tunneling Server
     Loaded: loaded (/lib/systemd/system/pptpd.service; disabled; vendor preset: enabled)
     Active: active (running) since Tue 2024-02-20 22:35:17 KST; 34min ago
     
... 중간 생략 ...

 

 


PPTP Client를 이용하여 PPTP 터널 생성 테스트하기

Ubuntu OS에서 PPTP Client를 설정하는 방법은 아래 문서를 참고 !


     https://andrewpage.tistory.com/257

 

 

 


 

반응형
작성일: 2024년 2월 16일

 

VirtualBox가 돌아가는 Linux Baremetal 장비에 Desktop GUI를 사용할 수 없는 경우가 있다.

그런 경우는 VirtualBox CLI(명령행 인터페이스)를 이용하여 VM을 관리해야 한다.

VirtualBox CLI에 관해 자세한 내용을 확인하고 싶다면, 아래 Oracle VirtualBox 공식 메뉴얼을 읽는 것을 추천한다.

 

    [ 참고 문서: Controlling VirtualBox from the Command Line ]

    https://www.oracle.com/technical-resources/articles/it-infrastructure/admin-manage-vbox-cli.html

 

내가 자주 사용하는 VBoxManage CLI 명령만 추려 보면 아래와 같다.

 

##
## 전체 VM instance 리스트를 보기
##   (참고: Shutdown 상태의 VM까지 모두 보여준다.)
##
$ VBoxManage list vms
"MyExampleVM" {e8904c82-aaaa-bbbb-cccc-dddddbcb0f3}
"SejongVM"    {e8904c82-aaaa-bbbb-cccc-dddddbcb0f5}
"JeonjoVM"    {e8904c82-aaaa-bbbb-cccc-dddddbcb0f7}


$ VBoxManage list vms -l   ## 상세 정보를 보기
... 출력 내용 생략 ...

##
## 현재 동작하고 있는 전체 VM instance 리스트를 보기
##
$ VBoxManage list runningvms
"MyExampleVM" {e8904c82-aaaa-bbbb-cccc-dddddbcb0f3}
"SejongVM"    {e8904c82-aaaa-bbbb-cccc-dddddbcb0f5}


##
## 특정 VM instance에 대한 상세한 정보를 보기
##
$ VBoxManage showvminfo MyExampleVM


##
## 새로운 VM instance 생성하기
##
$ VBoxManage list ostypes    ## VirtualBox가 제공하는 OS Type 목록을 보여준다.
ID:          OpenSUSE_64
Description: openSUSE (64-bit)
Family ID:   Linux
Family Desc: Linux
64 bit:      true

ID:          Ubuntu_64
Description: Ubuntu (64-bit)
Family ID:   Linux
Family Desc: Linux
64 bit:      true
... 이하 생략 ...


$ VBoxManage createvm  --name MyNewUbuntuVM --ostype Ubuntu_64 --register
... 출력 내용 생략 ...


##
## VM Properties 설정하기
##
$ VBoxManage modifyvm  MyNewUbuntuVM --cpus 2 --memory 2048 --vram 12


##
## Virtual Network Adapter 설정하기
##
$ VBoxManage modifyvm  MyNewUbuntuVM --nic1 bridged --bridgeadapter1 eth0


##
## VM instance를 구동하기
##
$ VBoxManage startvm  MyNewUbuntuVM
또는
$ VBoxManage startvm  MyNewUbuntuVM --type headless   ## 화면으로 출력되는게 없도록 VM 구동


##
## VM instance를 강제 종료하기
##
$ VBoxManage controlvm  MyNewUbuntuVM  poweroff

 

 

 


 

반응형
작성일: 2024년 3월 28일

 

Oracle Cloud Infra(OCI)에서 VM instance를 생성하는 것은 Web Console에서 권고값을 따라

"다음", "OK" 같은 버튼만 누르면 쉽게 처리할 수 있다.

 

그런데 이렇게 생성한 VM instance에 SSH 접속하려고 하면, Oracle 매뉴얼처럼 수행했을 때 잘 안 된다.

SSH 접속이 안 되는 원인이 OS Image 마다 조금 달랐다.

 

참고: VM instance에 기본 로그인 계정 설정하기

    Oracle OCI Web Console에서 VM instance에 console 화면에 접근하려면,
    VM instance를 생성하는 시점에 cloud-init 스크립트에 Login 계정을 설정해야 한다. (ID, Password 등)
    아래 블로그에 자세한 방법과 예제가 있다. 예제를 보고 따라하면 된다.

    https://andrewpage.tistory.com/171

 

 

Case: "Oracle Linux 8 Image"를 이용하여 VM Instance를 만든 경우

 방화벽이 활성화되어 있어서 Source IP address가 동일 Subnet이 아닌 경우 SSH 접속이 막고 있다.

아래 명령을 수행해서 방화벽을 끄면 된다.

$ systemctl stop firewalld

$ systemctl disable firwalld

 

초기 작업을 위해 위와 같이 방화벽을 우선 끄고 SSH 접속하고, 어느 정도 Network과 관련한 설정을 변경하고 나면 

다시 firewalld 서비스를 활성화해야 한다. (보안을 위해서 꼭 잊지 말고 해야 한다)

 

 

Case: "Ubuntu 22.04 Image"를 이용하여 VM Instance를 만든 경우

Ubuntu 22.04 VM instance는 다행히 Ubuntu Firewall 서비스가 꺼져 있다.

그런데 Netfilter가 특정 몇개 Port를 제외하고 모두 Reject 하도록 설정되어 있다.

그러므로 Netfilter의 Rule을 조정할 필요가 있다. (아래 명령을 참고)

$ iptables -F

 

그리고 아래와 같이 iptables rule을 다시 구성했다. 

아래 스크립트 중에서 "FIXME" 라고 코멘트 추가한 부분을 참고하면 된다.

$ cat /etc/iptables/rules.v4

# CLOUD_IMG: This file was created/modified by the Cloud Image build process
# iptables configuration for Oracle Cloud Infrastructure

# See the Oracle-Provided Images section in the Oracle Cloud Infrastructure
# documentation for security impact of modifying or removing these rule

*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [463:49013]
:InstanceServices - [0:0]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p udp --sport 123 -j ACCEPT

## FIXME: Domain Name Server 접근을 허용하는 Rule 추가
-I INPUT -p udp -m udp --dport 53 -j ACCEPT

## FIXME: SSH 접속할 포트를 변경
-A INPUT -p tcp -m state --state NEW -m tcp --dport 2022 -j ACCEPT 

-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited

... 이하 생략 ...

 

위와 같이 /etc/iptables/rules.v4 를 수정하고, 깔끔하게 VM instance를 Restart하고 SSH를 접속해보자~

잘 접속될 것이다. ^^

 


 

+ Recent posts