OS

  • Q. 리눅스 서버에서 DNS 서버를 여러개 등록후 timeout이나 재시도 횟수는 어떻게 적용하나요?

    A.

    # vi /etc/resolv.conf

     

    nameserver 192.168.0.1

     

    nameserver 192.168.0.2

     

    options timeout:20 attempts:3

     

     

     

    위와 같이 적용하면, 1 nameserver 192.168.0.1  20초씩 3번을 시도한 resolving 안되면 2 nameserver 질의하게 됩니다.

     

     Option 대한 세부 사항은 Linux manpage 참조하시기 바랍니다.

  • Q. history 명령어 사용방법 팁

    1. history 리스트에 날짜 시간 찍기
    사용자가 사용한 명령어를 남기는 history 명령어 실행시 일반적으로 실행 시킨 순서별로만 정렬이 되어 history를 출력합니다. 언제 실행시킨 명령어인지 확인하는 방법으로 history 리스트에 날짜와 시간을 나타나게 할 수 있습니다.

    ex)
    # export HISTTIMEFORMAT=’%F %T ‘
    – 확인
    # history | more

    추가적으로 /etc/profile의 마지막 라인에 아래의 내용을 입력하여 해당 명령어들의 날짜와 시간을 같이 쌓게 하면 지속해서 언제 실행시킨 명령어인지 확인할 수 있습니다.

    ex)
    # vi /etc/profile
    HISTTIMEFORMAT=”%F %T – ”
    export HISTTIMEFORMAT

    입력하신 후 #source /etc/profile 명령어 실행시 바로 적용 가능 합니다.

    2. history 찾아보기
    # (prompt 상에서 ctrl + r 클릭)
    (prompt 창이 아래와 같이 바뀜)
    (reverse-i-search)

    이상태에서 검색하고 싶은 단어를 넣으면 히스토리중에 맞은 글자를 찾아서 보여줍니다.

    3. history 에 반복되는 명령어는 한번만 기록 남기기
    # export HISTCONTROL=ignoredups

  • Q. RedHat Enterprise Linux(이하 RHEL) 에서 USB Memory 장치를 보안상 연결을 막고자 하는데 방법이 있을까요

    A.

    RHEL 에서 modprobe.conf 를 사용하여 Device 장치 인식을 막을 수 있습니다.

    RHEL4&5
    /etc/modprobe.conf
    install usb-storage \
    wall “USB storage devices not allowed!” \
    && /bin/false

    RHEL3
    /etc/modules.conf
    install usb_storage \
    wall “USB storage devices not allowed!” \
    && /bin/false

  • Q. Telnet, Vsftp 에서 Root 계정 제한 풀기

    A.

    TELNET, VSFTP는 기본적으로 ROOT 계정에 대해 기본적으로 접근이 되지 않게 되어있습니다.
    작업중 편의를 위해 잠시 ROOT의 접근을 풀어서 사용하시는 경우가 있으실 것입니다.

    A. TELNET ROOT 계정 해제.
    /etc/securetty 파일을 수정 합니다.
    = 마지막 라인 부터 해당 내용 추가 =
    pts/0
    pts/1
    pts/2
    pts/3
    pts/4
    pts/5
    pts/6
    pts/7
    pts/8
    pts/9

    저장후 종료

    이제 telnet으로 root 계정 접근 테스트를 하시면 root로 접근이 되실 것입니다.

    B. ftp root 계정 접근.
    RHEL5 기준
    /etc/vsftpd/ftpusers
    # Users that are not allowed to login via ftp
    root < = 해당 라인 주석 처리. #root
    bin
    daemon
    …..

    /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 < = 해당라인 주석 처리 #root
    bin
    daemon
    ….

    RHEL 4는 해당 파일들이 /etc/vsftpd.ftpusers , /etc/vsftpd,user_list 로서 존재하고 있으면 설정 내용은 동일 합니다.

    설정 후에 ftp 접근 테스트를 진행 하시면 root로 접근 되는 것을 확인 할 수 있습니다.

    *** 참고 사항. ***
    작업의 편의성에 의해 root 접근을 허용 하셨다면 작업 완료 후에 보안상
    root의 접근을 제한 하시는 것을 권장 드립니다.

  • Q. Apache 특정 브라우저의 접속을 차단

    A.

    SetEnvIfNoCase User-Agent “^Microsoft URL Control” dont_want

    <Directory /usr/local/apache/htdocs>
    <Limit GET POST>
    Order Allow,Deny
    Allow from all
    Deny from env=dont_want
    </Limit>
    </Directory>

    SetEnvIfNoCase User-Agent “^Wget” bad_bot
    SetEnvIfNoCase User-Agent “^EmailSiphon” bad_bot
    SetEnvIfNoCase User-Agent “^EmailWolf” bad_bot

    The ‘SetEnvIfNoCase’ simply sets an enviornment (SetEnv) variable called
    ‘bad_bot’ If (SetEnvIf) the ‘User-Agent’ string contains Wget, EmailSiphon, or
    EmailWolf, regardless of case (SetEnvIfNoCase). In english, anytime a browser
    with a name containing ‘wget, emailsiphon, or emailwolf’ accesses our website,
    we set a variable called ‘bad_bot’. We’d also want to add a line for the
    User-Agent string of any other Spidert we want to deny.

    Now we tell Apache which directories to block the Spiderts from with the
    <Directory> directive:

    <Directory “/home/evolt/public_html/users/”>
    Order Allow,Deny
    Allow from all
    Deny from env=bad_bot
    </Directory>

  • Q. -(하이픈)으로 시작하는 파일 지우기

    A.

    파일명이
    하이픈
    (-)으로
    시작하는 파일

    rm
    ./-filename 
    상대경로를
    이용하여 파일명을 지정해줌

    rm
    – -filename –

    이용 그 이후에는 오는 
    ”-filename”이라는
    파일이 옵션이

    아닌
    파일명이라는 것을 밝힘

  • Q. history 명령어 사용시 날짜와 시간 남기는 방법은?

    A.

    사용자가 사용한 명령어를 남기는 history 명령시 언제 실행시킨 명령어인지 확인 할수 있는 방법이 없는지 물어오시는 분들이 계신데요.

    일반적으로 history 명령어 실행시 실행 시킨 순서별로만 정렬이 되어 history를 출력합니다.

    하지만 /etc/profile의 마지막 라인에 아래의 내용을 추가 하여 해당 명령어들의 날짜와 시간을 같이 쌓게 할수 있습니다.

    # vi /etc/profile
    HISTTIMEFORMAT=”%F %T – ”
    export HISTTIMEFORMAT

    추가 하신후 #source /etc/profile 명령어 실행시 바로 적용 가능 합니다.

  • Q. **/boot 파티션 복구하는 방법

    A.
    **/boot 파티션 복구하는 방법 입니다.

    - /boot 파티션이 첫번째 디스크의 첫번째 파티션에 설치되었다고 가정
    - x86 아키텍처

    1. rescue mode로 시스템을 부팅

    Red Hat Enterprise Linux CD #1 을 넣고 부팅해라. 그리고 프롬프트에 “linux rescue” 를 입력하고 부팅.

    프롬프트에서 chroot to /mnt/sysimage

    # chroot /mnt/sysimage

    2. boot 파티션이 /etc/fstab에 label

    # e2label /dev/sda1 /boot

    3. boot 파티션 마운트

    # mount /dev/sda1 /boot

    4. rpm을 설치하기 위해서 CD를 마운트

    # mkdir /mnt/iso
    # mount -o loop,ro /dev/hdc /mnt/iso
    # cd /mnt/iso/Server
    # rpm -Uvh –replacefiles –replacepkgs grub-0.97-13.i386.rpm
    # rpm -Uvh –replacefiles –replacepkgs redhat-logos-4.9.16-1.noarch.rpm
    # rpm -ivh –replacefiles –replacepkgs kernel-2.6.18-8.el5.i686.rpm

    5. GRUB 설치

    # grub-install /dev/sda

    6. 만약 /boot/grub/grub.conf 이 삭제되었다면 수동으로 생성해야 한다.

    예)

    default=0
    timeout=5
    splashimage=(hd0,0)/grub/splash.xpm.gz
    hiddenmenu

    title Red Hat Enterprise Linux (2.6.18-8.el5)
    root (hd0,0)
    kernel /vmlinuz-2.6.18-8.el5 ro root=LABEL=/
    initrd /initrd-2.6.18-8.el5.img

    참고. “vmlinuz-2.6.18-8.el5″ 와 “initrd-2.6.18-8.el5.img” 이 반드시 /boot 디렉토리 하위에 있어야 한다

    7. grub.conf에 대한 soft link

    # cd /boot/grub
    # ln -s grub.conf menu.lst

    8. 재부팅

    # reboot

  • Q. 시스템 재부팅시 vsftp 서비스가 자동으로 시작되게 할 수 없나요

    A.

    첫째로 리눅스 시스템에 vsftp가 설치 되어 있는지 확인 합니다.
    # rpm -qa | grep vsftp
    vsftpd-2.0.5-12.el5

    둘째로 vsftp가 수동으로 정상 시작/종료되는지 확인 합니다.
    # service vsftpd start
    vsftpd에 대한 vsftpd을 시작 중: [ OK ]

    # service vsftpd stop
    vsftpd를 종료 중: [ OK ]

    셋째로 vsftp 서비스를 재부팅시 자동으로 시작되게 설정 합니다.
    -현재 설정 확인-
    # chkconfig –list vsftpd
    vsftpd 0:해제 1:해제 2:해제 3:해제 4:해제 5:해제 6:해제

    - 재부팅시 vsftpd 기동 설정-
    # chkconfig vsftpd on

    -변경 후 설정 확인 -
    # chkconfig –list vsftpd
    vsftpd 0:해제 1:해제 2:활성 3:활성 4:활성 5:활성 6:해제

    *** 참고사항 : 위의 0, 1, 2, 3, 4, 5, 6 은 리눅스 시스템의 부팅의 RunLevel을 의미 합니다.
    # Default runlevel. The runlevels used by RHS are:
    # 0 – halt (Do NOT set initdefault to this)
    # 1 – Single user mode
    # 2 – Multiuser, without NFS (The same as 3, if you do not have networking)
    # 3 – Full multiuser mode
    # 4 – unused
    # 5 – X11
    # 6 – reboot (Do NOT set initdefault to this)

  • Q. ssh 인증키를 사용한 자동 로그인 설정 방법.(R…

    A.

    여기서는 기본값으로 제공하는 공개키 암호화 방식인 RSA로 설명합니다.
    환경 설정에 필요한 파일
    $HOME/.ssh/id_rsa
    $HOME/.ssh/id_rsa.pub
    Remote_Host:$HOME/.ssh/authorized_keys

    먼저 Local Host에서 RSA Key를 생성합니다.
    $ ssh-keygen
    Generating public/private rsa key pair.
    Enter file in which to save the key (/home/user/.ssh/id_rsa):
    Enter passphrase (empty for no passphrase):
    Enter same passphrase again:
    Your identification has been saved in /home/user/.ssh/id_rsa.
    Your public key has been saved in /home/user/.ssh/id_rsa.pub.
    The key fingerprint is:
    1e:b2:f4:89:5a:7f:2d:a5:a5:4d:6d:66:2c:82:d8:18 root@localhost

    ssh-copy-id라는 스크립트 명령을 통해 접속할 HOST의 User로 id_rsa.pub 파일을 복사합니다.

    # ssh-copy-id -i $HOME/.ssh/id_rsa.pub user@
    user@’s password:
    Now try logging into the machine, with “ssh ‘user@’”, and
    check in:
    .ssh/authorized_keys
    to make sure we haven’t added extra keys that you weren’t expecting.

    이렇게 한후 해당 Local Host에서 Remote Host의 해당 User로 접근을 시도하면 자동으로 로그인이 됩니다.
    $ssh user@Remot_Host
    RedHat Enterprise Linux 5에서는 ssh-copy-id라는 스크립트 명령을 통해 보다 쉽게 ssh key 생성 설정을 할 수 있습니다.