리눅스의 기본 편집기를 변경하는 방법입니다.



$ select-editor


Select an editor.  To change later, run 'select-editor'.

  1. /bin/nano        <---- easiest

  2. /usr/bin/vim.basic

  3. /usr/bin/vim.tiny

  4. /bin/ed



원하는 1~4번까지 선택하면됩니다. 번호는 설치된 리눅스에따라 틀려질수있습니다.

저는 예전부터 vim을 사용하다보니 vim만 쓰게 되네요.



우분투 OS 설치날짜를 확인하는 방법 입니다.



$ sudo dumpe2fs /dev/sda1 | grep 'Filesystem created:'



우분투에서 가끔 boot용량확보가 안되어서 업데이트가 안되거나

혹은 업데이트 이후 boot용량이 모자란다고 뜨면서 무시했을때 부팅이 안된다던가 현상이 발생합니다.


커널을 설치할때 기존의 데이터를 삭제를 하지않고 계속 업데이트 및 설치를 한다면

/boot 폴더가 가득차서 발생하는 현상입니다.


저는 무시하고 업데이트 하는 바람에 부팅이 안되는 현상이 발생했습니다.


우선 초반 advenced 부팅을 선택해서 부팅잘했었던 과거 커널을 선택해서 부팅합니다.


부팅에 성공하면 boot폴더 용량확보를 해야하는데 단순히 삭제를 하면 안되고 정식으로 패키지 삭제를 해야합니다.




boot 폴더 용량 확보 방법


$ su


$ uname -r

3.13.0-77-generic


현재 사용중인 커널 버전은 3.13.0-77-generic 입니다.


설치되어있는 커널을 알아봅니다.


$ dpkg -S vmlinuz

linux-image-3.13.0-6-generic: /boot/vmlinuz-3.13.0-66-generic

linux-image-3.13.0-77-generic: /boot/vmlinuz-3.13.0-77-generic

linux-image-3.13.0-83-generic: /boot/vmlinuz-3.13.0-83-generic


3.13.0-66 버전을 지워보도록하겠습니다.

언제 롤백을해야할지 모르니 현재 버전말고도 구버전 최소 1-2개는 남겨두고 삭제하는것이 좋습니다.


설치되어잇는 패키지를 찾습니다.


$ dpgk -l "*3.13.0-66*"

ii  linux-headers-3.13.0-66                             

ii  linux-headers-3.13.0-66-generic                    

ii  linux-image-3.13.0-66-generic         

ii linux-image-extra-3.13.0-66-generic


모두 삭제합니다.

$ sudo apt-get purge linux-headers-3.13.0-66 linux-headers-3.13.0-66-generic linux-image-3.13.0-66-generic linux-image-extra-3.13.0-66-generic


패키지목록을 읽는 중이빈다... 완료

의존성 트리를 마드는 중입니다.

상태정보를 읽는 중입니다.... 완료

...

..

.

계속하시겠습니까? [Y/n] Y

..



모두 삭제가 완료되면 boot용량을 확인합니다.


$ du -sh /boot

41M   /boot


사용하고 있는 공간이 41로 줄었습니다.




도움이 되었다면 댓글 혹은 광고클릭을 해주시면 힘이 됩니다.



Ghost버그는 무었인가?


미국 US-CERT는 리눅스 GNU C 라이브러리(glibc)에서 임의코드를 실행할 수 있는 취약점(CVE-2015-0235)이 발견되었다고 발표하였습니다.


- CVE-2015-0235는glibc의 gethostbyname(), gethostbyname2() 처리 과정에서 발생하는 버퍼오버플로우에의해 취약점발생합니다.




리눅스에서 glibc 버전 확인하기?

$ ldd --version


영향을 받는 lib는 라이브러리는 2.2 ~ 2.17버전의 모든 리눅스 시스템으로 알려져있다.


알려진 영향받는 리눅스 버전

RHEL (Red Hat Enterprise Linux) version 5.x, 6.x and 7.x
CentOS Linux version 5.x, 6.x & 7.x
Ubuntu Linux version 10.04, 12.04 LTS
Debian Linux version 7.x
Linux Mint version 13.0
Fedora Linux version 19 or older
SUSE Linux Enterprise 11 and older (also OpenSuse Linux 11 or older versions).
SUSE Linux Enterprise Software Development Kit 11 SP3
SUSE Linux Enterprise Server 11 SP3 for VMware
SUSE Linux Enterprise Server 11 SP3
SUSE Linux Enterprise Server 11 SP2 LTSS
SUSE Linux Enterprise Server 11 SP1 LTSS
SUSE Linux Enterprise Server 10 SP4 LTSS
SUSE Linux Enterprise Desktop 11 SP3
Arch Linux glibc version <= 2.18-1



취약점에 노출되어있는지 확인하는 방법


$vi ghosttest.c


/* ghosttest.c:  GHOST vulnerability tester */

/* Credit: http://www.openwall.com/lists/oss-security/2015/01/27/9 */

#include <netdb.h>

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

#include <errno.h>

 

#define CANARY "in_the_coal_mine"

 

struct {

  char buffer[1024];

  char canary[sizeof(CANARY)];

} temp = { "buffer", CANARY };

 

int main(void) {CentOS http://lists.centos.org/pipermail/centos/2015-January/149413.html

Debian https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=776391

Redhat https://access.redhat.com/articles/1332213

Ubuntu http://www.ubuntu.com/usn/usn-2485-1/

  struct hostent resbuf;

  struct hostent *result;

  int herrno;

  int retval;

 

  /*** strlen (name) = size_needed - sizeof (*host_addr) - sizeof (*h_addr_ptrs) - 1; ***/

  size_t len = sizeof(temp.buffer) - 16*sizeof(unsigned char) - 2*sizeof(char *) - 1;

  char name[sizeof(temp.buffer)];

  memset(name, '0', len);

  name[len] = '\0';

 

  retval = gethostbyname_r(name, &resbuf, temp.buffer, sizeof(temp.buffer), &result, &herrno);

 

  if (strcmp(temp.canary, CANARY) != 0) {

    puts("vulnerable");

    exit(EXIT_SUCCESS);

  }

  if (retval == ERANGE) {

    puts("not vulnerable");

    exit(EXIT_SUCCESS);

  }

  puts("should not happen");

  exit(EXIT_FAILURE);

}



$ gcc ghosttest.c -o ghosttest

$ ./ghosttest



패치를 해야한다면 vulnerable 패치하지 않아도 된다면 not vulnerable 출력된다.



패치를 하는 방법


ubuntu의 경우

# sudo apt-get clean

# sudo apt-get update

# sudo apt-get upgrade

# sudo reboot


기타 os는 아래 웹을 참고

CentOS http://lists.centos.org/pipermail/centos/2015-January/149413.html

Debian https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=776391

Redhat https://access.redhat.com/articles/1332213

Ubuntu http://www.ubuntu.com/usn/usn-2485-1/



출처 및 참고사이트

http://www.cyberciti.biz/faq/cve-2015-0235-patch-ghost-on-debian-ubuntu-fedora-centos-rhel-linux/


설치된 패키지 확인 방법


$ dpkg --get-selections



설치된 패키지의 설치경로 확인방법


$ dpkg -L 패키지 이름



설치된 패키지의 버전 확인방법


$ dpkg -l 패키지이름



+ Recent posts