Android Building Block Internals Introduction1

하루에 한가지씩 꾸준히 글을 써보도록 하겠습니다.
고등학교때도, 대학생때도, 꾸준히 뭔가 한다는 것을 다짐하고, 포기하기를 반복했었지만(그동안의 블로그들을 보면…)  이번엔 좀 궤도에 오르기도 했고, 어느정도 의무감도 있고해서 잡소리라도 써보려고 합니다. 그렇다고 완전히 잡소리쓰기엔 시간이 아까우니 계획 했던 부분들을 하나씩 풀어보려 합니다.
제가 가진 지식들을 정리하면서 하나씩 공유해보는 글들을 기록해보겠습니다. 나들은 일찌감치 해오면서 저 만치 앞서 있는 것을 보고 있는것도, 나름의 자존심이 계속 속을 긁고 있네요…

그래서 주제는 현업이기도 한 안드로이드에서 지나온 날들을 잘 엮어 줄 수 있는 성능과 시스템의 관계에 대해서 적어보도록 하겠습니다. 본인의 관심사가 하드웨어+소프트웨어 이기도 하고, 나름 전문성이 있다고 자부하기에, 앞서가는 사람으로서 의무감을 갖고 펼쳐보도록 하겠습니다. 범위는 안드로이드+HW(Chip+Board)+SW(OS,Lib, Frameworks, Network, App)  정도가 될것 같습니다. 넓습니다.

이번글은 그 시작으로 간단한 그림 하나 그려보고 출발합니다. 아래 녹색영역에 주로 초점을 맞추도록 하겠습니다. 설명중에 전체 내용등이 두서 없이 나올수도 있습니다. 아래 그림은 제가 보는 안드로이드와 주변 시스템에 대한 전체적인 View입니다. 나름 코드와 기존의 경험에 기반한 그림이고, 별로 자세하지도 않아서, 틀리다라는 이야기를 들을 것 같진 않지만, 혹시라도 본인이 생각하던 그림과 다르다면 의견 공유해주시면 감사하겠습니다.

 

—– 그림을 올리려 했는데, 워드프레스 에러가 나는군요… –;; 뭐하나 쉽게 되는건 없나보네요. 미루는 것보다 게시하고 수정하도록 하겠습니다.

—– 이틀째 해결을 못보고 있는데, 플러그인 추가로도 안되고, 최후로, 새로 설치밖에 안남은것 같습니다. … 에휴…

—– 원인을 찾았습니다. googleanalytics 관련 wp-config.php에의 직접 수정이 원인이었네요.. 대충 대충 했더니, 결과가 이렇네요… 제대로 적용하는 법을 찾아봐야겠습니다.

3D 프린터 조립

ANET의 A8 3D 프린터가 옥션에서 14만원에 떠서, 질렀습니다.
중국에서 직배송으로 들어오네요. 찍힌 라벨을 보니 옥션이 이베이였다는게 새삼 실감이 납니다.
물건은 왔는데, 포장은 꽤 그럴듯 하지만, 내부 재료를 좀 싼티가 있는 건 여전해보였습니다만, 가격에 비하면야 양반이죠. 다른것보다, 대학생때 스텝모터 사려고 했던걸 생각하면, 14만원에 스텝모터가 4개.. 흐미.. 10년전하고 딴 세상이네요.

준비물로는 더스트블로워, 티슈, 보통책상보다는 약간 넓은면 좋은 책상, 부품 늘어놓을 여분의 책상, 전동드라이버, 자, 수평계, 망치 정도 있으면 좋겠습니다. 간단한 드라이버, 육각렌치 공구도 다 들어있긴한데, 힘이 부치는 경우가 많거든요.

그리고 집에서 조립하실 분들은 재활용 수거일날 시작하시는게 좋습니다. 안에 스티로폴, 보호지(비닐, 종이)이 많아서, 쌓아두면 괴롭습니다.

조립은 유튜브 영상을 참고하면서 하나씩 하면 좋은데, 일단 1~2분정도 먼저 보고, 최종 조립화면까지 확인한후, 부품 하나하나, 나사 제대로 된거 확인해서 해야합니다. 메뉴얼이 안들어 있어서, 나사길이 같은거 따질때 화면하고 영상 설명에 의존하는데, 부품 설명은 잘 안해주거든요.

아래 정도면 참고가 되고, 자막 켜고, 자동 번역하면 한글로도 나오지만…. 그냥 영상보고 판단하세요.

보안강화 IDS,…

영 집안 네트웍이 이상하길래 접속 시도 로그를 봤더니, 중국에서 접속시도가 계속 있습니다. 몇일 됐다고 –; 이런서버에도 관심가지는지…

아무튼 영향을 받고 있으므로, 일단 재부팅하여, 잠시 쉬게 해주고, 급히 뭐라도 깔아봅니다..

—— 하루에 거의 2분꼴로 다른 IP에서 공격이 들어오네요.. –; 대부분 아시아, 중국홍콩, 대만, 그리고 네덜란드 미국, 호주, 각종 나라에서 다 들어오려고 하는군요.. ssh포트 열어뒀더니. 아주 어중이 떠중이 다들어오려합니다. 계정도 제각각으로 다 시도해보는군요. admin, root, vpn, huawei, … –;

급해서 그냥 auth.log보고 시도되는 IP들 그냥 ufw로 막아버렸습니다. –; 하다하다 지치면 자동화툴 굴려야겠네요… 일단 차단 IP목록 공유차원에서 적어봅니다.

차단 명령어는 아래처럼 썼습니다. iptables로 직접 해도되는데, 이게 편하네요.

ufw insert 1 deny from <ip> to any port <port>

[1] 22 DENY IN 210.45.114.62
[ 2] 22 DENY IN 221.194.44.212
[ 3] 22 DENY IN 121.50.169.248
[ 4] 22 DENY IN 124.68.10.20
[ 5] 22 DENY IN 118.175.36.89
[ 6] 22 DENY IN 210.211.126.193
[ 7] 22 DENY IN 185.152.2.23
[ 8] 22 DENY IN 183.152.2.23
[ 9] 22 DENY IN 58.57.65.114
[10] 22 DENY IN 79.165.2.209
[11] 22 DENY IN 193.213.204.133
[12] 22 DENY IN 221.194.47.0/24
[13] 22 DENY IN 46.246.41.78
[14] 22 DENY IN 114.255.78.181
[15] 22 DENY IN 59.45.175.0/24
[16] 22 DENY IN 121.18.238.0/24
[17] 22 DENY IN 185.2.82.187
[18] 22 DENY IN 59.63.188.36
[19] 22 DENY IN 163.172.119.161
[20] 22 DENY IN 116.31.116.9
[21] 22 DENY IN 182.100.67.120

———- 6/3일 쉴새없이 몰아칩니다… IP차단 목록 추가합니다. 하루에 20~30건이 꾸준히 시도되네요.. 여러 IP가 겹치는 경우는 거의 없고, 매번 새로운 IP로 유형이 2~3가지로 번갈아가면서 나옵니다. 공격지는 한군데인것 같은데 말이죠..

[ 1] 22 DENY IN 124.88.67.41
[ 2] 22 DENY IN 114.32.148.24
[ 3] 22 DENY IN 106.57.172.134
[ 4] 22 DENY IN 39.64.109.115
[ 5] 22 DENY IN 113.194.50.160
[ 6] 22 DENY IN 72.203.98.9
[ 7] 22 DENY IN 103.207.39.217
[ 8] 22 DENY IN 89.248.167.131
[ 9] 22 DENY IN 104.197.75.192
[10] 22 DENY IN 182.33.229.11
[11] 22 DENY IN 201.177.146.205
[12] 22 DENY IN 186.56.128.127
[13] 22 DENY IN 118.26.30.5
[14] 22 DENY IN 213.110.204.214
[15] 22 DENY IN 139.162.75.112
[16] 22 DENY IN 181.113.165.250
[17] 22 DENY IN 125.253.116.85
[18] 22 DENY IN 91.197.232.11
[19] 22 DENY IN 193.201.224.215
[20] 22 DENY IN 170.250.130.153
[21] 22 DENY IN 125.76.182.196
[22] 22 DENY IN 179.96.142.111
[23] 22 DENY IN 162.213.3.221
[24] 22 DENY IN 49.248.112.46
[25] 22 DENY IN 181.25.39.10

——– 2018년 8월 11일 서버 복구후에 새로 접속 로그 보고 세팅한 목록과 이전 목록을 비교해봅니다.  1년정도 사이에 공격지 변화가 있는 확인해 볼수 있겠네요. 이젠 그냥 다 막으렵니다. ssh접속 하는 쪽이 web에 관심있어서 들어오는것도 아닐테고.

Anywhere                   DENY        193.201.224.214   ==> 기존 193.201.224.215
Anywhere                   DENY        221.194.44.211      ==> 새로 추가
Anywhere                   DENY        118.212.143.43      ==> 새로 추가
Anywhere                   DENY        122.226.181.164    ==>
Anywhere                   DENY        181.100.67.235
Anywhere                   DENY        58.82.166.4
Anywhere                   DENY        122.226.181.167
Anywhere                   DENY        218.65.30.61
Anywhere                   DENY        221.194.47.239
Anywhere                   DENY        202.45.147.148
Anywhere                   DENY        111.7.177.239
Anywhere                   DENY        112.85.42.146
Anywhere                   DENY        206.189.114.117
Anywhere                   DENY        91.236.178.157
Anywhere                   DENY        185.156.42.150
Anywhere                   DENY        167.99.215.188
Anywhere                   DENY        115.238.245.8
Anywhere                   DENY        182.100.67.4
Anywhere                   DENY        115.238.245.2
Anywhere                   DENY        121.18.238.115
Anywhere                   DENY        121.18.238.123
Anywhere                   DENY        122.226.181.166
Anywhere                   DENY        42.7.26.15

HTTPS 설정하기

예전보다 인터넷 환경도 위험(?)해지기도 하고, 법률문제도 있다고 하여, 인증서 발급 설치를 진행해 보았습니다. 기존의 선구자들께서 남겨두신 족적을 따라서 아래의 키워드로 검색을 하고, 유료로 인증서를 구매하고 발급받고 설치하고, 몇가지 보안설정까지 마친 상태입니다. https://onecoinsoft.co.kr 로 들어오시면 좀더 안전하게 사이트 이용이 가능합니다.

인증서 구매는 GogetSSL를 이용했습니다. 가격적인 메리트로 3년짜리로 샀고, Comodo Positive SSL을 구매했습니다. GGSSL인가도 가격은 비슷하고, 제공하는 서비스도 비슷해 보였는데, 다른 사이트에서는 속도가 느리고 몇가지 이유로 Comodo를 추천하지 않았으나, 저는 그냥 느낌으로 오래되어 좀더 신뢰할 수 있다고 생각하여, 그냥 구매했습니다. … 왜냐고 물으시면, 전 펜탁스 유저입니다. –;

인증서 구매시, 결제후 도메인 인증방법은 이미 HTTP를 운용하고 있어서, HTTP로 했고, EMAIL은 다른 도메인으로 이미 설정을 해둔터라, 현재(onecoinsoft.co.kr)로 다시 하기도 힘들어서, HTTP로 했습니다. 인증진행시 시간의 문제인지는 몰라도 한번에 잘 안되는것 같긴한데, 인증용 파일 받아서 web root에 깔아두면 한번정도 Revalidation하거나 사이트를 refresh하면 인증되어 있습니다.

이후 인증서 발급을 위해서, CSR Online Generator를 이용해서 CSR, KEY, CA-bundle등을 차례로 발급 받으면 되었습니다. 생성 방법과 설치 방법은 GogetSSL의 가이드 페이지를 참고 했으나, 국내 몇몇 블로거분들이 요약 설명해두신게 있으므로 한글로 번역은 하지 않겠습니다. 아파치를 운용하고 있는데, IIS만 아니면 전부 OTHER로 되는 것 같고, IIS의 경우에는 해당 서버에서 발급받아야 하는 제약이 있는 듯 했습니다. 아파치에 SSL설정과 HTTPS설정도 여러 다른 참고 글들이 인터넷에 있기 때문에 굳이 따로 설명하지 않겠습니다.

이후 남은 문제가 HTTP를 HTTPS로 Redirection하는 것과, 기타 보안 설정을 높이는 일이었습니다. 앞쪽은 아직 설정이 안되었고, 뒤쪽은 아래의 사이트를 참고하면, 참 편합니다. SSL관련된 상당한 안내들이 있습니다. 대개는 보안수준을 높이기 위한 활동, 설명등이 친절하게 게시되어 있습니다.
https://blog.qualys.com
가장 유용한것은 자동 평가 사이트입니다.
https://www.ssllabs.com/ssltest/analyze.html

위에 자신의 도메인을 넣으면 여러가지 테스트를 거쳐서 점수를 매겨주는데, A받아야 됩니다 –;;; 우분투 14.04+아파치2 초기설정으로는 C받았습니다. 주로 해주어야 하는게 SSLv3 끄기, 보안 이슈로 권고하는 듯 합니다. 그리고 RC4 Cipher끄기 두가지가 컸습니다. 둘다 Apache2의 mod_ssl의 설정파일인 ssl.conf에서

SSLProtocol all -SSLv3   # -SSLv2의 경우, 문제가 더 심각해서 최근에 모두 빠진것으로 알고 있어서, 굳이 옵션으로 넣어주지 않아도 됩니다.

Cipher옵션은 아래처럼 SSL LAB에서 권고하는 대로 넣어줬습니다. 뭔가 많이 빼는것 같은데, 정상 동작은 합니다. –;. 생각보다 약한 Cipher가 많구나라는 생각도 들고, 괜찮은것 같은 것도 들어가 있어서 나중에 각각을 따로 공부해보고, 분석글을 올려볼까도 생각합니다. 아니면 남들의 링크를 걸어두던가 –;

SSLCipherSuite HIGH:!aNULL:!eNULL:!kECDH:!aDH:!RC4:!3DES:!CAMELLIA:!MD5:!PSK:!SRP:!KRB5:@STRENGTH

위 두가지 설정만 바꾸면 A-점수를 주는데 Forward Secrecy를 완료해야 A가 나오고 HSTS를 설정완료해야 A+이 나올것 같습니다.

Forward Secrecy관련해서도 Cipher의 우선순위 조정을 하면 된다고 합니다. 관련하여 SSLLAB의 글을 읽고, 한글 사이트를 검색해보니 아래의 사이트가 유용합니다. 감사합니다.

http://firstboos.tistory.com/entry/SSL-cipher-suite-order-%EC%A1%B0%EC%A0%95

친절하게 아파치 설정도 설명해주셔서 그냥 넙죽 받아먹습니다.

위의 기존 SSLCipherSuite설정 앞에 아래를 추가해봅니다. 왠지 더 달면 사족으로 또 점수 낮아질 것 같아서 아래만 써봅니다.

ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256

출처: http://firstboos.tistory.com/entry/SSL-cipher-suite-order-조정 [散策 의 정리공간]

그리고 SSLHonorCipherOrder 도 on으로 바꿔줍니다. 보다보니, SSLStrictSNIVHostCheck On 도 유용한 것 같아서 주석 해제해 줍니다. 배우는 것이 목적이므로 하나 켜고, Validator굴리고, 반복하여 점수 높아질때까지 해봅니다. Revalidation은 SSL LAB의 평가 페이지에서 “clear cache”를 누르면 다시 시작합니다.

일단 ECDHE-RSA-AES128-GCM-SHA256 요거 하나만 맨앞에 추가해도 A입니다. 턱걸이 성공입니다. StrictSNIVHostCheck도 켜봅니다. 여전히 A입니다. 찾아보니 아래 사이트에서 아파치에 SSL사이트 Configuration에 ServerName이 제대고 고지 안되어 그렇다고 합니다. 설마, 했는데. 진짜입니다. HTTP만 해주고 HTTPS쪽은 안해줬네요.

Qualys Labs SSL Test – Incorrect SNI alerts

여기까지 하고, 레포트를 보면 아직도 빨간생에 주황색이 보이지만 점수는 그래도 A이니 일단 하루를 또 넘겨 봅니다.


하루가 지나서, 다시 HTTPS Redirection설정을 마치고, 드디어 A+을 받았습니다. 역시 검색하면 다 나오네요.

SSL쪽 VirtualHost 설정에 아래 한줄 추가로 점수가 올라갑니다.

Header always set Strict-Transport-Security “max-age=63072000; includeSubdomains;”

아울러 HTTP->HTTPS Redirection도 처리해봅니다. mod_rewrite를 썼었는데 잘 안되서, 그냥 Reidrect를 씁니다.

HTTP포트로 되어 있는 VirtualHost에

Redirect permanent / https://onecoinsoft.co.kr/

로 끝냅니다.

새로운 서버 운용 구상

기존의 Odroid-X는 WordPress만 남기고, Odroid-XU4의 백업 용도로 운용하기로 결정. Odroid-XU4에서는 기타 웹페이지를 운용하고, WordPress의 백업으로 운용하기로 함. 이에 양쪽에 백업 스크립트를 작성할 필요가 있겠음.

X->XU4로는 워드프레스웹 DB백업이 필요하겠고.

XU4->X로는 일반 웹페이지의 백업이 필요하겠음. FTP의 경우에는 기존에 쓰던 Xtreamer를 따로 운용할까 하고 있음. NAS기능 자체를 살리면 편하겠으나, 아직은 도메인이 불안정하여, 연결하기가 까다로울 듯 함.

20세기에 사용하던 웹페이지의 정보도 XU4로 옮겨올까 생각중이고, MUD서버도 돌려볼 생각임.

현재 잠들어 있는 U2 네대는 모두 MATE 16.04로 깔아볼예정이고. Compute Cluster로 일단은 세팅해보겠으나. 아마도. GIT Repo 서버를 하게 될 것 같음. 저장 장치로 SD 128GB 4를 2+2형태로 메뉴얼 백업하는 형태가 될것 같음.

odroid XU4에 대한 세팅 시작

시작은 일단 Ubuntu MATE 16.04 버전으로 아래의 링크에서 받은 것이고, MicroSD로 만들어서 부팅시켰음. 부팅잘되고, 우분투가 늘 그렇듯이, 언어 설정 만져주고, IBUS의 Space입력 문제 부분  좀 만져주면 일단 쓸만해짐.

더불어서, 팬이 Auto  로 도는데 오히려 걸리적 거리므로, 최 소회전량을 높히고, 최대 낮추도록 함. 아래에 적절한 스크립트도 있음. 다만 사전에 python설치는 필수. Ubuntu니 까 기본이긴 할것 임.

http://forum.odroid.com/viewtopic.php?f=95&t=21260&p=141377&hilit=fan#p141377

-m 0

로 manual로 변경뒤에

-s 25나 40정도면 들어줄만 한소리임. 그리고 반드시 바닥 에딱 붙여야 소리가 덜하고 팬에 무리가 가지 않으며, 위 스크립트는 root권한으로 실행할 것.

도깨비 엔딩추측 뒷북

도깨비 한창 방영시에 재미삼아 엔딩 예측글을 써봤던건데, 거의 다 틀리고 디테일은 말할것도 없고. 실제 엔딩보고 괜히 이상한 글 써서 욕 먹지나 않을까 해서 계속 비공개로 뒀는데, 재미있으라고 쓴거니, 재미로 공개해봅니다. 근데 다시 읽어보니 재미있지도 않네요. 실제 엔딩과 비교해보니, 제가 너무 비관적으로 생각을 하고 있었던게 아닌가 싶네요. 극작가님들 존경합니다.

——————–

도깨비 엔딩 D-1

저승사자와 애인이 먼저 죽는다. 저승사자는 그전부터 복선을 깔고 들어간다. 애인이 죽을 때가 되어 사고로 죽게되나, 저승사자가 일처리를 거부하고, 벌을 받게 된다. 다른 저승사자가 나와서 둘을 함께 처리한다. 그리고 도깨비에게 너도 행복해졌으면 좋겠다라고 이야기를 전하고 아웃. 이부분은 완전히 빗나갔고

도깨비는 저승사자와의 추억 등을 회상하면서, 사람과의 일과 겹쳐서 생각한다. 자기 자신의 삶 죽음을 다시 돌아보고, 여주인공에게도 사고가 생기게 된다. 도깨비는 그 상황에 들어가 다시한번 여주인공을 살려보려고 하지만, 이내 마음을 고쳐먹고 새로온 저승사자와 이야기를 주고 받는 듯 하더니, 여주인공과 다시 대화를 하게 된다. 숨이 간당간당하다가, 여주인공이 그냥 검을 살짝 스치기만 했는데, 빛이 나면서 검이 사라지고 도깨비도 승천한다. 여주인공과의 저세상 해피엔딩..

쿠키 영상으로 네명이 발랄하게 공원같은데 놀러가거나 그런거,

에필로그로 전생후의 행복한 삶이 그려진다.

끝.

 

사이트 용도 본격 정리 완성

예전처럼 바닥부터 홈페이지를 만들 필요도 없어진 첨단 세상에서, 다시 한번 바닥부터 개발자의 레벨을 올려보려 합니다. 어릴적 컴퓨터를 가지고 놀려서 생겼던 근원적인 질문. 나는 왜 컴퓨터를 만지막 거리며, 인생의 대부분을 사람보다 컴퓨터와 지내나? 에 대한 답을 얻기 위해서, 그 처음의 기반이 되던 돌맹이 하나부터 기억하며 쌓아올려보려 합니다. 다른 누군가에게도 도움이 되길 바랍니다.