토폴로지
Ethernet switch-2는 CentOS임
NAT설정 이전 XP->BT
출발지와 목적지의 IP가 그대로 보인다.
[root@localhost Desktop]# iptables -t nat -A POSTROUTING -s 192.168.200.0/24 -i eth0 -o eth1 -j MASQUERADE
위처럼 iptable 설정하면 실제 XP와 BT가 통신을 하지만 XP와 CentOS가 서로 통신하는 것처럼 XP의 IP를 가릴 수 있다.
[root@localhost Desktop]# iptables -t nat -L
[root@localhost Desktop]# iptables -t nat -D POSTROUTING 1
//IP table 지우기
NAT
아이피 변환 시스템이라고 보면 된다.
DNAT
외부 네트워크에서 내부 네트워크로 들어올때의 네트워크 주소 변환.
SNAT
Source IP의 주소를 공인 IP로 바꾼 후 NAT 테이블을 참조하여 내부망으로 전달해주는 것이다.
black list : 거부할 목록을 뜻하며 목록에 없는 IP는 모두 허용된다.
white list : 허용할 목록을 뜻하며 목록에 없는 IP는 모두 거부된다.
iptables (-t filter) : filter 는 생략이 가능하다.
[root@localhost Desktop]# iptables -t filter -P INPUT DROP
[root@localhost Desktop]# iptables -t filter -L
INPUT, OUTPUT을 DROP시켜도 xp와 bt는 통신이 가능하다.
xp상황
[root@localhost Desktop]# iptables -t filter -P FORWARD DROP
FORWARD가 DROP되는 순간 xp와 bt는 통신이 불가능해진다 이유는 아래의 iptable정책 구조와 관련있다.
INPUT,OUTPUT 정책 적용확인
XP
CentOS
프로세스끼리 통신 허용
|(파이프), IPC를 사용
[root@localhost Desktop]# iptables -t filter -A INPUT -i lo -j ACCEPT
[root@localhost Desktop]# iptables -t filter -A OUTPUT -o lo -j ACCEPT
프로세스간의 통신은 loopback을 사용하기 때문에 INPUT, OUTPUT을 설정하면 된다.
[root@localhost Desktop]# iptables -t filter -L -v
rule 번호 확인하기
[root@localhost Desktop]# iptables -t filter -L -v --line
rule 삭제
[root@localhost Desktop]# iptables -t filter -D INPUT 1
[root@localhost Desktop]# iptables -t filter -L -v --line
CentOS 설정
[root@localhost Desktop]# iptables -t filter -A INPUT -s 192.168.200.0/24 -i eth0 -p icmp -j ACCEPT
XP확인
[root@localhost Desktop]# tcpdump -i eth0
//와이어샤크를 실시간으로 볼 수 있는 명령
INPUT만 허용했기 때문에 통신이 되지 않는다.
CentOS 설정
[root@localhost Desktop]# iptables -t filter -A OUTPUT -s 192.168.200.0/24 -o eth0 -p icmp -j ACCEPT
XP설정
OUTPUT을 허용후 정상적으로 통신이 되는 것을 확인 할 수 있다.
XP-> 외부 WebServer 접근
root@bt:~# service apache2 start
CentOS (XP -> CentOS -> BT)
[root@localhost Desktop]# iptables -t filter -A FORWARD -p tcp --dport 80 -s 192.168.200.0/24 -i eth0 -j ACCEPT
CentOS(BT -> CentOS -> XP)흐름에서 CentOS http 정책 설정
[root@localhost Desktop]# iptables -t filter -A FORWARD -p tcp --sport 80 -d 192.168.200.0/24 -j ACCEPT
XP -> BT Webpage 확인
위의 룰은 위험하다. 포트검사하고 허용을 하기 때문에 포트만 80번으로 만들면 공격이 가능하다.
FORWARD 삭제
[root@localhost Desktop]# iptables -F FORWARD
[root@localhost Desktop]# iptables -L
올바른 정책 수정
[root@localhost Desktop]# iptables -t filter -A FORWARD -p tcp --dport 80 -s 192.168.200.0/24 -j ACCEPT
iptables -t filter -A FORWARD -p tcp --sport 80 -d 192.168.200.0/24 -m state --state ESTABLISHED,RELATED -j ACCEPT
BT확인
root@bt:~# hping3 -p 80 192.168.200.10
위의 iptables 정책을 통해 80번 포트로 가는 ping을 접근을 제어한 것을 확인 할 수 있다.
도움말
[root@localhost Desktop]# iptables -t filter -A FORWARD -p tcp --sport 80 -d 192.168.200.0/24 -m state -h
//-m : state라는 외부 라이브러리 모듈을 쓰겠다.
--state옵션
INVALID : 올바르지 않은 (x)
ESTABLISHED : 연결된 (O)
NEW : 새로운 (x)
RELATED : 연계되는 세션 (O)
FORWARD 전체 재설정
[root@localhost Desktop]# iptables -F FORWARD //FORWARD 지우기
[root@localhost Desktop]# iptables -A FORWARD -p udp --dport 53 -s 192.168.200.0/24 -j ACCEPT
[root@localhost Desktop]# iptables -A FORWARD -p udp --sport 53 -d 192.168.200.0/24 -m state --state ESTABLISHED -j ACCEPT
[root@localhost Desktop]# iptables -A FORWARD -p tcp -m multiport --dport 80,443 -s 192.168.200.0/24 -m state --state NEW,ESTABLISHED -j ACCEPT
[root@localhost Desktop]# iptables -A FORWARD -p tcp -m multiport --sport 80,443 -d 192.168.200.0/24 -m state --state ESTABLISHED -j ACCEPT
//multiport옵션은 포트여러개를 한번에 지정할 수 있다.
'정보보안 > System' 카테고리의 다른 글
스캐닝,DOS,fragments,Smurf,Source Routing,icmp redirect,IP spoofing 차단 (383) | 2020.08.03 |
---|---|
facebook,inven 차단 및 호스트 ssh 허용 실습 (380) | 2020.08.03 |
DNAT,DNS,LOG정책 설정 (356) | 2020.08.03 |
FTP 정책 및 실습(1) (353) | 2020.08.03 |
방화벽 종류,Iptables (355) | 2020.08.03 |