2017년 6월 27일 화요일

이메일 DDOS 공격 차단


- iptables를 이용한 방법[ https://sys4.de/ ]
1. 이메일 서버에 인증 없이 메일 발송이 되지 않도록 해 놓았는데 계속 시도하면서 서버에
   부하을 일으키는 스패머가 있어 차단 방법(공통 키워드 EHLO ylmf-pc)



설정 후 적용 리스트
# iptables -A INPUT -p tcp -dport 25 -m string --string 'ylmf-pc' --algo bm -j DROP










적용되면 메일 로그에서 지속적으로 발송 시도하던 로그는 말끔히 사라진다.

※추가로 해당 로그만 별도 보기를 원할 경우 아래와 같이 추가하면 된다.
   EHLO ylmf-pc 문자열이 확인 되면 SMTP 오류를 발생하고 180초간 3번의 오류 발생시 로그 생성
# iptables -I INPUT -p tcp --dport 25 -m string --to 90 \
    --string "EHLO ylmf-pc" --algo bm -m recent \
    --name SMTP_ERROR --set
# iptables -I INPUT -m recent --name SMTP_ERROR \
    --rcheck --seconds 180 --hitcount 3 -j DROP
# iptables -I INPUT -p tcp --dport 25 -m string --to 90\
    --string "EHLO ylmf-pc" --algo bm -j LOG \
    --log-level info --log-prefix "SMTP_ERROR "
# iptables -I INPUT -p tcp --dport 25 -m string --algo bm --string 'ylmf-pc' -j DROP

커널 로그(kern.log)에 아래와 같이 표시됨.
SMTP_ERROR IN=eth0 OUT= MAC=..:..:..:..:..:..:..:..:..:..:..:..:..:.. SRC=x.x.x.x DST=x.x.x.x LEN=54 TOS=0x00 PREC=0x00 TTL=111 ID=3363 DF PROTO=TCP SPT=3677 DPT=25 WINDOW=65501 RES=0x00 ACK PSH URGP=0


2. 포트 포워딩 설정
# iptables -A PREROUTING -p tcp -m tcp --dport {서버접속포트} -j DNAT\
           --to-destination {서비스서버IP:서비스포트}

3. iptables 설정값 저장 및 restore
# iptables-save > /etc/iptables.rule
# iptables-restore < /etc/iptables.rule

4. 설정된 리스트 조회
# iptables -L
# iptables -t nat  <-- 포트포워드 규칙이 있을 경우

- fail2ban을 이용하는 방법[ https://serverfault.com/ ]
# vi /etc/fail2ban/jail.conf
[postfix-ddos]

enabled  = true
port     = smtp,ssmtp
filter   = postfix-helo
logpath  = /var/log/mail.log
maxretry = 5

# vi /etc/fail2ban/filter.d/postfix-helo.conf

[INCLUDES]
before = common.conf

[Definition]
failregex = reject: RCPT from (.*)\[<HOST>\]: 504 5.5.2

ignoreregex =

2017년 6월 20일 화요일

SCP 접속시 패스워드 없이 접속하여 백업 받기

[출처 : http://alvinalexander.com/ ]

작업 내용 A서버에서 B서버로 scp로 접속하여 B의 폴더의 모든 파일을 A서버 폴더로 복사

1. A서버(①)에서 B서버(②)로 접속시 자동 로그인이 되도록 하기 위한 처리
① A 서버에서 Key 생성
# ssh-keygen -t rsa

Generating public/private rsa key pair.
Enter file in which to save the key (/Users/al/.ssh/id_rsa):  <-- 엔터
Enter passphrase (empty for no passphrase):  <-- 엔터
Enter same passphrase again:  <-- 엔터
Your identification has been saved in /Users/al/.ssh/id_rsa.
Your public key has been saved in /Users/al/.ssh/id_rsa.pub.
The key fingerprint is:
6f:16:29:90:46:b6:88:34:3d:81:07:fc:bd:1a:fc:db al@Al-Alexanders-MacBook.local
The key's randomart image is:
+--[ RSA 2048]----+
| .++..o          |
| .oo++ o         |
|  .o.o=          |
|    ....   .     |
|   .   .S o      |
|    o .  o .     |
|     +    +      |
|    . .. o       |
|      ..E        |
+-----------------+

# ssh-copy-id root@B서버IP -p 포트
root password 등록



이후 패스워드 필요하지 않음.

2. 파일 백업을 위한 scp문장 작성
# scp -p 포트 root@B서버 IP:/B서버 파일 위치  /A서버 저장 위치 -r

2017년 6월 9일 금요일

ownclude 관련 글


1. owncloude 설치consol에서 파일을 cp/mv로 이동 처리한 후 웹에서 보이지 않을 경우[출처]
# cd /var/www/html/owncloud/
# ./occ files:scan --all   <-- 파일을 읽어 cache 처리 한다.

2017년 6월 1일 목요일

iRedmail과 owncloud 로그인 연동하기

[ 출처 : http://www.iredmail.org/forum/ ]
[ 출처 : https://doc.owncloud.org/]

1. OwnClude 설치[ 참조 ]
2. iRedmail 설치[ 참조 ]
  - 설치 후 바이러스 백신(clamav) 로그 파일 오류 발생(로그 생성시 권한 오류 발생)
    mkdir /var/log/clamav
    chown clamupdate.clamupdate -R /var/log/clamav
  - 설치시 Sogo까지 설치한 경우 postmaster로 5분 간격으로 메일 발송됨.
    cron에서 실행하면서 자동 메일 발생되고 있어 수정(빨간색 부분 제외 처리)
    vi /var/spool/cron/sogo
    *   *   *   *   *   /usr/sbin/sogo-tool expire-sessions 30 2>/dev/null; /usr/sbin/sogo-ealarms-notify

3. Ownclude상의 Apps에서 비활성에서 LDAP를 검색하여 사용함으로 변경하면
   admin 설정 부분에 LDAP가 새로 생성되고 아래와 같이 설정


















- 로그인시 오류 발생할 경우 group 설정을 user 설정의 이름고 base user tree를 동일하게 설정한다.
  owncloud 로그는 /var/www/html/owncloud/data/owncloud.log에서 확인 가능


















- LDAP 사용자 삭제시 자동 삭제되도록 설정(기본값음 disable)
 # vi /var/www/html/owncloud/config/config.php
  'ldapUserCleanupInterval' => 30,  <-- 적용 시간(Min) 추가
[ 참조 : https://doc.owncloud.org/ ]
 
- LDAP 사용자 삭제[ 참조 : https://doc.owncloud.org/ ]