티스토리 뷰
728x90
반응형
8장. 네트워크 트래픽 보안 설정
*SSH 포트 전달
============
*패킷 필터링
===========
Rule - 타킷 패킷을 결정하는 기준을 정의하고, 해당 패킷을 수행할 동작을 결정합니다.
Chain - 규칙들의 목록이며, 순차적으로 검사 (여러 항목이 일치하는 경우, 가장 처음 일치하는 항목적용)
Policy - 기본 제공 체인에서 일치하는 규칙을 찾지 못한 경우 수행되는 기본 규칙(ACCEPT/DROP)
Table(filter/nat) - 특정 목적으로 사용되는 체인들의 집합
filter=> 트래픽 차단
nat=> 주소 차단
*기본 제공 체인(Filter table)
=========================
INPUT - 방화벽으로 보내지는 패킷.
OUTPUT - 방화벽의 서비스에서 시작하는 패킷
FORWARD - 다른 시스템에서 시작한 패킷으로, 방화벽으로 향하지 않고, 다른곳으로 전달(net.ipv4.ip_forward=1)
*타킷(Target)
============
ACCEPT - 패킷이 체인을 통과
DROP - 패킷이 표시된 적이 없는 것처럼 버림
REJECT - 패킷이 거부되고 방화벽 오류메시지를 보냄(ICMP port unreachable 메세지 전송)
LOG - 패킷에 대한 정보를 syslog에 기록, 체인의 다음 규칙으로 진행
*iptables 예제구문
================
-vnL --line-numbers - 모든 규칙을 자세히 나열(v-자세히, n-숫자, L-라인)
-A CHAIN <rule> -j <target> - CHAIN 맨끝에 규칙을 추가
-I CHAIN # <rule> -j <target> - CHAIN #번째 규칙으로 삽입( #이 없으면 몇 첫번째에 삽입됨)
-D CHAIN # - CHAIN 에서 #번째 규칙을 삭제
-F CHAIN - CHAIN 에서 모든 규칙을 삭제
*규칙 (일치기준) 구문
==================
출발지 IP 또는 네트워크 : -s 192.0.2.0/24
도착지 IP 또는 네트워크 : -d 192.0.2.0/24
UDP/TCP 및 port : -p udp --sport 68 --dport 67
icmp 및 유형 : -p icmp --icmp-type echo-reply
인바운드 네트워크 인터페이스 : -i eth0
아웃바운드 네트워크 인터페이스 : -o eth0
연결추적 : -m state --state ESTABLSHED,RELATED
*연결추적 상태(커널 버퍼기준)
============
NEW - 새로운 연결 시작
ESTABLSHED - 커널 버퍼에 이미 존재
RELATED - ESTABLISHED 트래픽과 관련된 트래픽(ftp protocol: 21/제어, 20/데이터)
INVALID - 식별할 수 없는 패킷
*설정저장
=======
iptables 명령어 - netfilter 커널 모듈 규칙을 변경가능(램에 저장)
#service iptables save - 현재 메모리상의 iptables 규칙들이 /etc/sysconfig/iptables에 저장됨.
*연습문제
========
#!/bin/bash #INPUT 의 POLICY를 DROP을 설정 (일단 모든 것을 막자) iptables -P INPUT DROP #iptables에 등록되어 있던 규칙들을 모두 지운다. iptables -F #로프백만 input이 가능하게 한다. iptables -A INPUT -i lo -j ACCEPT ####5#### #ESTABLISHED,RELATED 상태의 INPUT은 받아드린다. iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT ####7#### #리모트(특정서버)에 대해서는 모든 INPUT을 REJECT한다.(오류메시지를 리턴한다.) iptables -A INPUT -s 192.168.1.0/24 -j REJECT ####11#### #22 tcp 포트로의 연결은 받아드린다. iptables -A INPUT -p tcp --dport 22 -m state --state NEW -j ACCEPT #그외의 것들은 다 REJCT한다. iptables -A INPUT -j REJECT |
*네트워크 주소 변환
==================
*사설망에서 외부망으로 나갈때 source의 아이피를 변경할때 사용한다.
# iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE (--to-source)
나가는 패킷의 아이피를 eth1번의 아이피로 변경하라.
(--to-source : 인터페이스가 2개여서 나갈때/들어올때 사용하는 인터페이스를 분리할 경우 사용)
-+------------------+-------254(라우팅)203--------인터넷(네이버) | | | 192.168.0.1 x.x.0.2 이곳에서 공인 아이피(203) 대역으로 변경하여 네이버에 접속 S.I|D.I|MSG ---> S.I|D.I|MSG -----> 192|naver|... <--- 203|naver|... S.I|D.I|MSG <--- naver|203|...Kernel Buffer 192---> 203 이곳을 보고 리턴되는 패킷의 D.I를 변경한다. |
*외부방에서 사설망으로 들어올때 Destination의 아이피를 변경할 때 사용한다.(http)
# iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 192.168.0.3
80포트로 접근하는 패킷을 192.168.0.3 아이피의 80포트로 포워딩해라.
----+-----------------254(라우팅)203--------인터넷(고객) | 192.168.0.3 <--- S.I|D.I|MSG <--- S.I|D.I|MSG HTTPD :80 clientip|192.168.0.3|... clientip|www.test.com|... Kernel Buffer 192<--- 203 이곳을 보고 변경한다. |
1.고객이 접속(www.test.com:203.15.12.15)
2.라우터에서 ip 를 변경하여 포워딩 203.15.12.15 ==> 192.168.0.3
3.다시 나갈대는 kernel buffer를 확인하여 전달
반응형
'IT > RHEL' 카테고리의 다른 글
[RHEL] 시스템 모니터링 및 로그 (0) | 2014.08.07 |
---|---|
[RHEL] NTP 서버 설정 (0) | 2014.08.07 |
[RHEL] Advanced Interface Configuration (bond,alias) (0) | 2014.08.07 |
[RHCE] GnuPG사용, 열려 있는 포트 감지 (GnuPG, detecting listen ports) (0) | 2014.08.07 |
[RHCE] Red Hat 교육정리 1 (0) | 2014.08.07 |
댓글
250x250
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- BTBS
- 밀튼
- 벌링턴
- RHEL
- ansible
- Jay
- 온타리오
- TORONTO
- 부모님초청이민
- certification
- 토론토
- BC주
- 미시사가
- 캐나다부동산
- cert
- git proGit
- 우드워킹
- 부동산분석
- 정착서비스
- 인터넷
- 토론토정착서비스
- docker
- Red Hat
- 옥빌
- RHCE
- redhat
- Canada
- Certificate
- basement
- 캐나다
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
글 보관함