리눅스를 유닉스를 기반으로 하고 있고

유닉스는 파일의 속성 권한을 2진법으로 구분 하고 있다.

이는 시스템 보안에서 가장 첫번째로 중요한 부분 으로써 외부 애플리케이션 등이나 외부의 일반적인 친입 등으로 부터 파일의 변조나 리딩을 보호 할수가 있다.

뿐만 아니라 파일의 실행 속성 가능 여부 까지 제어 하는 것을 기본 원칙으로 하고 있다.

즉 유닉스 시스템 에서는 모든 파일들이 실행 가능한 스크립트를 내장 하고 있다고 하여 실행이 가능한 것이 아니다.

관리자 혹은 제작자가 실행 가능 여부를 권한 변경 설정을 해줘야만 실행이 가능한 것이다.

이러한 관리툴을 대표적으로 'chmod (Changes mod)' 라고 하며 이 chmod 명령을 사용하여 해당 폴더나 파일의 권한 속성을 변경 할수가 있다.

모드의 종류는

크게 세 가지인 'R, W, X'로 나뉜다.

R = Read (읽기 가능)

W = Write (쓰기 가능)

X = Excute (실행 가능)



먼저 현재 사용자의 홈 폴더의 파일이나 폴더들의 속성을 보도록 해 보자.


// ls의 -la 속성 명령어로 파일의 속성까지 전부 출력 한다.

    $ ls -la

    -- 다음과 비슷한 화면이 뜰 것이다.

    drwxrwxr-x.   3 tester tester      4096  5월 16 02:40 test7
    -rwx--x--x.   1 tester tester      1715  5월  8 18:11 tested
    -rwx--x--x.   1 tester tester         5  5월  8 21:17 testo
    drwx--x--x.   3 tester tester      4096  6월 10 19:35 tmp
    -rwx--x--x.   1 tester tester       442  5월 10 23:41 ustat
    -rwxrwxr-x.   1 tester tester        10  5월 15 02:54 vi
    -rwx--x--x.   1 tester tester         7  5월 15 03:16 vic
    drwxrwxr-x.   2 tester tester      4096  7월 25 13:57 video
    drwxrwxr-x.   2 tester tester      4096  8월  4 15:47 wine
    drwxrwxr-x.   2 tester tester      4096  7월 20 17:57 workspace
    drwx--x--x.   2 tester tester      4096  4월 29 17:59 공개
    drwx--x--x.   2 tester tester     12288  8월  4 12:42 다운로드
    drwxrwx--x.   2 tester tester      4096  8월  4 14:43 문서
    drwxrwx--x.   2 tester tester      4096  8월  4 15:36 바탕화면
    drwx--x--x.   2 tester tester      4096  8월  4 02:09 비디오
    drwx--x--x.   2 tester tester      4096  8월  4 03:39 사진
    drwx--x--x.   2 tester tester      4096  5월 11 20:46 음악
    drwxrwxr-x.   2 tester tester      4096  5월 17 11:43 이름 없는 폴더
    drwxrwxr-x.   3 tester tester      4096  5월 17 11:37 이름 없는 폴더 2
    drwx--x--x.   2 tester tester      4096  4월 29 17:59 템플릿

    (  속성    )          (사용자 이름)               (파일이나 폴더 이름)



   

여기서 '템플릿' 이라는 디렉토리의 속성 'drwx--x--x' 는 아래와 같이 3등분이 된다.

drwx / --x / --x :

사용자 / 그룹 / 외부(anonymous)


읽기,쓰기,실행/ 실행 / 실행

처음 drwx 의 'd'는 '디렉터리'를 의미 한다.

이것을 진수로 표기한다면


rwx / --x / --x =

111  / 001 / 001 =

(421) / (421) / (421) =

4+2+1 / 0+0+1 / 0+0+1 =

7    /     1    /   1


즉 해당 폴더에 대한 모드는 숫자표기로 '711'이 된다.


그렇다면 이제는 해당 '템플릿' 폴더를 'drwx/---/--- (절대 사용자만 읽기,쓰기,실행 가능)' 으로 속성 권한을 변경 하여 보자.



// 속성을 700으로 변경한다.

    $ chmod 700 템플릿

// 속성을 재확인 한다.

   $  ls -l |grep 템플릿
         (grep 은 출력에서 원하는 문자열이 있는 라인만 출력 시킨다.)
 
    - 다음과 같이 출력 되면 성공한 것이다.
 
    drwx------.  2 tester tester      4096  4월 29 17:59 템플릿



이와 같은 방법은 파일에서도 똑같이 적용 되며


* 만일 디렉터리일 경우 속성을 '6xx'로 할 경우

    $ chmod 600 폴더

    - 폴더 속성이 drw------- 으로 변경됨으로 x(실행) 속성 권한이 사라짐으로 폴더로 진입 할수 없게 된다.

    - 뿐만 아니라 그룹 속성까지 제로로 한다면 'ls' 같은 일반 프로그램도 타 소프트웨어들도 접근을 못하게 된다.
    (해당 폴더에 들어가서 ls를 실행할 경우 진행 되지 않는다.)   
즉, 그룹 권한을 생각하여 최소한 '750(rwxr-x---)' 이상으로 권한을 부여 하는 것이 일반적이다.





또한 해당 디렉토리 하부의 모든 파일과 폴더들을 전부 똑같이 적용 시키려면



// -R 속성으로 하부까지 전부 적용 시킨다.

   $ chmod -R 770 폴더
 
// 하위까지 속성을 한번에 확인해 본다.

   $ ls -lR 폴더



이전 포스팅 에서 clipman 소프트웨어 소개와 설치를 이야기 했다.


그래서 더욱 거기에 가미를 더하여 clipman의 내부 캐쉬의 보안 설정을 가이드 하려고 한다.


저장되는 캐쉬 데이터는 '/home/user/.cache/xfce4/clipmand/textsrc'로 저장 되는데
보통 이 파일의 권한은 'rw-rw-r'(664) 이지만 만약 이 보안설정이 불안 하다면 직접적으로 'rw-rw-'(660) 으로 바꾸어 주면 된다.


// 먼저 xfce4-clipman 소프트웨어 의 cache 폴더로 진입한다.


cd ~/.cache/xfce4/clipman


// 'textsrc' 파일이 있는지 확인한다.


ls


// 해당 파일의 보안 권한을 변경한다. < 'rw-rw-'= (660) > 


    chmod 660 textsrc


-- 이로써 보안을 한층 더 강화 시킨다.




 이렇게 해도 소프트웨어를 사용하는 데에는 전혀 문제가 없다.




소프트웨어 'clipman'은 클립보드 데이타를 따로 보관처리하여 사용자가 작업할때 꺼내 쓸수 있게 하는 심플 유틸 소프트웨어 이며

작업 표시줄에 트레이 아이콘을 표시하는 기능을 지원할 뿐만이 아니라 사진까지 그 복사 정보를 저장하여 불러 올수 있는 기능 까지 내장 하고 있다.

또 한가지 알아 두어야할 중요한 사실은 xwindows desktop에 있어서 본 소프트웨어는 'xfce4'에 속한다.


그렇기에 정확한 소프트웨어 명칭은 'xfce4-clipman' 이다.


하지만 그렇다고 해서 결코 다른 xwindows desktop에서 사용이 불가능 한 것은 절대 아니다 .

물론 'clipt' 같은 다른 클립 보드 관리툴이 있긴 하지만 호환성 문제라든가 네트워크 보안성 문제라든지를 포함해서 소프트웨어는 간결할 지라도 다른 요소로 인하여 외부로 정보가 노출될 보안적 위험성들이 있다.

거기에 비한다면 clipman은 상당히 심플하면서도 오프라인적이면서도 보안적 안전성도 사용자 스스로 극복할수가 있다.

클립맨 보안 설정 하는 방법 바로가기



자 그렇다면 본격적으로 설치에 임하도록 해 보자. 


// 설치를 시도한다.

     sudo apt install xfce4-clipman



** 만일 여기서 소프트웨어가 아키브에 없다고 설치 할수 없다고 나온다면 소스 archive를 apt-sources.list 에 추가 하여 업데이트 한다.

// 소스 archive를 추가한다.

     sudo echo "deb http://kr.archive.ubuntu.com/ubuntu wily main universe" >> /etc/apt/sources.list
                                       (wily: 자신의 OS 배포판)
// archive 목록을 업데이트 한다.
                                     
     sudo update      

// 다시 설치를 시도한다.

     sudo apt install xfce4-clipman



// clipman을 실행해 본다.

     xfce4-clipman

    -- 실행 하면 데스크탑 메뉴 바에 트레이 아이콘이 생성 된다.


// 메모장을 열어 글을 쓰면서 복사 테스트를 하며 클립보드 관리에 들어가는지 확인한다.

// 편의적인 사용을 위하여 단축키를 등록한다.

    (1) 키보드 관리자를 열어 단축키를 설정한다.

    (2) 단축키의 실행은 'xfce4-popup-clipman' 으로 지정한다.



가이드 영상



자막 설정하여 시청 하시길 바랍니다.



소프트웨어 소스 다운로드 'http://goodies.xfce.org/projects/panel-plugins/xfce4-clipman-plugin


  



소프트웨어 'clipman'은 클립보드 데이타를 따로 보관처리하여 사용자가 작업할때 꺼내 쓸수 있게 하는 심플 유틸 소프트웨어 이며

작업 표시줄에 트레이 아이콘을 표시하는 기능을 지원할 뿐만이 아니라 사진까지 그 복사 정보를 저장하여 불러 올수 있는 기능 까지 내장 하고 있다.

또 한가지 알아 두어야할 중요한 사실은 xwindows desktop에 있어서 본 소프트웨어는 'xfce4'에 속한다.


그렇기에 정확한 소프트웨어 명칭은 'xfce4-clipman' 이다.


하지만 그렇다고 해서 결코 다른 xwindows desktop에서 사용이 불가능 한 것은 절대 아니다 .

물론 'clipt' 같은 다른 클립 보드 관리툴이 있긴 하지만 호환성 문제라든가 네트워크 보안성 문제라든지를 포함해서 소프트웨어는 간결할 지라도 다른 요소로 인하여 외부로 정보가 노출될 보안적 위험성들이 있다.

거기에 비한다면 clipman은 상당히 심플하면서도 오프라인적이면서도 보안적 안전성도 사용자 스스로 극복할수가 있다.

클립맨(clipman) 보안 설정 하는 방법 바로가기



자 그렇다면 본격적으로 설치에 임하도록 해 보자. 


// 설치를 시도한다.

     sudo apt install xfce4-clipman



** 만일 여기서 소프트웨어가 아키브에 없다고 설치 할수 없다고 나온다면 소스 archive를 apt-sources.list 에 추가 하여 업데이트 한다.

// 소스 archive를 추가한다.

     sudo echo "deb http://kr.archive.ubuntu.com/ubuntu wily main universe" >> /etc/apt/sources.list
                                       (wily: 자신의 OS 배포판)
// archive 목록을 업데이트 한다.
                                     
     sudo update      

// 다시 설치를 시도한다.

     sudo apt install xfce4-clipman



// clipman을 실행해 본다.

     xfce4-clipman

    -- 실행 하면 데스크탑 메뉴 바에 트레이 아이콘이 생성 된다.


// 메모장을 열어 글을 쓰면서 복사 테스트를 하며 클립보드 관리에 들어가는지 확인한다.

// 편의적인 사용을 위하여 단축키를 등록한다.

    (1) 키보드 관리자를 열어 단축키를 설정한다.

    (2) 단축키의 실행은 'xfce4-popup-clipman' 으로 지정한다.



가이드 영상



자막 설정하여 시청 하시길 바랍니다.



소프트웨어 소스 다운로드 'http://goodies.xfce.org/projects/panel-plugins/xfce4-clipman-plugin


  


리눅스를 PC에 직접적으로 설치 하기 위해서는 Live cd를 만들어 주거나 Live usb를 만들어 줘야만 한다.

하지만 아무리 dvd라고 할 지라도 Live cd로의 제작은 Live cd 부팅시 상당히 느릴수 있다.

그렇기 때문에 이왕 만들 것이라면 Live usb를 선택하는 것을 강력 추천하는 바 이다.

먼저 Live usb를 만들기 위해서 준비해야할 몇가지 필요물들을 나열 하자면

준비물

(1) 제작할 usb (8GB 이상 권장)

(1) 제작툴인 rufus

(2) 리눅스 이미지 : Linux_ubuntu_16.04 (되도록 아직까지는 패키지 호환성 문제로 15.10-wily 이하를 추천 한다.)
 
이 세가지만 있다면 모든 준비는 끝난 것이나 마찬가지다.






그렇다면 본격적으로 시작해 보도록 하자.

1. 제작할 USB를 PC에 꽂는다.
 
2. RUFUS를 실행한다.

3. rufus에서 usb가 인식 되었는지를 확인한다.
    (먼저 포맷할 필요는 없다. = 물론 이전에 로우 포맷을 한다면 부팅시 진행이 더욱 빨라지는 것은 사실이다.)

4. rufus에서 다운로드 받은 이미지를 불러온다.

5. 포맷 파티션등이 자동으로 설정 된 것을 확인후 제작에 들어간다.


가이드 영상



이전 강의 01 에서는 리눅스에 ADB를 설치하고 ADB로 안드로이드 기기에 접속 제어 하는 방법까지 따라해 보았다.

그렇다면 이번에는 리눅스에서 안드로이드 기기로 ADB로 하여금 무선 wifi 네트워크로써 접속해 볼 것이다.

하지만 먼저 여기서 필요한 환경은 '공유기'와 더불어 그로인한 wifi로써 당신의 안드로이드 기기가 잡혀 있어야 한다.

또한 물론 제어 하는 pc는 유선 네트워크만 공유기에 물려 있기만 하면 된다.

먼저 이전 강의에서 처럼 adb usb 연결 상태로 만들어 놓는다.

    http://cosmosproject2015.tistory.com/103 (이전 강의)

// adb usb 연결이 확인 된 상태에서 기기의 wifi를 키고 제어 pc와 tcpip 연결 프로토콜 포트를 구성 한다.

    $ adb tcpip 5555
               ( 원하는 포트 번호)

    // restarting in TCP mode port: 2553 <- 와 같이 나오면 구성에 성공한 것이다.

// 연결된 usb를 해제하고 본격적으로 무선 네트워크로 ADB 접속한다.

    $ adb connect 192.168.1.173:2553
              (local ip : 이는 안드로이드 기기 환경설정 -> wifi -> 네트워크 수정 or 고급 wifi 설정에서 확인 가능)

    // connected to 192.168.1.173:2553 <- 이와 같이 나온다며 접속에 성공한 것이다.

// 접속을 확인한다.

    $ adb device 
    
    // 192.168.1.173:2553 device <- 라고 나오면 접속 성공

# 트러블 슈트

// 만일 접속이 안된 다면 두가지 방법으로 리셋 한다.

    $ adb kill-sever
        ( 모든 ADB 접속을 리셋한다.)
   
    $ adb disconnect 192.168.1.173:2553
        (네트워크 접속을 해제 한다.)

   


웬만한 자칭 컴퓨터 매니아 들이라면 알파고가 사용하는 운영체제가 '리눅스-우분투' 라는 사실을 이미 알고 있을 것이다.

그럴만한 이유를 굳이 꼽는다면 바둑의 인공지능 프로젝트가 리눅스 진영에서 가장 많이 발달 했다는 것이 그 첫번째 이유일 것이며

그 대표적인 예로써 FSF(Free Software Foundation)에서 제작한 'Gnugo'를 큰 예로 둘 수 있을 것이다.

물론 알파고 프로젝트가 리눅스를 기반으로 한다고 해서 gnugo의 오픈소스를 참조한다고 단언 할 수는 없을 것이다.
 
하지만 gnugo는 상당히 앞서나간 인공지능을 지닌 바둑 소프트웨어로 알려져 있으며 기량은 7~8급 정도라고 볼 수 있다.


두번째 이유라면 소프트웨어의 기술적으로 리눅스는 기존의 다른 오픈소스웨어들과 더불어 BASH를 이용해 C언어와 JAVA를 자유롭게 즉석해서 소스코딩 및 컴파일을 할수 있는 능력 체계를 갖추고 있기 때문에 알파고와 같은 시스템을 만들기 가장 유리 하기 때문일 것이다.  


또 그렇지만 gnugo를 다루기란 편치만은 않다. 왜냐하면 gnugo는 gui 모드로 동작하는 게임 소프트웨어가 아닌 콘솔 모드에서 동작하는 소프트웨어 이기 때문이다.




하지만 그렇다고 실망할 필요는 전혀 없다. 바로 gnugo를 gui로써 동작 시켜주는 소프트웨어인 앞서 제목에서 소개한 'qgo'가 있기 때문이다.
하지만 여기서 또 한가지 중요한 것은 qgo는 gnugo를 의존성 패키지로써 활용 하기 때문에 qgo를 제대로 사용하기 위해서는 gnugo가 있어야 한다.

qgo의 소스 다운로드는 http://qgo.sourceforge.net/ 에서 가능하며

gnugo의 소스 다운로드는 http://www.gnu.org/software/gnugo/download.html 에서 받을수 있다.

리눅스 우분투 에서 qgo 설치는 매우 간단하다.

    ## 먼저 gnugo 부터 설치 한다. (만약 qgo만 단독으로 설치 한다면, 실행은 되나 게임 진행이 되지 않는 오류가 나타나며 qgo 설치시 자동으로     gnugo가 설치 되는 것은 아니다.)

        $ sudo apt install gnugo
   
    ## 다음 qgo를 설치한다.

        $ sudo apt install qgo

    ## qgo를 실행해 본다.

        $ qgo



리눅스에서의 netstat 명령은 그 사용 용도는 같지만 기능과 명령이 조금 다릅니다.


그냥 netstat 명령을 치면 윈도우와는 다르게 외부 프로토콜을 포함하여 내부 프로세스 교류 현황까지 전부 뜨게 됩니다.


그렇다면 간편하게 외부 교류 프로토콜만 확인하려면


netstat -t


netstat -tunp


혹은 netstat -a | less 명령으로 모든 netstat 을 천천히 내려 보실수가 있습니다.


빠져나오려면 (ctrl + z)




selinux는 미합중국 안보국 NSA의 소프트웨어부서에서 만든 차단식 보안용 오픈소스 소프트웨어 모듈이다.

https://www.nsa.gov/what-we-do/research/selinux/download/index.shtml

SE는 약자로서 Security Enhanced 로써 '보안 강화'를 의미 한다.

selinux는 tty(teletypewriter : 제어 콘솔)를 바탕으로한 pty, pts의 외부로부터의 원격 제어 콘솔을 강력히 차단하는 툴이다.
뿐만 아니라 차단률이 매우 높기 때문에 ftp, 아파치 웹서버의 기능 또한 제한 하여 서버 pc에서의 사용은 매우 드물다.

그렇기에 대부분의 서버 전문가 들은 selinux를 삭제 하거나 기능을 끄거나 혹은 permissive (차단 해제 및 감시만 작동) 로만 작동 시키는 경우가 대부분 이다.

또한 리눅스 커널을 기반으로한 대표적인 스마트폰 운영체제인 안드로이드에서도 selinux를 기반으로한 'seandroid'가 존재 한다.
하지만 그것은 모든 스마트폰이 가지고 있는 것은 아니다.

원격 접속 강제 차단 동작은 'enforcing'으로 이루어 지며

해제는 'permissive'로 동작 한다.




그리고 결론적으로 말하자면 selinux는 보통 윈도우즈에서 활용되는 백신들 처럼 악성코드를 일일이 찾는 방법을 사용하는 것이 아니며

원격 차단 이라는 원리적 혹은 원천적 보안 방어 시스템 이라고 말 할수 있을 것이다.


또 한가지 장점은 타 백신 소프트웨어들 처럼 pc에 대한 절대적 감시력을 가지는 시스템에 대한 전역 장악권 같은 것을 갖지 않는다.


즉 이 말은 소프트웨어가 타 백신 소프트웨어들 처럼 컴퓨터의 악성코드를 검출 하겠다는 핑계로 pc를 마음대로 시찰하지 않는 다는 것이다.


단순히 원격접속이 외부에서 사용자의 허가 없이 이루어 지지 않도록 아예 차단을 시켜 놓는 방식이다.


어쩌면 이러한 방식은 iptable 이나 그것을 응용하는 ufw 보다 좀 더 원천적 이라고 볼 수 있을지도 모른다.



다음 에서는 리눅스 우분투에서 selinux를 설치 하는 방법에 대해 알아 보도록 하자.

다음 페이지 ( 리눅스 우분투에 SELINUX 설치하기 )
 



gimp image editor를 소개 합니다.

'gimp'는 약자로서 GNU Image Manipulation Program 를 뜻 하며 강력한 이미지 에디터 프론트 엔드 입니다.

간단히 서술 하자면 사진 편집에서 못하는 것은 없습니다.




다양한 포맷 지원 및 이미지 변환 기술, 알파 블랜드와 블랭크 처리, 객체 처리 기술 등 이 소프트웨어에는 못하는 것이 없습니다.


설치는


sudo apt install gimp


로써 간단히 설치 할 수 있습니다.




영상을 통해 확인해 보시죠.









gimp image editor를 소개 합니다.

'gimp'는 약자로서 GNU Image Manipulation Program 를 뜻 하며 강력한 이미지 에디터 프론트 엔드 입니다.

간단히 서술 하자면 사진 편집에서 못하는 것은 없습니다.




다양한 포맷 지원 및 이미지 변환 기술, 알파 블랜드와 블랭크 처리, 객체 처리 기술 등 이 소프트웨어에는 못하는 것이 없습니다.


설치는


sudo apt install gimp


로써 간단히 설치 할 수 있습니다.




영상을 통해 확인해 보시죠.







Name : callt


Section : utils


제작자 : C O S M O S project. 


Architecture :  amd64, i386..


OS :  ubuntu - xenial, wily, vivid, trusty


라이선스 : GPL2+


본 프로그램은  아주 단순하고 심플하게 터미널에서 간단한 명령을 통해 해당 양식의 소스 파일을 여러분이 사용하고 있는 에디터나 나노로 한번에 불러 주는 유틸리티 소프트웨어 입니다.




bash, sh, html, xml, desktop, c언어,  라즈베리 파이썬 양식등을 불러 옵니다.


인스톨 :


sudo apt-add-repository ppa:cosmosp2016/util

sudo apt update

sudo apt install callt


Exec : callt


사용방법 :  



터미널에서 간단히 netstat 명령어와 nmap 명령어와 더불어 실제로 열려져 있는 포트를 직접 확인할수가 있다.

$netstat -tnlp 

(Not all processes could be identified, non-owned process info  will not be shown, you would have to be root to see it all.) Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name tcp        0      0 127.0.1.1:53            0.0.0.0:*               LISTEN      -   
실제 소프트웨어를 통해 포트가 열려 있는 경우 PID/Program name이 표시되어 있을 것이다.

$ nmap localhost
Starting Nmap 6.47 ( http://nmap.org ) at 2016-03-01 19:22 KST Nmap scan report for localhost (127.0.0.1) Host is up (0.00057s latency). Not shown: 999 closed ports PORT    STATE SERVICE

마찬가지 실제 열려 있는 포트가 있다면 'PORT'와 'SERVICE' 아래에 포트와 서비스네임이 표시 될 것이다. 만일 아무런 프로그램도 접속되지 않고 있다면 적어도 최소한 프린트 네트워크 시스템인 'IPP' 하나는 대부분 떠 있을 것이다.


초보자를 위한 리눅스 가이드 영상 입니다.




+ Recent posts