태그 Archives: CentOS7

취약점 패치 CVE-2017-5715, CVE-2017-5753, CVE-2017-5754

Intel cpu 의 Meltdown,

Intel, AMD, ARM 등 대부분의 cpu 취약점인 Specter 가 발견 되어 운영 중인 모든 컴퓨터 ( PC, 서버, 핸드폰 등등 ) 의 업데이트가 필요 하다.

시스템의 느려짐 ( 특히 I/O 속도 ) 이 발생한다고 하나..

간단한 자바스크립트 정도로 cpu의 시스템 에서 생성한 정보확인이 가능하다고 하니 꼭 진행하는 편이 좋다.

 

  • 서버 ( centos, ubuntu )

리눅스의 경우 커널 업데이트 이기 때문에 커널 업데이트 후에 시스템 재시작이 필요하다.

1.CentOS

2. Ubuntu

2018-01-10_14-35-57

위 스크린샷 화면은 ubuntu 설치할때 업데이트 설정에 따라 나오지 않을수도 있습니다.

 

  • 윈도우

1. 윈도우 10 사용자는 자동 패치 (KB4056892) 가 된다.

2018-01-10_15-48-59

2. 윈도우7 :  http://www.catalog.update.microsoft.com/Search.aspx?q=KB4056897

3. 윈도우8 :  http://www.catalog.update.microsoft.com/Search.aspx?q=KB4056898

 

PS. 아이폰의 경우 IOS 11.2.2 버전이 관련 패치 이며 가급적 패치 진행을 하는것이 좋을듯 ‘ㅅ’a

kernel 의 change log 를 확인하여 패치가 되었는지 확인한다.

openDMARC 설치

기존에 구글에 대량메일을 보내기 위한 opendkim 설치 및 운용 방법을 올렸었다.

DMARC (Domain-based Message Authentication, Reporting & Conformance)

DMARC는 SPF, DKIM의 검사 결과를 기초로 TXT 레코드의 내용에 따라 메일 발송 차단, 혹은 자신의 메일 도메인을 도용한 스푸핑 메일에 대한 보고 등을 설정할 수 있는 유용한 툴 이다.

 

사용법은 opendkim 보다 쉽지만 일부 설정값이 dkim을 필요로 함으로 dkim 과 dmarc 를 같이 진행하는것이 좋다.

 

설정을 위해서는 도메인이 있어야 하며

사전에 메일 발송서버의 IP 와 DNS A 레코드에 정식등록된 서버명이 필요로 한다.

여기서 설명은 서버아이피 123.123.123.123 의 호스트네임 mail01.enteroa.com 을 기준으로 설명 한다.

 

설치는 CentOS7 에서 진행을 하였습니다.

설치는 끝…

 

설치 완료 후 vi 를 이용하여 /etc/opendmarc.conf  파일을 수정 합니다.

 

sendmail.mc 파일의 하단에 opendmarc 필터를 추가합니다. (:8891 = open dkim) (:8893 = dmarc)

make를 하고 sendmail 을 재시작 합니다.

서버 설정이 끝났습니다.

 

다음은 DNS 설정으로 TXT 레코드 등록을 진행합니다. (서버연결롱 A 레코드 및 _dmarc TXT 레코드 입니다.)

 

시작서비스 등록 및 서비스 시작.

 

아울러 지속적인 운영을 위해 suffix 파일을 주기적으로 업데이트 해야 합니다.

 

구글의 DMARC 메뉴얼 입니다.

https://support.google.com/a/answer/2466563?hl=ko

아래는 dmarc wiki 입니다.

https://dmarc.org/wiki/FAQ#When_can_I_expect_to_receive_my_first_aggregate_report.3F

CentOS / ubuntu 계정 잠금 임계값 설정

서버에 접근을 할때 패스워드가 일정 횟수 이상 틀릴 경우 잠깐이라도 해당 계정을 잠금 처리 하는것이 사전 대입 방지(brute force attack) 공격에 대비 할 수 있다.

이방법은 pam.d 에 설정하는것으로 pam.d를 이용하는 모든 접속 서비스 sasl, pop3, smtp,ssh , ftp 에 공통 적용이 된다. (물론 pam.d 설정을 별도로 해서 쓴다면 이야기는 바뀌겠다.)

물론 이러한 사전 공격 대응 방법은 일반적으로 iptables 로직이나 hosts.deny 쪽에서 설정도 가능하지만…

최근 공격 방식은 port scan 이후에 ssh 공격4회 -> pop3 공격4회 -> smtp 공격 4회 -> ftp 공격 4회 의 순서로 이루어 진다.

즉 iptables 로 3 ~ 5회 제한으로 하는경우가 많기 때문에 프로토콜을 바꾸어 가며 로그인을 사전대입 공격을 하고 공격이후 일정시간 interval 이후에 다시 순차 공격을 한다.

때문에 이와 같은 설정을 추가로 한다.

pam_tally2 를 이용하여 CentOS 7 및 ubuntu 14.04 에 설정을 하는 방법이다.

  • CentOS 7

vi /etc/pam.d/system-auth   (2번째 줄은 변경, 13번째 줄은 추가 한다.)

vi /etc/pam.d/password-auth (2번째 줄, 8번째줄을 추가한다.)

  • Ubuntu 14.04 LTS

vi /etc/pam.d/common-auth (16번째줄을 추가한다.)

추가되는 줄의 deny=5 는 몇 회 틀렸을 경우 잠금을 할지 선언하는 부분이다.
unlock_time=600 잠금시간을 설정 한다. (10분=600초)


이후 적용되었는지 다른 세션을 열어 접속시도 및 잘못된 패스워드를 대입하면서 테스트 해볼 수 있다.

로그인 테스트를 하면서 패스워드 임계값 5회 를 초과한경우 아래와 같은 메세지를 볼 수 있다.

잠긴 상태이므로 설정한 10분을 기다린 뒤에 접속을 할수 있으며, 필요시 pam_tally2 명령어로 누적 카운트를 초기화 해줄 수 있다.

mariaDB yum을 이용한 설치 ( CentOS 7 )

https://downloads.mariadb.org/mariadb/repositories

위 주소에서 먼저 맞는 OS 버전 및 설치할 mariaDB 선택한다 ‘ㅅ’a
20161114_picpick_161119

 

그후 나오는 내용을 레포지트리에 추가를한다.

 

그담 yum 으로 설치 고고싱.

 

초기 mysql 데이터폴더는 /var/lib/mysql 에 있다.
그래서 data 폴더를 이동하게 되는 경우에는 저 폴더를 다른 위치 및 이름으로 변경을 한다.
물론 /etc/my.cnf 에서 아래 부분을 찾아 고치는것도 병행해야 한다.
운영하려는 캐릭터셋에 맞게 설정을 추가하는것도 잊지 말자 (latin1 으로 깔리기 때문에….)

 

datadir에 selinux 설정을 한다

 

이후에 데몬 자동시작 등록 및 시작을 한다.

 

mysql 명령어로 mysql 에 로그인을 한뒤에 root 패스워드를 지정하고
보안을 고려하여 user 등이 비어있는 로그인정보 및 test 데이터베이스를 삭제해야 한다.

 

smartctl을 이용한 디스크이상 사전 탐지

smartctl 명령어는 하드디스크 롬에 기록되는 형태이다. 때문에 I/O 에러 발생때문에 write가 잠겨
/var/log/messages 상에 찍히지 않는 I/O에러를 검출하는 목적으로 사용할 수 있다.

CentOS 5/6 은 이미 탑재되어 있는 명령어 이지만 Centos 7의 경우 아래와 같이 명령어 추가를 한다.

 

명령어는 작동시간, 부팅횟수, 헤더, 온도, 배드카운터, CRC 에러등등 하드디스크의 모든 종합 정보를 볼수 있다.
클라우드 – 가상디스크는 지원하지 않는다.
일반디스크인데 정보 표기다 되지 않을경우 아래 명령어서 on  시켜줘야 할 수 있다.

 

1. 아래 명령어는 SMART 속성 정보만 표기 한다.

주요 해서 봐야 하는 부분은 아래와 같다.
HEAD spindle error   //   Spin_Retry_Count  (매우 높음) = 헤드가 재 작동을 시도한 횟수.
BAD sector  //   Offline_Uncorrectable  (높음) = 읽기/쓰기에 문제가 발생한 섹터 = 배드 섹터 발생
아래는 약간은 중요도가 떨어지지만 주요해서 봐야 한다.
UDMA_CRC_Error_Count   (낮음) = HDD인터페이스 전송 CRC 오류 (sata 케이블 오류의심)

위 에러중 HEAD 관련 카운트가 1개라도 나온경우 스핀들모터 혹은 리드헤드 쪽에 문제가 발생한것이다.
이는 즉시 데이터 백업 및 디스크 교체를 진행한다.

 

2. 누적된 에러 로그를 호출한다. ‘ㅅ’a

정상일경우 아무런 메세지도 표시되지 않는다. 메세지가 출력되는 경우 아래 상세 테스트를 진행한다.

 

 

3. 상세한 테스트를 한다. ( short 1~2분 소요 / long = 약 두시간 가량 소요 )

백그라운드 테스트가 진행되며 테스트간 off-line 모드가 되고 테스팅 시간은 약 108분 걸린다고 되어 있다.
smartctl -X 명령어로 long 테스트를 중지할 수 있다.

Status 값에 failure 가 떨어질경우 백업 및 디스크 교체를 한다.