[FreeNAS] Boot TIP

Home NAS 구축 2016. 1. 29. 11:06

업데이트 또는 설정 꼬임 등의 문제로 부트시에 표기나 에러가 발생한다면

기존 복구지점이 보통 존재하여, 해당 부트로더 부팅이 가능합니다.

환경설정도 해당 시점으로 돌아가기 때문에 별도의 백업이 필요합니다.

( 저장 위치는 /data/.db 파일들 )

 

 최하단에 있는것이 최근 부팅본이며

그 위로 날짜별로 거슬러 올라가 [Activate] 를 눌러 활성화해준 뒤 리부팅을 하면 됩니다.

(콘솔 부팅시 선택메뉴와 동일 합니다)

 

블로그 이미지

늙은M군

개인 저장공간입니다. 해당 일부 과정들을 공인 인터넷 환경에서 악성적으로 응용할 시 피해가 발생할 수 있으며, 그에 대해 책임은 사용자에게 있습니다!! 주의해주세요.

,

1. WAN ( 가정 100Mbps Full )

2. Dell Poweredge T20 메인 서버 ( 내부망 1Gbps Full )

E3-1225v3 / 32GB / SSD128GB ( Datastore ) / Toshiba 3TB X 4EA

3. 네트워크 구성

ESXi Hypervisor 6.0.0 (업데이트 예정) - pfsense 와 FreeNAS 는 Datastore에 설치 ( SSD )

pfsense 2.1.5 ( 업데이트 안함 )

FreeNAS 9.3

- ESXi 의 VT-d passthough 기능으로 기존 ZFS Pool ( main ) 을 담고 있는 3TB X 4EA 디스크들을 직결하여 Import

- 기존 iSCSi 에서 금융전용 서버와 해외 VPN / Proxy 로 사용할 서버 2개만 사용. 나머지는 폐기. Jail 로 대체. 

- WAN -> Hypervisor ( 공인 IP ) -> pfsense ( 192.168.1.15 / 투명모드 ) -> LAN단 ( FreeNAS 192.168.1.20 )

 

[ IP 할당 ( 포트포워딩 ) ]

T20 Hypervisor ( WAN 에서 들어온 공인 IP )

pfsense ( 192.168.1.15 ) - 이하 LAN 단 사설 할당 

FreeNAS ( 192.168.1.20 ) - NAS FTP 개방 ( root 외 일반 FTP 유저는 SSH 로그인 불허 )

 

iSCSi Target ( Zpool 에서 Zvol 로 별도 볼륨화하여 외부 ESXi로 뿌린다 )

- Windows ( 금융전용 서버 50G ) - 192.168.1.21

- Windows ( VPN / Proxy 100G ) - 192.168.1.22

- Windows ( IRC-Bot / 10G ) - 192.168.1.23

- Linux ( WEB/DB 30G ) - 192.168.1.33


- Linux Test #1 ( 192.168.1.25 )

- Linux Test #2 ( 192.168.1.26 )   -- 서버 동기화 테스트 용 ( HA / LB / Rsync 등 )

- Linux Test #3 ( 192.168.1.27 ) -- 지인 연습서버

- Linux Test #4 ( 192.168.1.28 ) -- 지인 연습서버 #2


 

- 여분

Jails ( FreeNAS 커널 내부의 컨테이너 )

- Owncloud ( 192.168.1.30 )

- Plex Media Server ( 192.168.1.31 )

- TorrnetMission ( 192.168.1.32 )

- 여분 

 

[ 관리 ]

iSCSI Target 및 컨테이너는 둘다 ZFS Pool 기반 위에서 생성되므로 FreeNAS 의 [스토리지] 탭 에서 각각의 볼륨 별

Snapshot 이 가능하다.

 

[ 기본 예시도 ]

 

 

 

 

 

 

 

 

 

블로그 이미지

늙은M군

개인 저장공간입니다. 해당 일부 과정들을 공인 인터넷 환경에서 악성적으로 응용할 시 피해가 발생할 수 있으며, 그에 대해 책임은 사용자에게 있습니다!! 주의해주세요.

,

이제 구성된 CentOS + ZFS RAIDZ1 시스템의 zpool 에서 일정 부분을 iSCSi Target 으로 설정하여,

ESXi 하이퍼바이저 하에서 다른 가상 시스템의 메인 하드디스크 용도로 사용할 것입니다.

방법은 어렵지 않습니다. ZFS 시스템에서 부분적으로 파티션( /~ ) 이 아닌 DISK 장치 ( /dev/~ ) 를 만들고,

그것을 네트워크 Target 으로 삼아, 게시하는 것입니다.


[ 계획도 ]

- SSD 데이터스토어에 설치한 가상 CentOS(20GB) 시스템 메인에서 

외부의 모든 물리 하드디스크를 원시매핑(RDM) 하여, OpenZFS로 디스크 전체 Zpool 을 구성한 상태.

 그 상태에서 외부 가상시스템의 메인 하드디스크로 iSCSi 를 내보내기 위해 Target 을 구성.





 1. iSCSi Target 생성을 위해 Package 를 설치합니다. ( Yum install scsi-target-utils )

 

- 의존성 패키지가 추가로 같이 설치 될 것입니다.

Installed:
  scsi-target-utils.x86_64 0:1.0.24-16.el6

Dependency Installed:
  libibverbs.x86_64 0:1.1.8-3.el6           librdmacm.x86_64 0:1.0.18.1-1.el6
  perl-Config-General.noarch 0:2.52-1.el6   sg3_utils.x86_64 0:1.28-6.el6


 

2. chkconfig | grep tgtd 로 해당 서비스가 정상적으로 올라왔는지 확인 합니다

 

- 보통 모든 init 레벨에서 해제되어 있으므로 chkconfig tgtd on 으로 켜 주도록 합시다.

tgtd            0:해제  1:해제  2:활성  3:활성  4:활성  5:활성  6:해제

그리고 서비스 스타트도 잊지 말아야 합니다. ( 꺼져 있으면 tgtadm 이 실행되지 않습니다 )

# service tgtd start 또는 /etc/init.d/tgtd start

 

3. iSCSi Target Controller와 Name 을 LUN 0 으로 우선 등록해 줍니다.

 

- 네트워크에서 검색될 도메인명과 기본 Lun 을 지정해 주는 단계입니다.

원하는 도메인명(실제 도메인이 아님! 원하는대로) 을 입력하면 됩니다. ( ex : 도메인 : 스토리지 구분 네이밍 )

 

[ 네트워크 상에서 myunginy.iptime.org:storage.win 라는 이름으로 검색할 수 있게 생성 ]

#tgtadm --lld iscsi --op new --mode target --tid 1 -T myunginy.iptime.org:storage.win
정상적으로 생성되었다면 엔터 후 아무 메세지도 나오지 않아야 합니다.

--tid 값은 새 Target 을 만들 때 증가시켜 주면 됩니다.

 

[ 정상적으로 위의 내용이 생성되었는지 확인하기 ]

#tgtadm --lld iscsi --op show --mode target

Target 1: myunginy.iptime.org:storage.win
    System information:
        Driver: iscsi
        State: ready
    I_T nexus information:
    LUN information:
        LUN: 0
            Type: controller
            SCSI ID: IET     00010000
            SCSI SN: beaf10
            Size: 0 MB, Block size: 1
            Online: Yes
            Removable media: No
            Prevent removal: No
            Readonly: No
            Backing store type: null
            Backing store path: None
            Backing store flags:
    Account information:
    ACL information:

와 유사하게 나오면 정상적으로 생성이 된 것입니다.

생성만 하였지 실제 DISK 와 매핑시키지 않았기에 용량 정보가 없어야 합니다.

 

4. ZFS 파일시스템에서 50GB 를 DISK Device 로 할당한 후 iSCSi 의 Lun 1 에 매핑시킵니다


정상적인 물리 디스크라면 df -h 에 표시되는 /dev/sda 같은. 원하는 디바이스를 그대로 매핑하면 됩니다만

여기서는 현재 CentOS 에 RDM + RAIDZ 된 Zpool 에서 50GB 만을 논리적으로 장치화하여 매핑할 것입니다.

방법은 간단합니다

 

#1. 파티션이 아닌, 장치를 생성합니다

#zfs create -V 50G main/windows

main 은 zpool 이름이고 그 아래로 windows 라는 disk 를 만들겠다는 의미입니다. 엔터 후에 아무 표시도 되지 않으면 정상.

이것은 파티션이 아닌 장치이므로 마운트를 거치지 않아 df -h 에 바로 보이지 않습니다.

 

[root@localhost ~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda2       7.6G  367M  6.9G   6% /
tmpfs           939M  4.0K  939M   1% /dev/shm
/dev/sda1       190M   62M  119M  34% /boot
/dev/sda7       187M  1.6M  176M   1% /home
/dev/sda3       5.7G  1.4G  4.1G  25% /usr
/dev/sda6       1.9G  467M  1.4G  26% /var
main            7.7T  128K  7.7T   1% /main
main/ftp        8.0T  240G  7.7T   3% /main/ftp                               zpool의 범주 ( 생성한 windows 는 보이지 않습니다 )
main/owncloud   7.8T   40G  7.7T   1% /main/owncloud

생성한 장치는 다음 위치에 있습니다.

# cd /dev/zvol/main/windows

해당 /dev/zvol/main/windows 라는 disk 를 iSCSi Target 의 Lun 1 로 매핑하면 됩니다.

 

 

#2. Lun 1 에 매핑

# tgtadm --lld iscsi --op new --mode logicalunit --tid 1 --lun 1 -b /dev/zvol/main/windows
엔터 후 아무 메세지도 나오지 않으면 설정 된 것입니다.

정상적으로 생성되었는지 위에서 사용한 show 명령어를 이용하여 확인합니다.

#tgtadm --lld iscsi --op show --mode target

Target 1: myunginy.iptime.org:storage.win
    System information:
        Driver: iscsi
        State: ready
    I_T nexus information:
    LUN information:
        LUN: 0
            Type: controller
            SCSI ID: IET     00010000
            SCSI SN: beaf10
            Size: 0 MB, Block size: 1
            Online: Yes
            Removable media: No
            Prevent removal: No
            Readonly: No
            Backing store type: null
            Backing store path: None
            Backing store flags:
        LUN: 1
            Type: disk
            SCSI ID: IET     00010001
            SCSI SN: beaf11
            Size: 53687 MB, Block size: 512
            Online: Yes
            Removable media: No
            Prevent removal: No
            Readonly: No
            Backing store type: rdwr
            Backing store path: /dev/zvol/main/windows
            Backing store flags:
    Account information:
    ACL information:

 

네 LUN 1에 아까 zfs create -V 50G 로 생성한 크기만큼 매핑이 되어 있습니다. 경로도 맞군요.

이제 네트워크 게시가 끝난 것입니다. 저번에 물리하드를 가상화에 직접 연결하던 RDM 과 어찌보면 다를 게 없죠? ^^

이제 저걸 외부에서 검색해서 찾아가기만 하면 되는 것입니다.

그러기 위해서는 네트워크의 해당 iSCSi Target PORT 가 열려 있어야 합니다. 보통 디폴트는 3260 포트 입니다.

바인드 해 주어야겠죠? ( 일종의 네트워크 포트 포워딩입니다 )

 

[ 외부 전체에 BIND 하기 ]

#tgtadm --lld iscsi --op bind --mode target --tid 1 -I ALL
엔터 후 아무 메세지도 나오지 않으면 성립된 것입니다.

말 그대로 target 1 을 ALL 전체 BIND 하겠다는 커맨드입니다.

 

[ BIND 후 포트가 열려 있는지 확인하기 ]

#netstat -atunp | grep 3260
tcp        0      0 0.0.0.0:3260                0.0.0.0:*                   LISTEN      14245/tgtd
tcp        0      0 :::3260                     :::*                        LISTEN      14245/tgtd

 

[ 현재 설정한 내용을 환경파일에 저장하기 ]

#tgt-admin --dump > /etc/tgt/targets.conf

※ 기존에 이미 관련 정보가 있다면 > 말고 >> 로 추가해 주시면 됩니다.

타겟 시스템에서 기본 구성은 끝났습니다. 이젠 ESXi vSphere Client 에서 불러오면 됩니다.

 

5. 하이퍼바이저에서 인식시키기


#1. 관리 Client인 vSphere Client 에서 소프트웨어적인 iSCSi 컨트롤러를 설치 해 줍니다.

[스토리지 어댑터] 탭에서 [추가] 버튼을 누르거나 , 마우스 오른쪽 버튼으로 추가할 수 있습니다.

 




 구성은 모두 디폴트로 세팅 합니다.


#2. 자동으로 iSCSi Target 추가하기

우리는 앞에서 이미 구성을 했으므로, 단순히 찾아만 주면 됩니다. 

추가된 iSCSI 컨트롤러 속성에 가셔서 [동적 구성] 탭에서 CentOS 의 IP 를 추가해 주면 됩니다. 포트는 기본 그대로입니다.




아이피만 입력하고 확인을 누르면, 서버 위치에 저렇게 뜨면 정상입니다.


#3. 확인 후 바깥으로 나오면 iSCSi 컨트롤러에 이제 경로가 추가되어 있습니다.




이제 연결이 완료된 것입니다. 쉽죠?



6. 새 가상 시스템 만들어서 해당 iSCSi Target 의 LUM 1 을 메인 하드디스크로 사용하기

 

네 이 작업을 하려고 기나긴 1~5를 해온 것인데요.

이제 기본적으로 새 가상시스템 설치를 진행하도록 합니다. 

방식은

[표준 설치] 선택 후 하드디스크 [없음] 으로 진행하여, 시스템 생성한 뒤 [편집] 에서 추가하는 방법과

[사용자 지정] 선택 후, 하드디스크 선택에서 [가상 디바이스] 를 선택하는 방법이 있습니다.


그간 비활성화되어 있던 [원시 디바이스] 탭이 활성화되어 있을 것입니다.




나머지는 적당히 디폴트로 진행하셔도 됩니다.


이로써, 별도의 하드디스크를 사용하지 않고, 

CentOS 에서 ZFS 구성한 Zpool 에서 50GB만을 별도로 하드디스크화해서 사용하게 되었습니다!


고생하셨습니다.

다음 게시물은 CentOS 에 네트워크 모니터링 툴 설치 항목입니다. 

블로그 이미지

늙은M군

개인 저장공간입니다. 해당 일부 과정들을 공인 인터넷 환경에서 악성적으로 응용할 시 피해가 발생할 수 있으며, 그에 대해 책임은 사용자에게 있습니다!! 주의해주세요.

,

Network 설정 파일인 /efc/sysconfig/network-scripts/ifcfg-eth0 에 대해 간단히 짚어보고 넘어가겠습니다.

네트워크의 기본적인 설정은 /etc/sysconfig/network 와 이 두 파일에서 한다고 보면 됩니다.

근래 CentOS 는 GUI 환경이 지원되기 때문에, 그곳에서 설정할 수도 있으나 개인적으로는 추천하지 않습니다.

다양한 환경과 상황을 위해서는 역시 커맨드 모드에 익숙해지도록 합시다.

 

1. /etc/sysconfig/network

리눅스를 로그인하면,

[root@myunginy ~]#

처럼 뜨는데요. myunginy < 가 현재 네트워크의 네임 명을 의미 합니다.

@앞은 사용자 계정을 의미하구요.

뒤의 ~는 현재 사용자가 위치한 곳을 가리킵니다.

 

해당 네트워크의 네임명을 이 파일에서 변경할 수 있습니다.

 

NETWORKING=YES

HOSTNAME= [바꿀 네임명]

 

2. /etc/sysconfig/network-scripts/ifcfg-eth0

만약 랜카드를 다중으로 써서 eth0 말고 1..2..3 이 존재할 경우 그에 맞춰서 수정하시면 됩니다.

수정 후 네트워크 서비스를 재시작해 주어야 적용 됩니다.

( 단일 네트워크일 경우 service network restart 또는 /etc/rc.d/init.d/network restart )

( 혹여 여러 랜카드 중 지정해서 재기동해야 할 경우에는 ifdown 후 ifup 또는 ifconfig [ eth() ] down/up 명령으로 기동할 수 있습니다. )

 

DEVICE=eth0        :: 장치 인식명
TYPE=Ethernet        :: 장치의 타입 ( 일반적으로 이더넷 외에 볼 일이 없습니다 ) 
ONBOOT=yes        :: 부트 시 랜카드를 자동으로 올릴 것인지의 유/무
NM_CONTROLLED=yes        :: Network Management 의 사용 유/무
BOOTPROTO=none        :: IP 할당 타입. none ( 없음 ) | static ( 수동 ) | dhcp ( 동적 )
HWADDR=00:0c:29:f0:1d:a5        :: 하드웨어 장비의 MAC Address
IPADDR=192.168.0.5    :: IP 수동 지정일 경우, 이 곳에 기입.
PREFIX=24    :: 넷마스크의 255.255.255.0와 의미하는 바가 비슷하지만, 둘 다 설정되어 있을 경우 이 쪽이 우선됩니다.
GATEWAY=192.168.0.1        :: 출구. 네트워크가 나갈 Gateway
DEFROUTE=yes        :: 시스템에 셋팅된 Default Routing의 사용 유/무
IPV4_FAILURE_FATAL=yes         :: yes로 설정 시, dhclient 자동 할당 실패 이후 네트워크가 바로 자동 종료됩니다.
IPV6INIT=no        :: ipv6 의 사용 유/무
NAME="System eth0"        ::네트워크 장치의 별칭을 지정합니다.
NETMASK=255.255.255.0        ::서브넷 마스크
USERCTL=no        ::일반 유저의 네트워크 컨트롤 유/무


위 모든 것이 나와있을 수도 있고, 일부가 빠져 있을 수도 있습니다만, 기본적인 구동에는 서너 가지만 필요합니다.

UUID , PEERDNS 등의 옵션이 더 있을 수도 있으나 특별한 상황 외에는 입력하지 않아도 무난 합니다.

DNS1,2 = 도 별도로 입력 가능 합니다.

 

 

다음 장부터 본격적인 기초 명령어를 들어가보도록 하겠습니다.

지금까지 진행한 부분은, 이해가 안 되어도, 나중에 자연스럽게 알게 될 겁니다.

 

리눅스 각 데몬들의 환경 설정에 대한 모든 옵션은, /usr/share/doc/initscripts-(커널버젼:tab키로 자동완성 요망)/sysconfig.txt 파일에서 / 로 검색하여 확인해 볼 수 있습니다.

 

(계속)

 

 

 

블로그 이미지

늙은M군

개인 저장공간입니다. 해당 일부 과정들을 공인 인터넷 환경에서 악성적으로 응용할 시 피해가 발생할 수 있으며, 그에 대해 책임은 사용자에게 있습니다!! 주의해주세요.

,

#01에서 putty 로 접근까지는 좋았는데, 정작 들어간 다음에 네트워크 확인차

ifconfig 라는 명령어를 쳐보도록 합시다.

별도의 옵션이 없으면, 현재 연결된 모든 네트워크의 상태를 출력해 줍니다.

1단일 랜카드일 경우 eth0 과 lo ( 루프백 ) 을 출력하는데, eth0 만 보기로 하지요.

 

ifconfig eth0   ( 만약 네트워크가 수동 상태라 보이지 않는다면 ifconfig eth0 up / down 명령어로 조절 가능 합니다 )

만약, 아무런 정보가 기입이 되어 있지 않다면 ifconfig eth0 [ IP | netmask | up ] 을 입력하여 직접 불러올릴 수도 있습니다. ( 콘솔 )

 

putty 로 외부 리모트 중에 ifconfig eth0 down 나 service network stop 같은 명령어를 치면, 그 순간 네트워크가 꺼지면서, 원격도 꺼져 버리니 주의!

 

우리는 일단 네트워크가 되는 상태니까 putty 로 리눅스에 원격 접근한 거지요? ^^

 

하나 더 참고를 드리자면, 클래스 C..그러니까 255.255.255.0 의 환경에서는 ifconfig 넷마스크를 입력할 필요가 없습니다만, 그 이외의서브네팅이 존재한다면 필히 기입해 주어야 한다는 것!

 

 

그림과 같이 네트워크가 연결이 되지 않을 경우

1. 네트워크 구성정보가 정확한지 확인합니다.

2. Default Gateway ( 나가는 출구 ) 가 제대로 설정되었는지 확인합니다.

입니다. route 명령어로 우리는 현재 default gw 가 192.168.0.1 로 설정되어 있는 것을 볼 수 있습니다.

ping 8.8.8.8   로 외부 통신이 가능한지 체크해 봅시다.

 

만약 디폴트 게이트웨이가 제대로 설정되어 있지 않아 핑이 나가지 않는다면

route add default gw x.x.x.x  로 경로를 잡아 주도록 합니다.

 

물론 첫 장에 말했지만, 일반유저는 시스템 및 네트워크의 속성을 변경할 수 없습니다. root 의 권한에서 가능 합니다.

 

자, 네트워크 준비가 다 되었다면 ping 으로 이제 도메인을 쳐 봅시다. www.google.com

ping www.google.com

어? 이게 무슨 문제일까요. ping 8.8.8.8 은 잘 되는데 www.google.com 은 되지가 않습니다  !

이는 당연하게도, 우리는 숫자가 아닌 문자 google.com 을 입력했는데, 그걸 IP로 매칭해주는 설정

셋팅되어 있지 않아서 그렇습니다. 그래서 네트워크는 되는데 왜 인터넷이나 패키지 다운로드가 되지 않느냐고

질문하시는 초보자분들이 생각보다 많습니다 ^^ ( 패키지 미러링 사이트들도 문자니까요 )

 

해당 문제는 도메인 네임 ( Domain name ) 의 매칭 문제로써 DNS 가 필요합니다.

DNS 는 자신의 컴에 세팅할 수도 있지만, 일단은 기본적으로 KT의 공인된 수퍼 DNS 서버를 거치도록 합시다.

편집기로 /etc/resolve.conf 라는 파일을 열어서 nameserver 에 168.126.63.1 을 추가해 주면 됩니다.

TIP) 중간까지 치다가 TAB 키를 누르면 -맞다면- 뒤가 자동완성이 됩니다. 유용하니 익숙해지도록 합시다.

 

vi 편집기 사용능력이 리눅스의 절반이라고 해도 좋을 정도인데요.. 꼭 익숙해 지도록 합시다.

나중에 따로 정리 하겠습니다.

 

#는 주석처리를 의미합니다. 밑줄로 이동하여 소문자 <편집 모드-차후 설명-> 에서 소문자 o 를 누르면

그 아랫줄로 이동하면서 <수정 모드> 가 됩니다. 거기서 위처럼 입력해 줍니다.

위의 의미는 문자열을 입력할 시, 해당 168.126.63.1 서버에 저장된 DNS ZONE 정보의 내용을 참조하겠다는 소리입니다.

KT의 해당 서버에 www.google.com = IP 라는 ZONE 매칭 정보가 있다고 일단 생각하시면 되겠습니다.

저장은 : 입력후에 wq 를 입력 후 엔터치시면 됩니다.

 

자 다시 ping www.google.com 을 쳐 봅시다.

오 이제 됩니다 *^^*

ping 은 디폴트로 무제한 체크하므로 중간에 ctrl+c 로 중단하도록 합시다.

도메인 네트워크 체크는 host [ 도메인명 ] 으로도 가능 합니다.

자, 이제 우리는 인터넷을 마음껏 사용할 준비가 된 것입니다.

ip뿐만 아니라 도메인까지 문제가 없어야 한다는걸 깨달으셨으면, 이제 본격 커맨드를 시작할 준비가 된 것입니다.

 

ifconfig 에서의 ethernet 설정 환경 파일

CentOS 에서는 기본적으로 /etc/sysconfig/network-scripts/ifcfg-eth0 파일 입니다.

기본적으로 네트워크를 시작할 때 해당 환경 파일에서 로드 합니다.

(위에서 설정한 ifconfig eth0 123.456.789.000 이런 세팅은 리부팅되면 사라져 버려요 -ㅅ- )

다음 #03 장에서 파일의 내부 속성을 살펴보도록 하겠습니다.

블로그 이미지

늙은M군

개인 저장공간입니다. 해당 일부 과정들을 공인 인터넷 환경에서 악성적으로 응용할 시 피해가 발생할 수 있으며, 그에 대해 책임은 사용자에게 있습니다!! 주의해주세요.

,

날짜만 요약해두었으며,

상세한 정보는 직접 검색해서 해당 사이트에서 살펴 보시면 되겠습니다.

2014 정보처리기사(1,2,3) 시험일정

- http://www.q-net.or.kr/crf005.do?id=crf00503&gSite=Q&gId=&jmCd=1320&tabGbn=1

 

 

 

 

2014 사무자동화산업기사 ( 1 , 2 , 4 )

- 1,2회는 기사와 일정이 같습니다.

 

 

 

 

2014 JLPT 일정

-  http://www.jlpt.or.kr/main/main2.asp

 

 

 

2014 정보보안기사 시험일정

- https://kisq.or.kr/

 

 

 

 

2014 리눅스마스터 시험일정

- http://www.ihd.or.kr/examHome/main.jsp

 

 

 

 

블로그 이미지

늙은M군

개인 저장공간입니다. 해당 일부 과정들을 공인 인터넷 환경에서 악성적으로 응용할 시 피해가 발생할 수 있으며, 그에 대해 책임은 사용자에게 있습니다!! 주의해주세요.

,

리눅스 연습을 할 때에도, Console.. 그러니까 리눅스 깔린 메인에서 작업하지 말고

보통 SSH(22) 를 사용한 원격 리모트를 하게 되며, putty 를 사용합니다.

putty connection manager 라는 tool을 이용하시면 여러 서버를 관리하실 때 유용합니다.

 

Port 는 별도로 설정한 포트가 있다면, 그것을 사용해도 됩나다.

( 리눅스의 SSHD 설정은 기본이 보통 22므로, 별도로 설정했다면 수정해주어야 합니다. iptables 에서 혹여 해당 포트가

막혀 있을 때에는 역시 포워딩도 같이 해주어야 합니다 )

차후 재실행시 설정의 번거로움을 피하고 싶으시다면, 위의 manager 툴을 이용하시거나, 위의 세션 저장을 하시면 됩니다.

 

한글 지원하는 리눅스를 사용시에는 문자셋으로 인해 글씨가 뷁어체(;)가 나올 수 있으므로 그럴 경우에는

유니코드를 UTF-8 로 변경해주도록 합니다.

 

나머지는 자신의 상황에 맞는 커스터마이징에 가까우므로 보통은 크게 손댈 일이 없습니다.

 

처음 접근시에는 SSH의 인증키 관련 허용 여부를 물어보는데 그냥 OK 해주시면 됩니다.

( 허용시 다음부터는 해당 연결에 인증이 성립하였으므로 , 물어보지 않습니다 )

보안상, root 로 바로 접속 하지 말고, 일반 유저로 로그인을 하는 버릇을 들이도록 합니다.

( SSHD config 에서 root 로그인 허용/비허용을 설정 할 수 있습니다 )

 

 

 

 

일반 유저인 myunginy 로 접속 성공한 화면입니다.

유저 확인용으로 whoami ( Windows 와 동일합니다 ) / id 라는 명령어로 현재 자신의 그룹ID 및 보안문맥의 상태를 체크 가능 합니다. 일반 유저는 당연히 시스템의 중요한 부분에 권한(Permit)의 문제로 수정 및 변경을 할 수 없습니다.

 

일반 유저 -> root ( 수퍼 유저. 관리자 - 윈도우즈의 Administrator ) 로 올라 가려면,  su - 라고 입력을 한 후 Passwd 를 입력 하면 됩니다.

 

이상 리눅스에 원격 접근하는 방법이었습니다.

( #02 에서 계속 )

블로그 이미지

늙은M군

개인 저장공간입니다. 해당 일부 과정들을 공인 인터넷 환경에서 악성적으로 응용할 시 피해가 발생할 수 있으며, 그에 대해 책임은 사용자에게 있습니다!! 주의해주세요.

,

7월초에 봤던 CCNA 200-120 입니다.

840-640 외에도 요즘 200-120을 택일해서볼 수 있는데

6/19일 q264 Pascal 버젼 하나만 보아도 대부분 900점 이상으로 합격할 수 있습니다.

덤프라는게 실력이 아닌, 자격증을 따기 위한 돈아까운 임시방편에 불과하므로,

합격에 만족하지 말고 꾸준하게 정진하시면 좋겠습니다.

 

블로그 이미지

늙은M군

개인 저장공간입니다. 해당 일부 과정들을 공인 인터넷 환경에서 악성적으로 응용할 시 피해가 발생할 수 있으며, 그에 대해 책임은 사용자에게 있습니다!! 주의해주세요.

,

십중팔구 어디선가 root 로그인 상태일 시 외부에서 자료를 끌어왔을 때, 바탕 화면에 왔다 갔을 때 등등

루트의 권한으로, 특정 다른 계정의 권한 자리에 끼어들어갔을 때 흔히 발생합니다

 

일명 보안문맥 에러라고 합니다 ls -Z 로 보시면, 자신이 수정한 파일만 admin_ 권역으로 빠져 있다던지 하는 경우를

흔히 볼 수 있습니다.

 

타 계정 웹페이지 작업을 루트권한으로 내부에서 작업하는 와중에 많이 발생하는데요, 이 퍼미션 문제는 아무리 chmod 를 건드려도 고쳐지지 않으므로 웹컨덴츠를 공개하고 싶을 때에는 chcon -R -t httpd_user_content_t [해당 절대경로의 맨 상위 디렉토리]

를 입력해 주시면 보통 해결됩니다.

 

발생하는 예 ) 제로보드 설치후에 /bbs 디렉토리 안으로 무언가 외부 자료를 끌어온 후 외부 실행을 시킬 때 자꾸 퍼미션 에러가 뜰 경우

 

  

블로그 이미지

늙은M군

개인 저장공간입니다. 해당 일부 과정들을 공인 인터넷 환경에서 악성적으로 응용할 시 피해가 발생할 수 있으며, 그에 대해 책임은 사용자에게 있습니다!! 주의해주세요.

,

머리아픕니다.

 

일단 해결 방법을 적도록 합니다

 

1. 글로벌 모드 on 및 긴 문자열 문제

[ PHP6 에서는 긴문자 삭제된다는 소문이 돌 정도고, 글로벌 on 은 보안상 좋지 않으므로 권장은 안 하지만...

어쩌겠습니까.. 당장 되야 하는데 ㅋㅋ ]

 

/etc/php.ini 에서 글로벌모드와 롱 어래이를 지정해 줍시다

 

 

 

 

2. 헤더 추가

 

login_check.php 파일과 lib.php 파일에 추가해 줍니다.

(신형버젼의 경우 대부분 추가되어 있음)

 

 

3. 기타

그래도 안 되는 경우 php.ini 파일에서

session.bug_compat_42 = 0 을 1로 바꾸는 방법이 있다고 합니다.

전 1,2번으로 해결이 되었습니다 ( MYSQL 5.1 / centos 6.3 final / zeroboard 구버젼 ( 2004년 ) )

 

 

 

// 회원로그인이 성공하였을 경우 세션을 생성하고 페이지를 이동함
if($member_data[no]) {
if(!$_COOKIE['PHPSESSID']) setcookie("PHPSESSID", session_id(), 0, "/"); <<  추가하는 방법

if($auto_login) {
makeZBSessionID($member_data[no]);
}

의 두 번째 기타도 있겠습니다.

 

순서대로 하나씩 해봅시다.

참 아파치는 반드시 php 파일 수정했을 경우 httpd 데몬 재시작 잊지 마세요!

 

블로그 이미지

늙은M군

개인 저장공간입니다. 해당 일부 과정들을 공인 인터넷 환경에서 악성적으로 응용할 시 피해가 발생할 수 있으며, 그에 대해 책임은 사용자에게 있습니다!! 주의해주세요.

,