반응형

 

회사 내부 업무망을 이용하면서 동시에 외부 인터넷망을 이용할 수 있는 방법에 대해 공유드리겠습니다.

 

사건 개요

회사에서 집에 있는 Windows PC로 원격접속을 하면서 동시에 회사 사내망에 존재하는 내부망 포털에 접속하면서 업무를 처리해야 하는 상황이 생겼습니다.

그런데 문제는 회사 사내망에서는 외부(집)로 원격접속이 막혀있고 회사 노트북과 핸드폰 USB 테더링 연결을 통해 외부 인터넷망을 이용하자니 회사내에서만 접속할 수 있는 포털에 접속할 수 없는 상황이였습니다.

 

현재 상황을 그림으로 그려보면 아래와 같습니다.

 

해결방법

다음 방법을 사용하면 문제를 해결할 수 있습니다.

 

준비물: 회사노트북, VMware Workstation, 가상머신(Ubuntu), 핸드폰(USB 테더링용)

 

 

1. 원격접속 프로그램(Remmina) 설치

가장 먼저 VMware Workstation 위에 Ubuntu를 올리고 Ubuntu에서 원격접속 프로그램인  Remmina을 설치합니다.

# 원격 접속 프로그램 설치
sudo apt install remmina

 

 

2. 회사 노트북과 핸드폰을 USB로 연결

설치가 완료되면 회사 노트북과 핸드폰을 USB로 연결합니다.

연결하면 VMware에서 팝업창이 나오는데 "Connect to a virtual machine"을 선택한 후 Ubuntu와 연결해 줍니다.

 

 

3. USB 테더링 설정

핸드폰으로 USB 테더링을 활성화 해줍니다.

위치 : 핸드폰 > 설정 > 연결 > 모바일 핫스팟 및 테더링 > USB 테더링 활성화

 

 

 

4. Remmina 실행 및 연결

설치와 연결까지 완료된 후 Ubuntu에서 remmina를 검색해보면 아래와 같은 아이콘 확인이 가능합니다.

 

Remmina를 실행하여 원격접속이 필요한 PC에 대한 정보를 입력합니다.

 

5. 원격데스크탑 연결 확인

집에 있는 윈도우PC로 원격 접속이 잘 되는지 확인합니다.

(혹시 접속이 안된다면 목적지(집) PC의 원격접속 허용 설정은 되어 있는지 방화벽 정책은 허용되어 있는지 확인해보세요)

 

 

여러분도 위 방법으로 문제가 해결되시길 바라겠습니다^^

 

caul334@gmail.com

내용이 유용하셨다면 좋아요&댓글 부탁드립니다.
이 블로그를 이끌어갈 수 있는 강력한 힘입니다!

반응형
반응형

 

 

해당 글은 Git을 설치함에 있어서 시행착오 없이 설치 및 세팅하기 위해 참고를 목적으로 쓴 글입니다.

해당 포스팅은 이미 Github에 가입 했다는 전제하에 진행하였습니다.

 

Git 설치 방법

 

Windows에 Git 설치

1) Git 다운로드 패이지 접근 : http://git-scm.com/downloads
2) Download 2.xx.x for Windows 클릭하여 다운로드
3) 다운로드 파일 실행
4) Next 누르며 완료하기 (default Branch는 따로 변경하지 않는 이상 기본 값인 main으로 설정됨)

 

 

Ubuntu에 Git 설치

# 패키지 업데이트
sudo apt-get update
# git 설치
sudo apt-get install git
# git 설치 확인
git --version
# 브랜치 이름을 main으로 설정
git config --global init.defaultBranch main

 

 

지역 저장소 설정 및 커밋 생성

# 프로젝트 Root 폴더 이동
cd <Root folder>

# git 지역 저장소 설정
git init

# git 지역 저장소 취소
rm -rf .git

# Git 사용자 정보 설정 (User Name과 Email은 GitHub 계정과 동일해야함)
git config user.name "<user.name>"
git config user.email "<user.email>"

# git 설정 확인
cat .git/config

# 커밋에 포함될 파일 등록 - 특정 파일 등록의 경우
git add <파일명>

# 커밋에 포함될 파일 등록 - 전체 파일 등록의 경우
git add .

# 커밋 등록 전 파일 상태 확인
git status

# 커밋(스냅샷) 생성
git commit -m "<커밋 설명 추가>"

# 마지막 커밋의 설명을 수정해야 할 경우
git commit --amend -m "<커밋 설명 추가>"

# 커밋 이력 확인
git log

 

커밋 등록에 무시할 파일 지정 (.gitignore)

vi .gitignore

#--- 아래는 파일 내용(예시) ---시작
# Logs
*.log

# Dependency Directory
node_modules/
#----------------------끝

 

 

원격 저장소 생성 및 커밋 등록

# 1. 원격 저장소(repository) 생성
1.1) GitHub > New repository > 생성
1.2) 생성한 repository > "<> Code" > 원격 저장소(HTTPS) 주소 확인 : https://github.com/<username>/<repository>.git

# 2. 원격 저장소 git 설정 파일 등록
# git remote add <원격 저장소 이름> <원격저장소 주소>
git remote add origin <원격저장소 주소>

# 3. 커밋을 원격 저장소에 등록
# git push <원격 저장소 이름> <원격 저장소 브랜치 이름>
git push origin main

 

 

caul334@gmail.com

내용이 유용하셨다면 좋아요&댓글 부탁드립니다.
이 블로그를 이끌어갈 수 있는 강력한 힘입니다!

반응형
반응형

 

해당 글은 Elasticsearch와 Kibana를 설치함에 있어서 시행착오 없이 설치하기 위해 참고를 목적으로 쓴 글입니다.

 

최신버전 Elasticsearch 설치 방법

 

1. Elastic 설치 가이드 페이지 접근

https://www.elastic.co/guide/en/elasticsearch/reference/current/deb.html

 

Install Elasticsearch with Debian Package | Elasticsearch Guide [8.16] | Elastic

On systemd-based distributions, the installation scripts will attempt to set kernel parameters (e.g., vm.max_map_count); you can skip this by masking the systemd-sysctl.service unit.

www.elastic.co

 

(참고) Elastic 설치 가이드 페이지 요약본 (Production 환경이 아니라면 root로 설치할 것)

1) wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo gpg --dearmor -o /usr/share/keyrings/elasticsearch-keyring.gpg
2) sudo apt-get install apt-transport-https
3) echo "deb [signed-by=/usr/share/keyrings/elasticsearch-keyring.gpg] https://artifacts.elastic.co/packages/8.x/apt stable main" | sudo tee /etc/apt/sources.list.d/elastic-8.x.list
4) sudo apt-get update && sudo apt-get install elasticsearch

 

2. 설치완료 후 서비스 등록 및 서비스 실행

1) sudo systemctl daemon-reload
2) sudo systemctl enable elasticsearch.service
3) sudo systemctl start elasticsearch.service

 

3. Elasticsearch 정상 실행 확인

 - https://<IP주소>:9200/ 접속

 

 

최신버전 Kibana 설치 방법

 

1. Kibana 설치 가이드 페이지 접근

https://www.elastic.co/guide/en/kibana/current/deb.html

 

Install Kibana with Debian package | Kibana Guide [8.16] | Elastic

Do not use add-apt-repository as it will add a deb-src entry as well, but we do not provide a source package. If you have added the deb-src entry, you will see an error like the following: Unable to find expected entry 'main/source/Sources' in Release file

www.elastic.co

 

(참고) Kibana 설치 가이드 페이지 요약본 (Production 환경이 아니라면 root로 설치할 것)

1) wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo gpg --dearmor -o /usr/share/keyrings/elasticsearch-keyring.gpg
2) sudo apt-get install apt-transport-https
3) echo "deb [signed-by=/usr/share/keyrings/elasticsearch-keyring.gpg] https://artifacts.elastic.co/packages/8.x/apt stable main" | sudo tee /etc/apt/sources.list.d/elastic-8.x.list
4) sudo apt-get update && sudo apt-get install kibana

 

 

2. 설치완료 후 서비스 등록 및 서비스 실행

1) sudo systemctl daemon-reload
2) sudo systemctl enable kibana.service
3) sudo systemctl start kibana.service

 

 

3. Kibana 정상 실행 확인 및 토큰 입력

 - http://<IP주소>:5601

 - 처음 나오는 토근 입력 페이지는 아래와 같이 할 것

# Elastic 실행 경로 이동
cd /usr/share/elasticsearch/bin

# Token 생성을 위해 설치 가이드와 입력
./elasticsearch-create-enrollment-token -s kibana

 

 

4. 인증 코드 입력

 - Token을 입력하면 Veritication Code를 입력하라고 나오는데 아래와 같이 진행

# Kibana 실행 경로 이동
cd /usr/share/kibana/bin

# Verification Code 생성
./kibana-verification-code

 - Verification Code가 출력되면 웹브라우저 Kibana 창에 붙여넣기

 

 

 

별첨 - Kibana 원격 Host 에서 접속하는 방법

Kibana는 기본 설정이 localhost에서만 접속하도록 설정되어 있습니다. (이 경우 Ubuntu 내에서만 가능)

Ubuntu에 Elasticsearch를 설치하시는 분들은 대부분 Virtual Machine에 Ubuntu를 올리고 설치하는 경우일 텐데

그럴 경우 Kibana 창을 확인하기 위해서는 항상 Ubuntu에 들어가야 하는 번거로움이 있습니다.

 

Kibana 설정 하나만 변경하면 편리하게 Host PC 웹브라우저에서 Kibana 대시보드를 확인할 수 있습니다.

# Virtual Machine IP 확인
ifconfig

# Kibana 설정 파일 열기
vi /etc/kibana/kibana.yml

# 접속 호스트 변경하기 (아래 내용 찾아서 추가)
server.host: "<IP주소>"

 

Kibana 원격 접속 설정 추가

 

 

Host PC인 윈도우에서 Ubuntu에 올려진 Kibana로 접속 확인

Host PC인 윈도우에서 Ubuntu에 올려진 Kibana에 접속한 화면

 

 

참고

- Elastic 실행 경로 : /usr/share/elasticsearch/bin
- Kibana 실행 경로 : /usr/share/kibana/bin

- Elastic 환경설정 파일 경로 : /etc/elasticsearch/elasticsearch.yml

- Kibana 환경설정 파일 경로 : /etc/kibana/kibana.yml

 

 

 

caul334@gmail.com

내용이 유용하셨다면 좋아요&댓글 부탁드립니다.
이 블로그를 이끌어갈 수 있는 강력한 힘입니다!

반응형
반응형

 

회사 인터넷망 위에서 Python 프로그램을 개발 중인데

Selenium 또는 Selenium-Wire 모듈을 사용하면 반드시 googlechromelabs.github.io  사이트에 접속되어야만 합니다.

하지만 제가 다니는 회사는 프록시 서버를 지나지 않는 이상 Github 사이트에 접속이 불가능하다는 사실...

방화벽 신청까지 해봤지만 결과는 반려 처리ㅜㅜ 어쩔 수 없이 프록시로...

 

제 코드는 3가지 모듈 (selenium-wire, selenium, request)을 사용합니다.

이 경우 Proxy 설정 방법에 관해 공유드리겠습니다.

import certifi
import json
import requests
from seleniumwire import webdriver
from selenium.webdriver.chrome.service import Service


# Selenium 또는 Selnium-Wire를 사용하는 경우
def driver_load():
    # webdriver 로드 #
    chromedriver = ".\\chromedriver.exe"
    service = Service(executable_path=chromedriver)

    seleniumwire_options = {
        "proxy": {
            "http": "<Proxy Server>:<Proxy Port>",
            "https": "<Proxy Server>:<Proxy Port>"
        }
    }

    # Set Options
    options = webdriver.ChromeOptions()
    options.add_argument('--proxy-server=<Proxy Server>:<Proxy Port>')

    # Set up the Chrome WebDriver
    driver = webdriver.Chrome(service=service, seleniumwire_options=seleniumwire_options, options=options)

    return driver


# Requests를 사용하는 경우
def request_post(post_url, params, headers):
    proxies = {
        "http": "<Proxy Server>:<Proxy Port>",
        "https": "<Proxy Server>:<Proxy Port>",
        "no_proxy": "localhost,127.0.0.1 "
    }

    params_json = json.dumps(params)
    response = requests.post(post_url, data=params_json, headers=headers, proxies=proxies, verify=certifi.where())

    return response

 

 

내용이 유용하셨다면 좋아요&댓글 부탁드립니다.
이 블로그를 이끌어갈 수 있는 강력한 힘입니다!

caul334@gmail.com

반응형
반응형

 

ElasticSearch를 설치 후 Logstash를 설치하기위해

공식 홈페이지에 나온 명령어를 그대로 따라하면 오류가 납니다...

Logstash 공식 홈페이지

https://www.elastic.co/guide/en/logstash/current/installing-logstash.html

 

Installing Logstash | Logstash Reference [8.15] | Elastic

Use the echo method described above to add the Logstash repository. Do not use add-apt-repository as it will add a deb-src entry as well, but we do not provide a source package. If you have added the deb-src entry, you will see an error like the following:

www.elastic.co

 

Elasticsearch를 설치 후 logstash를 apt로 설치하시는 분들은 무조건 아래와 같은 오류를 만나게 됩니다.

 

[오류 내용]

E: Conflicting values set for option Signed-By regarding source https://artifacts.elastic.co/packages/8.x/apt/ stable: /usr/share/keyrings/elasticsearch-keyring.gpg != /usr/share/keyrings/elastic-keyring.gpg

 

오류가 나는 원인은 Elasticsearch & Kibana 설치와 Logstatsh 설치는

서로 다른 GPG Key 파일을 사용하기 때문에 GPG Key 파일이 충돌되기 때문입니다.

/etc/apt/sources.list.d/ 하위에 elastic-8.x.list 파일을 확인해보면 아래와 같이 두 줄이 확인됩니다.

 

이 중에서 아래와 같이 elastic-keyring.gpg 내용이 있는 줄만 남기고 나머지는 삭제해야 합니다.

 

이후 다시 Logstash를 설치하게 되면 설치를 완료할 수 있습니다.

 

 

caul334@gmail.com

내용이 유용하셨다면 좋아요&댓글 부탁드립니다.
이 블로그를 이끌어갈 수 있는 강력한 힘입니다!

반응형
반응형

 

엘라스틱서치를 설치하고 이제 로그인 하려는데 암호를 몰라 접속을 못하신다구요?

여기에 나오는 방법대로만 하면 해결할 수 있습니다.

 

엘라스틱서치 로그인 패스워드는 설치하자마자 출력되는 Command Prompt로 확인할 수 있지만

따로 저장해 놓지 않으면 로그인 할 수 없습니다ㅠㅠ

 

엘라스틱서치의 기본 로그인 패스워드를 변경(reset)하는 방법 공유드리겠습니다.

 

1. 패스워드 변경을 위해선 먼저 elasticsearch-reset-password를 찾아야 합니다.

아래와 같은 명령어로 경로를 찾아줍니다.

참고로 저는 깔끔한 스샷을 찍기 위해 경로명에 /usr/share을 써넣었지만 설치 경로를 모르시는분은 아래 명령어와 같이 루트 경로(/)로 넣으시면 됩니다.

$ sudo find / -name "*reset-password"

 

elasticsearch-reset-password 프로그램 찾기

 

저의 경우 찾고자 하는 프로그램은 /usr/share/elasticsearch/bin/elasticsearch-reset-password에 프로그램이 위치해 있습니다.

프로그램을 찾았으니 elastic 사용자를 지정하여 패스워드를 초기화 해줍니다.

 

$  /usr/share/elasticsearch/bin/elasticsearch-reset-password -u elastic

 

저의 패스워드는 모자이크 처리 하였지만 이것을 따라하시면 초기화된 패스워드를 확인할 수 있습니다.

 

추가) 패스워드 분실 방지 방법

운영 환경이 서버라면 Elastic Search docs 페이지에도 나와있지만 패스워드 분실을 방지하기 위해선

접속 패스워드를 환경변수로 추가하거나 Desktop의 경우 profile 또는 .bashrc에 등록해 두시면 분실을 방지할 수 있습니다.

 

$ export ELASTIC_PASSWORD="접속패스워드"

 

 

caul334@gmail.com

내용이 유용하셨다면 좋아요&댓글 부탁드립니다.
이 블로그를 이끌어갈 수 있는 강력한 힘입니다!

반응형
반응형

 

Elastic Search를 설치하고 netstat로 확인까지 하지 9200 포트가 열려있는 것을 확인했습니다.

하지만 막상 접속을 하려니 다음과 같이 접속이 불가능했습니다.

정상이라면 Elastic Search의 로그인 창이 떠야하는데...

 

해결책

위 문제는 주소창에 엉뚱한 프로토콜을 입력했기 때문이였습니다ㅠㅠ

엘라스틱서치 최신 버전은 주소를 입력할 때 http가 아닌 https를 입력해야 합니다.

저는 최신버전 8.15버전을 설치하다보니 TLS가 적용되어 있다는 영어 문구를 놓쳤더라구요.. 이놈의 영어 실력

올바른 주소 입력

 

 

위 문제의 경우 때문에 TCPdump로 네트워크 트래픽을 확인해보신 분들은 다음과 같은 특징을 발견하셨을 겁니다.

처음에  Syn, Syn+Ack, Ack 으로 3-way 핸드쉐이킹을 잘 맺자마자

곧바로 Fin Fin+Ack과 같이 연결이 끊어지는 특징이 있습니다.

 

 

 

결론적으로 이후 https를 입력하면 로그인 팝업창이 뜨는데

엘라스틱서치를 설치하게 되면 처음에 나오는 비밀번호를 잘 저장해놨다가 입력하시면 됩니다^^

 

 

기본 디폴트 id인 elastic과 설치 시 출력된 비밀번호를 입력하게 되면 아래 사진과 같이

최신버전도 잘 접속이 되는 것을 확인할 수 있습니다.

 

 

caul334@gmail.com

내용이 유용하셨다면 좋아요&댓글 부탁드립니다.
이 블로그를 이끌어갈 수 있는 강력한 힘입니다!

반응형
반응형

 

Linux Debian 계열인 우분투 시스템 위에 ELK 스택(Elastic search + Logstash + Kinbana) 설치 방법을 공유드리겠습니다.

 

1. ELK 스택 설치 전 Ubuntu 시스템에서 사전 세팅

# 1) APT 업데이트

$ sudo apt update

 

# 2) Java SDK 설치

$ sudo apt install default-jdk

 

 

2. Elastic Search 설치

1.1) <최신 버전 설치 시> : google에서 elastic download 검색 후 "DEB x86_64" 다운로드

1.2) <특정 버전 설치 시> : google에서 elastic <버전> download 검색 후 "DEB x86_64" 다운로드

2) $ cd Downloads

3) $ sudo dpkg -i <elastic file>

4) $ sudo systemctl start elasticsearch

5) 서비스 확인 : 인터넷 브라우저 > http://localhost:9200/

설치 완료 후 화면

 

3. Kibana 설치

1.1) <최신 버전 설치 시> : google에서 kibana download 검색 후 "DEB x86_64" 다운로드

1.2) <특정 버전 설치 시> : google에서 kibana <버전> download 검색 후 "DEB x86_64" 다운로드

2) $ cd Downloads

3) $ sudo dpkg -i <kibana file>

4) $ sudo systemctl start kibana

5) 서비스 확인 : 인터넷 브라우저 > http://localhost:5601/

설치 완료 후 화면

 

 

반응형
반응형

Selenium wire 모듈을 사용하다보면 가끔 POST 요청으로 백그라운드에서 XHR 요청이 발생하는 경우 있습니다.

 

하지만 문제는 POST 요청에 대한 파라미터를 변경한 값을 결과 값으로 가져오고 싶은데 그게 어렵다는 문제입니다ㅠㅠ

 

이런 경우 아래와 같은 코드를 사용하면 Selenium wire 모듈을 통해서도 얼마든지 세션을 유지하면서 Post 요청을 사용할 수 있습니다.

 

  해결책 - Python 코드

from seleniumwire import webdriver
import requests

# WebDriver 설정
options = webdriver.ChromeOptions()
driver = webdriver.Chrome(seleniumwire_options={}, options=options)

# Selenium 모듈로 홈페이지 요청
url = 'https://example.com'
driver.get(url)

# POST 요청을 하는 특정 페이지 요청 값을 수정하여 requests 모듈로 재요청
for idx, request in enumerate(driver.requests):
	if '</api와 같은 홈페이지 uri 값>' in request.url and request.method == 'POST':
		post_url = request.url
		headers = request.headers
		params = {
			'key1': 'val1',
			'key2': 'val2'
		params_json = json.dumps(params)
		response = requests.post(post_url, data=params_json, headers=headers)
		print(response.text)
		break

 

 

caul334@gmail.com

내용이 유용하셨다면 좋아요&댓글 부탁드립니다.
이 블로그를 이끌어갈 수 있는 강력한 힘입니다!

반응형
반응형

 

Python으로 Selenium 모듈을 사용하다가 요청 트래픽과 응답 트래픽을 보기 위해 위해 Selenium Wire를 알게되어

Selenium Wire 모듈을 사용했는데 사용하자마자 역시나 다음과 같은 문제가 이어졌다.

 

Selenium Wire 모듈을 사용하며 특정 사이트에 접속했을 때 아래와 같이 "주의 요함" 또는 "Not Sure" 메시지가 뜬다면...

 

 

 

해결책

1. Selenium wire 홈페이지(https://pypi.org/project/selenium-wire/) 접속

 

 

2. here 클릭하여 ca.crt 파일 다운로드

 

3. 브라우저에 다운받은 인증서 추가

(Chrome 브라우져의 경우) : 설정 > 개인 정보 보호 및 보안 > 보안 > 인증서 관리 > 신뢰할 수 있는 루트 인증 기관 > 가져오기 > 인증서 가져오기 마법사 시작 > 다음 > 파일 경로에 다운 받았던 ca.crt 경로 추가 > 다음

 

 

4. Selenium Wire 재실행 및 확인

인증서를 넣으면! 아래 사진과 같이 "주의 요함" 또는 "Not Sure"메시지가 사라지게 됩니다

 

 

 

 

caul334@gmail.com

내용이 유용하셨다면 좋아요&댓글 부탁드립니다.
이 블로그를 이끌어갈 수 있는 강력한 힘입니다!

반응형

+ Recent posts