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