오늘날 컴퓨터 네트워크가 점차 대중화됨에 따라 컴퓨터 보안은 컴퓨터 바이러스를 예방할 뿐만 아니라 해커의 불법 침입에 저항하는 시스템 능력을 향상시켜야 하며, 전송 중 불법 도난을 방지하기 위해 원격 데이터 전송의 기밀성을 향상시켜야 합니다. 이 기사에서는 관심을 끌기 위해 웹 서버를 구축할 때 발생할 수 있는 몇 가지 상황에 대해서만 설명합니다.
1. 보안 취약점
웹 서버의 취약점은 다음과 같은 측면에서 고려될 수 있습니다.
1. 다른 사람의 접근을 허용하지 않는 웹 서버의 비밀 파일, 디렉토리 또는 중요한 데이터.
2. 원격 사용자로부터 서버로 정보를 보낼 때, 특히 신용카드 등의 정보를 보낼 때, 중간에 범죄자들에게 불법적으로 가로채는 일이 발생합니다.
3. 웹 서버 자체에는 몇 가지 취약점이 있어 일부 사람들이 호스트 시스템에 침입하여 일부 중요한 데이터를 파괴하고 심지어 시스템 마비를 일으킬 수도 있습니다.
4. CGI 보안 취약점은 다음과 같습니다.
(1) 의도적 또는 비의도적으로 호스트 시스템의 버그를 생략하면 불법 해커가 발생할 수 있는 환경이 조성됩니다.
(2) CGI 스크립트로 작성된 프로그램은 호스트 시스템에 Web Hazard를 제공할 수 있습니다.
5. 일부 보안 요소를 고려하지 않고 인터넷에서 다운로드한 일부 간단한 웹 서버도 있으며 상용 응용 프로그램에는 사용할 수 없습니다.
따라서 서버를 구성하든 CGI 프로그램을 작성하든 시스템 보안에 주의를 기울여야 합니다. 기존의 허점을 막고 안전한 환경을 조성해 보세요.
2. 시스템 보안 및 안정성 향상
웹 서버 보안 예방 조치:
1. 웹 서버에서 계정 개설을 제한하고 프로세스를 방해하는 일부 사용자를 정기적으로 삭제하십시오.
2. 웹 서버에 개설된 계정의 경우 도난 방지를 위해 비밀번호 길이와 정기적인 변경에 대한 요구 사항을 만듭니다.
3. FTP, MAIL 및 기타 서버를 이들 서버에서 분리하고 ftp, sendmail, tftp, NIS, NFS, Finger, netstat 등과 같은 일부 관련 없는 응용 프로그램을 제거하십시오.
4. 웹 서버에서 SHELL과 같은 절대적으로 불필요한 해석기를 제거합니다. 즉, CGI 프로그램에서 PERL을 사용하지 않는 경우 시스템 해석기에서 PERL을 삭제해 보십시오.
5. 정기적으로 서버의 로그 파일을 확인하고 의심스러운 이벤트가 있는지 분석하십시오. rm, login, /bin/perl, /bin/sh 등과 같은 기록이 오류 로그에 나타나면 일부 불법 사용자가 서버에 침입했을 수 있습니다.
6. 웹 서버의 시스템 파일에 대한 권한과 속성을 설정하고, 다른 사람이 접근할 수 있는 문서에 WWW와 같은 공개 그룹을 할당하고 읽기 전용 권한만 할당합니다. 모든 HTML 파일은 WWW 그룹에 속하며, WWW 그룹은 웹 관리자가 관리합니다. 웹 관리자만 웹 구성 파일에 대한 쓰기 액세스 권한을 갖습니다.
7. 일부 웹 서버가 웹 문서 디렉터리와 FTP 디렉터리를 동일한 디렉터리로 지정하는 경우 동일한 디렉터리에 FTP 디렉터리와 CGI-BIN을 지정하지 않도록 주의해야 합니다. 이는 일부 사용자가 FTP를 통해 PERL 또는 SH와 같은 일부 프로그램을 업로드하고 웹의 CGI-BIN을 사용하여 이를 실행하여 부정적인 결과를 초래하는 것을 방지하기 위한 것입니다.
8. NCSA의 access.conf에 다음을 추가하는 등 권한을 제한하여 사용자 IP 또는 DNS에 액세스합니다.
"디렉터리 /full/path/to/directory"
"GET POST 제한"
주문 상호 실패
모두를 거부하다
168.160.142에서 허용합니다.
"/한계"
"/예배 규칙서"
이를 통해 도메인 이름이 abc.net.cn이거나 IP가 168.160.142인 고객만 웹 서버에 접속할 수 있습니다.
CERN 또는 W3C 서버의 경우 httpd.conf에 다음을 추가하십시오.
보호 로컬 사용자 {
GetMask @(*.capricorn.com, *.zoo.org, 18.157.0.5)
}
/relative/path/to/directory/* LOCAL-USERS 보호
9.WINDOWS에서의 HTTPD
(1)NT용 Netscape 통신 서버
PERL 인터프리터 취약점:
Netscape Communications Server는 CGI-BIN 하에서 확장 및 해당 응용 프로그램 관계를 인식할 수 없습니다. 예를 들어 .pl 파일은 PERL 코드 프로그램에 의해 자동으로 호출되는 해석 파일이므로 지금도 perl.exe 파일은 CGI에만 저장할 수 있습니다. -BIN 디렉토리가 다운되었습니다. 다음과 같이 실행하십시오: /cgi-bin/perl.exe? &my_script.pl. 하지만 이것은
누군가가 브라우저의 URL에 /cgi-bin/perl.exe와 같은 것을 추가하면 누구나 PERL을 실행할 수 있습니까? -e unlink <*>를 사용하면 서버의 현재 디렉터리에 있는 파일이 삭제될 위험이 있습니다. 그러나 O'Reilly WebSite 또는 Purveyor와 같은 다른 사이트에는 이 취약점이 없습니다.
배치 파일의 CGI 실행 취약점:
test.bat 파일의 내용은 다음과 같습니다.
@에코 꺼짐
echo 콘텐츠 유형: 텍스트/일반
에코
에코 헬로 월드!
고객 브라우저의 URL이 /cgi-bin/test.bat이면 어떻게 되나요? &dir이면 명령 해석기가 실행되어 DIR 목록을 완성합니다. 이를 통해 방문자는 다른 명령을 실행할 수 있습니다.
(2)Windows NT/95용 O'Reilly 웹사이트 서버
WebSite1.1B 이전 버전에서 배치 파일을 사용할 때 Netscape와 동일한 취약점이 존재합니다. 그러나 새 버전에서는 CGI에서 .bat의 역할이 종료됩니다. PERL을 지원하며 새 버전은 VB 및 C를 CGI 개발 도구로 사용합니다.
(3)Microsoft의 IIS 웹 서버
1996년 3월 5일 이전의 IIS에는 NT에 심각한 버그가 있어서 명령 명령을 임의로 사용할 수 있습니다. 그러나 이후 취약점이 패치되었으며 실행 파일의 생성 날짜를 확인할 수 있습니다. IIS 3.0에는 여전히 일부 보안 버그가 있으며 주로 CGI-BIN에 따른 부여 권한이 있습니다. 또한, 많은 웹 서버 자체에는 보안 취약점이 있으며, 이는 버전 업그레이드 과정에서 지속적으로 업데이트되므로 여기서는 하나씩 나열하지 않겠습니다.
[컷 페이지]
3. CGI 프로그래밍 관점에서 보안을 고려하십시오.
1. 해석된 언어보다 컴파일된 언어를 사용하는 것이 더 안전하며, CGI 프로그램은 HTML 저장 디렉터리와 별개로 CGI-BIN 아래에 배치되어야 합니다. 이는 일부 불법 방문자가 브라우저에서 해석된 언어의 소스를 얻는 것을 방지하기 위한 것입니다. 코드에서.
2. C로 CGI 프로그램을 작성할 때 popen(), system(), /bin/sh와 관련된 모든 SHELL 명령은 물론 system(), exec(), open(), eval( PERL )을 사용해야 합니다. exec 또는 eval과 같은 기타 명령도 있습니다.
사용자가 작성한 양식이 CGI로 반환될 때 system()과 같은 함수를 직접 호출하지 마십시오.
또한 데이터 암호화 및 전송을 위해 현재 모든 사람이 연구할 수 있는 SSL, SHTTP, SHEN 및 기타 프로토콜이 있습니다.
4. 방화벽
1. 방화벽의 개념
방화벽이란 기업이나 네트워크 그룹의 컴퓨터와 외부 채널(인터넷) 사이에 위치하는 소프트웨어 또는 소프트웨어와 하드웨어 장치의 결합으로 구성된 장치를 말하며, 외부 사용자의 내부 네트워크 접근을 제한합니다. 외부 네트워크에 대한 내부 사용자의 액세스 권한을 관리합니다.
2. 방화벽 대책
(1)프록시 호스트
"내부 네트워크--프록시 게이트웨이--인터넷"
이런 방식으로 내부 네트워크는 인터넷과 직접 통신하지 않습니다. 즉, 내부 네트워크 컴퓨터 사용자와 프록시 게이트웨이는 내부 네트워크 프로토콜(Netbios, TCP/IP 등)을 제공하는 통신 방식을 채택하고, 게이트웨이와 프록시 게이트웨이 간에는 표준 TCP/IP 네트워크 통신 프로토콜을 채택한다. 인터넷. 이렇게 하면 네트워크 데이터 패킷이 내부 네트워크와 외부 네트워크 간에 직접 이동하는 것을 방지할 수 있습니다. 내부 컴퓨터는 프록시 게이트웨이를 통해 인터넷에 액세스해야 하며, 이를 통해 내부 네트워크 컴퓨터가 프록시 서버의 외부 컴퓨터에 액세스하는 것을 쉽게 제한할 수 있습니다. 또한 프록시 서버는 양쪽 끝에서 서로 다른 프로토콜 표준을 사용하기 때문에 외부 세계로부터의 불법 침입을 직접적으로 방지할 수도 있습니다. 또한 프록시 서버의 게이트웨이는 데이터 패킷 확인, 비밀번호 확인 등의 보안 제어를 수행할 수 있습니다. 이러한 방식으로 양쪽 끝의 사용자를 더 잘 제어하고 관리할 수 있으며 방화벽 역할을 할 수 있습니다.
이 방화벽 조치는 프록시 서버를 통해 구현되기 때문에 온라인 사용자가 많을 경우 효율성에 영향을 미칠 수밖에 없습니다. 따라서 프록시 서버의 부담이 크기 때문에 인터넷에 접속하는 많은 클라이언트 소프트웨어가 내부에서 정상적으로 인터넷에 접속하지 못할 수 있습니다. 네트워크 컴퓨터.
(2) 라우터에 필터 추가가 완료되었습니다.
"내부 네트워크--필터--라우터--인터넷"
이 구조는 라우터와 필터를 사용하여 외부 컴퓨터가 IP 주소 또는 도메인 이름을 기반으로 내부 네트워크에 액세스하는 것을 공동으로 제한합니다. 또한 내부 네트워크에서 인터넷에 대한 액세스를 지정하거나 제한할 수도 있습니다. 라우터는 호스트의 특정 PORT로만 데이터 통신을 라우팅하고, 필터는 필터링, 필터링, 검증, 보안 모니터링을 수행하므로 내부 네트워크와 외부 네트워크 간의 비정상적인 접속 로그인을 크게 격리할 수 있습니다.
[컷 페이지]3. CGI 프로그래밍 관점에서 보안을 고려하십시오.
1. 해석된 언어보다 컴파일된 언어를 사용하는 것이 더 안전하며, CGI 프로그램은 HTML 저장 디렉터리와 별개로 CGI-BIN 아래에 배치되어야 합니다. 이는 일부 불법 방문자가 브라우저에서 해석된 언어의 소스를 얻는 것을 방지하기 위한 것입니다. 코드에서.
2. C로 CGI 프로그램을 작성할 때 popen(), system(), /bin/sh와 관련된 모든 SHELL 명령은 물론 system(), exec(), open(), eval( PERL )을 사용해야 합니다. exec 또는 eval과 같은 기타 명령도 있습니다.
사용자가 작성한 양식이 CGI로 반환될 때 system()과 같은 함수를 직접 호출하지 마십시오.
또한 데이터 암호화 및 전송을 위해 현재 모든 사람이 연구할 수 있는 SSL, SHTTP, SHEN 및 기타 프로토콜이 있습니다.
4. 방화벽
1. 방화벽의 개념
방화벽이란 기업이나 네트워크 그룹의 컴퓨터와 외부 채널(인터넷) 사이에 위치하는 소프트웨어 또는 소프트웨어와 하드웨어 장치의 결합으로 구성된 장치를 말하며, 외부 사용자의 내부 네트워크 접근을 제한합니다. 외부 네트워크에 대한 내부 사용자의 액세스 권한을 관리합니다.
2. 방화벽 대책
(1)프록시 호스트
"내부 네트워크--프록시 게이트웨이--인터넷"
이런 방식으로 내부 네트워크는 인터넷과 직접 통신하지 않습니다. 즉, 내부 네트워크 컴퓨터 사용자와 프록시 게이트웨이는 내부 네트워크 프로토콜(Netbios, TCP/IP 등)을 제공하는 통신 방식을 채택하고, 게이트웨이와 프록시 게이트웨이 간에는 표준 TCP/IP 네트워크 통신 프로토콜을 채택한다. 인터넷. 이렇게 하면 네트워크 데이터 패킷이 내부 네트워크와 외부 네트워크 간에 직접 이동하는 것을 방지할 수 있습니다. 내부 컴퓨터는 프록시 게이트웨이를 통해 인터넷에 액세스해야 하며, 이를 통해 내부 네트워크 컴퓨터가 프록시 서버의 외부 컴퓨터에 액세스하는 것을 쉽게 제한할 수 있습니다. 또한 프록시 서버는 양쪽 끝에서 서로 다른 프로토콜 표준을 사용하기 때문에 외부 세계로부터의 불법 침입을 직접적으로 방지할 수도 있습니다. 또한 프록시 서버의 게이트웨이는 데이터 패킷 확인, 비밀번호 확인 등의 보안 제어를 수행할 수 있습니다. 이러한 방식으로 양쪽 끝의 사용자를 더 잘 제어하고 관리할 수 있으며 방화벽 역할을 할 수 있습니다.
이 방화벽 조치는 프록시 서버를 통해 구현되기 때문에 온라인 사용자가 많을 경우 효율성에 영향을 미칠 수밖에 없습니다. 따라서 프록시 서버의 부담이 크기 때문에 인터넷에 접속하는 많은 클라이언트 소프트웨어가 내부에서 정상적으로 인터넷에 접속하지 못할 수 있습니다. 네트워크 컴퓨터.
(2) 라우터에 필터 추가가 완료되었습니다.
"내부 네트워크--필터--라우터--인터넷"
이 구조는 라우터와 필터를 사용하여 외부 컴퓨터가 IP 주소 또는 도메인 이름을 기반으로 내부 네트워크에 액세스하는 것을 공동으로 제한합니다. 또한 내부 네트워크에서 인터넷에 대한 액세스를 지정하거나 제한할 수도 있습니다. 라우터는 호스트의 특정 PORT로만 데이터 통신을 라우팅하고, 필터는 필터링, 필터링, 검증, 보안 모니터링을 수행하므로 내부 네트워크와 외부 네트워크 간의 비정상적인 접속 로그인을 크게 격리할 수 있습니다.