새로운 일을 받았다.

1. postfix를 구축해라

2. 사용자 인증을 받게하라

3. smtp서버에 바로접근하는게 아니라, 2개의 smtp서버 구축 후 relay를 시켜라!


나는 smtp에대한 지식이 전무하다.

구축하면서 얻는 지식에대해 정리해갈 예정이다.


1. postfix를 구축하라는 인터넷에 많아서 그냥 구축했다. (https://www.lesstif.com/pages/viewpage.action?pageId=18219586) 이거보고 구축했다.


2. 사용자 인증을 받게하라 .. 이게 매우 애매했다. 일단 시작해 보자!

인터넷에 찾아보니, SASL인증을 받으면 해결 될 것같다.

SASL(Simple Authentication and Security Layer)은 인터넷 프로토콜에서 인증과 데이터보안을 위한 프레임워크이다. 

일단은 이게 맞는지 모르겠다. ㅋㅋㅋㅋ


일단은 방금 안 사실 postfix는 리눅스 계정과 연계된다고 한다.


예를들어) 리눅스 계정 id가 asdf1234이면, main.cf에서 설정 한 domain이 메일주소가 된다.

asdf1234@설정한도메인값

아래는 한 블로그에서 퍼온 내용이다.


 ID는 linux 기본 계정 설정과 공유된다.


-계정생성

#useradd 사용자계정 (홈 디렉토리는 생성 안됨) <---- 이걸로 계정만 생성하면 해당 도메인으로 이메일이 주고받기 가능


#adduser 사용자계정 (홈 디렉토리까지 같이 생성)


-비번생성 및 수정

#passwd 사용자계정


-계정삭제

#userdel -r 사용자계정

(-r옵션은 홈디렉토리까지 한번에 삭제시켜준다)


위 명령어들로 linux 기본 계정은 물론 sendmail, postfix 메일 계정까지 동시에 관리한다.


출처: http://mosei.tistory.com/entry/sendmail-postfix-메일-계정-설정 [씹어먹는 블로그]



SASL Authentification 설정

설정을 위해, cyrus-sasl 패키지 설치하자!

sudo yum install cyrus-sasl
 
cd /etc/sasl2 
vi smtpd.conf


smtpd.conf가 다음 내용임을 확인

pwcheck_method: saslauthd
mech_list: plain login

sasl 실행

systemctl start saslauthd
계정 선택 후 비밀번호 입력


그다음 하나더 설치 해 줘야 할것이 있다.

너무 슬프게도 나는 이걸 몰라서 하루종일 헤맸다.

sudo yum install cyrus-sasl-plain
 
설치확인
saslauthd -v


main.cf수정

sudo vi /etc/postfix/main.cf
 
아래에 다음을 추가
smtpd_sasl_path = smtpd
smtpd_sasl_auth_enable = yes
broken_sasl_auth_clients = yes
smtpd_sasl_security_options = noanonymous
smtpd_client_restrictions = permit_sasl_authenticated, reject
smtpd_relay_restrictions = permit_sasl_authenticated, reject
smtpd_recipient_restrictions = permit_auth_destination,permit_sasl_authenticated,reject

인터넷에 올라간 많은 설정을 보면 permit_mynetworks 설정이 있지만, 나는 빼버렸다. 

permit_mynetworks를 하게되면, mynetworks에 등록되어 있으면, 따로 인증을 거치지 않고 무조건 허용하겠다는 말이다.

하지만 그건 우리가 원한게 아니였기때문에 빼버렸다!

무조건 sasl인증을 받은 사람만이 우리 메일서버를 통해 메일을 보낼 수 있다.

main.cf를 변경했으니, smtp를 재시작 시키자!

sudo postfix stop
sudo postfix start


메일 인증을 받기전에, base64인코딩 된 idpw를 얻자

echo -ne '\0username\0password' | base64


$ telnet localhost 25 Trying ::1... Connected to localhost. Escape character is '^]'. 220 도메인 ESMTP Postfix helo localhost 250 도메인 ehlo localhost 250-도메인 250-PIPELINING 250-SIZE 10240000 250-VRFY 250-ETRN 250-AUTH PLAIN LOGIN 250-AUTH=PLAIN LOGIN 250-ENHANCEDSTATUSCODES 250-8BITMIME 250 DSN   AUTH PLAIN 위에서받은 base64문자열   235 2.7.0 Authentication successful mail from:xxx@daum.net 250 2.1.0 Ok rcpt to:txxx@daum.net 250 2.1.5 Ok data 354 End data with <CR><LF>.<CR><LF> subject:test asdf . 250 2.0.0 Ok: queued as 5F1305FBB89 quit 221 2.0.0 Bye

사용자 인증이 완료되었다.

오늘은 REST에 대해 공부했다.

난 사실 이런 기본용어를 아예 모르는것 같다..^^

사용은 하고있지만 이게 뭔지 모르고 쓰는거..?

여튼 내가 공부한 RESTful에 대해 정리해 봐야겠다.


RESTful


Representational State Transfer이란 약자로 별도의 전송장치를 사용하지 않고, HTTP를 이용하여 전송하는것을 말한다.

모든자원(리소스,이미지 등)에 대해 고유의 URL을 부여한다. 뭐 쉽게 말하면  리소스의 구조자체가 URL이라 생각하면 된다.

REST하면 CRUD를 빼놓을 수 없는데, CREATE(post), READ(get), UPDATE(put), DELETE의 약자이다.

CRUD를 HTTP Method를 통해 날리고 해당 리소스에서는 각각 create, read, update, delete를 적용한다.

Laravel Framework를 사용 할 당시 Router에서 post, get, put, delete를 각각 설정해 줬었는데 이게 RESTful이였다 ㅡㅡ



URL구성


url을 구성할 때는 해당 url만 보고도 많은 정보가 들어가도록 구성해야한다.

또한 소문자로 구성하고, 스페이스 대신 '-'를 사용하는 것을 권장한다.

반응형 Web에서 모바일과 pc의 url이 다른건 RESTful하다고 할 수 없다.

ex) www.m.naver.com , www.naver.com

위 방법은 User - Agent header를 사용하고, 최적화된 사이트를 이동하는 것인데,

그것보다 URL은 그대로이지만 화면만 장비에 따라 최적화 되도록 설계하는것이 바람직하다.

나중에 안 사실이지만 git명령어 보단 EGit를 통해 git를 더 많이 사용할것 같다.

eclipse는 neon3를 사용한다.

Egit를 따로 설치하지 않아도 제공해준다.(Luna버전 부터는 기본으로 포함되어 있다고 한다.)

혹시 Egit를 설치해야 한다면 Help-Eclipse Marketplace를 선택 후 


다운받으면 된다.


Git 사용 전에 이름과 Email을 사용해 주면 좋다.

다음과 같이 설정해 준다.

user email 설정 시 Add Entry를 클릭 후 key에 user.email value에 이름을 적으면 된다.

나머지 방식도 동일하다.

  

Window - Prefernces를 선택 후 git를 검색한다.


내 공부를 위한 블로그이기 때문에 내가 필요하지 않은 정보는 간단하게 적어야겠다.

캡처하기가 개귀찮네


1.저장소 생성 (내가 프로젝트를 생성하고, Git에 올릴경우 사용)->현재는 사용x 추후 사용할 수도)


프로젝트 선택후 오른쪽마우스 클릭

Team - Share Project...선택 Git선택 후 Next

Git저장소 생성 위치 지정 후 Finish
하면 Git 저장 소 생성 완료 프로젝트 이름옆에 저장소 정보가 표시되어있음.
후에 커밋
이건 사용하게 되면 좀더 자세히 적어야 겠다.



2. 소스 클론(소스를 최초에 받아오기)




이건 회사 사수님이 알려준 방법과 책에서 읽은 방법 2가지가 있다.

사수님이 알려준방법.

 1. Git Repositories를 연 후 

없다면

오른쪽 상위에 저 파란색 네모를 클릭하여 Git를 찾아 추가해준다.

그 후 저 Git를 클릭하면 Git Repositories가 나타남.



오른쪽 버튼 클릭 후 Paste Repository Path or Url에 해당 Git주소를 넣은 후 받을 Workspace경로를 선택 해 준 후

완료 하면 소스를 Local로 받아온다.

이걸 실제로 이클립스에서 사용하려면 프로젝트에 추가해 주어야 한다.

File - Open Projects from File System...을 클릭 후 해당 파일을 추가 해주면 해당 Project를 사용 할 수 있다.



2.책에서 알려준 방법(따로 프로젝트를 추가해 주지 않아도 됨.)

File-Import-Git-Project를 통해서 가져온다.

후에 from Git-Clone Url선택 Import using the new Project wizard선택해서 가져오면 된다


 

3.merge


커밋 후 충돌나면 알람을 띄워준다

Result에 conflicting이 있으면 충돌 난것.

충돌난 파일 선택 후 오른쪽 마우스에 Team-Merge Tool을 선택해 준 후 

SVN과 마찬가지로 Merge실행한다(내가 소스보고 필요한건 넣고 필요없는건 뺴야함.)

후에 충돌을 해결했다는 표시로 Team - Add to Index를 선택해 줘야 한다.






뭐 대충 이클립스에서 Git를 사용하는 방법은 위와 같다.

실무에서 쓰다가 추가할 부분이 있으면 추가해야겠다.


+ Recent posts