리눅스의 openssl 을 사용하여  자체 서명 인증서를 만들어 보자....

자체 인증서는 웹브라우저에서는 신뢰할 수 없는 사이트라고 나오지만, SSL 보안 기능은 잘 동작한다.



1. openssl 의 설치 여부를 확인하자...


[root@smtp tls]# rpm -qa openssl

openssl-1.0.2k-8.el7.x86_64




2. 개인키 생성


[root@smtp tmp]# openssl genrsa -des3 -out private.key 2048

Generating RSA private key, 2048 bit long modulus

....................................................+++

................+++

e is 65537 (0x10001)

Enter pass phrase for private.key:                ------------>  비밀번호 입력.

Verifying - Enter pass phrase for private.key:      -----------> 비밀번호 확인 입력.

[root@smtp tmp]#


private.key 라는  개인키가 생성된다.



3. 인증 요청서 생성 ( CSR - Certificate  Signing  Request )


[root@smtp tmp]# openssl req -new -key private.key  -out server.csr

Enter pass phrase for private.key:   --------------> 개인키 비밀번호 입력.


You are about to be asked to enter information that will be incorporated

into your certificate request.

What you are about to enter is what is called a Distinguished Name or a DN.

There are quite a few fields but you can leave some blank

For some fields there will be a default value,

If you enter '.', the field will be left blank.

-----

Country Name (2 letter code) [XX] KR

State or Province Name (full name) []:Daejeon
Locality Name (eg, city) [Default City]:Seogu
Organization Name (eg, company) [Default Company Ltd]:NETRA
Organizational Unit Name (eg, section) []:Service
Common Name (eg, your name or your server's hostname) []:mail.weschool.kr
Email Address []:master@weschool.kr

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:    --------------> 그냥 패스~.
An optional company name []:    --------------> 패스 ~.
[root@smtp tmp]# 



4. 개인키 패스워드 제거.

   

   key에 패스워드가 들어 있으면 웹데몬 구동시 마다 물어본다. 패스워드를 제거하더라도 SSL 암호화 통신에는 문제가 없다.

 

[root@smtp tmp]# cp -a private.key  private.key_org

[root@smtp tmp]# openssl rsa -in private.key_org  -out private.key

Enter pass phrase for private.key_org:  --------------> 개인키 비밀번호 입력.   

writing RSA key

[root@smtp tmp]# ls

private.key  private.key_org  server.csr

[root@smtp tmp]#





5. 인증서 생성

   

   개인키와 인증요청서를 가지고 인증서를 생성한다.

 

[root@smtp tmp]# openssl x509 -req -days 365 -in server.csr -signkey private.key -out server.crt

Signature ok

subject=/C=KR/ST=Daejeon/L=Seogu/O=NETRA/OU=Service/CN=mail.weschool.kr/emailAddress=master@weschool.kr

Getting Private key

[root@smtp tmp]# 




6. 확인

   

   생성된  사설인증서(crt)를 확인해 보자

 

[root@smtp tmp]# more private.key | head -3

-----BEGIN RSA PRIVATE KEY-----

MIIEogIBAAKCAQEAx/+LzN+U5Xn2/sz9MQFY83WU4nma95zo9WvIPc0H7OlhI2hO

MKcWjbRnD7w3zPw1rYvt+2keZeRKp1B8lq+9HlZnCmS6DWNCajW6c9kcLbWI65I7

[root@smtp tmp]#

[root@smtp tmp]# more server.crt | head -3

-----BEGIN CERTIFICATE-----

MIIDnDCCAoQCCQDAlK1Edjlw/jANBgkqhkiG9w0BAQsFADCBjzELMAkGA1UEBhMC

S1IxEDAOBgNVBAgMB0RhZWplb24xDjAMBgNVBAcMBVNlb2d1MQ4wDAYDVQQKDAVO

[root@smtp tmp]#




[root@mail ~]#cd /home/temp/   &&  bash copy.sh


 --> /home/temp 경로로 이동하여 거기에 있는 copy.sh 스크립트를 실행한다.

출력 결과 값의    대/소문자를 치환하는 명령...



(기본)

[root@mail logrotate.d]# uname -a 

Linux mail.weschool.kr 3.10.0-693.el7.x86_64 #1 SMP Tue Aug 22 21:09:27 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux



(소문자로 치환)
[root@mail logrotate.d]# uname -a | tr '[A-Z]' '[a-z]'
linux mail.weschool.kr 3.10.0-693.el7.x86_64 #1 smp tue aug 22 21:09:27 utc 2017 x86_64 x86_64 x86_64 gnu/linux



(대문자로 치환)

[root@mail logrotate.d]# uname -a | tr '[a-z]' '[A-Z]'

LINUX MAIL.WESCHOOL.KR 3.10.0-693.EL7.X86_64 #1 SMP TUE AUG 22 21:09:27 UTC 2017 X86_64 X86_64 X86_64 GNU/LINUX



#. 설정파일

    /etc/vsftpd/vsftpd.conf


 

# 익명 접속 금지
    anonymous_enable=NO

# 로그 저장 파일 지정
    xferlog_file=/var/log/vsftpd.log

# 로그 형식을표준 xferlog 포멧으로 하지 않음
    xferlog_std_format=NO

# 대기 시간 지정(10분동안 유지)
    idle_session_timeout=600 

# 데이터 연결 해제 시간 지정 (2분)
    data_connection_timeout=120

# 아스키 형식 파일 전송 지원
    ascii_upload_enable=YES
    ascii_download_enable=YES

# 로그온시 배너 지정
    ftpd_banner=Welcome to FTP Server

# 상위 디렉토리 이동 금지
    local_root=public_html
    chroot_local_user=YES

# 패시브 모드 지정
    pasv_enable=YES
    pasv_min_port=30000
    pasv_max_port=30020

# 숨김 파일(. 으로 시작하는 파일) 무시
    force_dot_files=YES

# FTP 데몬이 표시하는 시간을 서버시간(NTP로 동기화된 시간)에 맞추기
    use_localtime=YES



특정 유저 접속 차단

   /etc/vsftpd/ftpusers, /etc/vsftpd/user_list 에 추가


[root@fedora root]# vi /etc/vsftpd/user_list 
# vsftpd userlist
# If userlist_deny=NO, only allow users in this file
# If userlist_deny=YES (default), never allow users in this file, and
# do not even prompt for a password.
# Note that the default vsftpd pam config also checks /etc/vsftpd.ftpusers
# for users that are denied.
root
bin
daemon
adm
lp
sync
shutdown
halt
mail
news
uucp
operator
games
nobody

 








 

■ 상위 경로를 액세스 시키지 않는 설정  ----( 지정된 사용자만 접속이 안된다)


chroot_local_user=NO
chroot_list_enable=YES
# (default follows)
chroot_list_file=/etc/vsftpd/chroot_list
allow_writeable_chroot=YES



【root@fedora root】# vi /etc/vsftpd/chroot_list
  user1

   --> user1 은 홈 패스보다 위를 보내지 않는다

현재는 많이 사용하지 않지만 조금 묵은 장비(2003년 이하 장비)의 경우 간혹가다

DAT 테잎을 이용하여 백업을 하는 경우가 종종 있다. 속도도 느리고 불펴하기도 하고

더구나 하드디스크의 가격이 많이 내려가서 요즘에는 그리 선호하지 않는다. 

만약 이런장비를 만나게 되면 다음과 같은 방법으로 처리해 주면된다. 


1. 하드웨어 드라이버 올리기
- DAT 장비들은 대부분 설치되게 되면 /dev/st0 이런식으로 리눅스에서는 설정된다.  만일 설치했는데도

장비가 올라오지 않는다면  다음과 같이 모듈을 탑재한다. 

modprobe st0

2. 백업
- 별도의 명령어가 존재하지 않고 그냥 tar를 이용하여 백업한다. 

tar cvzf /dev/st0 /home


3. 복구
- tar를 이용하여 압축해제 
tar xvzf /dev/st0

'배워서 남주자 > Linux 명령' 카테고리의 다른 글

[vsftp] vsftp 기본 설정  (1) 2018.03.23
[nmap] nmap 사용법  (0) 2018.03.23
[mkisofs] ISO 압축하기  (0) 2018.03.23
[ifconfig] 네트워크 설정  (0) 2018.03.23
[find] find 옵션  (0) 2018.03.23

iso 이미지 생성하기(mkisofs)


리눅스에서 CD를 굽거나 아니면 압축을 할경우에 ISO 이미지를 생성해야 하는 경우가 있다.
윈도우처럼 간단하게 CD를 굽는 툴이 있기는 하지만 버그가 많아 통상적으로 iso이미지를
생성하여 이파일을 Nautilus에서 CD로 굽고 있다.

위와같은 경우에 특정 디렉토리를 ISO로 만들고 싶다면 다음과 같이 하면 간단하게 이미지가 만들어진다.

  ex) mkisofs -o /home/backup.iso /home/backup

=> /home/backup이라는 디렉토리를 backup.iso라는 파일로 만들어 준다.

 

 

 

 

 

# iso 파일 마운트 하기

mount  -o loop  ???.iso   /opt

 

 

 

--------------------------------------------------------------------------------

 

ISO 파일은 최근 인터넷의 보급이 확산되면서 데이터 전달 및 공유, 그리고 가상CD 환경 구현 등의 목적으로 많이 사용되고 있는 데이터 파일 포맷이다. 리눅스에서도 OS 배포 및 CD 제작을 위한 용도로 많이 사용되고 있으며 한글과컴퓨터에서 공개되는 오픈에디션 역시 이러한 ISO 이미지 파일 형태로 제공되고 있다. (CD 이미지, DVD 이미지 등에 사용한다.)

ISO 파일은 CD의 데이터들이 하나의 파일로 구성되는 일종의 묶음(이미지) 파일이다. 배포의 편리성과 쉽게 사용할 수 있는 장점을 가지고 있으며 ISO9660의 표준이기도 하다.

 

리눅스를 사용하는 이들은 대부분 이러한 배포판의 ISO 파일을 다운받아 CD로 제작해본 경험이 있을 것이다. (이미지 레코딩 방식)

여기서는 이러한 ISO 이미지를 다운받아 사용하는 방법에 대해 알아보고, ISO 이미지를 직접 만드는 방법에 대해서도 알아보도록 하자.

 

ISO 마운트

리눅스에서는 마운트 기능을 이용하여 iso 이미지 파일을 연결하여 사용할 수 있다.

우선 오픈프로젝트 홈페이지에 있는 "오픈에디션" CD 이미지를 다운로드한 다음 아래와 같은 명령으로 마운트를 시도해보자.

 

# mount -t iso9660 -o loop 파일명.iso 연결할_디렉터리

예: # mount -t iso9660 -o loop HaansoftLinux_OpenEdition_3.0_i386_disc1.iso /media/iso

 

※ 위명령을 사용하기 위해서는 "HaansoftLinux_OpenEdition_3.0_i386_disc1.iso"라는 iso 파일이 있어야 하고, /media 밑에 iso라는 디렉터리가 생성되어 있어야 한다.

 

명령을 살펴보면 일반 mount 명령을 사용하고 있으며, Type에 iso9660을 명시하였고, 옵션으로 loop를 사용한 것을 알 수 있다. iso9660에 명시된 표준 파일시스템 타입을 사용하는 것을 말하며, CD의 이미지 방식이기 때문에 loop 옵션을 사용하였다.

위와 같이 명령을 주면, 마치 CD를 CD-ROM드라이브에 넣은 것과 동일하게 iso 이미지를 마운트하여 활용할 수 있게 된다.

 

ISO 제작

리눅스 운영체제에 포함되어 있는 mkisofs 라는 명령을 사용하면 쉽게 iso 파일을 만들 수 있다.

iso로 만들고자 하는 파일 및 디렉터리들을 특정한 디렉터리에 넣어 두고, 아래와 같이 mkisofs 명령을 입력하자.

(ISO 제작에서는 옵션을 잘 사용해야 하므로, 옵션 부분을 유심히 살펴보자.)

 

# mkisofs [옵션들...] -o 결과물.iso 작업대상_경로

예: # mkisofs -v -J -R -V "HSOE30_i386" -o HSOE30_i386_disc1.iso /var/iso_data/

 

※ 위의 예는 iso로 만들고자 하는 데이터 및 디렉터리를 /var/iso_data 라는 디렉터리 하단에 모두 모아두고, 여러 옵션들을 사용하여 CD 이미지를 제작하는 명령이다. (위의 내용은 어디까지나 예제이다. 위의 옵션만으로 리눅스OS 배포판 CD가 만들어지지는 않는다.)

mkisofs 명령에서 사용되는 대표적인 옵션들은 아래와 같다.

 

[옵션 설명]

-b : boot image

-J : Joliet Directory Records. iso9660 file name

-r : 퍼미션 자동 변경

-T : Translation Table 파일을 갱신(생성)

-V [CD-Volume] : CD Volume 추가

-v : 작업 진행 상황 보이기

-o [File name] : 생성 결과 파일명

-R : Rock


'배워서 남주자 > Linux 명령' 카테고리의 다른 글

[nmap] nmap 사용법  (0) 2018.03.23
[tape 장비] Tape 백업  (0) 2018.03.23
[ifconfig] 네트워크 설정  (0) 2018.03.23
[find] find 옵션  (0) 2018.03.23
[route] network 또는 host 등록하기  (0) 2018.03.23

네트워크의 설정 (NIC, ifconfig)

 

NIC (Network Interface Card)

 

  - 리눅스에서 사용하는 Ethernet Card(eth0, eth1 등) 

 

  - 이더넷을 이용하여 LAN을 구성하기 위해서는 이더넷 카드(NIC)를 사용하며, 리눅스에서 이더넷

     카드는 eth0 , eth1 등의 장치명으로 표시된다. 네트워크 장치명은 /dev 에 등록되어 있지 않으며,

     커널이 장치 검색을 한 후에 장치명를 리턴한다.

  

 

 

ifconfig

 

  - 리눅스 네트워크 설정시 네트워크 인터페이스를 설정하는 명령어.

     NIC 상태확인, 설정, 수정 등에 사용

 

  - 형식

     : ifconfig      netmask    broadcast  

  - 주의

     : ifconfig를 사용하여 네트워크 정보를 설정했을 경우 시스템을 재부팅하면 네트워크 설정 정보는

       모두 사라진다.

 

   - ifconfig로 설정했을 경우 /etc/sysconfig/network-scripts/ifcfg-eth0, /etc/sysconfig/

      network,  /etc/resolv.conf  파일 등을 수동으로 설정해 주어야만 한다.

 

   - 커널에 상주하는 네트워크 장치를 구성하고, 부팅 시에 필요한 장치를 설정하기 위해 사용된다.

 

   - ifconfig 명령어를 이용하여 IP 주소, 넷마스크 등의 네트워크 정보를 설정할 수 있다.

 

   - ifconfig로  IP Address 할당하기

 

         다음과 같은 네트워크 정보를 ifconfig로 할당할 경우

           IP Address              192.168.1.31

           Netmask                  255.255.255.0

           Network Address     192.168.1.0

           Broadcast Address  192.168.1.255

 

         【root@colt357 root】# ifconfig eth0 192.168.1.31 netmask 255.255.255.0 broadcast 192.

                                168.1.255 up

 

    - 작동중인 네트워크 인터페이스 정보

 

       [root@cobee13 etc】# ifconfig  

          Link encap:Ethernet  HWaddr 00:04:23:B5:5D:92  
          inet addr:61.108.83.43  Bcast:61.108.83.127  Mask:255.255.255.128
          inet6 addr: fe80::204:23ff:feb5:5d92/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:12009614 errors:0 dropped:0 overruns:0 frame:0
          TX packets:17836040 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:1905778220 (1.7 GiB)  TX bytes:1895444103 (1.7 GiB)
          Base address:0xec80 Memory:febe0000-fec00000

        

            HWaddr : 각 NIC에 고유한 하드웨어(MAC) 주소이다. IP 주소 충돌 등의 문제가 발생할 때는

                            하드웨어 주소에 할당된 IP Address를 확인한다.

            inet addr : IPv4 방식으로 NIC에 할당된 IP 주소를 의미한다.

            Bcast :  브로드케스트 주소를 나타낸다.

            MTU(Macimum  Transmission  Unit) : 최대 전송 패킷의 크기를 말한다.

            Metric : 라우팅할 때 참조하는 거리에 관한 값으로, '1'은 같은 로컬을 의미한다.

            RX/TX : 받은 패킷에 대한 통계와 보낸 패킷에 대한 통계값을 나타낸다.

            packets :  받거나 보낸 패킷의 총 개수를, error는 그중 오류가 발생한 패킷의 개수를,

                            dropped는 이유를 막론하고 버려진 패킷의 개수를, 그리고 overruns는 이더넷

                            이 처리할 수 없는 속도로 빠르게 자료가 오고 감으로써 그 사이에서 손실된 패킷

                            의 개수를 나타낸다.

'배워서 남주자 > Linux 명령' 카테고리의 다른 글

[tape 장비] Tape 백업  (0) 2018.03.23
[mkisofs] ISO 압축하기  (0) 2018.03.23
[find] find 옵션  (0) 2018.03.23
[route] network 또는 host 등록하기  (0) 2018.03.23
[ps] 프로세스 명령  (0) 2018.03.23

find 는 특정 속성의 파일을 검색할 경우 많이 사용된다.

【 -type c】
        File is of type c:
      b      block (buffered) special
      c      character (unbuffered) special
      d      directory
      p      named pipe (FIFO)
      f      regular file
      l      symbolic link
      s      socket
      D      door (Solaris)

【 -newer   file1 】
    --> file1 보다

 

====================================================================================

【 특정단어 찾기 】

 

 find . -type f -exec grep -H 'babo' {} \; 

-H 는 화일명 표시하기 옵션

 

===================================================================================

【 find 】

find 경로명-리스트 수식

 

유용한 옵션들

옵션들은 결합될 수 있다.

 

-name 화일명        만약 " 화일명" 이 현재 황리 이름과 맞으면 참

-perm octnum         만약 접근 허용이 8진수 octnum과 맞으면 참

-print                    화일 이름을 출력

-type t                  만약 화일의 형이 t 이면 참.    t는 d(디렉토리), f(화일), c(문자 특수화일), b(블럭화일)

-exec 명령어          실행 명령어가 0 종료 상태를 반환하면 참, 현재 경로명을 {}로 대치,  "명령어" 뒤에 "\;" 이 나온다.

-size n                   화일의 크기가 n이면 참 (+n 은 n보다 큰것을, -n은 n보다 작은 것을 찾을 때 사용한다.)

 

 

 

 

==========================================================================

옵션명령 -maxdepth 와 -mindepth에 대한 정의

==========================================================================

1. maxdepth 의 의미는 현재위치에서  지정된 단계까지의 검색 뜻함.

  ex) find  /home  -name 'kiss' -type d -maxdepth 3

       => /home 에서부터  이름이 kiss인 디렉토리를 /home 의 서브디렉토리 3단계까지 찾는다.

 

2. mindepth 의 의미는 지정된 단계에서부터 그 이후의 단계까지 (끝까지)를 의미한다.

    ex)find /home/segio -name 'kiss' -type d -mindepth 3

      =>/home/segio를 기준으로  그 이하 서브3단계에서부터 끝까지  kiss라는 디렉토리를 찾는다.

 

3. 특정 단계의 디렉토리만을 선택하려면 다음과 같이 두 옵션을 모두 사용한다.

     ex) find  /home -name 'kiss' -type f  -maxdepth 2 -mindepth 2

      => /home 에서 2단계에 속하는 위치에서만  이름이 kiss인 디렉토리를 찾는다.

'배워서 남주자 > Linux 명령' 카테고리의 다른 글

[mkisofs] ISO 압축하기  (0) 2018.03.23
[ifconfig] 네트워크 설정  (0) 2018.03.23
[route] network 또는 host 등록하기  (0) 2018.03.23
[ps] 프로세스 명령  (0) 2018.03.23
[date] 시스템 날짜 변경하기  (0) 2018.03.23

route add/del -net/-host network/host address 


route add/del default gw IP dev interface 



'배워서 남주자 > Linux 명령' 카테고리의 다른 글

[ifconfig] 네트워크 설정  (0) 2018.03.23
[find] find 옵션  (0) 2018.03.23
[ps] 프로세스 명령  (0) 2018.03.23
[date] 시스템 날짜 변경하기  (0) 2018.03.23
[split] TAR 분할 압출하기  (0) 2018.03.23

ps aux 상태를 보여주는 STAT상태.. 
(옵션  -a: 모든 유저들의 프로세스 
        -u: 사용자 이름과 시간등 
        -x: 기타 프로세스 


  R - 실행대기상태 
  S - 잠든상태 
  D - 입출력을 기다리는 인터럽트가 불가능한 상태 
  T - 멈춰있거나 흔적이 남아 있는 상태 
  Z - 좀비(zombie) 완전히 죽어 있는 상태 

# 프로세스를 확인하기위해서는 grep 를 함께 쓴다. 
  ps -aux | grep bbsd 
  ps -ef  | grep bbsd 
  이런식으로 찾았으나...pid 번호만을 찾을때는 
  pidof  bbsd 
  이렇게 사용해도 무관하다.... 


#kill 프로세스 (옵션   -9: 강제종료) 
  kill  PID 



+ Recent posts