푸른창공

light99.egloos.com

포토로그 마이가든




메일서버 인증 (Cyrus SASL 인증, STARTTLS인증 첨부파일) 리눅스

* Simple Authentication and Security Layer
 - sendmail서버는 기본적으로 다른 도메인이나 다른 네트워크로의 릴레이를 하지 못하게 되어있다. 그 이유는 나의 메일서버를 이용하여 스펨메일을
릴레이하는 서버로 악용할 수 있기 때문이다. 그래서 /etc/mail/access 파일에 다른 도메인이나 네트워크로 릴레이를 허용해주는 설정이 필요하다. 
  그러나 /etc/mail/access 파일에 릴레이를 설정해 주지 않아도 SMTP 프로토콜에 사용자 인증을 부여하여 인증된 사용자는 모든 도메인에 
릴레이를 허용
할 수 있게 설정할 수 있다.

1. 설정파일 추가 및 수정

 1) /usr/lib/sasl2/Sendmail.cf 을 생성해 준다.(Sendmail의 S는 대문자이다.)
   # echo "pwcheck_method:saslauthd" > /usr/lib/sasl2/Sendmail.cf  ---> Sendmail.cf 파일에 pwcheck_method:saslauthd를 생성
    ( 비번체크를 인증방식으로 설정하겠다는 의미)
 
 2) /etc/pam.d/smtp 파일생성---> 이미 파일이 존재하면 보기와 같이 수정하여 준다.
   

 3) /etc/mail/sendmail.cf 설정 ---> Cyrus SASL에 의한 SMTP인증이 가능하도록 sendmail.cf의 내용이 설정 되어 있어야 한다. 대소문자주의
  

 4) /etc/sysconfig/saslauthd 파일 설정  
  

 2. Sendmail 데몬과 saslauthd 데몬(인증데몬)실행
    # service saslauthd restart 
    # service sendmail restart 

  3. Cyrus-SASL 인증 확인 --> 인증데몬이 올바르게 작동하나 확인
       

  4. 클라이언트에서 인증을 사용하도록 설정 (outlookexpress 를 사용)
  
 

 5. 편지보내기 (psk.com 도메인에서 bluescreen1.com으로...)
 
STARTTLS.txt

여신 신세경


SPAN (switchport port analyzer) , 명령어 메크로 만들기 CCNP - BCMSN

1. SPAN
 스위치로 구성된 이더넷의 경우 다른 포트에서 발생하는 트레픽은 현재 자신이 사용하는 포트에서는 알수가 없다. 그러나 SPAN을 사용하면 다른 포트에서 일어나는 트레픽을 내가 사용하는 포트로 포워딩이 가능하다. 
  SPAN은 포트의 VLAN이 서로 달라도 동작하며, 반드시 소스보다 목적지(모니터링 하는 쪽)의 대역폭 속도가 같거나 높아야 한다.
  - local SPAN : 소스(감시하려는 포트)와 목적지(패킷분석기가 위치한 포트)가 동일 스위치
  - remote SPAN : 소스와 목적지가 다른 스위치
 

2. local SPAN 설정법 ( f0/2의 트레픽을 f0/1로 전달 )

   SW1(config)# monitor session 1 source interface fa0/2 [in | out | Both]---> fa0/2을 모니터링하겠음, 보통 both(in,out둘다)로 설정
   SW1(config)# monitor session 1 destination interface fa0/1 ---> 내 pc(패킷분석기)가 위치한 포트지정

3. remote SPAN 설정법 (SW2의 f0/1의 트레픽을 SW1의 f0/1로 전달)
 - SW2 (모니터 트레픽을 송신하는 입장)
  SW2(config)# vlan 10
  SW2(config-vlan)# remote-span---> 다른 스위치로 목적지를 지정하기 위해서 반드시 설정
  SW2(config)# monitor session 1 source interface fa0/1 [in | out | both]
  SW2(config)# monitor session 1 destination remote vlan 10 reflector-port (모니터 트레픽을 차단할 포트, 트레픽이 같은 VLAN으로 모두 전송 될 것이므로 패킷분석기가 연결된 포트를 제외하고 모두 차단하는 것이 좋다.)

  - SW1 (모니터 트레픽을 수신받는 입장)
  SW1(config)# monitor session 1 source vlan 10 rx(SW2에서 vlan 10으로 보낸 SW1의 fa0/1의 트레픽을 받는다)
  SW1(config)# monitor session 1 destination interface fa0/1(패킷분석기가 위치한 포트로 넘겨줌)
# 확인
- show moinitor session detail
- show monitor session ?
   <1-2> SPAN session number
   all Show all SPAN sessions
   local Show only Local SPAN sessions
   range Show a range of SPAN sessions in the box
   remote Show only Remote SPAN sessions

4. Catalyst Switch Macro (명령어 메크로 만들기)
  - fa0/11, fa0/12를 'SAM1112' 라는 Macro 생성
  SW1(config)# define interface-range SAMfa0/11 , fa0/12 ----> SAM이란 이름으로 메크로만들기(fa0/11, fa0/12를 매핑)

  SW1(config)# interface range macro SAM ----> 메크로 사용 ( macro SAM = fa0/11, fa0/12 )


IP fragments 공격, ICMP 스프핑, TCP-syn-flooding 방어 방법 CCNP - ISCW

1. ip fragment 공격 방어 
  TearDrop공격이라고도 한다. 이 공격수법은 헤더가 조작된 일련의 IP 패킷조각들을 전송 하므로써 공격이 이루어 진다. 이 수법으로 공격당한 시스템은 
 네트워크 연결이 끊어지거나 블루스크린이 뜨는 오류가 생기면서 중단된다.
  ( IP는 MTU 크기가 초과된 데이터에 대해서는 분할(Fragments)를 실시하여 전송 처리하는데 조작된 fragment를 차단 하므로써 공격을 방어 한다.)

*  access-list를 사용하여 ip fragment 공격 방어 ( '150.1.13.254' 서버가 IP Fragments 공격을 당하고 있을 떄, 라우터에서 이를 차단하므로써 방어할 수 있다.)
  Router(config)# ip access-list extended frag  ----> frag라는 엑세스리스트를 만듬
  Router(config-ext-nacl)# deny ip any host 150.1.13.254 fragments   ----> 두번쨰 fragment 이부터를 체크하고 이에 해당하는 패킷은 150.1.13.254로 갈 수 없는 엑세스 리스트임
  Router(config-ext-nacl)# permit ip any any  ----> 나머지 패킷은 모두 허용
  Router(config-ext-nacl)# interface fa0/0 ----> 150.1.13.254서버가 위치하는 인터페이스 모드로 진입
  Router(config-if)# ip aceess-group frag out ----> 라우터에서 호스트로 나갈때의 인터페에스에 엑세스리스트 적용

2. ICMP 스푸핑 방어 방법
  DOS (denial of dervice, 서비스거절) 공격으로 일반적으로 이공격은 연속적으로 대량의 ICMP 패킷을 발송하여 상대방의 서버를 다운시킨다.
 
 * access-list를 사용하여 ICMP 스푸핑 방어('150.1.13.254' 서버는 현재ICMP 스푸핑 공격을 당하고 있을 때, 라우터에서 이를 차단 하므로써 방어를 할수 있다.)
  Router(config)# ip access-list extended icmp ----> icmp라는 엑세스리스트를 만듬
  Router(config-ext-nacl)# deny icmp any host 150.1.13.254 echo ----> icmp의 ping패킷은 150.1.13.254로 갈 수 없는 엑세스 리스트임
  Router(config-ext-nacl)# permit ip any any  ----> 나머지 패킷은 모두 허용
  Router(config-ext-nacl)# interface fa0/0----> 150.1.13.254서버가 위치하는 인터페이스 모드로 진입
  Router(config-if)# ip aceess-group frag out ----> 라우터에서 호스트로 나갈때의 인터페에스에 엑세스리스트 적용

3. Mitigating TCP SYN Attack 방어 방법
     이 기술은 syn flooding 공격 시 정당한 호스트와 공격 호스트를 구분하는 기술로서 서비스와 동시에 syn flooding 공격을 방어할 수 있다.
  
클라이언트의 접속 요청인 SYN을 가로채며, IOS Proxy로서 응답(클라이언트의 요청을 서버대신 응답)을 하며 이에 상응하는 응답(ACK)으로 호스트의 정당성을 확인하는 기술이다.
  - 라우터3700시리즈 이상 구현 가능하다
  - 운영모드는 크게 intercept와 drop으로 나뉘며, intercepter는 또 다시 intercept와 watch로 나뉜다.

 
  1) Intercept/Intercept : Default
    클라이언트의 SYN 요청에 IOS는 서버 대신 SYN/ACK을 보내고 ACK 대기(첫번째 패킷을 가로챔)
    클라이언트로부터의 ACK 수신 시 IOS는 서버와 3 way-handshake를 진행하고establish 완료 시 서버와 클라이언트를 연결

    - 설정 법
   Router(config)# access-list 110 permit tcp any {services network | host} ---> 엑세스리스트로 서비스대역 지정 
   Router(config)# ip tcp intercept list 110   ---> intercept 활성화
   Router(config)# ip tcp intercept mode intercept  ---> intercept모드로 선택 (기본값이라서 생략가능)
   Router(config)# ip tcp intercept connection-timeout 30  ---> 30초동안 정상적인 두번쨰 SYN가 들어오지 않으면 차단(생략가능)

 2) Intercept/Watch( 필드에서는 watch를 더 많이 쓴다.)
   클라이언트의 SYN 요청을 가로채지 않고 establish 완료 시 까지 모니터링
   클라이언트와 서버간establish 연결이 30초안에 성립되지 않으면 IOS는 서버쪽으로 RST 송신후 state table에서 삭제(막아버린다).

   - 설정 법
  Router(config)# access-list 110 permit tcp any {services network | host}  ---> 엑세스리스트로 서비스대역 지정 
  Router(config)# ip tcp intercept list 110   ---> intercept 활성화
  Router(config)# ip tcp intercept mode watch  ---> watch 모드로 선택
  Router(config)# ip tcp intercept watch-timeout 5 ---> 5 초동안 서버와 정상적인 SYN를 맷지 않으면 차단(기본값은 30초로 설정)
 
 3) drop ( 필드에서 굳이 사용하지는 않는다. 인터셉터보다 더 많은 부하를 유발한다..)
  DoS 공격을 받고 있는 상태에서 불완전 연결 유지 기간 정의
  Default : 1분안에 불완전 연결이 1100 초과시 순차적으로 연결을 state table에서 삭제.
  - 설정 법
   Router(config)# access-list 110 permit tcp any {services network | host}  ---> 엑세스리스트로 서비스대역 지정 
   Router(config)# ip tcp intercept list 110  ---> intercept 활성화
   Router(config)# ip tcp intercept mode drop  ---> drop 모드로 선택 

메일서버 설정 (서버옵션파일 첨부) 리눅스

1. 패키지 설치
  - sendmail : SMTP 데몬 패키지    
  - sendmail-cf : SMTP 설정 관련 패키지 (sendmail-cf-xxx.rpm)  
  - dovecot : IMAP, POP3 데몬 패키지(perl-DBI-xxx.rpm, mysql-xxx.rpm, dovecot-XXX.rpm)

  - 그외 postgresql-lis-xxx.rpm 설치 ---> yum으로 설치시 자동 설치 됨

  - 설치 방법 : #yum install sendmail sendmail-cf dovecot

2. 환경설정파일 편집
  1) vi /etc/mail/sendmail.cf    (89행 , 265행 수정)
  

  2) vi /etc/mail/access 수정 (메일 릴레이 송수신 제어 파일)
       * 기본적으로 다른 도메인으로의 릴레이는 거부되어 있고, 다른 도메인으로부터의 메일 수신은 모두 허용되어 있다.
          따라서 설정한 메일서버를 이용하여, @daum.net이나 @naver.com 같은 곳으로 메일을 보낼 때는 다음 보기와 같이 릴레이를 추가 해줘야하며
          @daum.net이나 @naver.com 에서 내 메일서버(@psk.com)으로 메일은 기본적으로 제한없이 수신할 수 있으므로, 받기 싫은 도메인이 있다면 
           다음과 같이 REJECT
(@nate.com 으로부터 수신거부) 해줘야 한다.
      
   * /etc/mail/acceess 파일 수정 후 "makemap hash /etc/mail/access < /etc/mail/access" 명령어를 실행하여 적용시켜야 한다.

 3. 메일 계정 생성 
   설치한 메일서버를 사용하는 계정은 리눅스 서버에 생성한 유져를 사용한다. (park 란 계정을 생성한다면 해당 사용자의 메일주소는 park@도메인명 이 된다.
  

 4. 방화벽 설정
   - lokkit 명령( /etc/sysconfig/iptables 에 직접추가해도 상관 없음)으로 SMTP:25번, POP3:110번, imap:143번, POP3s:995번, imaps:993번을 추가한다.
     DNS서버까지 같은 PC에 설치했다면 DNS:53번까지 추가한다.
    ex) kokkit 명령 후 보기와 같이 " 53:tcp 53:udp 25:tcp 110:tcp 143:tcp 995:tcp 993:tcp " 를 추가한다.
     

5. 데몬 구동
  

6. 부팅시에 자동 데몬 실행 설정
  - ntsysv 명령후 해당 데몬을 체크 (sendmail 데몬과 dovecot 데몬 체크)
 

 mailserveroption.txt


1 2 3 4 5 6 7 8 9 10 다음