접근통제시스템2

Download Report

Transcript 접근통제시스템2

접근 통제 시스템
Access Control System
홍석범 ([email protected])
`선행 이해 사항
(1) WAN 및 LAN 구간에서의 통신
WAN : Routing Protocol(BGP등)
LAN : ARP Broadcasting
(2) 스위치등 기타 네트워크 장비
(3) Client 와 Server 의 통신 방식 
Port 의 개념
물리적인 전송선은 하나이지만 그것을 여러 개의 응용 프로그램들이
서로 나누어 사용하기 위해서 도출된 개념.
Privileged Port
Unprivileged(high) Port
Well known Port
# sysctl -w net.ipv4.ip_local_port_range="2000 4000“
About ARP
* arp cache
arp cache timeout: 리눅스:60s, 라우터4h
cat > net.ipv4.neigh.default.gc_stale_time
* Reverse ARP : MAC IP 변환
디스크가 없는 시스템에서 사용.
• Gratuitous ARP : 접속을 갱신하고자 할 때
(ARP cache 를 업데이트함)
./send_arp 192.168.1.1 00508B9A27A8
192.168.1.255 ffffffffffff
ARP(Address Resolution Protocol)
RFC(http://www.ietf.org/rfc.html) RFC 826번.
* LAN 구간의 통신방식 : ARP 의 Broadcast
모든 시스템은 부팅시 arp 를 broadcast함.
* ARP 패킷 헤더 구성
소스IP:소스MAC:목적지IP:목적지MAC:요청/응답
* 내부구간 사이에서 원격 TCP 접속시
ARP Broadcast후 3 Way-Handshake 시작.
(tcpdump 로 확인)
ARP 를 이용한 공격
• Switch Jam
위조된 MAC을 지속적으로 발생시켜 스위치의 ARP
테이블을 Flood 시킨다.
• ARP Redirect
자신이 마치 Gateway 인것처럼 위조된 MAC 을
Broadcast하여 모든 트래픽이 통과하게 한다.
• ARP Spoofing
스니핑하고자하는 서버인것처럼 MAC을 위조하여
Broadcast 하여 트래픽을 포워딩한다.
`스위치 및 허브의 차이(스위치)
`스위치 및 허브의 차이(허브)
TCP 3 Way HandShaking(연결성립)
▶ TCP/IP 의 기본 통신 방식
UDP 와 달리 본격적인 데이터 교환을
하기전에 서버와 클라이언트간에
SYN, SYN+ACK, ACK 를 주고 받는다.
TCP 4 Way HandShaking(연결종료)
(1) TCP/IP 4 way-handshake(일반적방법)-(120s)
netstat 로 확인시 TIME_WAIT 로 확인
Client
Server
FIN+ACK 
 ACK
 FIN+ACK
ACK

(2) RST 패킷(10s)
Netstat 로 확인시 CLOSE 로 확인.
`접근 통제 시스템의 분류
1. 내부 통제 (Permission 조정)
(1) Permission or Owner
(2) Read Only File (or System)
(3) Limit Available Resource
2. 외부 통제 (Client IP에 대해)
(1) Inetd (Xinetd)
(2) StandAlone 데몬별 제한
(3) IPTABLES(IPCHAINS) 및 라우터등
(1.1) Permission
-rw-r--r-permission
root
user
root
group
test
file
user , group, other(all)
r(4) : 읽기 권한 (디렉토리의 경우 하부 파일 리스팅)
w(2): 쓰기 권한 (파일을 덮어쓰거나 삭제할 수 있다.)
x(1) : 실행 권한 (CGI 나 스크립트 실행시 필요하다)
▶ /tmp (1777)  sticky bit
drwxrwxrwt
root
root tmp/
: 누구나 쓰고 읽을 수 있지만 다른 유저가 생성한 파일은
삭제가 불가능하다.
Permission (Suid)
▶ SetUid(4511) = 4(4+1)11
-r-s--x--x
root
root
/usr/bin/passwd
이 파일을 실행 당시에는 root 가 되어야만이 root만이 읽을 수
있는 /etc/shadow 파일을 일반 유저가 변경할 수 있다.
-r-s--x--x
-r-x--x--x
-r-s--x--x
-r-S--x--x
root
root
root
root
root
root
root
root
/usr/bin/passwd(4511)
/usr/bin/passwd(0511) 의 차이점.
/usr/bin/passwd(4511)
/usr/bin/passwd(4411)의 차이점.
Permission (Suid)
▶ Setuid(4511) = 4(4+1)11
-r-s--x--x
root
root
/usr/bin/passwd
이 파일을 실행 당시에는 root 가 되어야만이 root만이 읽을 수
있는 /etc/shadow 파일을 일반 유저가 변경할 수 있다.
▶ SetGid (2755)
-rwxr-sr-x
1 root
man
/usr/bin/man*
Permission (Suid)
▶ suid 속성을 이용한 응용
# cp /bin/sh /tmp/.hack
# chmod 4755 /tmp/.hack
-rwsr-xr-x root
root
$ /tmp/.hack
# id
uid=0(root) gid=0(root)
/tmp/.hack*
SUID 의 특성을 이용한 가상 고전적인 백도어 방법이다.
Permission (suid, umask)
▶ 퍼미션을 이용한 응용
-rwsr-x--- 1 root
wheel
/bin/su*
/etc/group 에 wheel::10:root,user 와 같이 추가.
wheel 그룹에 속한 유저만이 system 명령어 사용이 가능하게 된다.
▶ Umask
파일이나 디렉토리 생성시 default 로 생성되는 퍼미션으로 파일의 경우
666, 디렉토리의 경우 777 에서 뺀 퍼미션으로 설정된다.
즉, Umask 가 022일 경우 기본 퍼미션은 666-022= 644 가 된다.
/etc/profile 에 정의되어 로긴하는 모든 유저에 적용된다.
# find / -type f \( -perm -4000 -o -perm -2000 \) -exec ls -la {}
\;
SUID 나 SGID 가 설정된 파일을 찾아준다.
# chmod u-s /usr/sbin/traceroute 또는
chmod 700 /usr/sbin/traceroute 으로 suid 설정 해제.
# find / -type f -perm -2 -exec ls -lg {} \;
World Writable File 을 찾는다.
# find / -type d -perm -2 -exec ls -lgd {} \;
World Writable Directory 를 찾는다.
(2.1) chattr
1. Read Only File (or File System) 설정
▶ developed by Remy Card(ext2 fs developer)
사용법 : chattr +-= [ASacdisu] filename
“+” : 지정한 옵션 추가
“ –“ : 지정한 옵션 삭제
“=” : 초기화
A : atime (Access time)속성이 변경되지 않는다.
atime 속성은 stat file 로 확인 가능하다.
a: append(추가)만이 가능하다.
주로 로그 파일에 적당하다.
i : Immutable 로 추가, 변경, 삭제 등이 불가능하다.
chattr의 사용예
# touch test
# ls -la test
-rw-r--r-- 1 root
root
test
# lsattr test
-------- test
# chattr +i test
# lsattr test
----i--- test
# rm test
rm: remove write-protected file `test'? y
rm: cannot unlink `test': Operation not permitted
# chattr -i test
chattr의 사용예
# lsattr test
-------- test
# rm test
rm: remove `test'? y
#
# stat test
File: "test"
Size: 0
Filetype: Regular File
Mode: (0644/-rw-r--r--)
Uid: ( 0/ root) Gid: (
Device: 8,8 Inode: 288657 Links: 1
Access: Sat Aug 25 17:10:26 2001(00000.00:03:31)
Modify: Sat Aug 25 17:11:01 2001(00000.00:02:56)
Change: Sat Aug 25 17:11:01 2001(00000.00:02:56)
0/
root)
stat 에서 change와 modify 차이
mtime : creat(), mknod(), pipe(), utime(), write()
ctime : chmod(), chown(), creat(), link(), mknod(),
pipe(), unlink(), utime(), and write().
# chmod 700 test (change 정보만 변경됨)
Modify : Mon Nov 10 15:04:06 2001
Change: Mon Nov 12 15:04:12 2001
(2.2) File System
▶
설정 가능한 옵션(/etc/fstab 에서 설정)
defaults : 모든 기능을 허용한다.(quota, read-write, suid등)
noquota : user의 quota 설정을 하지 않는다.
nosuid : SUID나 SGID의 설정을 허용하지 않는다.
nodev : 문자나 특별한 장치(디바이스)를 허용하지 않는다.
noexec : 어떠한 실행 파일에 대해서도 실행을 허용하지 않는다
quota
: 유저들의 quota 설정을 허용한다.
ro
: 현재의 파티션을 읽기 전용(read-only) 으로 마운트한다.
rw : 현재의 파티션을 읽고 쓰기(read-write) 모드로 마운트한다.
suid
: SUID나 SGID의 사용을 허가한다.
File System 옵션 변경하기
▶ /etc/fstab 에서 filesystem 설정 변경
변경전)
/dev/sda11
/dev/sda6
/tmp
ext2 defaults 1 2
/home ext2 defaults 1 2
변경후)
/dev/sda11 /tmp
ext2 defaults,rw,nosuid,nodev,noexec 1 2
/dev/sda6 /home ext2 defaults,rw,nosuid,nodev 1 2
▶ 파일 시스템을 다시 마운트하기.
# mount /home -oremount
# mount /tmp –oremoun
# cat /proc/mounts
/dev/sda8
/home ext2 rw,nosuid 0 0
/dev/sda13
/tmp
ext2 rw,noexec,nosuid 0 0 로 확인.
(3) Limit Available Resource
▶ Kernel 레벨에서의 System Limit 설정
. 유저당 생성할 수 있는 프로세스의 수
. 유저당 open 할 수 있는 파일의 수등
 커널 튜닝을 통해 변경 가능.
▶ 커널튜닝 방법
(1)하드레벨 커널 튜닝 : 커널 소스의 수정후 커널 컴파일
(2)소프트 레벨 커널 튜닝 : 부팅후 /proc 파일 시스템의
파라미터 변경을 통해
▶ parameter 변경예
# echo 8192 > /proc/sys/fs/file-max
# sysctl -w fs.file-max=8192
sysctl 사용법
▶ sysctl –a
모든 사용 가능한 매개변수를 disply
▶ 설정변경 방법
(1)
(2)
(3)
(4)
sysctl –w kernel_parameter
/etc/sysctl.conf 설정후 network 재시작
/etc/sysctl.conf 설정후 sysctl –p /etc/sysctl.conf
echo nn > /proc/sys/net/ipv4/xxxx
ulimit 를 이용한 제한
▶
Shell logging user 에 대한 제한 (자세한 설명은 “help ulimit” )
/etc/profile 에 설정시 로그인하는 모든 유저에 적용 (root 포함)
if [ $LOGNAME != "root" ];
then
ulimit -Su 10
# 유저가 생성 가능한 프로세스수 10개로 제한
ulimit -Sv 20000 # 유저가 사용 가능한 메모리 20M로 제한
ulimit –Sf 5000 # 생성할 수 있는 한 파일의 사이즈 5M로 제한
fi
5M 이상의 파일을 복사하려고 할 때 아래와 같이 에러가 나게 됨.
[user@kisec ~]$ cp /tmp/larger_file .
파일 크기 제한을 초과함
[user@kisec ~]$
/etc/security/limits.conf
(PAM) 를 이용한 설정.
참고: http://www.kernel.org/pub/linux/libs/pam/
/etc/pam.d/login 파일의 하단에
session required /lib/security/pam_limits.so 추가 후
/etc/security/limits.conf 파일에 아래와 같이 설정
(superuser인 root 에는 적용되지 않는다.)
*
hard
core
0
# CORE 파일 생성하지 않는다.
*
*
hard
hard
rss
nproc
*
hard
maxlogins 4 # 동시접속을 4개로 제한
5000 # 사용 메모리 5M 로 제한
20 # 생성 프로세스 20개로 제한
PAM 을 이용한 접근 제한
▶ PAM(Pluggable Authentication Modules) 은 공유 라이브러리로 구
성되어 있는데, PAM 을 이용하여 응용 프로그램이 어떤 방법으로 사
용자를 인증할 것인지 설정할 수 있다.
PAM 모듈의 설정파일은 /etc/pam.d/ 에, 모듈(공유 라이브러리) 파일
들은 /lib/security 디렉토리에 위치한다.
/etc/pam.d/login 에
account required /lib/security/pam_access.so 추가.
▶ /etc/security/access.conf 파일 편집
-:ALL EXCEPT root admin:ALL
root 와 admin 을 제외한 모든 유저에 대해 콘솔과 원격접근 차단.
-:ALL EXCEPT root admin:192.168.1.2
root와 admin 에 대해서 특정한 IP 에서만 접근이 가능하도록 한다.
-:ALL:LOCAL
콘솔을 통해서는 모든 접근을 불허한다.
PAM 을 이용한 접근시간 제한
▶ pam_time.so 모듈이 제공하는 time.conf 파일을 이용
/etc/pam.d/login 파일에
account required /lib/security/pam_time.so 추가
/etc/security/time.conf
login ; tty* & !ttyp* ; !root !admin ; !Al0000-2400
root 와 admin 이라는 계정을 제외한 모든 유저에 대해
언제나 콘솔로의 로긴을 제한한다.
login ; * ; !admin ; !Wd0000-2400 !Tu0800-1800
admin 이라는 계정은 모든 접근이 허용되며 단, 주말과 화요일에 오전 8시부터
오후 6시까지만 콘솔 접근이 불가한다.
PAM 을 이용한 접근 제한
▶ ftp 는 열고 telnet은 막는법
(1) /etc/pam.d/login 파일에
auth required /lib/security/pam_listfile.so item=user
sense=allow file=/etc/telnetusers onerr=succeed 추가
/etc/telnetusers 파일에 telnet 접근을 허용할 ID 추가
특정 사용자만 접근을 막으려면 allow->deny 로 변경.
(2) /etc/passwd 파일에
frog:*:1003:999:The Frog:/home/frog:/bin/nologin 추가
# cat /bin/nologin
#!/bin/sh
echo "You can not log in!"
exit 0
PAM 을 이용한 접근 제한
▶ 특정 계정에 대해 telnet 접근 제한
/etc/security/access.conf 파일에서 설정
permission : users : origins
permission에서는 "+" (허용) "-" (불가)이 가능.
-:user1 xyz77 :ALL
user1, xyz77 에 대해서는 계정 접근 금지
▶ root 에 대해 telnet 접속허용
/etc/pam.d/login 파일에서
"auth required /lib/security/pam_securetty.so" 주석처리
/etc/securetty 파일에 ttyp1 등 접근 가능한 터미널을 추가.
2. 외부 통제
2.1 Inetd(Xinetd)
주의점: Max. server instances per minute is 60
pop-3 stream tcp
nowait.150 root /usr/sbin/tcpd
ipop3d
Instance 를 default 60에서 150으로 설정함.
해당 서비스 : pop3, telnet 등
Inetd 의 경우 Tcp Wrapper 와 함께 설정되어 접근 통제
(통상적으로 hosts.deny 에서 차단후 hosts.allow에서 허용).
Tcp Wrapper 는 /etc/hosts.deny 와 /etc/hosts.allow 파일을
통해 적절히 설정
▶ Only Inetd
pop-3 stream tcp nowait root
Client -
/usr/sbin/ipop3d
ipop3d
----- Service
Inetd ----- Service
------ Service
▶ Tcp_Wrapper 를 통한 Inetd
pop-3 stream tcp nowait root /usr/sbin/tcpd
----- Service
Client  Inetd --- tcpd ----- Service
----- Service
ipop3d
▶ Wrapper 설정:daemon_list : client_list [ : shell_command ]
/etc/hosts.deny
all : 131.155. # 131.155.x.x 에 대해 접근 차단
/etc/hosts.allow
in.telnetd : 131.155.72.0/255.255.255.0
# 131.155.72.0 대역에 대해 telnet 접근 허용.
ipop3d: ALL: (/some/where/safe_finger -l @%h | \
/usr/ucb/mail -s %d-%h root) &
와 같이 shell 명령어를 사용할 수도 있다.
Xinetd
참고사이트: http://www.xinetd.org/
service pop3
{
socket_type = stream
wait = no
user = root
server = /usr/sbin/ipop3d
only_from = 0.0.0.0/0
no_access = 207.35.78.10 128.138.204.0
# Allows every client
# Deny from
instances = 30
log_on_success += USERID
log_on_failure += USERID
access_times = 2:00-9:00 12:00-24:00
# 접근 가능한 시간대를 제한
rlimit_as
= 8M
# 사용 가능한 메모리를 8M로 제한
nice = -2
}
2.2 Standalone 서버 제어
sendmail
http://www.sendmail.org/
/etc/mail/access 파일에서 제어
[email protected]
REJECT
abc.com
REJECT
[email protected] OK
203.34
REJECT
211.47.64
RELAY
작성후 /etc/mail 에서 ./makemap.sh access 로 DB 화.
Sendmail 에서 SMTP 인증
▶ /etc/pam.d/smtp 생성후 아래 라인 추가
auth
required
/lib/security/pam_listfile.so item=user \
sense=allow file=/etc/mail/smtpauth onerr=succeed
auth
required
/lib/security/pam_stack.so service=system-auth
account required
/lib/security/pam_stack.so service=system-auth
/etc/mail/smtpauth 에 SMTP 인증을
허용할 유저를 한 줄에 하나씩 추가
Sendmail 에서 바이러스 필터링
sendmail.cf 설정
HContent-Type: $>check_ct
D{NIMDA}"I guess NIMDA.WORM!!!"
Scheck_ct
R$+boundary="====_ABC1234567890DEF_===="
R$+boundary="====_ABC123456j7890DEF_===="
$#error $: 550 ${NIMDA}
$#error $: 550 ${NIMDA}
메일 필터링 관련 사이트
http://certcc.or.kr/paper/tr2001/tr2001-03/email security by procmail.html
http://quanta.khu.ac.kr/~dacapo/sendmail/rulesets/
http://www.rav.ro/
http://www.amavis.org/
http://www.sophos.com/
Sendmail 설정을 통한 서비스 제한
sendmail.cf 설정
# Limit maximum outgoing message size
O MaxMessageSize=5024000
# Limit maximum incoming message size.
Mlocal, P=/usr/bin/procmail, F=lsDFMAw5:/|@qSPfhn9, S=10/30,
R=20/40, M=5024000, T=DNS/RFC822/X-Unix, A=procmail -Y -a $h -d $u
# maximum number of recipients per SMTP envelope
O MaxRecipientsPerMessage=20
# SMTP initial login message (old $e macro)
#O SmtpGreetingMessage=$j Sendmail $v/$Z; $b
O SmtpGreetingMessage=$j Today and Tomorrow(http://tt.co.kr/)
httpd.conf 나 .htaccess 를 이용한 웹접근 제어
▶ httpd.conf 이용시
<Directory /home/abc/>
Order deny, allow
Deny from all
Allow from 211.47.64 211.47.65
</Directory>
 211.47.64. 와 211.47.65. 대역만 접근가능.
이외 IP 대역에서 접근시 404 Forbidden 에러.
.htaccess 파일을 이용한 접근제어
AuthName "Members Only."
AuthType Basic
AuthUserFile /home/private/public_html/.htpasswd
AuthGroupFile /dev/null
ErrorDocument 401 " ABC 직원만 접근 가능합니다.
<Limit GET POST>
require valid-user
Satisfy all
order deny,allow
allow from 192.168.1
allow from 210.60.58.217
deny from all
</Limit>
Satisfy all  두조건 모두 적합해야 함.
any  하나만 적합하면 됨.
미설정시 all 이 기본 설정값
Webzip, Teleport 등 일부 agent 프로그램 차단
BrowserMatch "WebZIP" go_out
BrowserMatch "Teleport" go_out
BrowserMatch "GetRight" go_out
<Directory />
Options ExecCGI
AllowOverride AuthConfig
Order allow,deny
Allow from all
Deny from env=go_out
</Directory>
외부에서 임의 데이터 링크 차단법
<VirtualHost domain.co.kr>
ServerAdmin [email protected]
DocumentRoot /home/domain/public_html
ServerName domain.co.kr
ServerAlias www.domain.co.kr
SetEnvIf Referer domain\.co\.kr go_in
SetEnvIf Referer www\.domain\.co\.kr go_in
SetEnvIf Referer ^$ go_in
<FilesMatch ".(mpg|asf|wmv)$">
Order Deny,Allow
Allow from env=go_in
Deny from all
</FilesMatch>
</VirtualHost>
Proftpd의 접근 통제
▶ proftpd.conf 에 아래 설정 추가.
<Limit LOGIN>
Order allow,deny
Allow from 211.47.64.
Allow from 211.47.65.
Deny from all
</Limit>
http://proftpd.net/
211.47.64.x 와 211.47.65.x 대역에서만 접근 허가
DNS 에서의 접근통제(named.conf)
options {
directory "/var/named";
allow-transfer {localhost; }; // Zone Transfer를 제한한다.
allow-recursion {211.47.64.0/24; 211.47.65.0/24; };
// recursion을 제
한한다.
};
zone "bind" chaos {
type master;
file "db.bind";
allow-query {
none;
};
allow-transfer {
none;
};
};
/var/named/db.bind 파일의 내용
$TTL 1D
$ORIGIN bind.
@
CHAOS SOA localhost. root.localhost. (
2000081201
3H
1H
1W
1D )
CHAOS
NS
localhost.
; serial
; refresh
; retry
; expiry
; minimum
// dig @ns.yahoo.co.kr txt chaos version.bind | grep VERSION
// 과 같은 bind 의 버전정보 요청에 대해 차단한다.
dig @kuccgx.korea.ac.kr korea.ac.kr axfr 를 막기 위한 방법은 ?
 Zone Transfer 차단.
. IPTABLES(ipchains) 를 이용한 패킷 필터링
참고사이트: http://netfilter.samba.org/
IPCHAINS (Kernel 2.2.x 이하) 와 IPTABLES (Kernel 2.4.x) 는
Kernel Level 에서 작동하며 패킷 헤더에 있는 소스IP : PORT와
목적지 IP:PORT 등의 정보를 이용하여 접근을 허용할 서비스를 제외한
접근을 필터링한다.
▶ 기본적으로 DROP 할 패킷
iptables
iptables
iptables
iptables
iptables
iptables
iptables
iptables
iptables
–A INPUT –s 255.255.255.255/32 –j DROP
–A INPUT –s 10.0.0.0/8 –j DROP
-A INPUT -s 0.0.0.0/8 -j DROP
-A INPUT -s 127.0.0.0/8 -j DROP
-A INPUT -s 169.254.0.0/16 -j DROP
-A INPUT -s 192.0.2.0/24 -j DROP
-A INPUT -s 224.0.0.0/3 -j DROP
-A INPUT -s 224.0.0.0/3 -j DROP
–A INPUT –s (Local.Network.Range) –j DROP
TCP/IP 3 Way Hand-Shaking
▶ TCP/IP 의 기본 통신 방식
본격적인 데이터 교환을 하기전에
서버와 클라이언트간에
SYN, SYN+ACK, ACK 를 주고 받는다.
따라서 서버와 클라이언트간 통신을
위해서는 이 관계를 고려하여 필터링
규칙을 세워야 한다.
메일 서버에서의 패킷 필터링 예
▶ SMTP 서버로 들어오는 메일 허용
iptables –A INPUT –p tcp ! –sport 0:1023 –dport 25 –j ACCEPT
iptables –A OUTPUT –p tcp –sport 25 –j ACCEPT
▶ 외부의 SMTP로 나가는 메일 허용
iptables –A OUTPUT –p tcp –dport 25 –j ACDCEPT
iptables –A INPUT –p tcp ! –syn –sport 25 ! –dport 0:1023 –j
ACCEPT
메일 서버에서의 패킷 필터링 예
▶ POP3 서버로 들어오는 접속 허용
Iptables –A INPUT –p tcp ! –sport 0:1023 –dport 110 –j ACCEPT
Iptables –A OUTPUT –p tcp –sport 110 –j ACCEPT
▶
클라이언트에서 POP3 서버로 나가는 접속
iptables –A OUTPUT –p tcp –dport 110 –j ACCEPT
iptables –A INPUT –p tcp ! –syn –sport 110 ! –dport 0:1023 –j
ACCEPT
허용 하여야 하는 연결이외 나머지는 모두 접근 차단(DROP).
패킷 필터링 규칙을 설정할 때 ftp 의 Passive Mode와
Normal Mode 의 차이를 잘 인식하고 규칙을 세워야 한다.
Ftp 전송모드에 대한 이해
(1) Active FTP
Server
Client
20
21
1500 1501
<----두번째포트알려줌-------수신확인-------
----------두번째포트연다----------
<---------수신확인----------------
Ftp 전송모드에 대한 이해
(2) Passive FTP
Server
Client
20
21
1500 1501
<----두번째포트질의---3600 -----두번째포트알려줌-
<--------명령채널----------------------수신확인------------
. IPTABLES에서의 Stateful filtering
$IPTABLES -A INPUT -p TCP --tcp-flags ALL FIN -j DROP
$IPTABLES -A INPUT -p TCP --tcp-flags ALL NONE -j DROP
$IPTABLES -A INPUT -p TCP --tcp-flags ALL SYN,FIN -j DROP
$IPTABLES -A INPUT -p TCP --tcp-flags ALL PSH,FIN -j DROP
$IPTABLES -A INPUT -p TCP --tcp-flags ALL URG,PSH,FIN -j DROP
$IPTABLES -A INPUT -p TCP --tcp-flags ALL SYN,ACK,FIN -j DROP
$IPTABLES -A INPUT -p TCP --tcp-flags ALL SYN,FIN,PSH -j DROP
$IPTABLES -A INPUT -p TCP --tcp-flags ALL SYN,FIN,RST -j DROP
$IPTABLES -A INPUT -p TCP --tcp-flags ALL SYN,FIN,RST,PSH -j DROP
$IPTABLES -A INPUT -p TCP --tcp-flags ALL SYN,FIN,ACK,RST -j DROP
$IPTABLES -A INPUT -p TCP --tcp-flags ALL SYN,ACK,FIN,RST,PSH -j DROP
$IPTABLES -A INPUT -p TCP ! --syn -m state --state NEW -j DROP
$IPTABLES -A INPUT -i eth0 -p TCP -s 192.168.1.0/24
--sport 1024: --dport 23 -m state --state NEW,ESTABLISHED -j ACCEPT
라우터에서의 접근 제어
▶모든 패킷이 가장 먼저 통과하는 관문이므로 가장 중요하고
가장 효과적인 보안 설정이 필요한 곳이다.
일반적인 라우터와 방화벽의 위치
(1) snmp community 재설정 및 접근제어
access-list 7 permit 211.100.14.200
snmp-server community xsnahs6x RO 7
라우터에서의 접근 제어
(2) 라우터에 telnet 접근제어
access-list 8 permit 211.100.14.200
access-list 8 deny any
line vty 0 4
access-class 8 in
(3) Virtual 패스워드를 암호화
Central(config)# service password-encryption
(4) 기타 서비스 제어
Central(config)#
Central(config)#
Central(config)#
Central(config)#
Central(config)#
no cdp enable
no service udp-small-servers
no service tcp-small-servers
no ip finger
no ip http server
라우터에서의 접근 제어
(5) access-list filtering
interface serial3/0
ip access-group 101 in
ip access-group 110 out
access-list
access-list
access-list
access-list
access-list
access-list
access-list
access-list
access-list
access-list
access-list
access-list
access-list
access-list
101
101
101
101
101
101
101
101
101
101
101
110
110
110
deny ip host 0.0.0.0 any
deny ip 127.0.0.0 0.255.255.255 any
deny ip 10.0.0.0 0.255.255.255 any
deny ip 172.16.0.0 0.15.255.255 any
deny ip 192.0.2.0 0.0.0.255 any
deny ip 169.254.0.0 0.0.255.255 any
deny ip 192.168.0.0 0.0.255.255 any
deny ip 240.0.0.0 15.255.255.255 any
deny ip 211.2.2.0 0.0.0.255 any
deny tcp any any range 12345 12346
permit ip any any
permit ip 211.2.2.0 0.0.0.255 any
permit ip 211.2.3.0 0.0.0.255 any
deny ip any any log-input