Unix/Debian

Debian 7 서버 설정

알 수 없는 사용자 2013. 5. 28. 14:52
이 글은 http://forcecore.tistory.com/1285 랑 한 세트다.

Debian 7이 나왔고, ssh/메일/Apache/Samba 서버를 재설정 할 일이 생겼다... 크래커 나쁜놈들 ㄷㄷ
서버를 재설치 하려면 우선은 예전 서버의 /etc 를 보존해두긴 해야 한다. 필요한 예전 설정을 읽어서 컨닝할 수 있도록...

Debian 설치는 뭐 쉬우니까 자세히 설명하지는 않겠다?... 다만 메일서버 기능은 설치하지 마라. exim4로 깔리는데, 없애기 어렵다 -_-;;;;

ssh 서버 기능을 가지고 설치를 하면 서버 설치가 끝나는대로 ssh가 돌기 시작할 것이다. 문제는, 이 블로그의 기존 자료랑 은근히 다른 점이 생겼다는 거... 으헑

우선은 root와 일반계정 비번을 설치하면서 설정했을 것인데, sudo를 우선 설치한다. 그리고 sudo가 가능하게 된 이후에는 root의 비번을 없앤다. 어떻게? /etc/shadow에서 비밀번호를 *로 만들어버려서 애초에 로그인이 불가능하게 한다. 그리고, /etc/ssh/sshd_config 를 수정해서 PermitRootLogin 을 no로 만들어버린다. (후우 ㄷㄷ)

vim 도 깔고...

이제 업무가 급하니 메일 시스템을 돌린다! mutt를 깐다. postfix깔고 dovecot도 깐다. Postifx는 설정이 상당히 변화가 없어서 설정을 거의 그냥 써도 되었다 (-_-)

main.cf:

# See /usr/share/postfix/main.cf.dist for a commented, more complete version



# Debian specific:  Specifying a file name will cause the first

# line of that file to be used as the name.  The Debian default

# is /etc/mailname.

#myorigin = /etc/mailname


smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)

biff = no


# appending .domain is the MUA's job.

append_dot_mydomain = no


# Uncomment the next line to generate "delayed mail" warnings

#delay_warning_time = 4h


readme_directory = no


# TLS parameters

smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem

smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key

smtpd_use_tls=yes

# enable TLS

smtpd_tls_security_level=may

smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache

smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache


# See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for

# information on enabling SSL in the smtp client.


myhostname = acme.xxx.ac.kr

alias_maps = hash:/etc/aliases

alias_database = hash:/etc/aliases

myorigin = /etc/mailname

mydestination = acme1.xxx.ac.kr, acme2.xxx.ac.kr, localhost.xxx.ac.kr, localhost

relayhost =

mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128

mailbox_command = procmail -a "$EXTENSION"

mailbox_size_limit = 0

recipient_delimiter = +

inet_interfaces = all


# dovecot auth

smtpd_sasl_type = dovecot

smtpd_sasl_path = private/auth

smtpd_sasl_auth_enable = yes

smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination


# E-mail sz limit, around 100MB, default was 10MB.

message_size_limit = 102400000

inet_protocols = ipv4


그리고 master.cf도 좀 수정되었다? 새 표준인 Port 587로 메일 보내기를 허용해야 하는데...

#submission inet n       -       -       -       -       smtpd

이렇게 코멘트 된 것을 enable한다. 그리고 postfix 재시작 or 시작.

이렇게 하면 mutt로 메일을 보내기는 될 것이다. 받기는 잘 안 될 것이다 -_-;; 받는 것은 Dovecot, Procmail 설정을 해야하기 때문이다... Dovecot이 2.xx로 버전업 되면서 1.xx와 설정이 완전 달라져서 애먹었다.

구상하는 설정은 Maildir로 메일을 저장하는 것. imap, pop3, imaps, pop3s 가 되는 것.

건드릴 부분은 별로 없다.
/etc/dovecot/conf.d/10-master.conf:
service imap-login {
  inet_listener imap {
    #port = 143
  }
  inet_listener imaps {
    #port = 993
    ssl = yes
  }

  # Number of connections to handle before starting a new process. Typically
  # the only useful values are 0 (unlimited) or 1. 1 is more secure, but 0
  # is faster. <doc/wiki/LoginProcess.txt>
  #service_count = 1

  # Number of processes to always keep waiting for more connections.
  #process_min_avail = 0

  # If you set service_count=0, you probably need to grow this.
  #vsz_limit = $default_vsz_limit
}

....

service auth {
  # auth_socket_path points to this userdb socket by default. It's typically
  # used by dovecot-lda, doveadm, possibly imap process, etc. Users that have
  # full permissions to this socket are able to get a list of all usernames and
  # get the results of everyone's userdb lookups.
  #
  # The default 0666 mode allows anyone to connect to the socket, but the
  # userdb lookups will succeed only if the userdb returns an "uid" field that
  # matches the caller process's UID. Also if caller's uid or gid matches the
  # socket's uid or gid the lookup succeeds. Anything else causes a failure.
  #
  # To give the caller full permissions to lookup all users, set the mode to
  # something else than 0666 and Dovecot lets the kernel enforce the
  # permissions (e.g. 0777 allows everyone full permissions).
  unix_listener auth-userdb {
    #mode = 0666
    #user = 
    #group = 
  }

  # Postfix smtp-auth
  unix_listener /var/spool/postfix/private/auth {
    mode = 0660
    user = postfix
    group = postfix
  }

  # Auth process is run as this user.
  #user = $default_internal_user
}
/etc/dovecot/conf.d/10-mail.conf
+mail_location = maildir:~/Maildir

인증서를 뭔가로 지정해주려면 /etc/dovecot/conf.d/10-ssl.conf 를 좀 건드려주긴 해야 하는데 필자는 건들지 않았다.

그리고, 수신된 메일이 Maildir로 가도록 procmailrc를, 없는데 만들어 넣는다.
/etc/procmailrc
#
# run as user privilege.
#
DROPPRIVS=yes

#
# use Maildir
#
DEFAULT=$HOME/Maildir/

#
# Make sure that $HOME/Maildir/ exist!
#
:0
* ? /usr/bin/test -d $DEFAULT || /bin/mkdir $DEFAULT
{ }
:0 E
{
    # Bail out if directory could not be created
    EXITCODE=127
    HOST=bail.out
}

#
# Change to DEFAULT directory
#
MAILDIR=$HOME/Maildir
이렇게 하면 메일은 대충 된다?

서버를 포맷하기 전에 보존해둔 /etc/aliases 파일을 복원하고, newaliases 명령어를 내려준다.



texlive-full 패키지를 설치하고, build-essential 도 설치.


samba는 http://forcecore.tistory.com/996 별 문제 없이 그대로 되었다. LDAP을 굴리는 서버는 아니지만 passwd 파일로 계정 관리를 하더라도 그대로 적용 가능하다. 일단은 여기까지 됨.