[컴] gif 관련 도구
짤 / 동영상 소스 / gif 검색 / gif 소스 / 이미지 도구 / 움직이는 이미지
gif 관련 tools
gif 관련 도구, 앱, 어플, 사이트 등- Create GIFs from YouTube, Facebook, Vimeo, Twitter and more. : 특정 동영상의 일부를 gif 로 변경
- GIF maker, GIF creator, Images to GIF - PRO - Google Play 앱
- Data Gif Maker : 간단한 데이터 비율등을 보여주는 화면을 만들때 좋은 듯 하다.
- GIPHY Capture : 여러가지 필요한 gif 를 검색할 수 있다.
- GitHub - stupotmcdoodlepip/Print-A-Gif: Turn any gif into a printable flip book : gif 를 print
Tags:
computer
[컴][리눅스] 방화벽 iptables 사용법
iptables / iptable / table / firewall / 방화벽
정리중…
vi 로 /etc/sysconfig/iptables 를 수정해도 된다. 하지만 좋은 방법인지는 모르겠다.
아래처럼 간략하게 볼 수 있다.
policy 설정 , target 은
정리중…
vi 로 /etc/sysconfig/iptables 를 수정해도 된다. 하지만 좋은 방법인지는 모르겠다.
iptables 현재 상태 확인
iptables -S
-S 는 specification 을 뜻한다.iptables -S 를 하면 어떤 식으로 iptables 이 설정됐는지 보인다. $ iptables -S -P INPUT ACCEPT -P FORWARD ACCEPT -P OUTPUT ACCEPT -A INPUT -s 127.0.0.1/32 -p tcp -m tcp --dport 22 -j DROP -A INPUT -s 127.0.0.1/32 -p tcp -m tcp --dport 21 -j DROP -A INPUT -i eth1 -j ACCEPT -A INPUT -i tun0 -j ACCEPT -A INPUT -s 192.168.21.1/32 -j ACCEPT -A INPUT -s 127.0.0.1/32 -p tcp -m tcp --dport 80 -j ACCEPT -A INPUT -s 127.0.0.1/32 -p tcp -m tcp --dport 3306 -j ACCEPT -A INPUT -s 203.133.167.16/24 -j ACCEPT
iptables -L -n --line-numbers
아래처럼 간략하게 볼 수 있다. $ iptables -L -n --line-numbers Chain INPUT (policy ACCEPT) num target prot opt source destination 1 DROP tcp -- 127.0.0.1 0.0.0.0/0 tcp dpt:22 2 DROP tcp -- 127.0.0.1 0.0.0.0/0 tcp dpt:21 3 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 4 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 5 ACCEPT all -- 203.133.167.16/24 0.0.0.0/0 27 DROP tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:22 Chain FORWARD (policy ACCEPT) num target prot opt source destination Chain OUTPUT (policy ACCEPT) num target prot opt source destination
-P 옵션
iptables -P INPUT ACCEPT
INPUT, FORWARD, OUTPUT 등 의 built-in chain 만이 가능하다. 자세한 것은 ref.1 을 보자. -A 옵션
append 이다. 현재 있는 rule 들 뒤에 추가(append) 하는 것이다.-A INPUT 하면 INPUT chain 에 append 하는 것이다. # INPUT chain 에 다음 rule 을 append 해라 - interface eth1 을 ACCEPT 로 jump 해라.
iptables -A INPUT -i eth1 -j ACCEPT
-j 옵션
jum 를 뜻한다. 정해놓은 rule 에 대해 target(ACCEPT, DROP) 을 정해준다. “target 으로 jump 해라.” 정도로 기억하면 된다. iptables -A INPUT -s 192.168.21.1/32 -j ACCEPT
-D 옵션
특정 rule 을 지울 때 사용한다.# INPUT chain 에 있는 녀석을 지워라 - 10 번째 있는 rule
iptables -D INPUT 10
-I 옵션
rule 들이 정해진 순서대로 적용된다. 그래서 먼저 적용돼야 하는 것들은 위쪽에 넣어야 한다.# INPUT 1 위치에 다음 rule을 insert 한다. - protocol 이 tcp 이고 port 가 80 인 녀석을 ACCEPT 로 jump 한다. iptables -I INPUT 1 -p tcp --dport 80 -j ACCEPT
DB 연결관련 iptable 설정
db 연결에 있어서 iptables 를 사용할 때 만약 아래와 같은 경우라면, 그냥 MySQL 의 inbound 만 열어주면 된다. (?)Apache ---> MySQL
- 모든 OUTPUT 은 열고,
- INPUT 에서 DB쪽은 server 의 ipaddress 를 추가
- INPUT 에서 server 쪽은 DB 의 ipaddress 를 추가
참고 예제
아래는 ref. 4 에서 가져온 내용이다. 참고하자.#!/bin/bash # setup basic chains and allow all or we might get locked out while the rules are running... iptables -P INPUT ACCEPT iptables -P FORWARD ACCEPT iptables -P OUTPUT ACCEPT # clear rules iptables -F # allow HTTP inbound and replies iptables -A INPUT -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT iptables -A OUTPUT -p tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT # allow HTTPS inbound and replies iptables -A INPUT -p tcp --dport 443 -m state --state NEW,ESTABLISHED -j ACCEPT iptables -A OUTPUT -p tcp --sport 443 -m state --state ESTABLISHED -j ACCEPT # limit ssh connects to 10 every 10 seconds # change the port 22 if ssh is listening on a different port (which it should be) # in the instance's AWS Security Group, you should limit SSH access to just your IP # however, this will severely impede a password crack attempt should the SG rule be misconfigured iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --set iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 10 --hitcount 10 -j DROP # allow SSH inbound and replies # change the port 22 if ssh is listening on a different port (which it should be) iptables -A INPUT -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT iptables -A OUTPUT -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT # root can initiate HTTP outbound (for yum) iptables -A OUTPUT -p tcp --dport 80 -m owner --uid-owner root -m state --state NEW,ESTABLISHED -j ACCEPT # anyone can receive replies (ok since connections can't be initiated) iptables -A INPUT -p tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT # root can do DNS searches (if your Subnet is 10.0.0.0/24 AWS DNS seems to be on 10.0.0.2) # if your subnet is different, change 10.0.0.2 to your value (eg a 172.31.1.0/24 Subnet would be 172.31.1.2) # see http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/vpc-dns.html # DNS = start subnet range "plus two" iptables -A OUTPUT -p udp --dport 53 -m owner --uid-owner root -d 10.0.0.2/32 -j ACCEPT iptables -A INPUT -p udp --sport 53 -s 10.0.0.2/32 -j ACCEPT # apache user can talk to rds server on 10.0.0.200:3306 iptables -A OUTPUT -p tcp --dport 3306 -m owner --uid-owner apache -d 10.0.0.200 -j ACCEPT iptables -A INPUT -p tcp --sport 3306 -s 10.0.0.200 -j ACCEPT # now drop everything else iptables -P INPUT DROP iptables -P FORWARD DROP iptables -P OUTPUT DROP # save config /sbin/service iptables save
See Aslo
- linux - Using iptables to redirect traffic to a dynamic DNS name instead of an IP address? - Super User : iptables 에서 DNS 설정이 안되는 이유
References
Tags:
computer
[컴] Google cloud platform (GCP) 난잡 정리
google cloud platform
proxy 기반 load balancer
DSR 형태로 동작
그래서 리저널은 그냥 라우팅만 해주는 정도이다.(TCP/UDP 단에서 라우팅) 성능 저하가 없다.
특정한 정책을 넣거나, 자동 모니터 등을 제공하진 않는다.
특정 아이피에서 접속할 때 gcp에 접근할 때 빠르게 해준다.
그래서 구글은 쿠버네티스 와 빅데이터 쪽을 차별화 하려하고 있다.
Google cloud platform (GCP) 난잡 정리
구글의 가격정책
- 서버를 오래 띄워놓으면 할인율이 커진다.
- vcpu 단위로 계약 한다. / vcpu 단위로 commit 을 매입?
- preemptive use 에 대한 할인??
- hour 단위보다 낮은 단위 , 분, 초 에 대한 과금도 가능
billing 정보 분석
- Billing 정보를 BigQuery 로 export 로 받아 놓으면, 쿼리 를 통해서 정보를 자세하게 뽑아낼 수 있다.
BigQuery(빅쿼리) 과금
- 읽어드리는 데이터 의 용량으로 과금이 된다.
- select join 등 할 때 사용하는 데이터 의 양이 크면 큰돈
- 슬롯 정액제 , 특정 슬롯을 구매하고, 그 안에서 계속 사용 가능
과금
- GCP 는 나가는 traffic 에 대한 비용에 대해 과금한다. (서버에서 나가는)
- 대륙간 region 을 이동하는 packet 에 대한 과금도 한다.(리전을 넘어가지 않는한 과금을 하지는 않는다.)
과금종류
- Per-second billing
- sustained use discounts
- committed use discounts
Quota 이슈
- 서비스 릴리즈 전에 quota 관련 test 필요
-
https://bespinglobal.qwiklabs.com/
- 여기에서 구글 클라우드 관리 할 수 있게 이 베스핀 애들이 만들어 놨다고 함
quota 종류
- 확장 불가능한 qutoa
- 요청하면 확장을 할 수 있는 quota
google cloud platform 제품 및 서비스
vm instance
- startup script 를 bucket 에 올려서 instance 를 띄울때마다 원하는 script 을 실행하게 할 수 있다.
GCP 접속 방법
- Cloud platform Console
- Cloud Shell and Cloud SDK (shell 은 GCP 접속하면 기본으로 하나 제공됨,CLI)
- 보안 이슈로 막아야 하는 케이스 들이 있다 고 함...
- Cloud Console Mobile App
- Rest-based API
GCP 계층 구조
- https://cloud.google.com/resource-manager/docs/cloud-platform-resource-hierarchy?hl=ko
- 베스핀 글로벌 사이트 에서 왼쪽 위 리스트에서 확인가능
- 모든 리소스는 프로젝트 에 종속된다.
- organization 아래 organization 은 불가능
- 권한(IAM, 정책)은 상속된다. 상위 계층에 권한을 주면, 하위 구조에도 영향이 미친다
- IAM 은 여러개의 permission 을 갖는 개체 , Role 이라 부르는 듯
- predefined role 들이 존재한다. 이것을 수정해서 자신의 롤을 만들어도 된다.(primitive, predefined, cutom role 이 가능)
서비스 계정 Service Account
- application 이 gcp 에 접근 하기 위한 계정(apache 의 nobody 계정 같은 느낌)
- project 내에서 만들어진다.
- 계층 구조에 있는 상속 이 동작하기 때문에, 프로젝트 위 폴더에서 사용하도록 서비스 계정 을 만들 수 있다???
- 하지만 편리하게 관리하는 것은 프로젝트 별로 관리하는 것이 낫다?
- 이건 그냥 auth key 같은 녀석인듯?
VPC
- VPC 존재 , 아마존이랑 비슷한듯
- VPC 는 하나의 LAN 이라고 보면 된다.
- 여러 region 을 하나의 VPC 을 생성할 수 있다.
- shared VPC 형식으로 네트워크 A 와 네트워크 B 사이에 A와 B 가 공유하는 네트워크 C 를 만들어 쓰기도 한다???
vm instance
리전 Region
- 모든 리전에서 high-cpu 가 제공되진 않는다.?
- 일본 홍콩이 비등 , 밀리세컨드 차이
- 일본 : 도쿄, 오사카
- 홍콩 : 레이턴시 가 제일 작다
- 대만 : 동아시아 쪽 데이터 센터 규모 최고
- 서울 리전이 들어왔다.
HW 하드웨어
- standard, SSD, local SSD 가 있는데,
- local SSD 는 cache 로만 제공한다.
- 동일단가 대비 disk 성능이 좋다
- 용량을 늘리면 성능이 올라간다.
- SSD 는 타사 대비 2배 ?
preemptible instance
- 이녀석은 매우 저렴
- preemptible instance 는 24시간 이후에 자동으로 삭제
- 이녀석은 주위에 instance가 필요하면 가져가 버린다.
- OS 에서 preemption 을 하는 것처럼 instance 가 GCP 에 의해 preemption 이 가능한 듯 하다. 그래서 구글 맘대로 가져가 버리고, 우리가 그것을 계속 차지 하고 있지 못한다.
- 항상 ready 해야 하지 않고, 빠른 응답이 중요하지 않은 경우 쓰면 좋을 듯
migration
- instance 는 짧게는 일주일 길게는 한달에 한번 migration 이 구글에 의해 일어난다.
- gpu instance 를 활용해서 머신러닝 하는게 제일 저렴
- gpu instance 는 live migration 시점에 서버를 내린다.(하드웨어 종속성이 커서 그렇다)
- 다른 instance 는 그저 알람 하나를 주는 정도다.
load balancer
proxy
앞단에 google front engine 에 존재(gfe 가 proxy역할), 단일 ip 를 물고 있다.proxy 기반 load balancer
- global https
- global ssl proxy
- global tcp proxy
regional
도쿄 리전 을 만들고 리전에 위치한 프론트가 그 트래픽을 받아준다. 프록시를 통하지 않는다. 클라이언트 아이피가 직접 도달한다.DSR 형태로 동작
그래서 리저널은 그냥 라우팅만 해주는 정도이다.(TCP/UDP 단에서 라우팅) 성능 저하가 없다.
특정한 정책을 넣거나, 자동 모니터 등을 제공하진 않는다.
- regional
- regional internal : 내부 L4 switch 라고 보면 된다.
DNS
- 클라우드 DNS
- internal dns service 도 제공
CDN
- 대용량 스트리밍 관련 CDN도 제공
- 백엔드로 붙일 수 있는게, global load balancer 에 대해서만 CDN활성화 가능
- 버킷에 올라가 있는 것만 가능??
- 타사대비 가격 경쟁력이 있다고 한다??
interconnect option , vpn
회사 내부 망과 gcp 와의 통신을 위한 여러 interconnect option 을 제공특정 아이피에서 접속할 때 gcp에 접근할 때 빠르게 해준다.
- direct peering: 구글이 직접 라우팅
- carrier peering : 망사업자를 통해 지원 ?
- dedicated interconncet : 구글 데이터 센터에 직접 전용선을 붙이는 것, 데이터 센터가 인접할 수록 유리
- partner interconnect : ISP 나 망사업자 를 통하는 방식
GCP web page 에서 instance 에 있는 ssh 버튼 으로 접속시
자세한 내용은 찾아봐야 할 듯- 구글의 ssh proxy 를 이용해서
- 접속 하면서, 그때 키를 받아서 메타데이터를 업데이트 해서 접속?
클라우드 스토리지 Cloud Storage
- 초당 수만번의 파일을 쓰거나 읽거나, 급격한 요청이 들어오면, 약간의 delay 가 발생할 수 있지만, - 실서버에서 큰 이슈가 된 적은 없다.
- 퍼포먼스에서 문제는 없다.
- 스토리지 레벨의 암호화는 되고 있다. 암호화를 할 때 별도의 키 를 세팅할 수 있다.
- 대량의 데이터를 올릴 때는 그냥 데이터 센터에 보내면 자기내 들이 올리는 서비스 도 제공해 준다.
- 클라우드 스토리지 파일들은 bucket 으로 구성된다.
Storage class
- 멀티 리저널(multi regional), 리저널, Nearline, Coldline
- 리저널은 차이가 없다.
백업용
- Nearline, Coldline 은 저장용으로 적당
- Nearline 은 한달에 한번 쓸때
- Coldline 은 사고날때 쓰는 용도
- 저장용량당 비용이 싸다. 대신 한번에 읽기 쓰기 할 때의 비용이 비싸다.
클라우드 SQL
- MySQL, PostgresSQL 만 제공
Cloud BigTable
- Cloud BigTable 은 NoSQL 에 의해 managed 된다.
- 대량 처리에 특화된다.
- 대량의 데이터 insert , select
- 키 기반으로 빠른 결과 얻을 때
- HBase API
- instance 를 많이 늘릴 수록 빨라진다.
- 클러스터의 노드 수가 많아 질 수록 속도가 올라간다.(반응성이 좋아진단 소린가?)
cloud spanner
- 국내 게임사는 아직 선택 안했다.
- 많이 비싸다
- 자동 복사 가 가능
- horizontally scalable RDBMS
- global consistency 를 보장
- 해외사례는 있지만, 국내 사례는 없다.
BigQuery
- 대량의 데이터에 대한 query 등, 데이터 사이언스 쪽에서 필요
- 다루는 data 양에 따라 과금된다. 결과가 아니라 과정에서 사용되는 data 양
Google Container Registry
- 사설 컨테이너 저장소 를 제공해준다.
cloud source repository
- 사설 git
- 사용용량에 따라 가격
google kubernetes engine
- 쿠버네티스 엔진 을 이용해서 구글에서 만든 컨테이너 만이 아니라, 로컬에 구성된 컨테이너도 같이 관리 할 수 있는 서비스를 제공을 시작했다.
- gke 에서는 칼리코(Calico) 를 사용 하고 있다.
그래서 구글은 쿠버네티스 와 빅데이터 쪽을 차별화 하려하고 있다.
google app engine
- standard app engine
- 자동 scaling
- local file system 못 쓴다.
- request 의 timeout 이 1분 (무조건)
- 3rd party library 설치 제약
- 신속한 auto scaling
- flexible 보다 이게 더 비쌈
- flexible environment
- instance 를 우리가 정하고, 여기에 node 를 띄울 수 있다.
- instance 에 ssh 접속을 허용
- auto scaling 이 빠르게 되지 않는다. (상당히 느리다)
Cloud Functions
- aws lambda 같은 것
- 사용된 computing 정도에 따라 가격
가능한 trigger
- http request
- 특정파일이 생길때 : log 가 발생할때 등
- ...
Deployment Manager
- instance 배포 등, 인프라 매니지먼트 서비스
- .yaml 하나 만들어놓고, 한번에 deploy 하는 것
- terraform 비슷한 서비스
- api 도 제공
Stack Driver
- 모니터링
- 로깅
- 디버그
- 에러 리포팅
- 트레이스
- 프로파일링
- 로그 저장소로 보면 된다.
- 임계치가 넘으면 알람을 받을 수 있다.
- 개인 로그등도 stack driver 로 보내서 모니터링을 할 수 있다.
- 메트릭은 6주, 로그는 400일, 개인이 개인적으로 쌓은 로그는 1개월 보관
- 특정 로그들을 받아서 필터링 해서 바로 원하는 곳으로 보낼 수 없다.
사용
pub /sub 에서 받아서 dataflow 에서 처리하고 big query 에 저장하는 식으로 사용
Tags:
computer
[컴][안드로이드] rootbeer 피하기
rootbeer / rootbeerfresh / root beer
Magisk Hide 가 기존의 32-digit UDS 를 랜덤한 32 character string 으로 변경하는데 그것을 이용해서 detection 을 한다.
자세한 내용은 아래를 참고하자
Rootbeer 피하기
updated
이 방식으로는 어려운 듯 하다. 다만 여기 좋은 글이 있다.
- https://3xpl01tc0d3r.blogspot.com/2018/06/android-root-detection-bypass.html
- apktool 사용해서 smali 로 변환 후, 거기서 string 들을 변환한다. 그리고 그것을 다시 packaging 후 sign 을 해서 재설치 하는 방법이다.
Magisk Hide detection
Magisk Hide 에 대한 감지 방법(detection) 으로 32-digit Unix Domain Socket 을 이용한다.Magisk Hide 가 기존의 32-digit UDS 를 랜덤한 32 character string 으로 변경하는데 그것을 이용해서 detection 을 한다.
자세한 내용은 아래를 참고하자
Magisk Hide detection 피하기
그래서 간단하게 /proc/net/unix 에 접근하지 못하게 막는다. 그외에 다양한 이야기들을 아래 링크에서 확인할 수 있다.su -c chmod 440 /proc/net/unix
Busybox uninstaller
[컴][웹] Spring Framework 문서
스프링 자료 / spring core document / spring core 문서 / api 문서
Spring Framework 문서
- https://spring.io/docs/reference --> Spring Framework
- Spring Framework Reference Documentation, 4.3.25.RELEASE
Tags:
computer
[컴][웹] tomcat 에서 log 를 영어로 나오게 하는 법
region / locale / language 변경 /
톰캣 / 톰켓
그래서 catalina.bat 를 수정해서 log 를 영어로 나오도록 설정했다.
그리고는 아래처럼 language 와 region 부분을 추가해 줬다.
톰캣 / 톰켓
tomcat log 를 영어로 나오게 하는 법
catalina.bat
chocolatey 를 사용해서 tomcat 을 설치했는데, catalina.bat 를 사용해서 실행하니, 한글로그가 깨져서 나왔다. terminal 을 UTF-8 으로 열면 해결 되지만, 그러고 싶지 않았다.그래서 catalina.bat 를 수정해서 log 를 영어로 나오도록 설정했다.
language, region option 추가
catalina.bat 에서 JAVA_OPTS 가 설정되는 부분을 찾았다.- c:\ProgramData\chocolatey\lib\Tomcat\tools\apache-tomcat-9.0.26\bin\catalina.bat
그리고는 아래처럼 language 와 region 부분을 추가해 줬다.
if not "%JSSE_OPTS%" == "" goto gotJsseOpts set "JSSE_OPTS=-Djdk.tls.ephemeralDHKeySize=2048 -Duser.language=en -Duser.region=US" :gotJsseOpts set "JAVA_OPTS=%JAVA_OPTS% %JSSE_OPTS%"
References
피드 구독하기:
덧글 (Atom)
