반응형


출처 : http://en.wikipedia.org/wiki/Inter-process_communication


From Wikipedia, the free encyclopedia

In computinginter-process communication (IPC) is a set of methods for the exchange of data among multiple threads in one or more processes. Processes may be running on one or more computers connected by a network. IPC methods are divided into methods for message passingsynchronizationshared memory, and remote procedure calls (RPC). The method of IPC used may vary based on the bandwidth and latency of communication between the threads, and the type of data being communicated.

There are several reasons for providing an environment that allows process cooperation:

IPC may also be referred to as inter-thread communication and inter-application communication.

The combination of IPC with the address space concept is the foundation for address space independence/isolation.[1]

Main IPC methods[edit]

MethodShort DescriptionProvided by (operating systems or other environments)
FileA record stored on disk that can be accessed by name by any processMost operating systems
SignalA system message sent from one process to another, not usually used to store information but instead give commands.Most operating systems; some systems, such as Win NT subsystem, implement signals in only the C run-time library and provide no support for their use as an IPC method[citation needed]. But other subsystems like the POSIX subsystem provided by default until windows 2000. Then available with interix in XP/2003 then with « windows services for UNIX » (SFU).
SocketA data stream sent over a network interface, either to a different process on the same computer or to another computerMost operating systems
Message queueAn anonymous data stream similar to the pipe, but stores and retrieves information in packets.Most operating systems
PipeA two-way data stream interfaced through standard input and output and is read character by character.All POSIX systems, Windows
Named pipeA pipe implemented through a file on the file system instead of standard input and output.All POSIX systems, Windows
SemaphoreA simple structure that synchronizes threads or processes acting on shared resources.All POSIX systems, Windows
Shared memoryMultiple processes given access to the same memory, allowing all to change it and read changes made by other processes.All POSIX systems, Windows
Message passing(shared nothing)Similar to the message queue.Used in MPI paradigm, Java RMICORBADDSMSMQMailSlotsQNX, others
Memory-mapped fileA file mapped to RAM and can be modified by changing memory addresses directly instead of outputting to a stream, shares same benefits as a standard file.All POSIX systems, Windows

Implementations[edit]

There are several APIs which may be used for IPC. A number of platform independent APIs include the following:

The following are platform or programming language specific APIs:

See also[edit]

References[edit]

  1. Jump up^ Jochen LiedtkeOn µ-Kernel ConstructionProc. 15th ACM Symposium on Operating System Principles (SOSP), December 1995

External links[edit]


반응형

'Language' 카테고리의 다른 글

npm node module 공통 관리하기  (0) 2020.10.28
특정 문자열 분석 쉘  (0) 2012.02.21
우리은행 웹 접근성 가이드 주소  (0) 2011.08.09
빠른 수식 계산법  (0) 2010.03.01
반응형


Process Hacker



락 걸린 프로세스 까지 죽을 수 있는 독한 녀석

다운로드 주소

http://processhacker.sourceforge.net/index.php

반응형
반응형




1. lastlog-계정의 최근 접속정보 확인하는 명령어

 

lastlog는 /etc/passw파일에 정의되어 있는 모든 계정의 최근 접속정보를 확인하는 명령엉이다. 주로 서버의 보안점검을 위하여 필수적으로 확인해 봐야하는 명령어이다. 간단히 lastlog라고만 하면 모든 계정의 마지막 접속정보를 출력해준다.

 

 

  

 

* 사용형식

 lastlog [-u login-name] [-t days]


lastlog는 /var/log/lastlog파일의 정보에 저장된 정보를 참조하여 결과를 출력한다. 이 파일은 바이너리파일로 되어 있기 때문에 lastlog라는 명령어를 이용해야 확인할 수 있다. /var/log/lastlog파일에는 각 계정의 최근 접속정보가 기록되는 파일이다.

 

 

 

 

* 시스템 각 계정의 최근 접속정보 확인하기

간단히 lastlog라고만 하면 다음과 같이 서버의 모든 계정에 대한 최근 접속정보를 확인할 수 있다.

[root@inter-devel log]# lastlog
사용자명        포트        ~로부터            최근정보
root               tty1                                 월  9월  7 16:23:47 +0900 2009
bin                                                     **한번도 로긴한적이 없습니다**
daemon                                              **한번도 로긴한적이 없습니다**
...

webadmin         pts/0    211.35.72.130    수 10월 21 13:32:45 +0900 2009
....

 

 

 

 

 

* 특정 계정사용자의 시스템 최근 접속정보 확인하기

만약 특정 계정만의 최근 접속정보를 확인하고자 한다면 아래와 -u옵션을 입력하면 된다.

[root@inter-devel log]# lastlog -u webadmin
사용자명        포트    ~로부터           최근정보
webadmin     pts/0    211.35.72.130    수 10월 21 13:32:45 +0900 2009
[root@inter-devel log]#

 

 

 

 

 

* 지정한 치근일 까지의 시스템접속정보 확인하기

lastlog는 최근 몇일까지의 마지막접속정보를 확인할 수도 있다. 다음은 최근 30일까지의 최근접속정보를 확인한 것이다.

[root@inter-devel log]# lastlog -t 30
사용자명        포트    ~로부터         최근정보
ncadmin          tty1                      목 10월  8 12:14:34 +0900 2009
webadmin         pts/0    211.35.72.130    수 10월 21 13:32:45 +0900 2009
[root@inter-devel log]#

 


2. wtmp 파일


 다음으로 wtmp에 대해서 알아보자. 이 파일에는 처음부터 접속했던 모든 사용자의 로그인정보와 로그아웃정보를 가지고 있습니다.  이파일은 삭제해주지 않으면 계속 누적이 되므로 정기적으로 백업을 받아 두든지 아니면 불필요한 정보를 삭제하든지 해야합니다.


이 파일에 기록되는 정보는 utmp.h에 있는 내용에 ut_time이추가되어 로그아웃시의 시간이 추가기록됩니다. 물론 이 파일의 정보를 보는 방법은 last라는 명령어로 볼 수있으며 wtmp와 관련된 명령어에는 다음과 같은 것들이 있습니다.


 


login(1), who(1), ac(8), init(8), last(8), lastcomm(8)



3. utmp 파일


먼저 utmp에 대해서 알아보겠습니다. 이 파일은 현재시스템에 접속해 있는 사용자의 정보를 가지고 있습니다. 시스템은 사용자가 remote로 접속을 하면 먼저 이 파일에 기록을 하고 로그아웃을 할 때에 기록해둔 정보를 삭제합니다.


그리고 이 파일의 구성요소를 결정하는 파일은 /usr/include/utmp.h 에 정의되어 있습니다.


struct utmp {

        char    ut_user[32];            /* User login name */

        char    ut_id[14];              /* /etc/inittab id- IDENT_LEN in init */

        char    ut_line[32];            /* device name (console, lnxx) */

        short   ut_type;                /* type of entry */

        pid_t   ut_pid;                 /* process id */

        struct exit_status {

            short       e_termination;  /* Process termination status */

            short       e_exit;         /* Process exit status */

        } ut_exit;                      /* The exit status of a process

                                         * marked as DEAD_PROCESS.

                                         */

        time_t  ut_time;                /* time entry was made */

        char    ut_host[64];       /* host name same as MAXHOSTNAMELEN*/

}; 


이 파일은 보통 바이너리형태로 되어 있기 때문에 strings라는 명령어를 사용하여 다음과 같이 내용을 볼 수 있습니다.


$ strings utmp | more


system boot

run-level 3

sysconfig

update

LOGIN

cons

console

sac -t 300

PM00

root

console

ttyp1

ttyp1

8:0.0

webadmin

ttyp4

ttyp4

168.126.62.90

webadmin

ttyp3

ttyp3


이 파일의 정보를 이용하는 명령어는 다음과 같습니다.


login(1), who(1), ac(8), init(8), last(8), lastcomm(8)



4. lastlog 파일


다음으로 lastlog에 대해서 알아보겠습니다. 이 파일에는 가장최근에 로긴한 정보를 저장하고 있습니다.


이 파일또한 last라는 명령어로 조회를 해 볼 수 있으며 기록되는 정보를 정의하는 파일은 /usr/include/lastlog.h에 다음과 같이 정의되어 있습니다.


struct lastlog {

        time_t  ll_time;

        char    ll_line[LL_LINELEN];

        char    ll_host[LL_HOSTLEN];            /* same as in utmp */

};


 5. 로그파일과 로그기록삭제


자, 그럼 이쯤에서 이파일들의 보안에 대해서 언급해 보도록 하겠습니다. 만약 자기가 다른 시스템에 불법으로 침입했다면 이들 파일에 기록된 자신의 정보를 삭제하고자 할 것입니다. 그런데 이파일에서 일부정보를 삭제하려면 write 퍼미션이 있어야 합니다. 그래서 이들 파일의 퍼미션이 또 문제가 되는 것이며, 대부분의 시스템에는 이들 파일에 다음과 같은 퍼미션을 설정하고 있습니다.


 


[webserver:/var/adm 78 ] ls -l utmp


8 -rw-r--r--   1 root     adm         7332 12월 1일 19:40 utmp


[webserver:/var/adm 79 ] ls -l wtmp


84624 -rwxr-xr-x   1 root     system   86593728 12월 1일 19:40 wtmp*


[webserver:/var/adm 80 ] ls -l lastlog


160 -rw-r--r--   1 root     adm       153132 12월 1일 19:40 lastlog


 


위에서 보시는 바와 같이 utmp와 lastlog는 644로 되어 있기 때문에 root 외에는 파일을 조작할 수 없으며 wtmp에는 755로 설정되어 있기 때문에 당연히 root 외에는 조작이 불가능합니다. 주의할 것은 이들 파일의 펴미션이 혹시 변경되지 않았나를 정기적으로 확인해 봐야한다는 것입니다.


이들 파일속에서 침입한 자신의 로그기록을 삭제해주는 유틸리티가 있는데 zip2라는 프로그램입니다.


수작업으로 이들 파일의 접속정보를 삭제할 수도 있으나 우린 좀더 편리한 것을 사용할 수 있는 방법을 사용해보겠습니다.


위에서 언급한 zap2.c에 대해서 설명을 하려합니다. 이 파일을 컴파일하여 사용하도록 해야합니다.


 


#define WTMP_NAME "/var/adm/wtmp"


#define WTMP_NAME "/var/adm/utmp


#define WTMP_NAME "/var/adm/lastlog


 


이 파일의 처음에 나오는 부분을 해당시스템에 맞게 수정하여야합니다.


 



$./zap2 webmaster



6. lastb


lastb는 last정보와 비슷한 정보를 보여주나 과거에 잘못 접속을 시도한 계정에 대한 정보를 보여줌

/var/log/btmp에서 정보를 참조함



 


반응형

'자격증 > 정보보안기사' 카테고리의 다른 글

Windows IPSEC 설정 방법  (0) 2014.03.21
리눅스 방화벽 프로그램 iptables 설정  (0) 2014.03.21
find 명령어 옵션  (0) 2014.03.21
/etc/fstab 설정 및 옵션  (1) 2014.03.05
라우터 시뮬레이터 프로그램  (0) 2014.03.05
반응형

출처 : http://blog.naver.com/PostView.nhn?blogId=vnfmap1331&logNo=60106767672

 

안녕하세요.. 마로사랑입니다.

5월 3일 방송한 IPSEC 설정 부분을 정리한 자료입니다.

너무 늦게 올려 죄송합니다.

IPSec(Internet Protocol security)는 가장 장기적으로 보안 네트워킹을 구현하는 방법입니다.

사설 네트워크 및 인터넷 공격을 방어하는 핵심 라인을 제공하며, 강력한 보안과 사용의 편리성을 함께 도모합니다.

IPSec는 두 가지 목표를 가지고 있습니다.

  1. IP 패킷의 내용을 보호
  2. 패킷 필터링과 트러스트된 통신을 수행하여 네트워크 공격을 방어IPSEC은 Inbound와 Outbound로 구성됩니다.

 

IPSEC 설정

설정 > 관리도구 > 로컬보안정책 에서 설정할 수 있다.

Windows 2000, XP, 2003모두 있으며, home version에는 설정 부분이 없다.

MS(Microsoft) 라이센스 정책에 따라 XP에서 없을 수 있다.

로컬 보안 설정에 정책할당은 default값으로 모두 아니오라고 표시

(1) IPSEC UDP 1434 Port Inbound설정

Inbound란 ? 본인(USER)을 기준으로 들어오는 포트를 막을 때 사용된다.

동작 > IP필터 목록 및 필터 동작 관리

IP 필터 목록 및 필터 동작 원리에서 추가 버튼 클릭

IP필터 목록이란 창이 뜬다.

이름(N) 부분이 중요하다. (프로토콜_포트넘버_block 누구나 보기 쉽게 설정)

(2) IPSEC UDP 1434 Port Outbound설정

Outbound란 ? 외부를 기준으로 본인(USER)에게 들어오는 포트를 막을 때 사용된다.

Inbound를 설정 한 후 Outbound도 동시에 설정해주어야 함

중요^^ -> 보안 정책 적용

보안 규칙 설정

보안 요청(옵션), 보안 필요, 허용 부분은 있으나 거부가 없기 때문에 거부 목록 추가

로컬 보안 설정을 보면 초기에 없었던 UDP_1434_Block이란 이름이 추가된걸 확인할 수 있다.

마우스 오른쪽을 클릭해 모든 작업 > 할당을 클릭해주면 정책할당부분이 예로 변경하여 정책을 할당 해 준다.

 

반응형
반응형

출처 : http://cafe.naver.com/topology



iptables 명령은 리눅스 IPv4 방화벽을 설정하는 명령어이다. 1.1 시리즈 부터 리눅스 커널은 패킷 필터링을 포함하기 시작했다.
제 1세대는 BSD의 ipfw를 기본으로 했고 1994년 후반기에 알란 콕스(Alan Cox) 에 의해서 포트 됐다.
이것은 리눅스 2.0에서 Jos Vos와 다른이들에 의해서 개선됐고 커널의 필터링 규칙을 제어하는 사용자 툴로는 'ipfwadm'이 사용됐다.
1998년 중반에 리눅스 2.2를 위해 사용자 툴로 'ipchains'를 내놓았다. 마지막으로, 제 4세대 툴이 'iptables'이고 리눅스 2.4를 위해 1999년 중반에 커널을 재작성했다.

<리눅스매거진 편집부>

패킷 필터란 네트워크를 통하는 모든 것은 패킷의 형태를 가지며, 패킷의 앞부분에는 패킷이 어디서 왔는지 어디로 향하는지, 어떤 프로토콜을 이용하는지 등과 같은 정보를 가지고 있다. 패킷 필터는 이렇게 지나가는 패킷의 헤더를 보고 패킷을 ‘DROP'(마치 전혀 전달되지 않는 것처럼 패킷을 거부) 하거나 ’ACCEPT‘(패킷이 지나가도록 내버려 둠)하는 등의 작업을 하는 프로그램을 말한다. iptables은 이런 패킷 필터링 기능을 설정하는데 사용할 수 있는 프로그램이다. 자신의 시스템에 설치돼 있는 iptables의 버전을 확인하는 방법은 아래명령을 통해 가능하다.


# iptables --version

iptables 1.2.4


커널은 3가지의 방화벽 체인(chain)을 기본적으로 가지고 패킷 필터링을 시작한다. 파이어월 체인 혹은 체인이라 부르는 이 3가지는 입력(Input), 출력(Output), 전달(Forward)이다. 입력체인은 들어오는 패킷을 조사하고 전달체인은 외부의 다른 시스템으로 전달될 패킷을 조사한다. 마지막으로 출력체인은 외부로 나가는 패킷을 조사한다.

■ 패킷검사방법

1. 패킷이 커널에 도착하면 그 패킷의 목적지를 확인한다. 이것을 '라우팅' 이라고 한다.
2. 패킷의 목적지가 이곳이면, 패킷은 전달돼 입력체인에 도달한다. 패킷이 입력체 인을 통과하면 패킷을 기다리고 있던 프로세서가 받게 된다.
3. 그렇지 않고 커널이 포워딩 불능이나, 패킷을 어떻게 포워딩해야 하는가를 알지 못하면, 그 패킷은 ‘DROP‘ 된다. 포워딩이 가능하게 돼있고 다른 곳이 목적지이면 패킷은 그림의 오른쪽 방향으로 전달돼 포워딩 체인으로 간다. 이 체인이 ’ ACCEPT‘ 하게 되면 이것은 포워딩 할 네트워크로 보내진다.
4. 마지막으로, 로컬에서 수행하던 프로그램은 네트워크 패킷을 전송할 수 있다. 이 패킷은 즉시 출력 체인에 보내지며 이 체인이 ‘ACCEPT’되면 이 패킷은 그 목적지가 어디든지 보내진다.


사용법
iptables -[ADC] chain rule-specification [options]
iptables -[RI] chain rulenum rule-specification [options]
iptables -D chain rulenum [options]
iptables -[LFZ] [chain] [options]
iptables -[NX] chain
iptables -P chain target [options]
iptables -h (print help information)


Commands
-A : 새로운 규칙을 추가한다.(--append)
-D : 규칙을 삭제한다.(--delete)
-C : 패킷을 테스트한다.(--check)
-R : 새로운 규칙으로 교체한다.(--replace)
-I : 새로운 규칙을 삽입한다.(--insert)
-L : chain에 설정된 규칙을 출력한다.(--list)
-F : chain으로부터 규칙을 모두 방출(삭제)한다.(--flush)
-Z : 모든 chain의 패킷과 바이트 카운터 값을 0으로 만든다.(--zero)
-N : 새로운 chain을 만든다.(--new)
-X : chain을 삭제한다.(--delete-chain)
-P : 기본정책을 변경한다.(--policy)


chain
INPUT : 입력에 대한 사용
OUTPUT : 출력에 대한 사용
FORWARD : 전달(forwarding)에 대한 사용


Options
-s : 패킷의 발신지를 명시한다.(--source)
-p : 패킷의 프로토콜을 명시한다.(--protocol)
-d : 패킷의 도착지를 명시한다.(--destination)
-i : 규칙을 적용할 인터페이스 이름을 명시한다.(--interface)
-j : 규칙에 맛는 패킷을 어떻게 처리할 것인가를 명시한다.(-jump)
-y : 접속 요청 패킷인 SYN패킷을 허용하지 않는다.(--syn)
-f : 두 번째 이후의 조각에 대해서 규칙을 명시한다.(--fragment)


사용예
127.0.0.1 IP 주소로부터 오는 모든 ICMP 패킷을 무시하는 경우 사용되는 프로토콜은 ICMP이고 발신 주소는 127.0.0.1 이어야 한다. 그리고 패킷 필터의 목표는 드롭(DROP)이다. 테스트하는 프로그램은 ping이며 ping은 단순히 ICMP type 8로 반응요구를 보내며 이에 협조하는 대상 호스트는 ICMP 타입 0(echo reply)를 보내어 응답하도록 돼 있다. 이제 iptables의 패킷필터를 통해 로컬호스트가 ping 명령에 반응하지 않도록 하겠다.


# ping -c 1 127.0.0.1
PING 127.0.0.1 (127.0.0.1): 56 data bytes 64 bytes from 127.0.0.1: icmp_seq=0 ttl=64 time=0.2 ms
--- 127.0.0.1 ping statistics ---

1 packets transmitted, 1 packets received, 0% packet loss round-trip min/avg/max = 0.2/0.2/0.2 ms


# iptables -A INPUT -s 127.0.0.1 -p icmp -j DROP
; `INPUT' 체인에 127.0.0.1로부터 오고(`-s 127.0.0.1') ICMP(`-p ICMP') 패킷에 대해 DROP로 점프하라는 (`-j DROP') 규칙을 추가(-A).

# ping -c 1 127.0.0.1
PING 127.0.0.1 (127.0.0.1): 56 data bytes
--- 127.0.0.1 ping statistics ---

1 packets transmitted, 0 packets received, 100% packet loss


■ 설정된 iptables 규칙의 삭제
지금 현재 입력돼 있는 chain이 하나밖에 없으므로 숫자를 지정하는 명령으로 삭제가 가능하며, 앞의 명령과 똑같이 하되 -A를 -D로 바꾸어 지우는 방법이 있다.

#iptables -D INPUT 1
#iptables -D INPUT -s 127.0.0.1 -p icmp -j DROP


■ 체인 규칙 나열하기
설정돼 있는 체인의 규칙을 모두 볼 수 있다. 명령으로 -L을 사용해 가능하며 -v 옵션과 같이 사용해 각 체인에 대한 패킷과 바이트 카운터 등의 자세한 정보를 함께 볼 수 있다.

# iptables -A INPUT -s 127.0.0.1 -p icmp -j DROP
# iptables -L -v

Chain INPUT (policy ACCEPT 709 packets, 35362 bytes)

pkts bytes target prot opt in out source destination

0 0 DROP icmp -- any any localhost.localdomain anywhere




Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)

pkts bytes target prot opt in out source destination

Chain OUTPUT (policy ACCEPT 423 packets, 39549 bytes)

pkts bytes target prot opt in out source destination



■ 체인 비우기
하나의 체인 안의 모든 규칙을 비우는 것은 ‘-F’ 명령을 사용해 간단하게 할 수 있다. 체인을 지정하지 않으면 모든 체인의 규칙을 지울 수 있다.

#iptables -F INPUT


■ 출처와 목적지 지정
출처('-s', '--source', '--src')와 목적지('-d', '--destination', '--dst') IP 주소를 지정하는데 4가지 방법이 있다. 가장 보편적인 방법
은 'www.linuzine.com', 'localhost'처럼 도메인 네임을 이용하는 것이다. 두번째 방법은 '127.0.0.1'과 같은 IP 주소를 이용하는 것이다.

세번째와 네번째 방법은 IP 주소의 그룹을 지정하는 것으로 '199.95.207.0/24' 또는 '199.95.207.0/255.255.255.0' 같은 형태이다. 이 둘은 모두 199.95.207.0 부터 199.95.207.255 사이의 모든 IP 주소를 지정한다. '/' 다음의 숫자는 IP 주소의 어떤 부분이 의미 있는가를 나타낸다. '/32' 나 '/255.255.255.255' 가 기본 값이다.(IP 주소의 모든 부분이 일치해야 한다.) 모든 IP 주소를 지정하는데 '/0' 가 사용된다.

# iptables -A INPUT -s 0/0 -j DROP
많은 지시자들('-s'나 '-d' 같은)은 일치하지 않는 주소를 나타내기 위해 '!'('not'을 의미한다)로 시작하는 설정을 할 수 있다. 예로, '-s !localhost' 는 localhost로부터 오는 패킷이 아닌 경우를 나타낸다.

■ 프로토콜 지정
프로토콜은 '-p' 지시자로 지정할 수 있다. 프로토콜을 숫자가 될 수 있고(IP의 프로토콜 번호를 알고 있다면) 'TCP', 'UDP', 'ICMP' 같은 이름이 될 수도 있다. 그리고 'tcp'는 'TCP'와 같은 역할을 한다. 프로토콜 이름 지정에도 '!'을 이용 할 수 있다. '-p ! TCP'

■ TCP 확장
TCP 확장은 '--protocol tcp' 가 지정되고 다른 적용이 지정되지 않으면 자동으로 적재된다. 이것은 다음과 같은 옵션을 제공한다.

--tcp-flags
뒤에 두개의 단어를 사용한다. 첫번째 것은 검사하고자 하는 지시자 리스트의 마스크이다. 두번째 단어는 지시자에게 어떤 것이 설정 될 것인지를 말해준다.

# iptables -A INPUT --protocol tcp --tcp-flags ALL SYN,ACK -j DROP
이것은 모든것이 검사돼야 함을 말한다. 그러나 SYN과 ACK만 설정된다.


--syn
'!' 옵션이 선행될 수 있다. 이것은 '--tcp-flags SYN,RST,ACK,SYN'의 약어이 다.

--source-port,
'!' 옵션이 선행될 수 있다. 이후에 하나의 TCP 포트나 포트의 범위를 지정한다.

--sport
/etc/services 에 기록된 것과 같은 포트 이름이 사용될 수 도 있고 숫자로 나타낼 수도 있다. 범위는 두 개의 포트 이름을 '-'으로 연결해서 사용하거나 하나의 포트 뒤에 '-'를 사용하거나 하나의 포트 앞에 '-' 를 덧붙일 수 있다.

--destination-port, --dport
위의 내용과 같으나 목적지를 지정한다.

--tcp-option
'!' 나 숫자가 옵션에 선행될 수 있는데 숫자가 앞에 올 경우 그 숫자 와 TCP 옵션이 같은 경우의 패킷을 검사한다. TCP 옵션을 검사하려 할 때 완전한 TCP 헤더를 갖지 않는 것은 자동으로 드롭 된다.


■ iptables를 통한 포트관리
iptables는 테이블 형식으로 관리를 한다. 그리고 먼저 등록된 것이 효력을 발생하기 때문에 등록을 하는 순서가 중요하다. 모든 것을 거부하는 설정이 먼저 오게 되면 그 이후에 포트를 열어주는 설정이 와도 효과가 없다. 그러므로 허용하는 정책이 먼저 오고 나서 거부하는 정책이 와야 한다.

iptables -A INPUT -p tcp --dport 25 -j ACCEPT
iptables -A INPUT -p tcp --dport 22:30 -j DROP

이렇게 하면 먼저 25번 포트로 들어오는 것을 허용하고 난 후에 다른 것을 막아내기 때문에 제대로 된 설정이 된다.

iptables -A INPUT -p tcp --dport 22 -j ACCEPT
등록된 라인은 ssh를 사용하는 것을 허용하는 것이다. 출처(source)와 목적지(destination)는 명시하지 않았기 때문에 전체포트와 IP가 대상이 된다. -dport 는 패킷이 대상으로 삼는 포트를 명시한 것이다 여기에서 22라고 표기한 것은 ssh서비스 포트이다. 그리고 마지막에 -j ACCEPT는 허용하도록 정책을 정하는 것이다. 따라서 여기로의 ssh서비스를 요청하는 패킷은 허용되도록 설정을 한 것이다.


■ 전체적인 설정
#!/bin/sh
# iptables 모듈 등록하기
modprobe iptable_filter

# ssh 열기
/usr/local/bin/iptables -A INPUT -p tcp --dport 22 -j ACCEPT

# httpd 열기
/usr/local/bin/iptables -A INPUT -p tcp --dport 80 -j ACCEPT

# pop3 열기
/usr/local/bin/iptables -A INPUT -p tcp --dport 109 -j ACCEPT

# pop2 열기
/usr/local/bin/iptables -A INPUT -p tcp --dport 110 -j ACCEPT

# imap 열기
/usr/local/bin/iptables -A INPUT -p tcp --dport 143 -j ACCEPT

# mysqld 열기
/usr/local/bin/iptables -A INPUT -p tcp --dport 3306 -j ACCEPT

# ftpd 열기
/usr/local/bin/iptables -A INPUT -p tcp --dport 21 -j ACCEPT

# ftp-data 열기
/usr/local/bin/iptables -A INPUT -p tcp --dport 20 -j ACCEPT

# ircd 열어주기
/usr/local/bin/iptables -A INPUT -p tcp --dport 6667 -j ACCEPT
/usr/local/bin/iptables -A INPUT -p udp --dport 6667 -j ACCEPT

# 전부 거절하기
/usr/local/bin/iptables -A INPUT -p tcp --dport 1:30000 -j DROP

/usr/local/bin/iptables -A INPUT -p icmp --icmp-type echo-request -j DROP

이처럼 허용하는 서비스가 한정적이다. 우선 ssh, http, pop3, pop2, imap, mysql, ftp, ircd를 위해서 서비스를 요청하는 패킷은 허용하고 나머지는 전부 거부하는 설정이다. 이 설정을 자세히 보면 tcp와 icmp를 대상으로 했다. 거절하는 줄인

/usr/local/bin/iptables -A INPUT -p tcp --dport 1:30000 -j DROP


이 라인에서 --dport 다음에 1:30000으로 지정돼 있다. 이 부분은 서버를 경유해서 다른 곳으로 가고자하는 경우에 클라이언트 프로그램이 사용할 포트를 남겨주기 위함이다. 1번포트에서 30000번 포트까지는 완전히 tcp에 대해서 막는 것이다.
만약에 서버에서 나갈 이유가 없으면 전부 막으면 된다. 1:65535로 설정하면 전체 포트가 막힌다. iptables 설정은 조금만 공부를 하면 쉽게 습득이 가능하다. 그러므로 문서를 보는 것이 중요하다. 이 설정은 기본이므로 좀더 많은 것은 관련 문서를 이용하기를 바란다.

[외부망으로 나가는 경우의 설정]

1. IPTABLE의 설정(Linux Kernel 2.4)
/sbin/iptables -F
echo "1" > /proc/sys/net/ipv4/ip_forward
/sbin/modprobe ip_conntrack
/sbin/modprobe ip_conntrack_ftp
/sbin/modprobe ip_nat_ftp
/sbin/iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE


참고)

ip_conntrack_ftp와 ip_nat_ftp 는 ftp서비스 open을 위해서 설정한 것이다.

만일 기존 Linux에 ipchain이 드라이버가 이미 Loading되어 있다면 기존 ipchain 드라이버를

제거하고 iptables driver를 Loading한다.

Linux:/> rmmod ipchains

Linux:/> insmod ip_tables


2. IPCHAIN의 설정 방법(Linux Kernel 2.2)
1) 1st IPCHAIN의 설정 방법

echo 1 > /proc/sys/net/ipv4/ip_forward
/sbin/ipchains -F
/sbin/ipchains -P forward REJECT
/sbin/ipchains -A forward -s 192.168.0.0/24 -j MASQ


2) 2nd IPCHAIN의 설정 방법
/sbin/ipchains -F
/sbin/ipchains -P forward DENY
echo 1 > /proc/sys/net/ipv4/ip_forward
/sbin/ipchains -A forward -j MASQ -s 192.168.0.0/24 -d 0/0


3. 자동으로 실행되기

Linux에서 /etc/rc.local에 위에 있는 내용을 넣어둔다. 그러면 자동으로 등록이 된다.


4. 설정값 확인하기

Linux:/> iptables -t nat -L


tcp 프로토콜을 사용하여 들어오는 패킷들중에 Buy Now 라는 문구가 포함된 패킷은 거부하고, 리셋한다.
iptables -A INPUT -p tcp -m string --string "Buy Now" -j REJECT --reject-with tcp-reset
만약 로그를 남기고 거부하고 싶다면.
iptables -A INPUT -p tcp -m string --string "Buy Now" -j LOG
iptables -A INPUT -p tcp -m string --string "Buy Now" -j REJECT --reject-with tcp-reset


출처 : http://cafe.naver.com/okjsp/279



http://wiki.kldp.org/Translations//html/Packet_Filtering-KLDP/Packet_Filtering-KLDP-7.html



※ Advanced Firewall
: Rule Matching
-> source IP address(-s)
Destiation IP address(-d)
Incoming interface(-i) 예) eth0, eth1, eth2 등등 = -s 10.1.1.0/24 와 같은뜻인데... 좀 더 간단하게 쓰고 싶으면..-i 옵션을 사용한다.
Outgoing interface(-o) : 어디를 통해서 나가겠느냐...
Layer 4 protocol(-p) : -p [tcp/udp]
negation -block all traffic not sourced from 192.168.1.20
=> /sbin/iptables -A INPUT -s! 192.168.1.20 -j DROP : 여기서 !는 not의 의미이다.(부정)
-> 192.168.1.20을 제외한 모든것을 DROP시키겠다라는 뜻이다.

host기반의 방화벽은 랜카드가 1개가 필요한다. network기반의 방화벽은 랜카드가 여러개가 필요하다.

※ mail server, web server, DNS server 같은것들은 내부망으로 되어 있는데 보안상 위험하기 때문에 외부망으로 연결되게끔 분리해놓는다.
이렇게 외부망으로 분리해놓은 것들을 DMZ라고 한다.

※ TCP(Layer 4(Transport)) MATCHES : 연결지향적이다.
: -p tcp, --protocol tcp
--sport, --source-port -> 1024 ~ 65535 사이의 값 이용
--dport 23/telnet(/etc/services), --destination-port : 숫자 대신에 문자를 쓰고 싶을때 해당위치에 있는곳의 절대경로를 적어줘야 한다.
--tcp-flags SYN, FIN, ACK SYN, ACK : 이것보다는 상태추적을 많이 사용하게 된다.

※ UDP(Layer 4(Transport)) MATCHES : 연결없이 데이터를 전송받는다. 무조건 보내기만 한다.
: UDP Application
-> TFTP -UDP:69
Syslog -UDP:514
NTP(Network Time Protocol) -UDP:123
DHCP -UDP:67 UDP:68

-p udp, --protocol udp
--sport, --source-port, -same source port as destination port : source port가 destination port가 똑같다. => UDP일경우에...
--dport 123/ntp(/etc/services), --destination-port : destination port를 쓸때는 숫자를 많이 이용하게 된다.

※ ICMP(Internet Control Messaging Protocol) MATCHES
: ICMP Types (echo-request -PING, echo-reply -pong)

-p icmp, --protocol icmp
--icmp-type name/number
Deny ICMP echo-replies from all hosts
-> /sbin/iptables -A INPUT -p icmp-type echo-reply -j DROP

=> work 컴이 serv 컴한테 echo-request를 보내게 되면 serv 컴은 work 컴한테 echo-reply를 보내게 된다.


실습!!!!

serv 컴에서...
만약 예전에 설정했던 정책을 저장하고 싶으면 iptables-save > default.rules
iptables -F
iptables -nL
iptables -P INPUT ACCEPT
iptables -nL


문제...
serv 컴퓨터에서 외부의 ping에 응답하지 않도록 하며, 또한 자신도 외부로 ping 요청을 하지 못하도록 설정하세요!~!!~~

iptables -A OUTPUT -p icmp -icmp-type echo-request -j DROP
iptables -nL
iptables -A INPUT -p icmp --icmp-type echo-request -j DROP
iptables -nL

work 컴에서...
ping -c 3 serv -> ping이 안나가게 된다.

*********************************************************************************************************************************************


※ Match multiple port with fewer rules
: 일반적 정책(rule) 설정
-> iptables -A INPUT -p tcp --dport 21 -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp --dport 23 -j ACCEPT

이렇게 여러줄을 한줄로 표현할수가 있다.

Multiple port 를 이용
-> -m multiport --dport port_num1, port_num2, port_num3...
iptables -I INPUT 1 -p tcp -m multiport --dport 21, 22, 23 -j ACCEPT


예전에 저장했던것을 불러오고 싶으면 ... -> iptables-restore < default.rules


※ MAC address filtering
: IP 주소는 쉽게 위조가능
MAC의 위조는 어렵다...
-m mac, --mac-source 00:00:00:00:00:00(mac address) 처음 24비트는 제조사 일련번호 다음 24비트는 제품 일련번호이다.

※ iptables -F INPUT
iptables -nL
iptables -P INPUT ACCEPT
clear && iptables -nL
iptables -A INPUT -s 192.168.234.20 -j DROP
clear && iptables -nL

work 컴에서...
ping -c 2 serv -> 접속이 안됨.
ftp serv -> 접속이 안됨.
telnet serv -> 접속이 안됨.
vi /etc/sysconfig/network-scripts/ifcfg-eth0 -> ipaddress를 30으로 수정...
service network restart

ping -c 2 serv -> 접속이 잘 됨.
ftp serv -> 접속이 잘 됨.
telnet serv -> 접속이 잘 됨.

이것이 문제가 된다... ip만 바꾸면 쉽게 접근을 할수가 있다.
그렇기 때문에 MAC address를 알아서 그것을 막아버려야 한다. 이것을 알기 위해서는 log를 봐야한다.

iptables -R INPUT 1 -m mac --mac-source 00:0C:29:4E:93:E5 -j DROP
=> 이렇게 mac address를 filtering하게 되면 유용하게 사용할수가 있다.


※ Rule Targets
: ACCEPT : 접근을 허용하겠다.
DROP : 메시지를 전혀 보내주지 않는다.
REJECT : 메시지를 보내주긴 하는데 전혀 다른 응답을 하게된다.
REDIRECT : 이것은 proxy 서버에서 사용하게 될것이다. 내가 갈려고 하는 곳의 경로가 바뀌게 되는것을 REDIRECT라고 한다.
NAT table 의 PREROUTING chain을 적용하게 된다. 오직 local ports에서만 적용이 된다.
proxy server를 사용하게 되면 filtering이 가능하게 된다.
normal proxy를 사용하게 되면 귀찮기 때문에 투명 proxy를 사용하는것이 편리하다. -> REDIRECT를 사용...
LOG : SysLog를 사용해서 log를 저장할수가 있다.
아무것도 설정을 안해주면 기본적으로 /var/log/message에 저장이 된다.


vi /etc/syslog.conf
서비스명 : 레벨 : 저장되는 위치 -> *.info;mail.none;authpriv.none;cron.none /var/log/messages

log를 언제든지 볼수 있도록 화일로 저장하는것이 좋다.
우선 기존의 것을 복사한뒤...
#kern.* /dev/console 을 복사해서... kern.* /var/log/firewall.log을 더 추가해준다. ### modified by jun 2006-06-21 ###

service syslog restart
echo $?
ls -l /var/log/firewall.log
cat /var/log/firewall.log
clear && iptables -nL
iptables -D INPUT 1
clear && iptables -nL
iptables -P INPUT DROP
clear && iptables -nL
iptables -A INPUT -p tcp --dport 23 -j LOG -> 23번의 port로 들어오는것의 log 기록을 남기겠다.
clear && iptables -nL
iptables -A INPUT -s 192.168.234.20 -p tcp --dport 23 -j ACCEPT
clear && iptables -nL
tail -5 /var/log/firewall.log
watch tail -5 /var/log/firewall.log


문제....
21, 22, 23, 80번의 port 이외의 서비스들은 모두다 log에 기록이 남게 끔 하시오~!!!!
21, 22, 23 서비스 이외의 접속기록을 log로 남기세요... 힌트 : multiport, ! , log Target

iptables -A INPUT -m multiport -p tcp !--dport 21, 22, 23 -j LOG

*********************************************************************************************************************************************

※ Firewall LOG
: /etc/syslog.conf를 이용한 log위치 재지정
-> 기본값으로 /var/log/message에 저장
kern.* /var/log/firewall 로 수정
service syslog restart

Log-prefix
-> Log 기록에 코멘트 첨부
--log-prefix "unknown port attemped..."


serv 컴에서...
iptables -R INPUT 1 -m multiport -p tcp ! --dport 21,22,23 -j LOG --log-prefix "unknown port attemped..."


※ Portsentry
: Portsentry는 host기반 침입탐지 시스템으로 열려있는 모든 포트를 모니터링 할 수 있는 특징을 가지고 있으면 TCP/UDP 포트스캔을
탐지할 수 있고 포트스캔 공격을 받았을 경우 방화벽과 연동하여 보안 정책을 새롭게 재구성 할 수 있다.

특징
1) 호스트로 들어오는 모든 패킷을 ROUTE명령으로 DROP 시킬수 있음
2) Xinetd 기반의 서비스에 접근하지 못하도록 /etc/

download 위치
: http://rpm.pbone.net/ -> portsentry 검색 -> fedora 4 download -> 밑으로... Portsentry-1.2.1.te.i386.rpm -> download
=> serv 컴에서...
rpm -Uvh Portsentry-1.2-1.te.i386.rpm
rpm -ql Portsentry -> /etc/Portsentry/Portsentry.conf를 확인...
cd /etc/Portsentry/
pwd
ls -l
vi Portsentry.conf -> : set nu
-> 96번째 행에서... RESOLVE_HOST = "1"을 RESOLVE_HOST = "0"으로 수정... : 이름풀이가 가능하게 할것인지 말것인지를 결정...
132번째 행과 133번째 행이 중요하다. => BLOCK_UDP="1" , BLOCK_TCP="1" -> 그냥 그대로...
206번째 행에서 보면 #KILL_ROUTE="/sbin/iptables -I input -s $TARGET$ -j DROP
282번째 행에서...SCAN_TRIGGER="2"을 SCAN_TRIGGER="0"으로 수정... : 2초후에 반응하라...을 즉각처리로...


설치후 파일
1) portsentry -portsentry 실행파일
2) Portsentry.conf - 환경설정 파일
3) Portsentry.history - 현재까지 거부된 모든 host 정보 저장
4) Portsentry.ignore - 감시예외 파일
감시하고 있는 특정 포트에 접근해도 무시하길 바라는 host ip주소를 추가


iptables -A INPUT -m state --state ESTABLISHED, RELATED -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j ACCEPT -> 외부에서 ssh 접속만 허용이 되게한다.
clear && iptables -nL
which portsentry -> /usr/sbin/portsentry
portsentry -stcp
echo $?
ps -ef | grep -i port -> 자동적으로 UDP까지 같이 실행되고 있는것을 볼수가 있다.


work 컴에서...
ssh serv -> 잘되는것을 볼수가 있다.
exit
nmap -v -sS -O(운영체제 확인) serv
nmap -v -sS -O(운영체제 확인) 192.168.234.10
---> 이것이 작동이 안할것이다. 왜냐하면 x window 때문이다.
그렇기때문에 text모드로 시작을 해야한다.
ps -ef | grep -i port
kill 9 1358
kill 9 2698 등등
shutdown -r now(재시작) - text모드로...


serv 컴에서...
portsentry -stcp
ps -ef | grep -i port
service iptables start
iptables -nL


work 컴에서...
nmap -v sS -O 192.168.234.10

serv 컴에서...
cat portsentry.blocked.stcp가 들어와 있어야 한다.



※ Portsentry 실행모드
: Portsentry는 스캔 공격자가 스캔을 하기 위해 사용하는


네이버 카페 국제보안전문가(two shot two kill) 에서 퍼옴.

반응형

'자격증 > 정보보안기사' 카테고리의 다른 글

lastlog, wtmp, last, lastb(btmp) 명령어  (0) 2014.03.21
Windows IPSEC 설정 방법  (0) 2014.03.21
find 명령어 옵션  (0) 2014.03.21
/etc/fstab 설정 및 옵션  (1) 2014.03.05
라우터 시뮬레이터 프로그램  (0) 2014.03.05
반응형


출처 : http://k.daum.net/qna/openknowledge/view.html?qid=0sket


작성자 : DijkstraAL



아래의 내용은 다음의 오픈 지식을 복사하였습니다.



1. 실제예(passwd명령어)로 SetUID, SetGID 이해하기

 

/etc/passwd 파일은 여러 가지로 보안의 문제점을 가지고 있습니다. 


패스워드를 변경하기 위해 사용하는 명령어인 passwd라는 명령어는 /bin/passwd에 명령어 형태로 존재합니다. 


물론 이 명령어는 계정을 가지 사용자이면 누구나 사용가능합니다. 

 

패스워드 보관파일

[root@host /root]# ls -l /etc/passwd

-rw-r--r--   1 root   root  1251 Nov 29 14:55 /etc/passwd

 

패스워드변경 명령어

[root@host /root]# ls -l /usr/bin/passwd

-r-s--x--x  1 root  root  10704 Apr 15  1999 /usr/bin/passwd

 

위의 예에서 알수 있듯이 계정사용자의 정보를 보관하고 있는 파일인 passwd파일은 거의 대부분 /etc/passwd에 존재하며, 


이 파일의 퍼미션은 644입니다. 즉, 누구나 읽어 볼 수는 있습니다. 


단 수정가능한 사용자는 이 파일의 소유자인 root만이 가능하지만, 


흔히 계정을 가진 사용자라면 누구나 이파일에 있는 자신의 패스워드를 변경가능하지 않은가? 이상하지 않습니까?


이것의 비밀은 setuid라는 것에 있습니다.


setuid를 설명하기 전에 유닉스시스템에서 명령어가 실행되는 절차를 확인해 보겠습니다.

 

2. 명령어 실행절차

일반적으로 시스템사용자가 명령어를 실행시켰을 때 명령어를 찾아서 실행시키는 경로와 절차는 다음과 같습니다.


현재 작업디렉토리에서 찾음. 


$PATH에서 찾음 


찾은후에 실행권한 체크 


권한이 있다면 실행시킨 사용자의 UID로 실행 


권한이없다면 이 파일이 Setuid bit가 있는가를 확인 


Setuid bit가 있다면 명령어 소유주의 UID(Effective UID)로 실행

 

3. SetUID 파일 찾기


일반적으로 시스템에서 SetUID로 실행가능한 명령어는 몇 개로 제한이 되어있습니다. 이미 설정되어있는 명령어외에 새롭게 생성된 SetUID파일(명령어)가 있나를 정기적으로 체크해보셔야합니다.


다음과 같은 find 명령어로 SetUID파일을 찾아보시기 바랍니다.


[root@host /root]# find / -user root -perm -4000 -print -xdev

/bin/login

/bin/su

/bin/mount

/bin/umount

/bin/ping

/sbin/pwdb_chkpwd

/sbin/dump

/sbin/restore


그리고 /usr/bin/passwd라는 명령어의 퍼미션정보를 보면 s라는 것이 있습니다. 


이것이 setuid bit입니다.


일반사용자가 자기의 패스워드를 변경하기 위해 "passwd"라는 명령어를 사용했을 때는 s라는 퍼미션(SetUID 퍼미션) 때문에 root권한으로 실행이 되는 것입니다. 


따라서 /etc/passwd파일이 root소유임에도 불구하고 일반사용자가 변경이 가능하게 되는 것입니다.


그런데, 해커들은 바로 이런 SetUID퍼미션이 설정되어 있으면서 root소유로 되어있는 명령어들을 해킹에 이용하게되며 가장 대표적인 명령어가 passwd라는 명령어입니다.


즉, 다시말씀드려서 passwd라는 명령어가 실행이 될 때 root 권한으로 /etc/passwd내용을 변경하게되는데 바로 이싯점에 즉 root권한으로 실행이 되고 있을 때에 정규적인 


작업만을 하게하는 것이 아니라 자기가 목적하는 악의적인 작업까지 하게 만드는 것입니다.

 

 

4. SetUID 파일 설정하기


일반적으로 파일퍼미션은 "chmod 777 파일이름"등과 같이 숫자로 지정하는 것이 일반적입니다.


하지만 SetUID를 지정할 때에는 이 3자리숫자앞에 SetUID퍼미션을 하나더 사용하면 됩니다.


[root@hlxsvr /imsi]# ls -l

-rw-r--r--  1 root   root        0 Oct 27 14:06 testfile


[root@hlxsvr /imsi]# chmod 4755 testfile


[root@hlxsvr /imsi]# ls -l

-rwsr-xr-x    1 root     root            0 Oct 27 14:06 testfile*

 

5. SetUID, SetGID, Sticky-bit

SetUID설정을 할 때와 마찬가지로 퍼미션의 3자리숫자앞에 2또는 1을 함께입력하면 SetGID와 Sticky-bit을 설정할 수 있습니다.

4000 : SetUID설정

2000 : SetGID설정

1000 : Sticky-bit설정

참고로 Sticky-bit설정은 대부분 /tmp 디렉토리에 설정되어 있는데, 가장 흔한 용도는 공용디렉토리로 사용하기 위한 것입니다. 


즉, Sticky-bit로 설정된 디렉토리는 모든 사용자가 write가능하며 write된 파일은 그 사용자의 소유되 됩니다. 


Sticky-bit 때문에 가능한 것이지요. 물론 삭제할 수 있는 권한또한 root와 해당사용자만이 가능합니다.


따라서 사용자들에게 공용으로 사용될 디렉토리를 Sticky-bit로 설정해두면 이런 것들이 가능하게 됩니다.

반응형
반응형







1. 파일시스템 장치명

   - 파티션들의 위치를 의미함


2. 마운트 포인트

   - 파일시스템 장치명을 리눅스 파일 시스템 내에 연결할 디렉토리 경로를 설정


3. File System Type (파일시스템 종류)

ext         - 초기 리눅스에서 사용하였던 종류, 현재는 사용하지 않습니다.

ext2       - 현재도 사용하며, 긴~파일시스템이름을 지원하는것이 특징입니다.

ext3       - 저널링 파일시스템, ext2보다 파일시스템의 복수/보안기능을 크게향상됨               

ext4       - 16TB까지만 지원하던 ext3과 달리 더큰 용량을 지원하며, 삭제된 파일 복구, 

               파일 시스템 점검속도가 빠른 파일시스템입니다.

               현재 기본 파일시스템으로 쓰이고 있습니다.(Centos 6.5 기준)

iso9660   - DVD/CD-ROM을 위한 표준 파일시스템으로 읽기만 가능합니다.

nfs         - 원격서버에서 파일시스템 마운트할때 사용하는 시스템(Network File System)

swap     - 스왑파일시스템, 스왑공간으로 사용되는 파일시스템에 사용합니다.

ufs         - Unix system에서 표준 파일시스템으로 사용합니다.(Unix File System)

vfat        - 윈도우95/98등등 ntfs를 지원하기위한 파일시스템에 사용합니다.

msdos    - MS-DOS파티션을 사용하기위한 파일시스템에 사용합니다.

ntfs        - 윈도우NT/2000의 nfts를 지원하기위한 파일시스템에 사용합니다.

hfs         - MAC컴퓨터의 hfs를 지원하기위한 파일시스템에 사용합니다.

hpfs       - hpfs를 지원하기위한 파일시스템에 사용합니다.

sysv      - Unix system v를 지원하기위한 파일시스템에 사용합니다.

ramdisk   - RAM을 지원하기위한 파일시스템에 사용합니다.


4. 마운트 옵션

default     -    rw, nouser, auto, exec, suid속성을 모두 설정

auto        -    부팅시 자동마운트

noauto     -    부팅시 자동마운트를 하지않음

exec        -    실행파일이 실행되는것을 허용

noexec    -    실행파일이 실행되는것을 불허용

suid        -    SetUID, SetGID 사용을 허용

nosuid    -    SetUID, SetGID 사용을 불허용

ro           -    읽기전용의 파일시스템으로 설정

rw          -    읽시/쓰기전용의 파일시스템으로 설정

user       -    일반사용자 마운트 가능

nouser   -    일반사용자 마운트불가능, root만 가능

quota     -    Quota설정이 가능

noquota -    Quota설정이 불가능


5. 덤프

- 백업이 가능한지 설정하는 옵션입니다.

0    -    덤프가 불가능하게 설정

1    -    덤프가 가능하게 설정



6. 무결성 검사 체크 옵션

0    -    무결성 검사를 하지 않습니다.

1    -    우선순위 1위를 뜻하며, 대부분 루트부분에 설정을 해놓습니다.

2    -    우선순위 2위를 뜻하며, 1위를 검사한후 2위를 검사합니다.


루트 파일시스템은 1이기때문에 루트부분 검사후 검사합니다.


참고사이트 : http://movenpick.tistory.com/34


반응형
반응형


참고 : http://sola99.tistory.com/151



1. 시스코 네트워크 시뮬레이터


a. GNS3

- Dynamips/Dynagen 을 포함하여 그래픽 환경에서 시스코 IOS 를 배치 및 제어.

- Qemu/Pemu/VirtualBox/JunOS/VPCS 와 Cloud(Bridge/Network)를 통한 연동 기능 제공.

- 최신버전 0.8.6 (2014년 3월)

- 공식홈페이지 http://www.gns3.net/


b. 시스코 Nexus(NX-OS) 시뮬레이터

Nexus Titanium Project 는 Nexus 7000 NX-OS 를 실제 장비 없이 가상 환경(VMware)에서 시물레이션 해줍니다.

- 현재 VMware ESX, Workstation 에서 VMware image, Qemu 로 구현 가능함



2.  주니퍼 시뮬레이터


a. Olive

- 주니퍼 장비의 OS 인 Junos 를 시뮬레이터 한다.

- FreeBSD 에서 동작하며 NIC 카드 제약 등 설치가 까다로움

- 현재는 VMware 설치 된 이미지가 구글등에서 구할 수 있음.

- Qemu 1.0 부터는 Multicast 수신 issue 가 해결됨.

http://juniper.cluepon.net/index.php/Olive/


b. Junosphere

: 주니퍼에서 정식으로 출시 된 웹 브라우저를 통한 가상 환경의 Junos 테스트 환경 제공

http://www.juniper.net/kr/kr/products-services/software/junos-platform/junosphere

반응형
반응형

정보보안기사 접수완료


준비할 것이 정말 많음...


계속 업데이트 할 예정


최종 업데이트 일 : 2014.03.05



1. /etc/fstab의 옵션 및 설정 방법


2. find 명령어 옵션 (특히 setuid, setgid, stickey bit 등)


3. Linux iptables 사용방법  / 윈도우 ipsec


4. lastlog, wtmp, last, lastb(btmp)


5. nessus(www.nessus.org), SARA(www-arc.com/sara), nikto2(www.cirt.net/nikto2)


6. 리눅스 시스템 무결성 점검 도구 : tripwire(www.tripwire.org), Fcheck


7. 접근 통제 및 로깅도구 : TCP_Wrapper


8. 스캔 탐지도구 : portsentry (www.rpmfind.net)


9. syslog 서버 : syslog-ng(리눅스), Datagram SyslogAgent 3.6(Syslogserver.com/download.html)


10. webalizer(www.webalizer.org)


11. 라우팅 에뮬레이터 

      참고 사이트 : http://sola99.tistory.com/151

반응형

'자격증 > 정보보안기사' 카테고리의 다른 글

Windows IPSEC 설정 방법  (0) 2014.03.21
리눅스 방화벽 프로그램 iptables 설정  (0) 2014.03.21
find 명령어 옵션  (0) 2014.03.21
/etc/fstab 설정 및 옵션  (1) 2014.03.05
라우터 시뮬레이터 프로그램  (0) 2014.03.05
반응형


SSH Java client GUI for Unix, Linux administration and monitoring


리눅스 시스템 관리 및 모니터링 툴

총론.... (아... 세시간동안 캡쳐 뜨고 설치 및 사용 해봤으나.... 초보를 위한 툴임...)

시험기간 5년 동안 무료 (http://sshadmincontrol.com/download-admin-tool)
(사용자 등록을 하면 등록된 메일로 

** 전제조건 jre 1.6 이상 설치 필요(monkey 1.2.0 설치하고 난 뒤 JRE가 미설치 되어 있으면 안내페이지가 뜸)



특징

  • Remote Desktop Win (RDP)
  • PuTTY(포함)
  • WinSCP (포함)
  • Wireshark (별도 다운로드)
  • 당신의 서버들을 원격으로 제어 및 통제
  • 자동 방화벽 규칙 체크 : 엑셀로 결과 출력 
  • 여러서버들에게 동시에 유닉스 명령어를 다양하게 실행 
  • 당신의 서버들의 CPU와 메모리 대시보드 화면을 실시간으로 원격 모니터링 
  • 구글 대화 
  • NC Test
  • 네트워크 대역폭과 시스템 모니터링

화면(기능 특징 나열)








출처 : http://sshadmincontrol.com/

http://sourceforge.net/projects/sshadmincontrol/?source=directory




** 인터넷을 통한 매뉴얼 검색 : http://sshadmincontrol.com/documentation


1. 사용자 등록하기


    - 웹 사이트 : http://sshadmincontrol.com/download-admin-tool


    - 아래에 보듯이 붉은 별 ( * ) 표시를 모두 입력해야 하나 크롬 or IE에서도 아래와 같이 깨져 있어 정상적으로 입력화면이 인식되지 않는다... 따라서 * 표시를 클릭하여 해당하는 칸에 focus가 되면 입력한다.

    



2. 이메일을 통한 사용자 등록(5년 동안 무료로 사용 가능)



3. 설치된 프로그램을 통한 실행

    - 설치는 어렵지 않기 때문에 Pass

    - 설치된 아래의 아이콘을 실행(HelperMonkeyTool 실행)





4. 첫 실행

   

   - 90일 트라이얼 라이센스로 설치되었다는 안내 화면 (90이내로 등록하면 5년 무료 사용 가능... 그 이후는.. 잘...)




5. 서버 등록화면


- ServerName : 서버명으로 적음

- Address : 실제 서버 주소

- User : 접속할 사용자 계정

- Password : User에 맞는 암호

- Protocol : 사용 프로토콜 ( 기본적 22 port : ssh / 23 port : telnet ) 

   ※ 서버 환경을 변경하여 포트가 상이할 수 있으므로 담당자에게 반드시 확인 필요

- Domain : 도메인

- Environment : 환경

- Port : 사용 포트


위의 정보를 모두 입력 후 해당 줄에 우클릭을 눌러 Test Connection을 클릭하면 Server Name 앞에 정상적일 경우 v 표시가 뜨면, 만약 연결이 안될 시에는 X 표시가 떠 확인 가능함.





6. SSH 접근


   - 해당 서버에 우클릭을 선택하여 (위 화면 참조) Open Putty를 실행하면 아래와 같이 putty 접속화면이 뜸


      




7. SCP (Secure Copy) 사용 해 보기


  - SCP 명령을 통해 파일 복사하기

  - 화면상에 SCP를 클릭하고 (처음 실행시 Yes를 한번 눌러준다)



- 위의 SCP 클릭한 화면





- SCP 상에 한글 깨짐(폰트 설정) 현상시 환경 설정에서 글꼴 변경을 통해 해결 하기

 

WinSCP기동->Envirment->UTF-8 encoding for filename

Auto 를 On으로 변경



8. 모니터링 하기(네트워크 모니터링)


   - Bandwidth Monitor





- 모니터링 환경 설정으로 Default는 기본으로 1분 단위로 모니터링 이며, Aggressive는 1초 단위로 모니터링 하는 것임

   > 크리티컬 하게 시스템 장애시 Aggressive으로 설정 뒤 Set Properties 클릭 





-  eth1 네트워크에 대한 NIC 네트워크 대역 폭, CPU 등 정보를 표기 함

- Extend View 클릭을 통해 전체를 더 상세하게 조회 가능함



- 시스템의 상태를 전체적인 GUI 형태로 조회함




8. 모니터링 하기(ADV 모니터링)


- ADV Monitor을 클릭하여 결과를 엑셀 파일을 저장한뒤 RECORD Charting 기능을 통해 GUI 결과를 조회할 수 있음


- ADV Monitor -> Aggressive -> Set Properties 


- 좌측 붉은 색 RECORD (CPU/RAM)을 클릭하면 Aggressive 설정에 지정된 시간 단위로 파일로 저장

 

- 우측에 흰 RECORD을 누르면 저장된 파일의 디렉토리가 조회 가능함


- 좌측 붉은 색 RECORD 클릭



- RECORD 한뒤 서버에서 PING을 실행하여 네트워크 및 CPU 부하 발생 뒤 STOP을 눌러 멈춤



- RECORD 한뒤 서버에서 PING을 실행하여 네트워크 및 CPU 부하 발생 뒤 STOP을 눌러 멈춤

- RECORD Charting을 눌러 저장된 GUI을 조회





- 우측 위에 파일 선택(여러개 캡쳐한 경우)

- Refactor에서 Mavg, CPU, RAM 값 선택 가능, 시간(Secords, Minutes, Hours, Days)을 선택하여 기록된 정보를 기준으로 대쉬 보드를 조회 가능함



9. 모니터링 하기(디스크 모니터링)

- DISK Monitor을 눌러 디스크 공간 조회 가능



- 디스크 공간 조회 




반응형

'UTILITY' 카테고리의 다른 글

정규식 방법  (0) 2014.06.17
Process Hacker  (0) 2014.03.26
secureCRT 대신 putty 사용하기 (멀티탭 관련)  (0) 2014.03.01
윈도우 빠른 파일 검색 및 내용 검색  (1) 2014.02.11
Virtual BOX SATA 방식의 XP  (0) 2013.07.23

+ Recent posts