Engineering›Linux
8
EngineeringLinux
VPN 과 Split horizon DNS
OpenConnect SSL VPN을 구축하고 Cisco AnyConnect 클라이언트로 VPN을 운영하고 있다. 외부에서 내부망에 접속하기 위한 용도인데, VPN을 연결하면 내부 IP로는 모든 접근이 잘 되고 NAT를 통한 인터넷도 가능한데, 외부 접속용으로 만들어놓은 도메인들이 전부 먹통이 되는 현상이 있었다. 도메인만 안 되고 IP는 되는, 꽤 성가신 문제였다. VPN 연결 후 상태는 이랬다. 내부 IP 직접 접근: 정상 NAT를 통한 인터넷: 정상 외부 공개용 도메인 접근: 실패 이 조합이면 원인은 보통 둘 중 하나다. DN
EngineeringLinux
Issue with httpd, php-fpm process failing to write files
Apache랑 PHP-FPM 사이에서 /home이 read-only로 보이던 문제를 한 번 정리해봤다. 결론부터 말하면, 커널이나 LVM, ext4가 문제가 아니라 systemd httpd 서비스의 Protect 옵션들이 /home을 읽기 전용으로 바꿔놓고 있었다. 워드프레스 마이그레이션 후 플러그인 업데이트를 누르니 FTP 자격 증명을 물어본다. 권한 문제 같아서 퍼미션을 열어도 해결이 안 돼서, 직접 PHP로 쓰기 테스트를 했다. 웹에서 호출하면 이렇게 나온다. PHP Warning: file_put_contents(/home/
EngineeringLinux
HA 연결지점의 상태 가져오기 - HAProxy Data Plane API
HAProxy를 HA 기능 또는 리버스 프록시 용도의 gateway로 사용하고 있다면 하위의 master와 slave 노드들의 모든 상태를 REST API로 추출할 수 있다. 이것은 어플리케이션의 health check api 뿐만 아니라 TCP, SSH, HTTP 등 다양한 프로토콜에도 대응하기 때문에 특정 프로토콜에 의존적이지 않다. 또한 HAProxy에 하위 프로세스만 띄우는 형식이라 설정이 번잡하지 않고, 모든 노드를 알고 있는 HAProxy를 사용하면 health check 어플리케이션을 구축할 필요가 없으므로 비용도 절감
EngineeringLinux
Ansible 기본 문법
Loops — Ansible Documentation Using Variables — Ansible Documentation 기본적으로 yml 문법 호출시 ansible.builtin.copy module – Copy files to remote locations — Ansible Documentation ansible.builtin.command module – Execute commands on targets — Ansible Documentation
EngineeringLinux
암호화 된 사설 SSL 인증서 만들기
그냥 RSA 개인키를 만든다. 그 RSA 개인키를 encryption 한다. 서티 사이닝을 한다 encrypted 된 RSA 개인키로 공개키를 만든다. pem 키 RSA 개인키 생성 RSA 개인키 암호화 아래 두가지 중 택 1 3DES 방식 AES의 경우. (마찬가지) 서티 사이닝 이때 셀프 정보 들어감 암호화된 개인키로 공개키 만들기 이때 또 비밀번호 물어봄 pem 키 생성 까보면 encrypted 랑 아닌거랑 시그니처 차이가 있음 최종 아래와 같은 키 목록 사용 시 복사하는 키 pem 키 RSA 키 (암호화 안된 개인키)
EngineeringLinux
OpenSSL을 컴파일을 통해 버전 업그레이드 하기
패키지 관리자를 통한 바이너리 업데이트가 아니면서 현행 중 가장 stable 버전으로 업데이트 한다. 기존 사용중인 라이브러리를 건드리지 않는다. 시스템에 등록된 OpenSSL을 현행 stable 대체한다. Rocky Linux 또는 RHEL 기반 리눅스 인터넷 연결 root 환경 시스템에 설치된 OpenSSL 버전이 낮으면 높은 버전의 OpenSSL이 필요한 타켓 어플리케이션도 컴파일 해야한다. 그리고 이 경우 컴파일 옵션에서 반드시 libssl의 경로를 별도 지정해야 하는 경우가 있다. 이 경우에는 아래에서 진행되는 심볼릭 링크
EngineeringLinux
metadata를 기반으로 한 LVM volume 복구
아직 복구중이긴 하지만 내역으로 한번 써본다. 만약 수행한다면 dd등을 통해 데이터를 백업 후 한번 읽어보고 본인의 상황에 얼마나 도움이 될지 읽어보고 진행하길 바란다. LVM에 SSD캐시를 붙여서 쓰고있었다. writethrough 모드로 쓴다고 안심하고 있었으나 SSD가 돌연사 함으로 인해 LVM 볼륨에도 접근할 수 없는 상태가 됐다. (IO error 상태) 이 진단을 내리기 전에는 단순히 파일시스템이 깨진것으로 판단하고 언마운트 후 fsck를 열심히 돌렸으나 파일시스템이 돌아오지 않았고, 당연히 마운트도 되지 않았다. 결론적
EngineeringLinux
나만의 작은 스토리지를 위한 여정
자작 스토리지를 만들어 2016년부터 지금까지 사고 없이 잘 사용하고 있다. 2010년 초반에 집집마다 NAS를 들여야 한다는 광풍이 한차례 지나가고 뒤늦게 스토리지를 장만한 것이다. 땡놀로땡이나 땡냅 같은 벤더들이 개인 및 소규모 업장을 위한 NAS 박스를 많이 만들고 있다. 그러나 RAID나 데이터 저장의 이해 부족으로 적지 않은 고통을 유저들이 떠안고 있다고 생각한다. 용량을 위해 RAID0 (스프라이팅) 볼륨을 서슴없이 만든다던가, 아무생각없이 캐시를 걸었다가 박살이 나는 사례를 여럿 봤기 때문이다. 왜 벤더 박스를 쓰지 않