시스템 (35) 썸네일형 리스트형 [Haproxy] Proxy Protocol을 이용한 Full Transparent Proxy (TPROXY) 구축 개요 Haproxy TPROXY + Cloudflare Spectrum Proxy protocol v1 을 이용한 Full Transparent Proxy 를 구축 Client -> Cloudflare spectrum -> Haproxy(TPROXY) -> Server proxy protocol haproxy에서 개발한 것으로 haproxy 뿐아니라 nginx, apache등에서도 지원 web proxy에서 사용하는 "X-forwarded-for" http header와 같이 tcp header에 client ip, port 정보를 3way-handshaking 후 첫번째 psh ack flag packet의 payload data에 넣어서 통신 Haproxy는 proxy protocol header를 .. [OpenVPN] AD(Active Directory) 연동 Plugin 설치 yum install openvpn-auth-ldap Server Config > vim /etc/openvpn/server.conf ... ## 기본적으로 openvpn인증을 pam 인증 하기 위한 모듈 위치 지정 #plugin /usr/lib64/openvpn/plugins/openvpn-plugin-auth-pam.so login # ldap plugin 설정 plugin /usr/lib64/openvpn/plugin/lib/openvpn-auth-ldap.so /etc/openvpn/ad.conf client-cert-not-required username-as-common-name auth-nocache AD 연동을 위한 ldap 설정 URL ldap://:389 : ldap서.. [OpenVPN] PAM인증을 통한 Client ID/PASSWORD 방식 접속 Server의 system 계정을 사용하며 단, root 로는 로그인이 안됨. Server Config server.conf에 pam plugin 추가 openvpn-plugin-auth-pam.so 은 openvpn 설치시 포함되어 있음. > vim /etc/openvpn/server.conf ... plugin /usr/lib64/openvpn/plugins/openvpn-plugin-auth-pam.so login # 인증서 방식 사용안함 client-cert-not-required username-as-common-name auth-nocache ... Client Ovpn Profile ca.crt, ta.key 를 제외한 Client Key 삭제 client remote proto tcp de.. [OpenVPN] Client Key 파기 + Key 관리 Client Key 파기 > cd /etc/openvpn/easy-rsa > ./easyrsa revoke client1 Note: using Easy-RSA configuration from: /etc/openvpn/easy-rsa/vars Using SSL: openssl OpenSSL 1.0.2k-fips 26 Jan 2017 Please confirm you wish to revoke the certificate with the following subject: subject= commonName = client1 Type the word 'yes' to continue, or any other input to abort. Continue with revocation: yes Using confi.. [OpenVPN] Server 구축 및 Client.ovpn 생성(인증서 기반) (2) Client.ovpn 설정 Openvpn client connect를 이용하여 접속시 필요한 profile 작성 client key는 server.conf 에서와 같이 path 참조 형태가 아닌 설정 파일에 포함하는 식으로 작성하여 1개의 파일로 만들어 배포 client remote proto tcp dev tun port # ca.crt 복사 붙여 넣기 -----BEGIN CERTIFICATE----- MIIDITCCAgmgAwIBAgIJAMPaoNTeUspRMA0GCSqGSIb3DQEBCwUAMBAxDjAMBgNV .... -----END CERTIFICATE----- # client의 crt 파일 복사 붙여 넣기 -----BEGIN CERTIFICATE----- MIIDOzCCAiOgAwIBAgIQ.. [OpenVPN] Server 구축 및 Client.ovpn 생성(인증서 기반) (1) 설치 CentOS7 x86_64 설치는 패키지 관리자로 설치 yum install epel-release yum install openvpn easy-rsa Server Config 인증서 기반 접속 서버 설정 vim /etc/openvpn/server.conf ## Start of server.conf## ## openvpn 바인드 포트 port 21194 ## Protocol 종류(Tcp/Udp 지원) proto tcp ## 터널링시 os상 생성 될 interface 이름 dev tun ## TLS 설정 tls-server tls-auth /etc/openvpn/easy-rsa/pki/ta.key key-direction 0 auth SHA512 cipher AES-256-CBC ## 터널링에 사용될.. [REDIS] Sentinel + Haproxy + Keepalived를 이용한 Redis HA LoadBalance 구축 (2) 구축 정보Spec서버 3대 CentOS7 x86_64 TEST1 : 10.10.10.240, Redis SlaveTEST2 : 10.10.10.241, Redis MasterTEST3 : 10.10.10.242, Redis SlaveVIP : 10.10.10.243Redis Write Port 5000Redis Read Port 5001 버전Keepalived : keepalived-1.3.5-19.el7.x86_64Haproxy : haproxy-1.5.18-9.el7_9.1.x86_64Redis : 4.0.9 설치Redis설치는 여기 참조.Keepalived, Haproxy는 yum 패킷지 관리자로 설치yum install keepalived haproxy 설정KeepalivedTEST1, TEST2.. [REDIS] Sentinel + Haproxy + Keepalived를 이용한 Redis HA LoadBalance 구축 (1) 기 구축 Redis 시스템 구조 RDB(no save) + Replication 총 3대 구성 Slave 2(REDIS-2,3)대가 각각 Master(REDIS-1)에 Repl 동기화를 하는 구조 Master → RW, Slave(REDIS-2) → RO 로 클라이언트에서 RIP로 직접 접근 문제점 Master Down 시 Role change 되지 않음. → 쓰기 실패하고 수동 Role Change 지연 발생 Redis의 Role이 변경 된 경우 클라이언트에서 RW, RO Redis의 IP, Port의 Sync 필요. RDB만 사용하고 SAVE 하지 않아 Data 유실 위험 Redis + Sentinel + Haproxy + Keepalived 를 이용한 변경 구성 Keepalived VRRP를 이용한.. [REDIS] 메모리 단편화(memory fragmentation) 해소 이슈 파악 redis 의 mem_fragmentation_ratio 값이 1.5로 설정 되어 있었고 이 수치를 넘어 서게 될 경우 단편화를 의심해 봐야 한다고 판단함. mem_fragmentation_ratio 값이 점점 상승하여 1.5를 넘어섬 redis info memory > info ... # Memory used_memory:21303688 used_memory_human:20.32M used_memory_rss:32083968 used_memory_peak:25667096 used_memory_peak_human:24.48M used_memory_lua:36864 mem_fragmentation_ratio:1.51 mem_allocator:jemalloc-3.6.0 ... used_memory.. [REDIS] AOF & RDB 결론 AOF(Append Only File) 와 RDB(Snapshot) 를 어떤 식으로 운영 해야 할까? - 데이터가 좀더 중요한 환경이라면 AOF와 RDB를 동시에 운영하고 AOF를 기본으로 RDB를 서브로 운영한다. - AOF의 appendfsync 를 everysec으로 하고 rewrite 기능을 사용하여 데이터 유실을 최소화 하고 RDB를 옵션으로 운영하여 복구 시간에 이점을 가져간다. AOF(Append Only File) AOF는 명령이 실행 될때 마다 기록. save 옵션에 따라 운영되는 RDB에 비해 데이터 손실이 거의 없음. 입력/수정/삭제 명령이 실행될때 마다 기록되며 조회 명령은 기록되지 않음. AOF 파일이 무한히 커지는 것을 방지 하고자 rewrite을 사용함. rewrite는 .. 이전 1 2 3 4 다음