kjh00n의 기록저장소

실습 본문

시스템 보안 구축

실습

kjh00n 2024. 11. 14. 10:44

Rocky1(iptables)
192.168.50.50(vmnet8)
100.100.100.254(vmnet1)
200.200.200.254(vmnet2)


Rocky2(DNS,telnet)
100.100.100.100(vmnet1)


Rocky3(FTP,SSH)
100.100.100.200(vmnet1)


Rocky4(client)
200.200.200.200(vmnet2)

 

rocky2,3 ip설정 이후에는 외부 ping 안돼

그래서 방화벽에 정책 설정하기

 

sysctl net.ipv4.ip_forward=1 ( 포워딩 )

iptables -t nat -A POSTROUTING -s 100.100.100.0/24 -o ens160 -j MASQUERADE

이러고 ping 8.8.8.8하면 잘 된다. 이후에 설치하면 된다.


1. Rocky2 DNS 서버 구축(google.com zone 생성, www,ftp,telnet,ssh 레코드 생성)
2. Rocky2 telnet 서버 구축
3. Rocky3 FTP 서버 구축(/tmp/ftp 디렉터리 생성, root 접속 허용, passive 45000~45005)
4. Rocky3 ssh 서버 구축(port 56000 설정, root 접속 허용)

 

---------------------------------------------------------여기까지는 설명 안할거임--------------------------------------------------------------


5. Rocky1 방화벽 기존정책 ALL DROP


6. Rocky4 에서 DNS,telnet,FTP,SSH 접속 가능하도록 허용 정책 설정(상태 추적 적용)
(telnet 접속 시 telnet.google.com, ftp 접속 시 ftp.google.com, ssh 접속 시 ssh.google.com으로 입력하여 접속)

multiport로 해도 된다

 

7. 각각의 서비스 이용시 로그 남기도록 설정(3회 허용, 분당 3회 저장)

 

iptables -I FORWARD 1 -p udp --dport 53 -s 200.200.200.200. -d 100.100.100.100 -m limit --limit-burst 3 --limit 3/m -j LOG --log-prefix "[DNS QUERY]"

 

iptables -I FORWARD 2 -p tcp --dport 23 -s 200.200.200.200. -d 100.100.100.100 -m limit --limit-burst 3 --limit 3/m -j LOG --log-prefix "[TELNET ACCESS]"

 

iptables -I FORWARD 3 -p tcp --dport 21 -s 200.200.200.200. -d 100.100.100.200 -m limit --limit-burst 3 --limit 3/m -j LOG --log-prefix "[FTP ACCESS]"

 

iptables -I FORWARD 4 -p tcp --dport 56000 -s 200.200.200.200. -d 100.100.100.200 -m limit --limit-burst 3 --limit 3/m -j LOG --log-prefix "[SSH ACCESS]"

 

tail -f /var/log/messages

 

8. Rocky4 에서 인터넷 가능하도록 허용 정책 설정 (상태 추적 적용) (http://www.naver.com접속하기)

 

(client nat 설정)

iptables -t nat -A POSTROUTING -s 200.200.200.200 -o ens160 -j MASQUERADE 

 

(client가 웹통신 가능)

iptables -A FORWARD -p tcp -m multiport --dports 80,443 -s 200.200.200.200 -m state --state NEW,ESTABLISHED -j ACCEPT

iptables -A FORWARD -p tcp -m multiport --sports 80,443 -d 200.200.200.200 -m state --state ESTABLISHED -j ACCEPT

 

dns에서 naver.com을 모르기에 root dns에 반복질의를 한다.dns가 외부와 통신이 되게 해줘야 한다.

기존 iptables filter와nat를 초기화하고 모든 기본 정책을 ACCEPT 해줘야된다.

dns가 인터넷이 되야해서 nat 설정

= iptables -t nat -A POSTROUTING -s 100.100.100.100 -o ens160 -j MASQUERADE

 

wireshark로 반복질의하면 udp를 사용하고 sport는 랜덤 dport는 53을 사용한다. 목적지 주소는 너무 많아서 random

목적지가 root dns도 있고 com dns도 있고 여러 dns가 있어서 목적지 설정은 불가능하다.

이러고 다시 기존 정책들 다시 적용하기

 

(DNS nat 설정)

iptables -t nat -A POSTROUTING -s 100.100.100.100 -o ens160 -j MASQUERADE

iptables -A FORWARD -t udp --dport 53 -s 100.100.100.100 -m state --state NEW,ESTABLISHED -j ACCEPT (반복질의)

iptables -A FORWARD -t udp --sport 53 -d 100.100.100.100 -m state --state ESTABLISHED -j ACCEPT (반복질의)

 


9. Rcoky4 에서 FTP 서버에 root로 로그인 하여 Rocky4의 /root/test.txt 파일을 서버 /tmp/ftp에 업로드

touch test.txt

ftp ftp.google.com

로그인

cd /tmp/ftp

push test.txt


10. Rocky2 WEB 서버 구축(/var/www/html/index.html)이후 Rocky4에서 http://www.google.com 입력시 접속 가능하도록 설정

 

(rocky2 웹통신 가능)

iptables -A FORWARD -p tcp -m multiport --dports 80,443 -s 100.100.100.100 -m state --state NEW,ESTABLISHED -j ACCEPT

iptables -A FORWARD -p tcp -m multiport --sports 80,443 -s 100.100.100.100 -m state --state ESTABLISHED -j ACCEPT

 

yum -y install httpd

vim /var/www/html/index.html 사이트 만들기

systemctl start httpd

netstat -antup | grep 80


인터넷 설정은 네트워크 연결을 위한 기초 작업이다.

웹 통신은 연결이 이루어진 후 실제로 웹 서버와 데이터 교환이 이루어지는 과정이다.


최종 방화벽 설정

#!/bin/bash

sysctl net.ipv4.ip_forward=1

iptables -F
iptables -t nat -F

iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP

iptables -A FORWARD -p udp --dport 53 -s 200.200.200.200 -d 100.100.100.100 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A FORWARD -p udp --sport 53 -s 100.100.100.100 -d 200.200.200.200 -m state --state ESTABLISHED -j ACCEPT

iptables -A FORWARD -p tcp --dport 23 -s 200.200.200.200 -d 100.100.100.100 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A FORWARD -p tcp --sport 23 -s 100.100.100.100 -d 200.200.200.200 -m state --state ESTABLISHED -j ACCEPT

iptables -A FORWARD -p tcp -m multiport --dports 21,45000:45005 -s 200.200.200.200 -d 100.100.100.200 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A FORWARD -p tcp -m multiport --sports 21,45000:45005 -s 100.100.100.200 -d 200.200.200.200 -m state --state ESTABLISHED -j ACCEPT

iptables -A FORWARD -p tcp --dport 56000 -s 200.200.200.200 -d 100.100.100.200 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A FORWARD -p tcp --sport 56000 -s 100.100.100.200 -d 200.200.200.200 -m state --state ESTABLISHED -j ACCEPT

iptables -I FORWARD 1 -p udp --dport 53 -s 200.200.200.200 -d 100.100.100.100 -m limit --limit-burst 3 --limit 3/m -j LOG --log-prefix "[DNS QUERY] "
iptables -I FORWARD 2 -p tcp --dport 23 -s 200.200.200.200 -d 100.100.100.100 -m limit --limit-burst 3 --limit 3/m -j LOG --log-prefix "[TELNET ACCESS] "
iptables -I FORWARD 3 -p tcp --dport 21 -s 200.200.200.200 -d 100.100.100.200 -m limit --limit-burst 3 --limit 3/m -j LOG --log-prefix "[FTP ACCESS] "
iptables -I FORWARD 4 -p tcp --dport 56000 -s 200.200.200.200 -d 100.100.100.200 -m limit --limit-burst 3 --limit 3/m -j LOG --log-prefix "[SSH ACCESS]"

iptables -t nat -A POSTROUTING -s 200.200.200.200 -o ens160 -j MASQUERADE
iptables -A FORWARD -p tcp -m multiport --dports 80,443 -s 200.200.200.200 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A FORWARD -p tcp -m multiport --sports 80,443 -d 200.200.200.200 -m state --state ESTABLISHED -j ACCEPT

iptables -t nat -A POSTROUTING -s 100.100.100.100 -o ens160 -j MASQUERADE
iptables -A FORWARD -p udp --dport 53 -s 100.100.100.100 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A FORWARD -p udp --sport 53 -d 100.100.100.100 -m state --state ESTABLISHED -j ACCEPT

iptables -A FORWARD -p tcp -m multiport --dports 80,443 -s 100.100.100.100 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A FORWARD -p tcp -m multiport --sports 80,443 -d 100.100.100.100 -m state --state ESTABLISHED -j ACCEPT

iptables -L
iptables -t nat -L

어렵구만...

'시스템 보안 구축' 카테고리의 다른 글

실습  (0) 2024.12.13
iptables 확장 모듈  (0) 2024.11.12
네트워크 방화벽 구축  (0) 2024.11.12
방화벽 실습  (0) 2024.11.11
★tables, chain  (0) 2024.11.11