리눅스 서버 보안 핵심3 |
작성자 : 오늘과 내일 홍석범 |
방화벽 확장 기능-국가별접속제한 |
 | |
# tar xfz patch-o-matic-ng-XXXXXX.tar.gz # cd patch-o-matic-ng # IPTABLES_DIR=/usr/src/iptables KERNEL_DIR=/usr/src/linux ./runme geoip -> IP: Netfilter Configuration -> [*] geoip match support http://people.netfilter.org/peejix/geoip/database/ geoipdb.bin: 바이너리 데이터 geoipdb.idx: 인덱스
# 한국에서의 ftp만 허용하고 나머지 국가에서의 접속은 차단하고자 할 때 iptables -A INPUT -p tcp --dport 21 -m geoip --src-cc KR -j ACCEPT iptables -A INPUT -p tcp --dport 21 -j DROP 또는 iptables -A INPUT -p tcp --dport 21 -m geoip ! --src-cc KR -j DROP
|
방화벽 확장 기능-동시접속제한 |
 | |
iptables -A INPUT -m recent --name badguy --rcheck --seconds 300 -j DROP iptables -A INPUT -p tcp --syn --dport 25 -m connlimit --connlimit-above 5 -m recent --name badguy --set -j DROP
iptables -A INPUT -p tcp --syn --dport 80 -m connlimit --connlimit-above 15 ?connlimit-mask 24 -j DROP
iptables ?A INPUT ?m psd ?j DROP
|
방화벽 확장 기능-string 필터 |
 | |
iptables ?A FORWARD ?m string ?string “messenger.msn.com” ?j DROP
iptables -A FORWARD -p tcp ?dport 80 -m string --string "Host: cyworld.nate.com" -j DROP

<ethereal을 활용한 string 캡처>
|
유동 IP 사용시 활용 방법(1) |
 | |

- Dynamic DNS 사용 (http://www.no-ip.com/등) iptables ?A INUPT ?p tcp ?s sup.no-ip.com ?dport 22 ?j ACCEPT
- port forwarding service 1000 { flags = REUSE socket_type = stream protocol = tcp wait = no user = root port = 1000 groups = yes redirect = 192.168.1.154 22 }
|
유동 IP 사용시 활용 방법-VPN |
 | |
http://openvpn.net/
핵심기능 : 터널링과 압축,암호화


|
VPN- 터널링과 압축,암호화 |
 | |

ㅇ Gateway-to-Gateway 방식
PC나 서버에서는 별도의 VPN프로그램 설치가 필요없다.

ㅇ Host-to-Gateway 방식
외근시 사무실의 네트워크에 접속하고 할때

ㅇ Host-to-Host 방식
특정 PC(서버)와 PC(서버)간 VPN 통신시
# tcpdump -X port 5000 vpn.server.com.5000 > vpn.client.com.5000: 0x0000 4500 0090 0000 4000 4011 a383 d32f 4415 E.....@.@..../D. 0x0010 d3db abb9 1388 1388 007c 196d dd03 e1a0 .........|.m.... 0x0020 b342 af4c 1148 3dec 1e2b 8549 2454 6a12 .B.L.H=..+.I$Tj. 0x0030 a22e f8c4 eb48 7646 21c5 66cc 4107 880d .....HvF!.f.A... 0x0040 317e 9f52 85d1 391c 7dc5 1a48 4ea7 777b 1~.R..9.}..HN.w{ 0x0050 9a57
vpn client에서 vpn server에 ping을 실행했을 때 터널링되고, 암호화된 것을 알 수 있다.
|
해킹이 의심시 취할 순서(또는 보안점검) |
 | |
1. root로 로그인후 HISTFILE=/dev/null
2. script cap.txt 실행하여 실행 결과 저장
3. ps aux, netstat ?lnp로 이상 확인
4. chkrootkit으로 binary 변조 여부 확인
5. 외부에서 nmap등으로 포트스캔하여 백도어 포트 여부 확인
6. last로 이상 접속 여부 확인
7. nessus등을 실행하여 취약성 여부 확인
8. 설정 파일의 변경 여부 확인
9. /tmp등에 비정상 파일 존재 여부 확인
|
해킹당한 것을 확인시 조치 사항 |
 | |
1. 백도어나 변조된 파일을 확인하여 해킹 수준을 확인(root인지등..)
2. root 레벨인 경우 네트워크 연결 단절후 콘솔에서 작업
3. 불가하다면, 시스템의 IP를 다른 IP로 변경하여 접속하여 작업
4. 가능한대로 데이터 백업 여부 확인 및 데이터 백업
5. chkrootkit등으로 변조된 파일, 백도어 파일 확인하여 원본 파일로 교체
6. 변조된 파일은 삭제하지 말고, 임의의 디렉토리에 모은다.(추후분석위해)
7. 부팅 스크립트나 cron을 확인하여 백도어 자동실행 여부 확인
8. 어떤 취약성을 이용하여 권한을 획득하였는지 확인 후 취약성 패치
9. iptables 방화벽등을 이용하여 접근 통제 설정
|
|
 |