Linux – buffashe's Blog https://blog.buffashe.com/ 버프애쉬의 블로그 Wed, 06 Jan 2021 12:04:50 +0000 ko-KR hourly 1 https://wordpress.org/?v=5.6 리눅스 램디스크(tmpfs) 만들기 https://blog.buffashe.com/2021/01/linux-create-a-ramdisk/ Wed, 06 Jan 2021 12:00:54 +0000 https://blog.buffashe.com/?p=991 리눅스에서 램디스크(tmpfs)를 사용하는 방법을 설명합니다. 램디스크의 내용은 기기의 전원이 꺼지면 삭제되므로 주의해서 사용하여야 합니다. 가용 램 용량 확인 시스템의 여유 … 더 보기 "리눅스 램디스크(tmpfs) 만들기"

The post 리눅스 램디스크(tmpfs) 만들기 appeared first on buffashe's Blog.

]]>
리눅스에서 램디스크(tmpfs)를 사용하는 방법을 설명합니다.

램디스크의 내용은 기기의 전원이 꺼지면 삭제되므로 주의해서 사용하여야 합니다.


가용 램 용량 확인

시스템의 여유 램 용량을 확인합니다.

$ free --mega
              total        used        free      shared  buff/cache   available
Mem:           8071        2426        4778          85         867        5314
Swap:             0           0           0

5314 MB를 사용할 수 있음을 알 수 있습니다(available 컬럼).
이 중 3 GB를 사용하겠습니다.


마운트 지점 생성 및 마운트

램디스크의 마운트 지점으로 사용할 폴더를 생성합니다.

$ sudo mkdir /mnt/ramdisk

램디스크를 마운트 합니다.

$ sudo mount -t tmpfs -o size=3G tmpfs /mnt/ramdisk

아래 명령어로 마운트 된 램디스크를 확인할 수 있습니다.

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
...
tmpfs           3.0G     0  3.0G   0% /mnt/ramdisk

/etc/fstab 설정

부팅 시 램디스크가 자동으로 마운트 되도록 설정합니다.

아래 명령어로 /etc/fstab을 편집합니다.

$ sudo nano /etc/fstab

/etc/fstab의 내용에 다음 내용을 추가합니다.

tmpfs /mnt/ramdisk tmpfs defaults,size=3G 0 0

앞으로 부팅 시마다 램디스크가 자동으로 마운트 됩니다.


추가: 램디스크 언마운트/삭제

램디스크의 언마운트/삭제 방법을 설명합니다.

아래 명령어로 램디스크의 내용을 삭제하고, 언마운트 합니다.

$ sudo rm -rf /mnt/ramdisk/*
$ sudo umount /mnt/ramdisk

위에서 /etc/fstab에 추가한 내용을 삭제합니다.

$ sudo nano /etc/fstab

마운트 지점을 삭제합니다.

$ sudo rmdir /mnt/ramdisk

The post 리눅스 램디스크(tmpfs) 만들기 appeared first on buffashe's Blog.

]]>
Let’s Encrypt(Certbot)를 통한 SSL 인증서 발급 및 적용 https://blog.buffashe.com/2020/09/get-ssl-cert-via-letsencrypt/ Sat, 05 Sep 2020 07:51:31 +0000 https://blog.buffashe.com/?p=963 이 글에서는 Certbot을 사용한 Let’s Encrypt SSL 인증서 발급과 자동 갱신 방법을 설명합니다. 우분투 20.04에 Apache 또는 Nginx 웹 서버가 … 더 보기 "Let’s Encrypt(Certbot)를 통한 SSL 인증서 발급 및 적용"

The post Let’s Encrypt(Certbot)를 통한 SSL 인증서 발급 및 적용 appeared first on buffashe's Blog.

]]>
이 글에서는 Certbot을 사용한 Let’s Encrypt SSL 인증서 발급과 자동 갱신 방법을 설명합니다.

우분투 20.04에 Apache 또는 Nginx 웹 서버가 설치된 상태에서 진행합니다.
서버의 443(HTTPS) 포트를 미리 개방해 주세요.


snapd 설치

우분투 16.04.4, 18.04, 20.04에는 snapd가 기본으로 설치되어 있으므로 생략합니다.
다른 배포판의 snapd 설치 방법은 Installing snapd를 참고하세요.


Certbot OS 패키지 제거

기존에 설치된 Certbot 패키지가 있다면 삭제합니다.

$ sudo apt remove certbot

설치된 패키지가 없으면 다음 단계로 넘어갑니다.


Certbot 설치

Certbot을 설치합니다.

$ sudo snap install --classic certbot
Download snap "core20" (634) from channel "stable"            12%  190kB/s 4m56s
Download snap "certbot" (500) from channel "stable"            5%  187kB/s 4m14s
certbot 1.7.0 from Certbot Project (certbot-eff✓) installed

SSL 인증서 발급 및 설정

SSL 인증서를 발급한 후 웹 서버의 설정을 업데이트(HTTPS 사용 설정)합니다.

// Apache
$ sudo certbot --apache

// Nginx
$ sudo certbot --nginx
$ sudo certbot --apache
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator apache, Installer apache
Enter email address (used for urgent renewal and security notices)
 (Enter 'c' to cancel): [이메일 주소]

  • 이용 약관에 동의합니다.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
agree in order to register with the ACME server at
https://acme-v02.api.letsencrypt.org/directory
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(A)gree/(C)ancel: A

  • EFF의 소식을 이메일로 받을지 선택합니다.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing, once your first certificate is successfully issued, to
share your email address with the Electronic Frontier Foundation, a founding
partner of the Let's Encrypt project and the non-profit organization that
develops Certbot? We'd like to send you email about our work encrypting the web,
EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: Y

  • Apache 설정 파일에 도메인 이름이 설정되어 있지 않아 나오는 메시지입니다.
    SSL 인증서를 발급받을 도메인 이름을 입력합니다. (콤마 또는 스페이스로 구분)
No names were found in your configuration files. Please enter in your domain
name(s) (comma and/or space separated)  (Enter 'c' to cancel): [도메인 이름]

  • SSL 설정 절차(인증서 발급, 검증, 웹 서버 설정)가 진행됩니다.
    앞으로 접속하는 클라이언트는 HTTP -> HTTPS로 리다이렉트됩니다.
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for [도메인 이름]
Enabled Apache rewrite module
Waiting for verification...
Cleaning up challenges
Created an SSL vhost at /etc/apache2/sites-available/000-default-le-ssl.conf
Enabled Apache socache_shmcb module
Enabled Apache ssl module
Deploying Certificate to VirtualHost /etc/apache2/sites-available/000-default-le-ssl.conf
Enabling available site: /etc/apache2/sites-available/000-default-le-ssl.conf
Enabled Apache rewrite module
Redirecting vhost in /etc/apache2/sites-enabled/000-default.conf to ssl vhost in /etc/apache2/sites-available/000-default-le-ssl.conf

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Congratulations! You have successfully enabled https://[도메인 이름]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Subscribe to the EFF mailing list (email: [이메일]).

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/[도메인 이름]/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/[도메인 이름]/privkey.pem
   Your cert will expire on 2020-12-03. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot again
   with the "certonly" option. To non-interactively renew *all* of
   your certificates, run "certbot renew"
 - Your account credentials have been saved in your Certbot
   configuration directory at /etc/letsencrypt. You should make a
   secure backup of this folder now. This configuration directory will
   also contain certificates and private keys obtained by Certbot so
   making regular backups of this folder is ideal.
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

SSL 설정이 완료되었으며 인증서의 만료 시점(2020-12-03)을 알려줍니다.
Certbot은 60일마다 인증서를 자동으로 갱신하기 때문에 다시 실행할 필요는 없습니다.


인증서 자동 갱신 테스트

다음 명령어로 인증서 자동 갱신을 테스트(dry-run)합니다.

$ sudo certbot renew --dry-run
.....
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
** DRY RUN: simulating 'certbot renew' close to cert expiry
**          (The test certificates below have not been saved.)

Congratulations, all renewals succeeded. The following certs have been renewed:
  /etc/letsencrypt/live/[도메인 이름]/fullchain.pem (success)
** DRY RUN: simulating 'certbot renew' close to cert expiry
**          (The test certificates above have not been saved.)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
.....

  • 인증서 갱신 명령어는 다음 중 하나에 설치됩니다.
/etc/crontab/
/etc/cron.*/*
$ systemctl list-timers
  • 인증서 갱신 서비스의 실행 예정 시각이 표시됩니다.
$ sudo systemctl list-timers
NEXT                        LEFT          LAST                        PASSED       UNIT                         ACTIVATES                     
.....      
Fri 2020-09-04 22:58:00 KST 2h 2min left  n/a                         n/a          snap.certbot.renew.timer     snap.certbot.renew.service    
.....

The post Let’s Encrypt(Certbot)를 통한 SSL 인증서 발급 및 적용 appeared first on buffashe's Blog.

]]>
우분투 18.04 LTS에서 20.04 LTS로 업그레이드하기 https://blog.buffashe.com/2020/07/upgrade-ubuntu-18-04-lts-to-20-04-lts/ Wed, 29 Jul 2020 12:55:04 +0000 https://blog.buffashe.com/?p=656 우분투 18.04 Bionic Beaver에서 20.04 Focal Fossa로 업그레이드하는 방법입니다.16.04에서 18.04로의 업그레이드는 이 글을 참고해 주세요. 업그레이드 과정에서 부팅 불가 등의 … 더 보기 "우분투 18.04 LTS에서 20.04 LTS로 업그레이드하기"

The post 우분투 18.04 LTS에서 20.04 LTS로 업그레이드하기 appeared first on buffashe's Blog.

]]>
우분투 18.04 Bionic Beaver에서 20.04 Focal Fossa로 업그레이드하는 방법입니다.
16.04에서 18.04로의 업그레이드는 이 글을 참고해 주세요.

업그레이드 과정에서 부팅 불가 등의 문제가 발생할 수 있으니 위험을 인지하신 후에 진행하셔야 합니다.


패키지 업데이트

패키지를 최신 버전으로 업데이트합니다.

$ sudo apt update && sudo apt upgrade && sudo apt dist-upgrade

업데이트 완료 후 재부팅합니다.

$ sudo reboot now

더 이상 필요하지 않은 패키지를 삭제합니다.

$ sudo apt autoremove && sudo apt clean

업데이트 매니저 설치

update-manager-core가 설치되지 않은 경우 설치합니다.

$ sudo apt install update-manager-core

lts 릴리스로 업데이트 하기 위해 update-manager의 설정을 변경합니다.

$ sudo nano /etc/update-manager/release-upgrades

아래 내용과 같이 Prompt=lts로 변경합니다.

 Default behavior for the release upgrader.

[DEFAULT]
# Default prompting behavior, valid options:
#
#  never  - Never check for, or allow upgrading to, a new release.
#  normal - Check to see if a new release is available.  If more than one new
#           release is found, the release upgrader will attempt to upgrade to
#           the supported release that immediately succeeds the
#           currently-running release.
#  lts    - Check to see if a new LTS release is available.  The upgrader
#           will attempt to upgrade to the first LTS release available after
#           the currently-running one.  Note that if this option is used and
#           the currently-running release is not itself an LTS release the
#           upgrader will assume prompt was meant to be normal.
Prompt=lts

Ctrl+XYEnter 하여 저장합니다.


우분투 릴리스 업그레이드

업그레이드를 진행합니다.
아직 20.04로의 직접 업그레이드를 이용할 수 없으므로 -d 옵션을 사용합니다. (2020-07-29)

$ sudo do-release-upgrade -d
$ sudo do-release-upgrade -d
Checking for a new Ubuntu release
Get:1 Upgrade tool signature [1554 B]                                                                    
Get:2 Upgrade tool [1333 kB]                                                                             
Fetched 1334 kB in 6s (203 kB/s)                                                                         
authenticate 'focal.tar.gz' against 'focal.tar.gz.gpg' 
extracting 'focal.tar.gz'

Reading cache

Checking package manager

Continue running under SSH? 

This session appears to be running under ssh. It is not recommended 
to perform a upgrade over ssh currently because in case of failure it 
is harder to recover. 

If you continue, an additional ssh daemon will be started at port 
'1022'. 
Do you want to continue? 

Continue [yN] 

SSH를 통한 업그레이드를 권장하지 않는다는 메시지가 표시됩니다.
업그레이드 후 문제가 생길 경우 복구가 어렵기 때문입니다.
그대로 진행할 시 추가 SSH 데몬이 1022번 포트에서 실행될 것이라고 알려줍니다.
y를 입력하여 확인합니다.


Continue [yN] y

Starting additional sshd 

To make recovery in case of failure easier, an additional sshd will 
be started on port '1022'. If anything goes wrong with the running 
ssh you can still connect to the additional one. 
If you run a firewall, you may need to temporarily open this port. As 
this is potentially dangerous it's not done automatically. You can 
open the port with e.g.: 
'iptables -I INPUT -p tcp --dport 1022 -j ACCEPT' 

To continue please press [ENTER]

방화벽 설정 업데이트 가이드입니다.
업그레이드 이후 문제가 발생할 경우 1022번 포트로 SSH 연결이 가능하다는 메시지입니다.
Enter를 입력하여 확인합니다.


To continue please press [ENTER]

Reading package lists... Done
Building dependency tree        
Reading state information... Done
Hit http://ap-northeast-2.ec2.archive.ubuntu.com/ubuntu bionic InRelease                                 
Get:1 http://ap-northeast-2.ec2.archive.ubuntu.com/ubuntu bionic-updates InRelease [88.7 kB]             
Get:2 http://ap-northeast-2.ec2.archive.ubuntu.com/ubuntu bionic-backports InRelease [74.6 kB]           
Get:3 http://security.ubuntu.com/ubuntu bionic-security InRelease [88.7 kB]                              
Hit http://ppa.launchpad.net/wireguard/wireguard/ubuntu bionic InRelease                                 
Fetched 252 kB in 0s (0 B/s)                                                                             
Reading package lists... Done    
Building dependency tree          
Reading state information... Done

Updating repository information

Third party sources disabled 

Some third party entries in your sources.list were disabled. You can 
re-enable them after the upgrade with the 'software-properties' tool 
or your package manager. 

To continue please press [ENTER]

sources.list에 추가된 서드파티 저장소가 비활성화된다는 메시지입니다.
Enter를 입력하여 확인합니다.


.......

Do you want to start the upgrade?


18 installed packages are no longer supported by Canonical. You can
still get support from the community.

14 packages are going to be removed. 172 new packages are going to be
installed. 651 packages are going to be upgraded.

You have to download a total of 407 M. This download will take about
51 minutes with a 1Mbit DSL connection and about 15 hours with a 56k
modem.

Fetching and installing the upgrade can take several hours. Once the
download has finished, the process cannot be canceled.

 Continue [yN]  Details [d]

업그레이드 내용을 확인한 뒤 y를 입력하여 진행합니다.


 Continue [yN]  Details [d]y

.......

LXD 시스템 컨테이너 매니저의 설정 페이지입니다.
LTS 릴리스인 4.0을 선택하였습니다. (Enter)


.......

Configuration file '/etc/sysctl.conf'
 ==> Modified (by you or by a script) since installation.
 ==> Package distributor has shipped an updated version.
   What would you like to do about it ?  Your options are:
    Y or I  : install the package maintainer's version
    N or O  : keep your currently-installed version
      D     : show the differences between the versions
      Z     : start a shell to examine the situation
 The default action is to keep your current version.
*** sysctl.conf (Y/I/N/O/D/Z) [default=N] ? 

/etc/sysctl.conf이 업데이트되어 나오는 메시지입니다.
D를 입력하여 변경사항을 확인한 뒤 Y/N 중 하나를 입력합니다.


*** sysctl.conf (Y/I/N/O/D/Z) [default=N] ? d
--- /etc/sysctl.conf    2020-06-14 22:52:44.617580235 +0900
+++ /etc/sysctl.conf.dpkg-new   2020-02-14 07:44:31.000000000 +0900
@@ -25,7 +25,7 @@
 #net.ipv4.tcp_syncookies=1
 
 # Uncomment the next line to enable packet forwarding for IPv4
-net.ipv4.ip_forward=1
+#net.ipv4.ip_forward=1
 
 # Uncomment the next line to enable packet forwarding for IPv6
 #  Enabling this option disables Stateless Address Autoconfiguration
@@ -61,17 +61,8 @@
 
 ###################################################################
 # Magic system request Key
-# 0=disable, 1=enable all
-# Debian kernels have this set to 0 (disable the key)
-# See https://www.kernel.org/doc/Documentation/sysrq.txt
+# 0=disable, 1=enable all, >1 bitmask of sysrq functions
+# See https://www.kernel.org/doc/html/latest/admin-guide/sysrq.html
 # for what other values do
-#kernel.sysrq=1
+#kernel.sysrq=438
 
-###################################################################
-# Protected links
-#
-# Protects against creating or following links under certain conditions
-# Debian kernels have both set to 1 (restricted) 
-# See https://www.kernel.org/doc/Documentation/sysctl/fs.txt
-#fs.protected_hardlinks=0
-#fs.protected_symlinks=0

Configuration file '/etc/sysctl.conf'
 ==> Modified (by you or by a script) since installation.
 ==> Package distributor has shipped an updated version.
   What would you like to do about it ?  Your options are:
    Y or I  : install the package maintainer's version
    N or O  : keep your currently-installed version
      D     : show the differences between the versions
      Z     : start a shell to examine the situation
 The default action is to keep your current version.
*** sysctl.conf (Y/I/N/O/D/Z) [default=N] ? n  

n을 입력하여 기존 파일의 내용을 유지하였습니다.
(IPv4 패킷 포워딩이 설정되었음)


기존의 openssh-server 설정 파일을 유지하였습니다.


.......

Reading package lists... Done    
Building dependency tree          
Reading state information... Done

Searching for obsolete software
Reading state information... Done

Remove obsolete packages? 


86 packages are going to be removed. 

 Continue [yN]  Details [d]

사용하지 않는 패키지를 삭제할지 묻는 메시지입니다.
y를 입력하여 삭제합니다.


System upgrade is complete.

Restart required 

To finish the upgrade, a restart is required. 
If you select 'y' the system will be restarted. 

Continue [yN] 

업그레이드 완료 메시지입니다.
y를 입력하여 재부팅합니다.


$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 20.04.1 LTS
Release:        20.04
Codename:       focal

업그레이드가 완료된 것을 확인할 수 있습니다.


(필요한 경우) 서드파티 저장소 활성화

위 과정에서 비활성화된 서드파티 저장소를 활성화합니다.

/etc/apt/sources.list.d/ 내부에 있는 *.list 파일의 내용을 확인하여

# ....... focal main # disabled on upgrade to focal

의 주석을 해제합니다.


패키지 목록을 다시 받아옵니다.

$ sudo apt update

The post 우분투 18.04 LTS에서 20.04 LTS로 업그레이드하기 appeared first on buffashe's Blog.

]]>
우분투 18.04 LTS NTP 클라이언트 설정 https://blog.buffashe.com/2020/02/ntp-client-in-ubuntu-18-04/ Wed, 12 Feb 2020 02:36:37 +0000 https://blog.buffashe.com/?p=537 우분투 18.04 LTS에 NTP를 설치하여 시간을 동기화합니다. NTP 설치 NTP 설정 사용할 서버를 선택합니다. pool.ntp.org의 NTP 서버를 사용하겠습니다.한국 pool: https://www.ntppool.org/zone/kr … 더 보기 "우분투 18.04 LTS NTP 클라이언트 설정"

The post 우분투 18.04 LTS NTP 클라이언트 설정 appeared first on buffashe's Blog.

]]>
우분투 18.04 LTS에 NTP를 설치하여 시간을 동기화합니다.


NTP 설치

$ sudo apt install ntp

NTP 설정

사용할 서버를 선택합니다.

pool.ntp.org의 NTP 서버를 사용하겠습니다.
한국 pool: https://www.ntppool.org/zone/kr

1.kr.pool.ntp.org
1.asia.pool.ntp.org
0.asia.pool.ntp.org

NTP 설정을 변경합니다.

$ sudo nano /etc/ntp.conf
# Use servers from the NTP Pool Project. Approved by Ubuntu Technical Board
# on 2011-02-08 (LP: #104525). See http://www.pool.ntp.org/join.html for
# more information.
pool 0.ubuntu.pool.ntp.org iburst
pool 1.ubuntu.pool.ntp.org iburst
pool 2.ubuntu.pool.ntp.org iburst
pool 3.ubuntu.pool.ntp.org iburst

# Use Ubuntu's ntp server as a fallback.
pool ntp.ubuntu.com

미리 설정되어 있던 서버들을 주석 처리한 뒤 선택한 서버의 주소를 입력합니다.

# Specify one or more NTP servers.

server 1.kr.pool.ntp.org
server 1.asia.pool.ntp.org
server 0.asia.pool.ntp.org

# Use servers from the NTP Pool Project. Approved by Ubuntu Technical Board
# on 2011-02-08 (LP: #104525). See http://www.pool.ntp.org/join.html for
# more information.
#pool 0.ubuntu.pool.ntp.org iburst
#pool 1.ubuntu.pool.ntp.org iburst
#pool 2.ubuntu.pool.ntp.org iburst
#pool 3.ubuntu.pool.ntp.org iburst

# Use Ubuntu's ntp server as a fallback.
#pool ntp.ubuntu.com

Ctrl + XYEnter 하여 저장합니다.


NTP 서비스를 재시작합니다.

$ sudo service ntp restart

동기화 확인

$ sudo ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
+ec2-13-124-227- 131.130.251.107  2 u   31   64   37   12.167    0.067   3.915
 time.cloudflare 10.51.8.5        3 u  297   64   20   34.039   -7.609   0.000
*send.mx.cdnetwo 216.239.35.8     2 u   32   64   37    3.745    3.930   3.948

첫 번째 column이 ‘*‘인 서버가 현재 동기화 중인 서버입니다.

The post 우분투 18.04 LTS NTP 클라이언트 설정 appeared first on buffashe's Blog.

]]>
우분투 16.04 LTS에서 18.04 LTS로 업그레이드하기 https://blog.buffashe.com/2020/02/upgrade-ubuntu-16-04-lts-to-18-04-lts/ Tue, 11 Feb 2020 09:07:44 +0000 https://blog.buffashe.com/?p=499 우분투 16.04 Xenial Xerus에서 18.04 Bionic Beaver로 업그레이드하는 방법입니다.18.04에서 20.04로의 업그레이드는 이 글을 참고해 주세요. 업그레이드 과정에서 부팅 불가 등의 … 더 보기 "우분투 16.04 LTS에서 18.04 LTS로 업그레이드하기"

The post 우분투 16.04 LTS에서 18.04 LTS로 업그레이드하기 appeared first on buffashe's Blog.

]]>
우분투 16.04 Xenial Xerus에서 18.04 Bionic Beaver로 업그레이드하는 방법입니다.
18.04에서 20.04로의 업그레이드는 이 글을 참고해 주세요.

업그레이드 과정에서 부팅 불가 등의 문제가 발생할 수 있으니 위험을 인지하신 후에 진행하셔야 합니다.


패키지 업데이트

패키지를 최신 버전으로 업데이트합니다.

$ sudo apt update && sudo apt upgrade && sudo apt dist-upgrade

업데이트 완료 후 재부팅합니다.

$ sudo reboot now

더 이상 필요하지 않은 패키지를 삭제합니다.

$ sudo apt autoremove && sudo apt clean

업데이트 매니저 설치

update-manager-core가 설치되지 않은 경우 설치합니다.

$ sudo apt install update-manager-core

lts 릴리스로 업데이트 하기 위해 update-manager의 설정을 변경합니다.

$ sudo nano /etc/update-manager/release-upgrades

아래 내용과 같이 Prompt=lts로 변경합니다.

# Default behavior for the release upgrader.

[DEFAULT]
# Default prompting behavior, valid options:
#
#  never  - Never check for a new release.
#  normal - Check to see if a new release is available.  If more than one new
#           release is found, the release upgrader will attempt to upgrade to
#           the release that immediately succeeds the currently-running
#           release.
#  lts    - Check to see if a new LTS release is available.  The upgrader
#           will attempt to upgrade to the first LTS release available after
#           the currently-running one.  Note that this option should not be
#           used if the currently-running release is not itself an LTS
#           release, since in that case the upgrader won't be able to
#           determine if a newer release is available.
Prompt=lts

Ctrl+XYEnter 하여 저장합니다.


우분투 릴리스 업그레이드

업그레이드를 진행합니다.

$ sudo do-release-upgrade
$ sudo do-release-upgrade
Checking for a new Ubuntu release
Get:1 Upgrade tool signature [819 B]                                                        
Get:2 Upgrade tool [1,242 kB]                                                               
Fetched 1,243 kB in 0s (0 B/s)                                                              
authenticate 'bionic.tar.gz' against 'bionic.tar.gz.gpg' 
extracting 'bionic.tar.gz'

Reading cache

Checking package manager

Continue running under SSH? 

This session appears to be running under ssh. It is not recommended 
to perform a upgrade over ssh currently because in case of failure it 
is harder to recover. 

If you continue, an additional ssh daemon will be started at port 
'1022'. 
Do you want to continue? 

Continue [yN] 

SSH를 통한 업그레이드를 권장하지 않는다는 메시지가 표시됩니다.
업그레이드 후 문제가 생길 경우 복구가 어렵기 때문입니다.
그대로 진행할 시 추가 SSH 데몬이 1022번 포트에서 실행될 것이라고 알려줍니다.
y를 입력하여 확인합니다.


Continue [yN] y

Starting additional sshd 

To make recovery in case of failure easier, an additional sshd will 
be started on port '1022'. If anything goes wrong with the running 
ssh you can still connect to the additional one. 
If you run a firewall, you may need to temporarily open this port. As 
this is potentially dangerous it's not done automatically. You can 
open the port with e.g.: 
'iptables -I INPUT -p tcp --dport 1022 -j ACCEPT' 

To continue please press [ENTER]

방화벽 설정 업데이트 가이드입니다.
업그레이드 이후 문제가 발생할 경우 1022번 포트로 SSH 연결이 가능하다는 메시지입니다.
Enter를 입력하여 확인합니다.


To continue please press [ENTER]

Reading package lists... Done
Building dependency tree        
Reading state information... Done
Hit http://kr.archive.ubuntu.com/ubuntu xenial InRelease                                    
Hit http://security.ubuntu.com/ubuntu xenial-security InRelease                             
Get:1 http://kr.archive.ubuntu.com/ubuntu xenial-updates InRelease [109 kB]                 
Get:2 http://kr.archive.ubuntu.com/ubuntu xenial-backports InRelease [107 kB]               
Fetched 216 kB in 0s (0 B/s)                                                                
Reading package lists... Done    
Building dependency tree          
Reading state information... Done

Updating repository information
Get:1 http://kr.archive.ubuntu.com/ubuntu bionic InRelease [242 kB]  

.......

Checking package manager
Reading package lists... Done    
Building dependency tree          
Reading state information... Done

Calculating the changes

Calculating the changes

Do you want to start the upgrade? 


54 installed packages are no longer supported by Canonical. You can 
still get support from the community. 

40 packages are going to be removed. 402 new packages are going to be 
installed. 1496 packages are going to be upgraded. 

You have to download a total of 1,099 M. This download will take 
about 2 minutes with your connection. 

Installing the upgrade can take several hours. Once the download has 
finished, the process cannot be canceled. 

 Continue [yN]  Details [d]

업그레이드 내용을 확인한 뒤 y를 입력하여 진행합니다.


 Continue [yN]  Details [d]y

Lock screen disabled 

Your lock screen has been disabled and will remain disabled until you 
reboot. 

To continue please press [ENTER]
Inhibiting until Ctrl+C is pressed...

우분투를 gnome-desktop 환경에서 실행중이기 때문에 재부팅 전까지 락스크린이 비활성화될 것이라고 알려줍니다.
Enter를 입력하여 확인합니다.


Configuration file '/etc/update-manager/release-upgrades'
 ==> Modified (by you or by a script) since installation.
 ==> Package distributor has shipped an updated version.
   What would you like to do about it ?  Your options are:
    Y or I  : install the package maintainer's version
    N or O  : keep your currently-installed version
      D     : show the differences between the versions
      Z     : start a shell to examine the situation
 The default action is to keep your current version.
*** release-upgrades (Y/I/N/O/D/Z) [default=N] ? 

/etc/update-manager/release-upgrades가 업데이트되어 나오는 메시지입니다.
D를 입력하여 변경사항을 확인할 수 있습니다.

--- /etc/update-manager/release-upgrades        2020-02-11 16:55:07.071327392 +0900
+++ /etc/update-manager/release-upgrades.dpkg-new       2019-06-20 01:49:56.000000000 +0900
@@ -3,16 +3,14 @@
 [DEFAULT]
 # Default prompting behavior, valid options:
 #
-#  never  - Never check for a new release.
+#  never  - Never check for, or allow upgrading to, a new release.
 #  normal - Check to see if a new release is available.  If more than one new
 #           release is found, the release upgrader will attempt to upgrade to
-#           the release that immediately succeeds the currently-running
-#           release.
+#           the supported release that immediately succeeds the
+#           currently-running release.
 #  lts    - Check to see if a new LTS release is available.  The upgrader
 #           will attempt to upgrade to the first LTS release available after
-#           the currently-running one.  Note that this option should not be
-#           used if the currently-running release is not itself an LTS
-#           release, since in that case the upgrader won't be able to
-#           determine if a newer release is available.
+#           the currently-running one.  Note that if this option is used and
+#           the currently-running release is not itself an LTS release the
+#           upgrader will assume prompt was meant to be normal.
 Prompt=lts
-
(END)

주석 내용만 업데이트 되었으므로 q를 입력하여 비교 창을 닫습니다.

*** release-upgrades (Y/I/N/O/D/Z) [default=N] ? y

y를 입력하여 업데이트된 버전으로 대체하겠습니다.


Searching for obsolete software
Reading state information... Done

Remove obsolete packages? 


116 packages are going to be removed. 

Removing the packages can take several hours. 

 Continue [yN]  Details [d]

사용하지 않는 패키지를 삭제할지 묻는 메시지입니다.
y를 입력하여 삭제합니다.


System upgrade is complete.

Restart required 

To finish the upgrade, a restart is required. 
If you select 'y' the system will be restarted. 

Continue [yN] 

업그레이드 완료 메시지입니다.
y를 입력하여 재부팅합니다.


$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 18.04.4 LTS
Release:        18.04
Codename:       bionic

업그레이드가 완료된 것을 확인할 수 있습니다.

The post 우분투 16.04 LTS에서 18.04 LTS로 업그레이드하기 appeared first on buffashe's Blog.

]]>
우분투 시간대(timezone) 변경하기 https://blog.buffashe.com/2020/02/changing-ubuntu-timezone/ Thu, 06 Feb 2020 05:30:56 +0000 https://blog.buffashe.com/?p=473 우분투 18.04.4 LTS 환경에서 진행하였습니다. 현재 설정된 시간대는 timedatectl 명령어를 사용하여 확인할 수 있습니다. 현재 Etc/UTC로 설정되어 있습니다. 방법 1: … 더 보기 "우분투 시간대(timezone) 변경하기"

The post 우분투 시간대(timezone) 변경하기 appeared first on buffashe's Blog.

]]>
우분투 18.04.4 LTS 환경에서 진행하였습니다.


현재 설정된 시간대는 timedatectl 명령어를 사용하여 확인할 수 있습니다.

buffashe@buffashe-vm:~$ timedatectl
                      Local time: Thu 2020-02-06 04:46:15 UTC
                  Universal time: Thu 2020-02-06 04:46:15 UTC
                        RTC time: Thu 2020-02-06 04:46:17
                       Time zone: Etc/UTC (UTC, +0000)
       System clock synchronized: yes
systemd-timesyncd.service active: yes
                 RTC in local TZ: no

현재 Etc/UTC로 설정되어 있습니다.


방법 1: dpkg-reconfigure 사용

$ sudo dpkg-reconfigure tzdata

방향키를 사용하여 원하는 지역을 찾은 뒤 Enter키를 누릅니다.


변경할 시간대를 찾아 Enter키를 누르시면 설정이 완료됩니다.

buffashe@buffashe-vm:~$ sudo dpkg-reconfigure tzdata

Current default time zone: 'Asia/Seoul'
Local time is now:      Thu Feb  6 13:56:11 KST 2020.
Universal Time is now:  Thu Feb  6 04:56:11 UTC 2020.
 

방법 2: timedatectl 사용

원하는 시간대를 검색합니다.

$ timedatectl list-timezones

$ timedatectl list-timezones | grep Seoul
Asia/Seoul

시간대를 변경합니다.

$ sudo timedatectl set-timezone Asia/Seoul

변경된 것을 확인할 수 있습니다.

buffashe@buffashe-vm:~$ timedatectl
                      Local time: Thu 2020-02-06 14:00:59 KST
                  Universal time: Thu 2020-02-06 05:00:59 UTC
                        RTC time: Thu 2020-02-06 05:01:01
                       Time zone: Asia/Seoul (KST, +0900)
       System clock synchronized: yes
systemd-timesyncd.service active: yes
                 RTC in local TZ: no

The post 우분투 시간대(timezone) 변경하기 appeared first on buffashe's Blog.

]]>
우분투 18.04 LTS hostname 변경하기 https://blog.buffashe.com/2020/02/changing-ubuntu-18-04-lts-hostname/ Tue, 04 Feb 2020 07:48:46 +0000 https://blog.buffashe.com/?p=446 우분투 18.04 LTS 환경에서의 hostname 변경 방법입니다. 현재 hostname 확인 설정되어있는 hostname을 확인합니다. 결과Static hostname: 뒤의 문자열이 현재 hostname입니다. cloud.cfg … 더 보기 "우분투 18.04 LTS hostname 변경하기"

The post 우분투 18.04 LTS hostname 변경하기 appeared first on buffashe's Blog.

]]>
우분투 18.04 LTS 환경에서의 hostname 변경 방법입니다.


현재 hostname 확인

설정되어있는 hostname을 확인합니다.

$ hostnamectl

결과
Static hostname: 뒤의 문자열이 현재 hostname입니다.

buffashe@ubuntu:~$ hostnamectl
   Static hostname: ubuntu
         Icon name: computer-vm
           Chassis: vm
        Machine ID: 90e7fb5479a64e678d0e81c987f49dd9
           Boot ID: 4df6f5dd0fb64df2a7a876a3114a29c4
    Virtualization: oracle
  Operating System: Ubuntu 18.04.4 LTS
            Kernel: Linux 4.15.0-76-generic
      Architecture: x86-64
buffashe@ubuntu:~$ 

cloud.cfg 수정

/etc/cloud/cloud.cfg를 수정합니다.
(hostnamectlset-hostname 작업을 허용합니다.)

$ sudo nano /etc/cloud/cloud.cfg

preserve_hostname: truepreserve_hostname: false로 변경한 후 저장합니다.


systemd-logind.service를 재시작합니다.

$ sudo systemctl restart systemd-logind.service

hostname 변경

hostnamectl을 사용하여 hostname을 변경합니다.

$ sudo hostnamectl set-hostname [변경할 hostname]

결과

buffashe@ubuntu:~$ sudo hostnamectl set-hostname buffashe-vm
[sudo] password for buffashe: 
buffashe@ubuntu:~$ hostnamectl
   Static hostname: buffashe-vm
         Icon name: computer-vm
           Chassis: vm
        Machine ID: 90e7fb5479a64e678d0e81c987f49dd9
           Boot ID: 4df6f5dd0fb64df2a7a876a3114a29c4
    Virtualization: oracle
  Operating System: Ubuntu 18.04.4 LTS
            Kernel: Linux 4.15.0-76-generic
      Architecture: x86-64
buffashe@ubuntu:~$ 

시스템을 재부팅하면 hostname 변경이 완료됩니다.

$ sudo reboot now

The post 우분투 18.04 LTS hostname 변경하기 appeared first on buffashe's Blog.

]]>
우분투 18.04 LTS 스왑파일 만들기 https://blog.buffashe.com/2020/01/making-swapfile-in-ubuntu-18-04-lts/ Fri, 17 Jan 2020 08:15:36 +0000 https://blog.buffashe.com/?p=210 Amazon Lightsail의 저가형 플랜을 사용할 때 RAM 용량이 부족한 경우가 있었습니다. 인스턴스 플랜 업그레이드가 가장 좋은 방법이지만 스왑 공간을 할당하였습니다. … 더 보기 "우분투 18.04 LTS 스왑파일 만들기"

The post 우분투 18.04 LTS 스왑파일 만들기 appeared first on buffashe's Blog.

]]>
Amazon Lightsail의 저가형 플랜을 사용할 때 RAM 용량이 부족한 경우가 있었습니다. 인스턴스 플랜 업그레이드가 가장 좋은 방법이지만 스왑 공간을 할당하였습니다.


시스템의 스왑 공간 확인

시스템에 스왑 공간이 존재하는지 확인합니다.

$ sudo swapon --show

아무것도 출력되지 않으면 스왑 공간이 없는 것입니다.


스왑 파일 생성

루트 디렉토리에 스왑 파일을 생성합니다.
(1024 bytes * 1,048,576 blocks = 1 GB)

$ sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576

/swapfile의 권한을 수정합니다.

$ sudo chmod 600 /swapfile

생성한 파일을 스왑 공간으로 표시합니다.

$ sudo mkswap /swapfile

스왑 파일 활성화

시스템이 스왑 파일을 사용하도록 합니다.

$ sudo swapon /swapfile

스왑 공간의 정보를 확인합니다.

$ free -h

결과


시스템 부팅 시 마운트 설정

부팅 시 자동으로 스왑 파일을 마운트하도록 설정합니다.
/etc/fstab의 마지막 줄에 /swapfile swap swap defaults 0 0을 추가합니다.

$ sudo echo '/swapfile swap swap defaults 0 0' | sudo tee -a /etc/fstab

추가: Lightsail 인스턴스 시작 스크립트

위의 과정을 자동으로 진행하는 방법입니다.


인스턴스 생성 페이지에서 ‘시작 스크립트 추가’를 선택합니다.


시작 스크립트 내용에 아래 내용을 입력합니다.

dd if=/dev/zero of=/swapfile bs=1024 count=1048576
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile
echo '/swapfile swap swap defaults 0 0' | tee -a /etc/fstab

서버 구성 시 보내는 명령은 루트 권한으로 실행되므로 sudo를 포함할 필요가 없습니다.


나머지 설정 수행 뒤 인스턴스를 생성하시면 됩니다.

The post 우분투 18.04 LTS 스왑파일 만들기 appeared first on buffashe's Blog.

]]>
리눅스 서버에 TCP BBR 알고리즘 적용하기 https://blog.buffashe.com/2019/06/applying-tcp-bbr-algorithm-to-linux-server/ Sat, 29 Jun 2019 07:18:16 +0000 https://blog.buffashe.com/?p=160 TCP BBR은 구글에서 개발된 혼잡 제어 알고리즘입니다. YouTube 네트워크에 적용한 결과 평균 4%, 일부 국가에서 14% 이상의 성능 향상이 있었다고 … 더 보기 "리눅스 서버에 TCP BBR 알고리즘 적용하기"

The post 리눅스 서버에 TCP BBR 알고리즘 적용하기 appeared first on buffashe's Blog.

]]>
TCP BBR은 구글에서 개발된 혼잡 제어 알고리즘입니다.

YouTube 네트워크에 적용한 결과 평균 4%, 일부 국가에서 14% 이상의 성능 향상이 있었다고 합니다.
TCP BBR congestion control comes to GCP – your Internet just got faster


서버 준비

적용할 서버에 접속해 커널 버전을 확인합니다.
4.9버전 이상에서만 적용 가능합니다.

$ uname -r
4.15.0-1043-aws

커널 버전이 4.15.0-1043-aws인 경우입니다. (4.15)


4.9버전 미만이라면 업데이트합니다.

$ sudo apt update && sudo apt upgrade

BBR 적용

/etc/sysctl.conf을 편집합니다.

$ sudo nano /etc/sysctl.conf

sysctl.conf의 마지막 줄에

net.core.default_qdisc=fq
net.ipv4.tcp_congestion_control=bbr

을 추가하여 저장합니다.


/etc/sysctl.conf의 커널 설정을 적용합니다.

$ sudo sysctl -p
net.core.default_qdisc = fq
net.ipv4.tcp_congestion_control = bbr

잘 적용되었는지 확인합니다.

$ sudo sysctl -a | grep -E 'bbr|fq'
net.core.default_qdisc = fq
net.ipv4.tcp_allowed_congestion_control = reno cubic bbr
net.ipv4.tcp_available_congestion_control = reno cubic bbr
net.ipv4.tcp_congestion_control = bbr

The post 리눅스 서버에 TCP BBR 알고리즘 적용하기 appeared first on buffashe's Blog.

]]>
리눅스 폴더 크기 표시하기 https://blog.buffashe.com/2019/06/show-linux-folder-size/ Tue, 25 Jun 2019 07:12:49 +0000 https://blog.buffashe.com/?p=128 현재 폴더du -hs -h: 사람이 읽기 편하게 출력-s: 총 사용량만 표시 특정 폴더du -hs 경로

The post 리눅스 폴더 크기 표시하기 appeared first on buffashe's Blog.

]]>
현재 폴더
du -hs

-h: 사람이 읽기 편하게 출력
-s: 총 사용량만 표시

특정 폴더
du -hs 경로

The post 리눅스 폴더 크기 표시하기 appeared first on buffashe's Blog.

]]>