Linux

ubuntu 설치 자동화(autoinstall)를 위한 user-data를 만들어 내려면 문법 하나만 잘못해서 오류가 많이 난다.
특히 스토리지 설정은 아주 까다로워서 단어 하나 숫자 계산하나만 틀려도 오류를 뿜어 내면서 재설치를 해야
하는 경우가 생긴다.

그런 이런 "user-data를 쉽게 뽑아낼 수 있는 방법은 없는 것인가?"에서 이것도 방법이 존재한다.
일단 ubuntu로 시스템에 OS를 설치한다.

그리고 "/var/log/installer/" 디렉토리가 생성되어 있는데 해당 디렉토리에는 설치 시, 사용한 설정 파일과
각종 로그가 저장되어 있다.

ubuntu를 설치할 경우가 있다. 특히 처음 설치가 필요하거나 재설치가 필요한 경우에 간단하게 ISO 파일만으로
재설치해보고 싶은 경우도 있다. 이런 경우 iso를 다운 받아서 해당 iso를 grub와 적절히 설정해주면 부팅 시
설정된 ISO를 통해 부팅이 가능하다.

이런 경우 하드웨어 및 Linux에 대해서 좀 알 필요가 있는데, 일반적으로 아래와 같은 예제로 하면 된다.

 

디스크 구성 현황

/dev/nvme0n1          - OS 디스크
  - /dev/nvme0n1p1    - OS 설치 파티션

/dev/sda              - 데이터 저장
  - /dev/sda1         - GPT 파티션 (/data)

/dev/sda              - 데이터 저장
  - /dev/sdb1         - GPT 파티션 (/data1)

 

1. OS 설치를 위한 ISO파일을 /data/iso-boot 디렉토리에 다운로드 받는다.

CentOS(Redhat)의 경우 kickstart가 강력하여 모든 설치가 kickstart를 통해서 가능하다.
ubuntu의 경우 설치 자동화를 구현하려면 preseed를 통한 자동화 또는 kickstart를 사용해야한다.
그러나 이 2가지에 큰 단점이 있는데 간단하게 정리하면 아래와 같다.

o. preseed 설치 방식
   ubuntu 설치 상에 보이는 gui의 실행을 정의해서 자동 설치를 구현한다.
   단점으로 installer software가 업데이트되거나, gui에 나오는 메뉴에 대한 정의를 하나하나 다 찾아야한다.

o. kickstart를 통한 설치 방식
  어느 정도 ubuntu에서는 kickstart를 지원한다. 그러나 어느 정도이지 CentOS 정도의 자세한 기능까지는
  지원하지 않아 제약사항이 너무 많다.

ubuntu 20.0.4에 L2TP를 구축하는 방법 중, 가장 간단한 방법으로 여러가지 기능을 지원하지 않는 단순한 방법을 정리한다.

 

구성 상태

(외부 인터넷) <-----> (공유기 - VPN 연결에 대해서 Portforwarding) <------------> VPN 서버
                          IP:192.168.100.1                            IP:192.168.100.100

 

ubuntu 20.0.4에 설치할 Package 정리

- xl2tpd
- strongswan

 

l2tp 관련 패키지 설치

nginx 패키지를 자신에 맞게 custom해야하는 경우가 발생한다.
설치 위치(Install Path), 패키지 명등을 변경해야하는 경우가 발생하는데 nginx-1.18.0 케이스에 대해서 아래와 같이 custom이 가능하다.
custom하는 방법을 간단하게 정리한다.

1. Package Build에 사용하는 파일 다운로드

https://packages.ubuntu.com/focal-updates/nginx-full

사이트에서 3가지 파일을 다운받는다.

ubuntu에 개발용 시스템을 만드는 방법을 정리한다.

개발 시스템을 구성하는 패키지 설치

# apt install -y debootstrap
# apt install -y schroot

 

개발용 시스템 구축을 위한 환경 파일 구성

# vi /etc/schroot/chroot.d/focal_x64.conf

-------------------------------------------------
[focal_x64]
description=Ubuntu 20.04.3 LTS x64
location=/home/develope/ubuntu_20_chroot
#personality=linux32
root-users=kinkist
type=directory
users=test
-------------------------------------------------

 

개발용 시스템을 구축할 디렉토리 생성

시스템을 개발하다보면 시스템이 무척이나 지저분해진다.
또한 개발 시스템을 서비스에 투입하기에는 보안이 꺼려질 경우
아래와 같은 방법으로 기존 시스템에 영향을 주지 않는 방식으로
개발용 chroot 시스템을 구성할 수 있다.

일단 설치하려는 CentOS의 Release 파일을 다운로드 받아야한다.
내가 설치한 시스템은 CentOS 6.8 x86_64이므로 아래 URL에서
centos-release 파일을 다운받는다.
http://centos.mirror.cdnetworks.com/6.8/os/x86_64/Packages/

# wget http://centos.mirror.cdnetworks.com/6.8/os/x86_64/Packages/centos-release-6-8.el6.centos.12.3.x86_64.rpm

 

메일 서버 오픈 이후 불특정 사용자의 접근이 많아지기 시작해서 아래와 같이

차단 방법을 사용해서 차단을 진행함

구성환경 - ubuntu 20.04

 

fail2ban 설치

# apt install fail2ban

 

아래와 같은 filter 생성 - /etc/fail2ban/filter.d/postfix-sasl.conf

1. 테스트용 계정 생성

id / password

testemail / testtesttest

 

id를 base64로 encoding

MacPro:~ $ echo "testemail" |base64
dGVzdGVtYWlsCg==
MacPro:~ $ echo "testtesttest" |base64
dGVzdHRlc3R0ZXN0Cg==

실제로 사용 값은 "==" 값이 빠진 값이다.

이유는 아래와 같이 "/n" 값이 빠진 값을 인증 값으로 넣어야함

MacPro:~ $ echo "dGVzdGVtYWlsCg" |base64 -d
testemail

base64로 인코딩된 ID/PASS 정리

ID / PASS

testemail / testtesttest

dGVzdGVtYWlsCg / dGVzdHRlc3R0ZXN0Cg

 

아래는 telnet으로 email 전송 테스트 예제이다.

Postfix를 설치 후, imap/pop3을 연동하기 위해서 dovecot를 설치하는 간단한 가이드를 작성한다.
dovecot postfix와 연동하는 방법이다.

 

1. dovecot 설치

$ sudo apt install dovecot-core dovecot-pop3d dovecot-imapd
 

2. dovecot 설정

ㅇ. /etc/dovecot/dovecot.conf

protocols = imap pop3

ㅇ. /etc/dovecot/conf.d/10-master.conf