본문 바로가기
728x90
반응형

IT Security/LINUX Basic46

46. Linux 방화벽 제어 - firewall-cmd, rich-rule 등록 Linux firewall-cmd를 사용한 Linux 방화벽 정책 생성 및 제어의 마지막 포스팅이다. 지난 포스팅에서는 각 Zone에 간단한 객체를 추가/삭제함으로써 외부에서의 Linux 접속 허용/차단 여부를 확인해보았다. 지난 포스팅에서도 언급했듯이, firewall-cmd로 방화벽 정책을 간편하게 만들 수 있게 되었지만 조금 더 세부적으로 정책을 설정해야하는 경우 firewall-cmd의 옵션만으로는 디테일한 정책을 생성하기 어렵다. 따라서 firewall-cmd는 아키텍처 내부에 존재하는 iptables 명령어를 고스란히 사용하여 정책을 설정할 수 있도록 rich-rule이라는 옵션을 제공하는데, 이번 포스팅에서는 이 rich_rule의 사용 방법에 대해 정리해보려한다. 1. Rich-Rule 사.. 2024. 3. 27.
45. Linux 방화벽 제어 - firewall-cmd, Zone 내부 정책 생성 지난 포스팅에서는 firewall-cmd가 탄생한 배경과, firewall-cmd 정책 테이블의 구성에 대해 아주 간략하게 알아보았다. 이번 포스팅에서는 Zone 내부에 정책을 직접 설정하고 통신의 진행 여부를 확인해보려한다. 1. Zone 관련 정보 조회 정책을 생성하려면, Linux 방화벽에 어떤 Zone이 존재하고 있는지 파악하는 것이 선행되어야한다. 물론, 필자가 이전 포스팅에서 언급한대로 대부분의 Linux 기반 솔루션은 네트워크 말단에 위치하기 때문에 굳이 Zone에 Interface를 할당하지 않고 public에 필요한 서비스와 포트에 대한 정책을 만들어 사용하는 방법을 많이 사용하지만, 다른 서버와의 연동이 필요하거나, 조금 복잡한 구성을 진행해야하는 경우라면, Zone을 구분하여 정책을 .. 2024. 3. 4.
44. Linux 방화벽 제어 - firewall-cmd 개요 최근 사용하는 대부분의 Linux는 외부 통신을 제어하는 방화벽의 관리를 iptables가 아닌 firewall-cmd라는 명령어로 진행한다. * iptables 및 방화벽에 대한 기본 개념은 필자가 이전에 작성한 포스팅을 참고하자. - Linux - 리눅스 방화벽1, 방화벽 서비스 및 정책 확인 - Linux - 리눅스 방화벽2, 방화벽 정책(chain) 관련 명령어 - Linux - 리눅스 방화벽3, 방화벽 규칙(rule)관련 명령어 위의 포스팅 내용을 보셨던 분들이나, 기존에 iptables 명령어를 사용해보셨던 분들이라면 아시겠지만, iptables는 적용해야하는 옵션이 많고 작성해야하는 명령어 문구가 길기 때문에, 방화벽 규칙을 작성해서 적용하기가 상당히 까다롭다. 이러한 이유로 CentOS6에.. 2024. 3. 3.
43. Linux rpm 파일 만들기2 - spec 파일 macros 및 rpm 관리 지난 포스팅에서 spec 파일 및 테스트용 shell 파일을 사용하여 간단하게 rpm 패키지를 만들고 동작시켜보았다. 그리고 지난 포스팅의 마지막에서, rpmbuild 폴더를 여러 rpm이 공유해야한다는 문제점과, spec 폴더의 경로 관리의 어려움에 대해 간략하게나마 언급을 했었다. 이번 포스팅에서는 지난 포스팅에서 언급한 문제점을 피해 효율적으로 rpm 패키지를 관리할 수 있는 방법을 알아보려한다. 1. rpm마다 별도의 폴더로 관리하기 (rpmbuild 명령어 --define 옵션 사용하기) 지난 포스팅에서 만든 rpm 관련 파일과 폴더를 싸그리 지우고, 새로 rpm 패키지 2개를 신규로 생성해보려 한다. 하나는 일반 shell로 의미없는 문구 몇 줄을 출력하는 rpm, 다른 하나는 python 실.. 2023. 8. 14.
42. Linux rpm 파일 만들기1 - 기본 spec 파일 작성 및 rpm 생성 최근 개발 관련 프로젝트를 진행하다보니, 한 가지 개선을 했으면 하는 점이 하나 생겼다. 지금까지는 필자가 Linux 용으로 개발한 결과물을 단순히 tar 파일로 묶어 배포하는 방식을 사용해왔는데, 이 방식을 사용하면, 필자의 프로그램이 참고하는 config 파일과 log 파일 등을 Linux에서 권장하는 경로에 위치시키려면 설치 과정이 복잡해진다는 단점이 나타난 것이다(보통 Linux에 설치되는 프로그램의 설정파일은 /etc 폴더에, 로그 파일은 /var/log 폴더에 위치하고 있음을 생각해보자) 물론 tar 파일 내에 config나 log파일을 저장하는 폴더를 만들고 필자의 프로그램이 그 폴더들을 참고하게 만드는 것도 나쁘지 않지만, 개인적으로 사용하는 프로그램이면 모를까... 필자가 만든 프로그램을.. 2023. 8. 10.
41. Linux chroot 사용법 거의 반 년만에 Linux 관련 내용에 대해 포스팅한다. 6 개월 전에만 하더라도 "다음은 이 내용에 대해 포스팅해야지" 라고 생각했는데... 다른 포스팅에서도 계속 한 이야기지만 바쁘다보니ㅠ 하여간 요즘 docker랑 kubernetes라는 녀석때문에 Linux 관련 내용을 학습하고 있는 상태인데, 마침 예전부터 다루어보고자 했던 chroot 내용을 접하게 되어 겸사겸사 포스팅을 진행하게 되었다. 1. chroot 명령어 chroot는 change root의 약자다. 직역하면 'root를 변경'하는 것인데, root 계정을 변경하는 것이 아니라 Linux 시스템의 root(/) 폴더, 즉 최상위 폴더의 위치를 바꾸는 명령어다. Linux에서 특정 파일을 찾는다고 가정해보자. 예를 들어 필자가 현재 필자.. 2022. 5. 6.
40. Linux - 나만의 Service를 만들어 구동해보자2 지난 포스팅에서는 Linux 서비스에 필요한 쉘 스크립트(기타 실행파일도 가능하다), 서비스 사용 이유 및 service 파일에 작성하는 옵션에 대해 알아보았다. 이번 포스팅에서는 자체 쉘 스크립트를 만들고, 만든 스크립트를 서비스로 등록하여 동작되도록 하는 전 과정에 대해 작성해보려 한다. 구동할 서비스는 다음과 같다. systemctl status를 치면, 해당 서비스에 대한 실시간 로그를 확인할 수 있는데, 이 로그에 짝수를 0부터 20까지, 홀수를 1부터 19까지 1초에 하나씩 출력하는 서비스 2개를 만들어보려 한다. 두 개의 서비스를 만드는 이유는 앞선 포스팅에서 보았던 옵션들(Requires, Wants 등) 일부를 확인하기 위함이다. 1. 스크립트의 작성 스크립트는 아래와 같이 두 개를 작성.. 2021. 9. 25.
39. Linux - 나만의 Service를 만들어 구동해보자1 필자가 지금까지 대부분의 Linux Service를 공부하며 포스팅 하다보니, "직접 서비스를 만들어 구동하는 것도 필자의 실력으로 이제는 가능하지 않을까?"라는 물음이 생겼다. 다행히 쉬는 날이 나름 길게 생긴 덕에 하루 동안 집중해서 하나씩 테스트를 하다보니, 직접 만든 쉘 스크립트로 서비스를 구동하는 것이 생각만큼 크게 어렵지는 않았다. 이번 포스팅에서는 리눅스의 서비스 데몬, 그러나 사용자가 직접 만든 서비스를 구동하는 방법에 대해 알아보려한다. 포스팅에 앞서, 몇 가지 기초적인 지식이 필요한 내용이 있는데, 그 부분에 대해서 간략하게만 언급하고서 넘어가려 한다. 1. 쉘 스크립트(Shell Script) 이름이 거창해보이지만 어려운 개념은 아니다. 쉘 스크립트는 Linux의 명령어를 사용자가 원.. 2021. 9. 24.
38. Linux - SNMPv1/v2를 사용한 서버 원격 모니터링 업무 진행 중에 새로운 지식을 쌓게되는 경우에만 Linux 관련 글을 쓰게 되는 듯 하다. 조금 더 부지런하고 싶지만, 우선 돈을 벌어야 하니... 이번에 필자가 Linux 관련 포스팅을 진행할 주제는 SNMP다. 1. SNMP란? SNMP는 Small Network Management Protocol의 약자다. 쉽게 말하면 네트워크 상에 존재하는 서버, PC등을 관리하는 프로토콜이라고 보면 된다. 필자가 쉽게 설명했지만 아직까지는 감이 잘 오지 않을 것이다. 필자가 네트워크 운영자라고 해보자. 네트워크 운영에 필요한 방화벽은 물론이거니와, 라우터, 스위치, 그리고 기타 솔루션 제품군까지 운영자가 관리해야하는 제품은 매우 많다. 문제는 이 장비들이 이상없이 잘 동작하고 있는지 주기적으로 점검을 진행해야하.. 2021. 9. 18.
37. Linux - yum, rpm 대신 소스파일로 프로그램 설치하기 필자가 최근 리눅스에서 Python의 최신 버전을 깔기 위해 yum과 rpm 명령어를 열심히 날렸으나, 최신 버전의 설치가 불가능한 상황에 맞닥드리게 되었다. 특이하게도 CentOS7은 yum으로 python3 설치 시 최신 버전을 3.6.x 버전으로 표시하는데, 실제 필자가 필요로하는 버전은 최신 안정화버전인 3.9버전 이상이기 때문에 yum으로 설치가 불가능한 상황이었다. 물론 rpm 파일이야 널리고 널려있지만, 이번만큼은 source 파일로 직접 설치하는 과정을 진행해보려 한다. 사실, Python 뿐만 아니라 SQLite라고 불리는 패키지 또한 최신 버전으로 설치를 진행해야 하는데, SQLite는 rpm 파일이 없어서 source 파일로 직접 설치해야했기도 했고, 필자 역시 source 파일 설치.. 2021. 5. 31.
36. Linux - 메일서버 구축 및 메일 전송2 - Postfix 설정 및 메일 전송 지난 포스팅에 이어, 이번 포스팅에서는 메일 서버의 구축과 메일 전송을 진행해보려한다. 메일 서버와 관련된 이론적인 내용은 이곳을 참고하자. 1. 메일 서버 SMTP 서비스 실행 및 외부와의 통신 확인 메일 서버의 구축에 가장 필요한 프로토콜은 SMTP(Simple Mail Transfer Protocol)다. SMTP는 TCP 25번을 사용하는 프로토콜로 사용자가 작성한 메일을 전달받아, 목적지 도메인의 메일 서버로 전송하거나, 타 메일서버로부터 들어온 메일을 내 메일 서버 내 사용자에게 전달하는 역할을 한다. SMTP를 지원하는 Linux의 서비스는 Sendmail과 Postfix가 있다. Sendmail은 Postfix 이전에 만들어진 서비스인데, 별도로 패키지 설치를 해야하는 것과 더불어, 사용을.. 2021. 5. 2.
35. Linux - 메일서버 구축 및 메일 전송 1, 개요 오랜만에 작성하는 Linux 포스팅이다. 사실 1월 중에 언제라도 시간이 되면 빨리 작성을 시작해야겠다고 마음먹었던 메일서버 구축 포스팅인데, 코로나때문에 밀린 일이 많다보니, 1월 중순까지 도저히 시간이 나지 않았다. 테스트 진행 후 포스팅을 해야하는 Linux 특성도 있었고... 어쨌든, 이번 포스팅에서는 Linux의 메일 서버의 개요에 대해 이야기해보려 한다. 1. Linux 내에서 메일 서버의 필요성 (1) 관리자가 사용자에게 중요하지 않은 내용의 메세지 전달에 사용 Linux는, 관리자가 Linux에 현재 접속하여 사용중인 사용자에게 공지 알림을 줄 수 있는 명령어가 존재한다. 바로 wall 명령어와 write 명령어인데, 시스템을 종료해야 해서 사용자에게 공지를 한다던가, 특정 사용자가 시스템.. 2021. 1. 23.
728x90
반응형