일생 생활에서 방화벽??
요즘 웬만한 규모의 회사나 업장이라면 방화벽(Firewall) 장치를 가지고 있습니다. 회사 컴퓨터가 외부에 무방비로 노출괸다면 엄청나게 큰 피해를 입을 소지가 다분해 집니다.
방화벽은 외부의 접근을 선별적으로 차단해주는 네트워크상의 보호장치입니다. 가격은 아주 기본적인 역할을 하는 저가부터 꽤 고가의 장비까지 다양합니다.
고각의 방화벽은 하드웨어와 소프트웨어에 해당하는 모든것을 포함하기도 합니다.
진행사항
- 보안을 위한 네트워크 이해와 설계
- 방화벽 컴퓨터 설정
- 방화벽 컴퓨터 설치 및 구현
- 방화벽 테스트
보안을 위한 네트워크 이해와 설계
네트워크 보안은 외부의 악의적인 침입으로부터 내부의 컴퓨터를 보호하기 위한것
네트워크 보안에는 다양한 방법이 있지만, 기본이 되는 것은 네트워크 설계를 안전하게 하는것이다.
가장 안전한 네트워크 설계는 내부의 네트워크와 외부를 완전히 차단해서
내부에서 외부로 접속하지 못하도록 고립시키는 것입니다.
하지만 이 방법은 특수한 몇몇 환경을 제외하고는 사용하지 않습니다. 군대나 회사 사내망 등?
도둑이 무서워서 집의 문과 창문을 모두 폐쇄하고 집 밖에 나가지 못하게 만든 상황이라고 생각하면됩니다.
그래서 내부의 사용자는 외부의 인터넷을 이용할 수 있지만,
외부에서는 내부로 침입할 수 없게 하는 방법이 필요해졌습니다.
가장 보편적으로 많이 사용하는 방법이 흔히 사설 IP(Private IP)라고 불리는 nonroutable IP 주소를 이용하는 것입니다.
이 것은 내부 컴퓨터 사이의 트래픽은 허용하면서 외부 인터넷과의 접속은 허용 또는 제한할 수 있는 쉽고 좋은 방법입니다
이 사설 IP 주소범위는
- 10.0.0.0~10.255.255.255
- 172.16.0.0~172.31.255.255
- 192.168.0.0~192.168.255.255
이렇게 3가지가 있습니다.
이 주소 범위에 있는 컴퓨터는 인터넷 라우터를 통과할 수 없습니다.
그래서 외부의 컴퓨터는 이 주소 범위에 있는 컴퓨터에 접근할 수 없게 됩니다.
하지만 이 주소의 컴퓨터 또한 외부 인터넷으로 나갈 수 가 없습니다.
그래서 사설 IP주소의 컴퓨터가 외부 인터넷에 접속할 수 있도록 해주는 IP 마스커레이딩(Masquerading)이라는 방법을 활용합니다.
(떄로는 IP 위장이라고 부르기도 합니다.)
방화벽이란 외부에 공개된 네트워크와 내부의 사설 네트워크 사이에서
외부와 내부에 전달되는 트래픽을 '정책' 에 따라 허용 또는 거부하는 역할을 하는 컴퓨터나 장치를 말합니다.
이래는 간단하고 보편적인 방화벽으로 구성된 사설 네트워크 환경입니다.
우선 위의 그림을 보면 방화벽이 하는 역할을 잘 이해할 수 있습니다.
- 사설 네트워크는 회사의 내부라고 생각하면 됩니다. 위 그림에는 2대뿐이지만 실제환경에서는 더 많을 것입니다.
- 외부네트워크는 특정한 컴퓨터가 아닌 인터넷상의 모든 컴퓨터라고 생각합니다.
- 방화벽 컴퓨터에는 2개의 네트워크 카드(랜카드) 가 설치되어 있어야합니다. 왜냐하면 하나는 내부 사설 네트워크에 연결될 네트워크 카드고, 하나는 외부의 인터넷과 연결된 네트워크 카드입니다.
(그림을 부면 사설IP와 공인 IP 가 공존하고있습니다.) - 허브는 내부에 있는 여러 대의 컴퓨터와 방화벽을 연결하는 장치입니다. 내부 컴퓨터가 1대뿐이라면 허브는 없어도 됩니다. 실무에서는 주로 성능이 좋고 고가인 스위칭 허브를 많이 사용합니다.
방화벽 작동 원리
1
사설 네트워크 안의 컴퓨터들은 외부의 인터넷에 접속할 수 있어야 합니다.
따라서 사설 네트워크 안에 있는 컴퓨터들의 네트워크 정보 중,
게이트웨이 주소는 방화벽 컴퓨터의 [사설IP 3]로 지정되어 있어야 합니다.
그래야만 게이트웨이를 통해 외부의 인터넷에 접속할 수 있습니다.
만약 리눅스 클라이언트가 방화벽 컴퓨터를 통해 외부 네트워크의 Windows 컴퓨터에 접속했다면,
외부의 Windows 컴퓨터 입장에서는 리눅스 클라이언트의 [사설IP 1]이 접근했다는 사실을 알지 못하며,
단지 방화벽 컴퓨터의 [공인 IP 1]로 접속되었다는 사실만 알 수 있을 것입니다.
결론적으로 사설 네트워크의 모든 컴퓨터가 외부 인터넷을 사용할 때는 방화벽의 [공인 IP 1]을 사용하게 됩니다.
이것을 앞에서 이야기했던 마스커레이딩(Masquerading)이라고 부릅니다.
2
리눅스 클라이언트가 [사설 IP 1]로 방화벽의 [사설 IP 3]과 [공인 IP 1]을 통해 외부 서버로 접속하려면 패킷을 전송하게 됩니다.
그리고 이 외부 서버는 접속한 클라이언트로 응답 패킷을 전송하려고 할 때,
리눅스 클라이언트 IP 주소를 [사설 IP 1] 이 아닌 [공인 IP 1]로 알고 있어서 [공인 IP 1]로 패킷을 전송하게 됩니다.
그러면 방화벽 컴퓨터는 해당 패킷을 [사설 IP 1]로 전송하게 됩니다.
이러한 것을 SNAT(Source Network Address Translation) 이라고 부릅니다.
이는 마스커레이드와 거의 유사한 가능이며 대개 사설 IP주소를 동적으로 운영할 때는 마스커레이드를 사용하고,
사설 IP를 고정으로 운영할 때는 SNAT를 사용합니다.
3
외부에서 [사설 IP 2]를 이용하는 리눅스 웹 서버에 접속할 때, 방화벽의 [공인 IP 1]로 접속해야 하며,
방화벽 컴퓨터가 이 패킷을 내부의 [사설 IP 2]에 전송합니다.
이러한 기능을 DNAT(Destination Network Translation)이라고 부릅니다.
이러한 기능들은 자동으로 사용할 수 있는 것이 아니라 서버관리자가 직접 설정을 해줘야합니다.
이렇게 서버 관리자가 여러 가지 규칙을 지정해 주는 것을 "정책수립" 이라고 합니다.
즉 방화벽 컴퓨터는 서버 관리자에 따라 아주 강력한 보안 정책을 유지할 수 있고,
유연한 보안 정책을 가지게 될 수 있으며, 없는것과 마찬가지로 될 수가 있습니다.
실제로 아주 비싼 방화벽 장비를 설치한 곳에서 내부와 외부의 모든 패킷을 허용하는 규칙을 설정해서
거의 뭐 방화벽이 없는것과 마찬가지로 운영하는 경우도 있을 수 있습니다.
결론적으로 방화벽 컴퓨터 운영에서는 '정책'을 어떻게 수립하느냐의 문제가 더 중요하다고 할 수 있습니다.
'리눅스공부 > 네트워크 서버 구축(FTP, NFS, Samba 등)' 카테고리의 다른 글
[프록시서버설치와 운영-3] 프록시 서버의 개념 - 프록시(Proxy)서버 설치와 운영 (0) | 2023.02.08 |
---|---|
[프록시서버설치와 운영-2] 프록시 서버의 개념 - 프록시(Proxy)서버 설치와 운영 (0) | 2023.02.08 |
[프록시서버설치와 운영-1] 프록시 서버의 개념 - 프록시(Proxy)서버 설치와 운영 (0) | 2023.02.08 |
[DHCP서버설치와 운영-4] DHCP서버의 IP 정보 할당 받기 - DHCP서버설치와 운영 (0) | 2023.02.07 |
[DHCP서버설치와 운영-3] DHCP서버설치 및 설정 - DHCP서버설치와 운영 (0) | 2023.02.07 |
댓글