2022년 8월 31일 수요일

OS별 서버 모델명 확인 방법

[ 출처 : https://onedaystudy.tistory.com/ ]


OS별 명령어로 확인하는 방법이다.

Solaris
# prtconf -vp | grep banner-name

AIX
# prtconf | grep Model(한글일 경우 '모델')

HP-UX
# model

LINUX
# dmidecode | grep Name

Windows Server
# wmic computersystem get model, name, manufacturer, systemtype

2022년 6월 29일 수요일

Amavisd 메일 필터 설정

 [ 참조 : https://linuking.com/ ]

Spamassassin score system

X-Spam-Status

스팸 스코어가 무슨 테스트로 인해 지정되었는지를 설명하고 있다.

아래 예는 No - 스팸 메시지가 아니다. hits=2.2 태그 레벨이 2.2로 HTMl, SPF 테스트를 수행했다는 의미를 포함하고 있다.

X-ASF-Spam-Status: No, hits=2.2 required=10.0   tests=HTML_MESSAGE,SPF_PASS

Amavisd 에서 spam filtering 수준 조절

Amavisd 를 이용해 원하는 태그, 아래와 같은 “spamminess” level 을 지정해 줄 수 있다.

 

$sa_tag_level_deflt= 2.0;

X-Spam-Status, X-Spam-Level 태그에 스팸 레벨을 지정한다. $sa_tag_level_deflt= undef; 로 지정하면 이 태그는 항상 추가된다.

 

$sa_tag2_level_deflt = 6.31;

스팸이란 판단의 경계 스코어 값이다.  이 값 이상의 스코어를 얻은 메시지는 스팸으로 인식되고 메시지 제목에 **** SPAM **** 이 추가된다. 6.31이라는 값은 너무 높은 것 같고 $sa_tag2_level_deflt = 5.0으로 사용해 보라.

 

$sa_kill_level_deflt = 6.31;

스팸 레벨이 이 값일 경우 Amavis에 의해 메일은 검역소로 보내지거나 특정 메일 박스로 간다. 또한 메시지의 “spamminess” level 을 정의해서 스팸 처리된 메일의 송신자는 Delivery Status Notification (DSN) 인 “your message was not delivered” 와 같은 이메일을 받을 수 있다. 단, $sa_dsn_cutoff_level value 이 스팸 레벨 이하로 설정되면 DSN 메시지는 보내지 않는다.

 

$sa_kill_level_deflt = 10000; 로 설정하면 스패머에게 메일 전송을 안하고 특정 메일박스에 복사하지도 않는다. 즉 사용자에게 특정한 문자가 추가된 메일을 전송하게 된다. 이 숫자는 10000을 넘지 않는게 좋겠다.

$sa_tag2_level_deflt 를 kill_level_deflt와 같은 값으로 설정하면 특정 메일박스로 가고 사용자에게 전송되지 않는다. 바로 이어서 “$spam_quarantine_to” 에 특정 이메일 주소를 명시해서 스팸으로 인식( 4개의 스팸 헤더, 제목 변경 혹은 검역소로 보내야하는)되는 메시지를 보내거나 이 값이 없다면 시스템의 검역소로 보내진다.

 

$sa_dsn_cutoff_level = 9;

DSN 메시지를 메일 발송자에게 전송하지 않는 스팸 레벨을 정의한다. You can leave it as it is, since we’ll not do any bouncing (see below the change from D_BOUNCE to D_DISCARD).

 

@bypass_virus_checks_maps = (1);

Anti-Virus 검증을 제외한다.

 

$sa_spam_subject_tag = '***SPAM*** ';

메일 메시지가 스팸으로 판정되면 메일 제목의 앞에 추가하는 문자열. 마지막 공백이 있음에 주의.

 

@local_domains_maps = ( [".$mydomain"] );

주어진 도메인을 Amavis 가 이메일을 스캔할 것을 정의. 아래와 같이 지역 도메인을 사용할 수 있다.

@local_domains_maps = ( [".$mydomain", "example2.com", "example3.com"] );

 

# $final_virus_destiny= D_DISCARD;

이 라인을 찾아 # 로 막았으면 제거한다. Amavis 가 검역소로 바이러스가 포함된 메시지를 전송한다 ( 특정한 이메일 박스, 시스템에 지정된 검역소  )

 

$final_*_destiny 의 값을 D_DISCARD 로 설정하면 메일 발송자에게 바이러스 차단에 대한 메시지를 전송하지 않는다.

 

$final_banned_destiny=D_DISCARD;

Amavis 가 금지된 파일을로 무엇을 할지 지정한다. D_DISCARD 로 지정하면 지정된 메일박스로 메시지를 전달할 수 이다.

기본은 D_BOUNCE.

Note: even if you leave this setting as is, i.e. commented out, double-extension files will still be blocked. This is an Amavis default.

 

$final_spam_destiny= D_DISCARD;

스팸 메일을 검역소로 보낸다 - $spam_quarantine_to 에 지정된 이메일 주소. 기본은 D_BOUNCE

 

 

$virus_admin= "virusalert@$mydomain";

바이러스 발견시 메시지를 전송할 관리자 이메일 postmaster 를 사용하자.

$virus_admin= "postmaster@$mydomain";

 

 

경고 등 관리자는 postmaster 를 이용하자:

$mailfrom_notify_admin= "postmaster@$mydomain";

$mailfrom_notify_recip= "postmaster@$mydomain";

$mailfrom_notify_spamadmin = "postmaster@$mydomain";

즉, FROM: postmaster@example.com 로 사용자에게 메시지가 전달된다.

 

$spam_admin 설정이 있지만 스팸 발견시 경고 메시지를 전송하지는 말자.

 

아래 명령들은 amavis 설정 파일에 기본적으로 준비되어 있지 않다. 입력을 하길 바란다.

@bypass_banned_checks_maps = (1);

특정한 확장자를 포함한 이메일은 금지한다 - 모든 이중 확장자 파일은 막는다.

금지할 확장자 들은 $banned_filename_re = new_RE 에서 정의한다.

 

금지 파일

$banned_filename_re = new_RE(

# qr'^UNDECIPHERABLE$',# is or contains any undecipherable components

 

# block certain double extensions anywhere in the base name

qr'.[^./]*[A-Za-z][^./]*.(exe|vbs|pif|scr|bat|cmd|com|cpl|dll).?$'i,

 

# qr'{[0-9a-z]{4,}(-[0-9a-z]{4,}){0,7}}?'i,# Class ID extensions - CLSID

 

qr'^application/x-msdownload$'i,# block these MIME types

qr'^application/x-msdos-program$'i,

qr'^application/hta$'i,

 

# qr'^message/partial$'i,# rfc2046 MIME type

# qr'^message/external-body$'i,# rfc2046 MIME type

 

# [ qr'^.(Z|gz|bz2)$'=> 0 ],# allow any in Unix-compressed

[ qr'^.(rpm|cpio|tar)$'=> 0 ],# allow any in Unix-type archives

# [ qr'^.(zip|rar|arc|arj|zoo)$'=> 0 ],# allow any within such archives

 

qr'..(exe|vbs|pif|scr|bat|cmd|com|cpl)$'i, # banned extension - basic

# qr'..(ade|adp|app|bas|bat|chm|cmd|com|cpl|crt|emf|exe|fxp|grp|hlp|hta|

#inf|ins|isp|js|jse|lnk|mda|mdb|mde|mdw|mdt|mdz|msc|msi|msp|mst|

#ops|pcd|pif|prg|reg|scr|sct|shb|shs|vb|vbe|vbs|

#wmf|wsc|wsf|wsh)$'ix,# banned ext - long

 

# qr'..(mim|b64|bhx|hqx|xxe|uu|uue)$'i,# banned extension - WinZip vulnerab.

 

qr'^.(exe-ms)$',# banned file(1) types

# qr'^.(exe|lha|tnef|cab|dll)$',# banned file(1) types

);

 

@whitelist_sender_maps = read_hash("$MYHOME/white.lst");

white-list 파일이 있는 위치를 지정한다.기본값은 /var/amavis.

 

@blacklist_sender_maps = read_hash("$MYHOME/black.lst");

black-list 송신자가 있는 위치를 지정한다. 기본값은 /var/amavis.

 

$spam_quarantine_to = "spam@$mydomain";

$sa_kill_level_deflt 에서 지정한 스팸 레벨로 검출한 스팸  메시지를 전달한 이메일 주소. 만약 스팸으로 처리된 메시지를 사용자에게 Spam tag만 붙여 전송하고자 한다면 이 명령은 무시해도 좋다. 그렇지만 $sa_kill_level_deflt 과 $sa_tag2_level_deflt 레벨이 동일하다면 $spam_quarantine_to 설정을 해야 한다.

 

$virus_quarantine_to = "virus@$mydomain";

모든 바이러스 메일을 지정한 이메일로 전달한다.

 

$banned_quarantine_to = "spam@$mydomain";

지정한 파일 형식 ($bypass_banned_checks_maps 에서)을 금지하는 설정을 하고 해당 메일을 지정한 이메일로 전송한다.

 

$recipient_delimiter = '+';

or

$recipient_delimiter = '-';

Postfix 에서 이메일 주소에서 구분자를 지정했다면 둘 중 하나를 설정한다.

 

$hdrfrom_notify_admin = "Content Filter <postmaster@$mydomain>";

이 명령은 이메일 헤더의 FROM을 강제로 지정한 주소로 바꾸어준다.

 

Outgoing email 에 spam 해제

I think the easiest way to bypass spam scanning for outgoing emails is to set

     @bypass_spam_checks_maps = ( ["example.com"] );

 Or if you want to read your domains from a file:

     read_hash(%local_domains, '/etc/amavis/local_domains');

Then you can add your domains to /etc/amavis/local_domains - one domain per line.

You can use the same syntax for bypass virus/header/banned checks.

 

2022년 5월 6일 금요일

[SAP] How Subcontracting Cockpit ME2ON creates SD delivery?

 [ 출처 : https://blogs.sap.com/ ]


Purpose:

This blog is aimed at establishing a configuration and master data model to manifest how SD delivery is created from a Subcontracting Purchase order.

A delivery is a communication object especially from ERP to EWM and if ERP fails to create delivery, further warehouse activity is hindered it becomes mandatory to troubleshoot the reason for failure of delivery creation.

There are certain reason why customers choose to create delivery via shipping in case of Subcontracting Purchase order.

    Storage location is EWM managed,
    Storage location is HU manged in traditional HU model, the components which are sent to vendor are packed in Handling units, and HUs can only packed in deliveries not in material documents, so there are reasons to pick SD delivery in case of Subcontracting Purchase orders.

Mechanism of SD delivery creation:

    A sales organization, a distribution channel and a division must be assigned to the plant from which the components should be delivered. Path: Materials Management–>Purchasing–>Set up Stock Transport Order–>Define Shipping Data for Plants

    The subcontracting component must be created for the sales organization, the distribution channel and the division of the delivering plant in material master.

    A customer must be assigned to the subcontracting vendor and vice versa.

 

        The customer must be created for the sales organization, distribution channel and division of the delivering plant.

     A delivery type must be be entered for the provision of materials. Subcontracting delivery type in standard is LB, you can customize as per your requirement.

The order required field must be set to L, delivery for subcontracting. Delivery split with warehouse number triggered delivery distribution to EWM .

     The partner determination procedure LB of delivery type YLB must have partner function as vendor and marked as mandatory in VOPA.

     A shipping point must be assigned to the combination of shipping condition(Customer Master), loading group(Material master) and plant(Customizing) in OVL2.

 
Result:

If all the above criteria is maintained, ME2ON or ME2O creates SD delivery

 1) ME2ON


2) Click on Create delivery.

3). System creates SD delivery for subcontracting components.

 
Hence the topic ends here. Please suggest if any improvement is required to make this blog more useful.

In my next blog, I will cover subcontracting with Handling units.


2022년 1월 24일 월요일

HSODBC를 이용하여 ORACLE에서 MSSQL로 DB LINK 하기

 [ 출처 : https://oracle.tistory.com/189 ]

Oracle DB가 Windows에 설치 되어 있어야 가능합니다.

제어판상의 ODBC 데이터 원본 관리자 -> 시스템 DSN에 추가(시스템 환경 32/64에 맞추어 설정 되어야 함)

Listener에 추가(10g일 경우 hsodbc, 11g일 경우 dg4odbc로 등록함)

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = CLRExtProc)
      (ORACLE_HOME = E:\app\Administrator\product\11.2.0\dbhome_1)
      (PROGRAM = extproc)
      (ENVS = "EXTPROC_DLLS=ONLY:E:\app\Administrator\product\11.2.0\dbhome_1\bin\oraclr11.dll")
    )
    (SID_DESC =
      (SID_NAME = MSSQL )
      (ORACLE_HOME = E:\app\Administrator\product\11.2.0\dbhome_1)
      (PROGRAM = dg4odbc)
    )

  )


Tnsname.ora에추가

MSSQL =
 (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = IP )(PORT = 1521))
    (CONNECT_DATA = (SID = MSSQL ))
    (HS=OK)
  ) 


환경 설정 파일 새로 생성

E:\app\Administrator\product\11.2.0\dbhome_1\hs\admin\initMSSQL.ora

# This is a sample agent init file that contains the HS parameters that are
# needed for the Database Gateway for ODBC
#
# HS init parameters
#

HS_FDS_CONNECT_INFO = MSSQL
HS_FDS_TRACE_LEVEL = 1
HS_DB_DOMAIN = MSSQL
HS_DB_NAME = MSSQL

#
# Environment variables required for the non-Oracle system
#
#set <envvar>=<value>

설정이 완료되었으면 리스트 재 시작함.

lsnrctl stop / start

 

db link 생성

CREATE DATABASE LINK HSODBC
CONNECT TO user IDENTIFIED BY password USING tnsname


테이블 조회

SELECT * FROM table@hsodbc;