본문 바로가기

컴퓨터/침입차단시스템

2008년 9월 29일 [] + 중간고사

iptables

명령어 : 페이지 344
옵션?

table 에 대한 것도 나옴 : 페이지 343

ipchain 에서 부터 iptables 로 커널이 2.4때 바뀌었다.
그렇게 발전해온거지

iptables의 기능이 몇 가지가 있다. 그것에 대한 것이 나오겠다.
1. 기능 : 페이지 330

2. iptables 설정하기 위해서는 리눅스 커널에서 옵션을 선택했지
그 선택하는 부분을 하고나면 컴파일을 해야지
=> 컴파일 과정

////////////////////////////////////////////

리눅스 커널 컴파일 하는 방법 (순서)

1. tar xvjf 파일명

1_2. bunzip2
    tar xvf

2. cd linux ~~

3. make mrproper 기존 걸 지워버린다는거

4. make menuconfig

5. make <-- make; 해주면 ; 때문에 이하과정을 자동으로 해줌

;은 쉘의 기능중 하나인데 뭔가를 연결해줌

6. make modules

7. make modules_install

8. make install

//////////////////////////////////



3. menu 선택에서 "limit" 이것에 대한 기능을 잘 알아둬라

책 333 페이지

"limit" match support

룰에

매칭되는 개수, 비율 제한 기능

DOS 차단, 불필요한 로그 X

iptables -A INPUT -p tcp --tcp-flags SYN,FIN, SYN,FIN -m limit --limit 5/minute -j LOG

inbound 되는 tcp에 대해서 syn,fin이 함께 보일경우 최대 분당 5개까지만 남기겠다는 의미



4.  iptables 에서 사용하는 용어가 있다.

5. iptables 의 tables의 종류

6. tables 를 설정하기 위해서 어떤 것들이 필요한가?

7. 명령어 정책

8. chain 에 대해서

9. chain 을 이용하는 방법

10. chain 에 관한 명령어

11. 매칭 옵션 중 여러분이 가장 많이 쓰는 것
    "     tcp udp 라 든지 그런 종류를 잘 알아두면 되요    "

12. 시간과 관련된 매칭옵션이 있을 겁니다.

13. iptables의 타겟에 대해서 잘 알아둬라

14. chain의 종류

15. 타겟을 사용하는 방법

16. 상태추적 기능에서 필요한 것들이 뭔지? 명령어 내릴 때도 어떻게 하는 지 알아두자

17. 포트 포워딩을 하는 타겟이 있습니다.

18. chain 명령어 중에서 정책을 설정하거나 삭제하거나 하는 명령어

19. 18번과 마찬가지로 공부

20 상태추적기능에서 상태를 표시해주는 부분이 있어요 그거를 잘 알고 있으면 되요


21. 거부 타겟 2가지의 정의와 의미를 읽어라=> 차이점

22 ~ 25 주관식인데 명령어를 완성 시키는 것 => 옵션 , 타겟 9, 10번 제대로하면 이거야 뭐 하겠지?


IP주소 관련된 것과 프로토콜 관련됫것 테겟에 관련된게 나온다는





=========================================================================================

타겟에는 LOG ACCEPT DROP REJECT

DROP
REJECT
는 거부

LOG 타겟에 대한 설명
패킷의 IP주소 및 기나 유용한 정보를 로그에 남김
이 정보는 dmesg의 명령어로 확인
옵션은 --log-level, --log-prefix 가 있음
일반적으로 --log-level은 실제로 꼭 필요한 경우를 제외하고는 룰에 잘 명시하지 않으며
기본값인 warning을 씀

loglevel은 총 7가지 옵션
'debug' information notice warning error crit alert emerg 숫자 7 ~ 0 까지 대응을 시켜서 사용

--log-prefix 옵션
14까지의 별도의 문자로 로그 메세지에 선행
ex) iptables -A INPUT -i eth0 -p tcp -j LOG --log-prefix="IPTABLES TCP:"

-j 타겟을 설정하는 것

LOG는 LOG를 남기고자 하는 정책 위에 세워져야 함
ex) Iptables -A INPUT -p tcp --syn -j LOG --log-prefix 'SYN refuse'
     iptables -A INPUT -p tcp --syn -j REJECT
이렇게 해야 기록에 남는다. 그 다음에 거부하면 됨 [룰 순서]



DROP & REJECT
룰에 매칭되는 패킷을 거부
차이점
DROP은 패킷을 거부한 후 어떠한 추가적인 동작이 없음
REJECT는 패킷 거부와 함께 패킷의 소스 주소로 패킷이 거부되었다는 에러 메시지를 발성
-> 부하가 걸림

그래서 DROP을 선호한


NAT 테이블

vmware 에서 랜카드도 가상으로 할 수 도 있구나

iptables NAT타겟
sprkwl
SNAT
소스 IP 어드레스를 지정된 IP로 변경
DNAT
패킷의 목적지 IP어드레스를 변경
이 서버의 IP를 외부에 알리지 않기 위해서

SNAT DNAT 는 둘다 고정IP를 쓴다는 것이다

MASQUERADE
타겟은 SNAT와 동일
SNAT= 고정IP
MASQUERADE= 유동(dhcp) IP

서살 IP주소를 서버의 IP로 가장하여 서버와 연결되어 있는 네트워크 호스트와 함께 외부 인터넷 자원을
공유할 수 있도록 해주는 네트워크 고급기법
IP를 부여받지 않는 컴퓨터오 인터넷을 쓸 수 있게할 수 있는 기법

동작원리

두 개의 IP가 필요한 데 => 두 개의 네트워크 카드가 필요하다는 말 (리눅스 호스트에 MASQUERADE가 설정되는)
호스트 컴퓨터를 IP MASQUERADE의 게이트웨이로 지정하여....

호스트는 Add -> Custom VMnet2
호스트가 아는 것은 그냥 랜카드 설정을 -> Custom -> VMnet2(내꺼는 원래 VMnet0 였다)

리눅스 호스트에서 system-config-network 명령어
eth0을 더블클릭 바꿀건 없다는
eth1을 클릭해서 몇 가지 셋팅 -> 정적으로 IP 할당 -> IP 셋팅(10.5.5.1), 서브넷 마스트 255.255.255.0
디폴트는 공란으로 비워둠 -> OK

두 장치가 연결되기 위해서 두 장치를 활성화 시킴

service network restart

두번 째 머신에서
system-config-network
eth0 정적 -> 10.5.5.2 -> 서브넷 255.255.255.0 디폴트는 10.5.5.1 (리눅스 호스트가 게이트웨이 역할을 하도록)
-> 활성화

리눅스 호스트에서
명령어
iptables -F FORWARD
iptables -P FORWARD DROP
echo "1" > /proc/sys/net/ipv4/ip_forward
iptables -A FORWARD -o eth0 -j ACCEPT
-o 는 아웃픗 인터페이스
iptables -A FORWARD -o eth1 -j ACCEPT

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
=> INPUT, OUTPUT, FORWARD 는 filter
=> POSTROUTING
eth0으로 나가는 패킷을 NAT 테이블안에 사용해서 MASQUERADE해준다는 의미

vim /etc/sysctl.conf 에 7라인의 0을 1로 바꿔 주면 재무팅을 해도 재설정할 필요가 없다
아니면 /etc/rc.d/rc.local 에 쉘 파일 넣어줘라 (/etc/rc.d/init.d/firewall.sh

과제 리눅스에 웹서버 만들고 방화벽 정책 만들고 ftp로 정책들을 적어와라
vi /etc/rc.d/rc.local
룰 명령어 입력

과제는 A4용지에 손으로 써와



WINDOW
XP

ip : 192.168.50.1

<VMNET 8 switch >
[host (centos 1번)] -> 방화벽
eth0 192.....
eht1 10.5.5.2
subnet : 255.255.255.0

<vmnet2 switch>
[host (centos 2번)
eth0 ip 10.5.5.2
subnet 255.255.255.0
gateway 10.5.5.2


재부팅 후리눅스 호스트에서

vim /etc/sysconfig/network-scripts/ifcfg-eth1
여기에 추가한다
BROCADCAST=10.5.5.255
NETWORK=10.5.5.0


로컬에서
vi /etc/sysconfig/network-scripts/ifcfg-eth0

호스느에서
service network restart