우분투 22.04 kvm에 beebox 설치하기

원래 beebox는 버츄얼 박스에 설치하는게 정석이다.

그러나 여러 사정으로 beebox를 kvm에 깔고자 하는 변태(?)들을 위해 글을 작성하였다.

필자는 kvm으로 가상서버들을 관리하고 있는데 버츄얼박스에서 따로 관리하기 귀찮아 kvm에 넣어보자는 생각을 가지고 kvm에 설치를 하였다.

1.SourceForge에서 beebox 다운로드

https://sourceforge.net/projects/bwapp/files/bee-box 에 들어가서 1.2GB 크기의 7z 파일을 받는다.

7z 압축을 풀고 bee-box 폴더에 들어간다.

나누어져 있는 vmdk 파일들을 kvm에서 구동가능한 qcow2 파일로 변환 해준다.

변환 명령어

$ qemu-img convert beebox.vmdk -O qcow2 beebox.qcow2

변환 시간은 생각보다 오래걸린다. 바로 반응이 없다고 해서 당황하지 말고 차분히 기다리면 변환이 완료된다.

(변환이 끝난다고 해서 따로 출력되는 문자열은 없고 줄바뀜이 되면 변환이 완료된 것이다.)

필자의 경우는 약 5분정도 걸렸다.

2. KVM 가상머신 생성

우분투 검색창에서 가상머신 관리자를 실행한다.

사진 1. 왼쪽 상단 아이콘 클릭!
사진 2. 일반적인 kvm 생성하듯 생성!

기존 디스크 이미지 불러오기 -> 변환한 파일 위치 지정 -> 운영체제 선택란에는 Generic 또는 알지 못함을 선택 한 다음 1코어 1GB 정도 자원을 지정해주면 바로 부팅이 시작된다.

사진 3. 부팅 완료사진

부팅이 완료 되면 bwapp-start를 실행하고 터미널을 실행해서 ip를 알아낸 후 웹으로 접속하면 된다.

사진 4. 접속 성공!

웹으로 접속 한 후 이제 자유롭게 웹해킹 공부를 진행하면 된다.

우분투 리눅스 특정 ip주소 차단하기 (iptables)

route로 공격시도를 하는 ip를 임시 차단을 하여도 시간이 지나서 다시 공격을 시도하는 경우가 꽤 자주 있다.

이러한 상황에는 iptables를 이용하여 차단하면 직접 해제하기 전까지 영구적으로 차단 할 수 있다.

# iptables -L // 차단 리스트 출력

# iptables -A INPUT -s xxx.xxx.xxx.xxx -j DROP // ip 차단하기

# iptables -A INPUT -s xxx.xxx.xxx.xxx -j ACCEPT // ip 차단 해제

# iptables -F // 전체 차단 해제

iptables는 route 명령어와는 다르게 즉시 적용이 되지 않고 서비스를 재시작 하여만 차단이 적용됨으로 차단 후 서비스를 반드시 재시작 해야한다.

# services iptables restart

그 다음에 iptables -l 를 치면 제대로 적용이 된 것을 확인할 수 있다.

사진 1 : 적용 완료 사진

Ubuntu 22.04 LTS XRDP 세션 재연결 (feat. gnome -> xfce4 변경)

XRDP를 이용하여 GUI 환경을 원격으로 사용 할 수 있다. 그러나 윈도우즈와는 다르게 재접속시 작업 중이던 환경은 모두 날라가고 새로운 세션으로 연결 되는 치명적인 단점이 있다.

세션이 증발하는 현상을 막기 위해 1주일간 구글링과 온갖 삽질을 해본 결과 gnome 데스크톱 환경의 버그인 것으로 결론 내렸다. 16.04 LTS 버전부터 해결 되지 않고 지금까지 해당 버그가 있는 것으로 판단 된다.

이러한 문제를 근본적으로 해결하는 방법은 아직 없는 것 같으며 gnome 환경을 xfce4로 변경하여 임시 해결책이 있다는 것을 알게 되었다.

이번 글에서는 xfce4 설치 및 xrdp 재설정을 할 것이다.

1. xfce4 설치

명령어 1줄로 간단하게 설치 가능하다. (설치 오류시 apt-get update 후 재시도 할 것!)

$ sudo apt-get install xfce4

2.xrdp 설정 변경

x11 환경이 제대로 실행 될 수 있도록 홈 디렉토리에 .xession 파일을 만들어 준다

$ echo xfce4-session > ~/.xsession

다음으로는 xrdp에서 기존의 그놈 환경과 새로설치한 xfce4가 충돌이 일어나지 않도록 startwm.sh 파일을 수정 해준다.

$ sudo nano /etc/xrdp/startwm.sh

13번째 줄과 14번째 줄을 주석처리한다

test -x /etc/X11/Xsession && exec /etc/X11/Xsession 
exec /bin/sh /etc/X11/Xsession

위 2줄을 주석 처리하면 된다.

그리고 맨 마지막 줄에 아래의 코드를 추가한다.

test -x /usr/bin/startxfce4 && exec /usr/bin/startxfce4
exec /bin/sh /usr/bin/startxfce4

재부팅을 하고 이후부터는 세션 유지가 가능하다 (로그아웃시 다음 로그인에 대비하여 세션 저장 체크를 반드시 해야한다!!!)

사진 1: 체크는 필수!

++ 내용 추가)

xfce4 환경도 gnome 환경과 마찬가지로 비정상적으로 접속이 종료 된 경우에는 똑같이 세션이 증발한다…. 수시로 저장 및 백업은 필수 인 것 같다!

[Ubuntu 22.04] https ssl 인증서 갱신하기

https로 웹 서버를 운영을 하면 몇 개월 마다 인증서를 갱신해야 한다.

유효기간이 지나도록 인증서를 갱신하지 않으면 보안에도 좋지 않을 분더러 구글 등 검색 사이트에 본인의 사이트가 노출이 되지 않기 때문에 만료되기 전에 인증서를 갱신하는 것이 좋다

인증서를 갱신하기 위해서는 인증서가 설치된 위치로 이동해야 한다.

Let’s Encrypt 무료 인증서로 https를 구축한 경우는 대부분이 /etc/letsencrypt에 인증서가 존재한다.

해당 위치에서 아래 명령어를 실행한다.

$ sudo certbot renew # 인증서가 만료 되었을때
$ sudo certbot certonly --force-renew -d [기존 인증서 도메인]  # 인증서가 만료되기 전 갱신할 때

명령어를 입력하면 번호를 입력하라는 창이 뜬다.

필자는 아파치 서버를 운영 중이여서 1번을 입력하였다. 각자 서버에 맞는 번호를 입력하면 된다.

명령어 실행이 끝났으면 웹 서비스를 재시작 한다.

$sudo service apache2 restart

재시작 후 웹에 접속해보면 인증서가 갱신 된 것을 확인 할 수 있다.

Ubuntu 22.04 LTS ssh 포트 변경하기

원래 SSH 기본 포트는 22번 포트다.

22번 포트를 사용하여도 상관 없지만, 간혹 중국이나 러시아에서 무차별 대입 공격을 시도하는 경가 있어 이를 대비하고자 포트를 변경하고자 한다.

중국발 무차별 대입 공격은 며칠 간 지켜본 결과 22번 포트에 ssh 서비스가 운영 중일 경우 무차별 대입을 시도하게 스크립트가 짜여져 있는 것 같았다.

포트를 변경하면 무차별 대입 공격을 피할 수 있을 것 같아 SSH 포트를 변경하게 되었다.

설정변경

$ sudo nano /etc/ssh/sshd_config

#Port 22에서 #을 지워 주석을 해제한 뒤 자신이 원하는 포트로 변경 후 저장한다.

포트 열기

포트를 열기 않고 그냥 서비스를 재시작하면 영영 ssh에 접속을 못하는 불상사가 발생 할 수 있다. 반드시 포트를 연 후 재시작 하도록 하자! 제발!
눈물을 머금고 서버를 밀어야 할 수도 있다….(경험담)

$ sudo iptables -I INPUT -p tcp --dport 1122 -j ACCEPT

$ sudo iptables -I OUTPUT -p tcp --dport 1122 -j ACCEPT

INPUT, OUTPUT 모두 열어야 한다.

서비스 재시작

$ sudo service sshd restart

서비스를 재시작 한 이후부터 변경된 포트로 접속이 가능하다.

Tip. 서비스를 재시작 한 다음 변경된 포트로 ssh 접속을 하는 방법

$ ssh user@domain.com -p1122  # 파란색 숫자 부분에 변경한 ssh 포트 입력 

우분투 리눅스 특정 ip주소 임시 차단하기 (route)

2023년 12월 31일 업데이트 (틀린 내용이 있어서 수정하였습니다.)

서버를 운영하다 보면 종종 중국이나 러시아에서 무차별 대입 공격 시도가 들어온다

공격이 들어온 ip의 개수가 작은 경우에는 route 명령어를 이용하여 임시로 차단할 수 있다
// 영구적으로 차단을 할 경우에는 iptables 명령어 이용


// ip 차단
$ sudo route add -host (ip,도메인) reject

// 차단 해제
$ sudo route del -host (ip,도메인) reject

// 차단리스트 확인(플래그가 !H 인 경우 차단된 ip)
$ route

위 방법으로 간단하게 처리 할 수 있다.

Ubuntu 리눅스에서 CPU 온도 확인

lm_sensors는 리눅스에서 온도, 전압 , 쿨러 속도 등을 모니터링를 할때 사용하는 프로그램이다.

설치
$ sudo apt-get install lm-sensors

실행
$ sudo sensors

// 그냥 실행해도 상관없지만 루트권한이 없으면 일부 센서나 팬의 속도를 읽을 수 없다

실행결과