System & Network/Linux

iptables 설정 전체를 초기화 한 다음 재설정하는 방법iptables 테이블, 체인 초기화sudo iptables -t nat -Fsudo iptables -t mangle -Fsudo iptables -Fsudo iptables -Xsudo iptables -t nat -Xsudo iptables -t mangle -X-F : 활성화된 모든 규칙을 삭제하는 옵션이다.-X : 모든 사용자 정의 체인을 삭제하는 옵션이다.-t : 테이블 지정에 사용하는 옵션이다. (Filter, Nat, Mangle 테이블 중 선택)iptables 인바운드, 아웃바운드 트래픽 오픈sudo iptables -P INPUT ACCEPTsudo iptables -P OUTPUT ACCEPT초기화 상태 확인sudo iptab..
시스템 리소스를 논리적으로 분리하는 namespace에 대해서 정리한다.namespacecgroup은 프로세스가 사용할 수 있는 물리자원을 제한하고, namespace는 사용하면 프로세스가 볼 수 있는 파일을 제한한다. 프로세스를 특정 namespace에 할당하면 해당 namespace가 허용하는 것들만 볼 수 있다. namespace를 이용해 프로세스가 접근할 수 있는 파일을 제한하는 원리와 방법을 정리한다. namespace 종류프로세스는 namespace type 별로 하나의 공간에 소속된다. 별도의 설정이 없을 경우 namespace는 종류 별로 1개씩 생성되어 있지만, namespace를 추가해서 프로세스를 배정할 수 있다.pid : Process ID를 격리한다. 각 네임스페이스는 자체적인 프..
프로세스가 사용할 수 있는 자원(CPU, Memory, Disk 등)을 제한하는 수단으로 사용되는 cgroup에 대해서 정리한다.제어 그룹 - Control Group (cgroup)프로세스들이 사용할 수 있는 자원을 제한하는데 사용하는 기능이다. cgroup(제어그룹)을 통해서 한 프로세스가 자원을 너무 많이 사용해서 다른 프로세스에게 영향을 끼치는 행위를 방지할 수 있다. 제어 그룹은 /sys/fs/cgroup에 있는 파일과 디렉터리를 쓰거나 읽어서 자원의 제한 수치를 설정하거나 현재 상태를 조회할 수 있도록 지원한다. 제어 그룹 구성cgroup의 버전 2부터는 단일 계층 구조로 구성된다. 기존의 cgroup 버전 1에서는 제어 그룹이 디렉터리 트리 구조로 구성되어 다수의 제어 그룹 제어기가 있었다...
프로세스는 자원(CPU, Memory, Disk 등)을 사용하기 위해 시스템 호출(system call)을 사용하게 되고 그에 따른 권한이 요구된다.  리눅스 환경에서 프로세스 권한을 관리하는데 사용될 수 있는 Linux의 capability와 setuid, setgid와 같은 리눅스 기본 기능에 대해서 정리한다.응용 프로그램과 시스템 호출 (System Call) 사용자가 실행하는 프로그램은 User Space에서 실행된다. 프로그램이 파일에 접근하거나 네트워크를 이용해 통신이 필요할 경우 권한을 가지고 있는 커널에게 요청해야 한다. 커널에게 요청할 때 사용되는 Programming Interface를 시스템 호출(System Call 혹은 syscall) 인터페이스라고 한다. 리눅스의 능력 (Linu..
SSH 연결 설정을 저장하여 관리할 수 있게 해주는 config 파일 설정 방법1. ssh config 설정# vim ~/.ssh/configHost bastion HostName BASTION_SERVER_IP # HostName 43.20.21.18 User BASTION_SERVER_ID # User ec2-user IdentityFile PATH_TO_PEM_KEY # IdentityFile ~/.ssh/ec2-pem2. ssh ProxyCommand 이용 내부 네트워크 서버 접속 설정Bastion 서버(중간 호스트)를 통해 내부 네트워크(Private Subnet)의 목적지 호스트까지 연결할 때 사용2.1 ProxyCommand 설정# vim ~/.ssh/conf..
보안 및 컴플라이언스 목적으로 사용자의 명령어를 특정 포맷으로 저장하는 방법사용자 환경 설정 파일 수정# vim /etc/profilefunction history_to_syslog { declare command remoteaddr="`who am i`" pwd="`pwd`" command=$(fc -ln -0) if [ "$command" != "$old_command" ]; then logger -p local3.notice -t bash -i ? "$USER : $remoteaddr" "|| PID=$$ || Command : $command || Directory : $pwd" fi old_command=$command}trap history_to_sy..
Facility는 로그 메시지의 출처를 나타내는 분류 체계이며,Priority Level은 로그 메시지의 중요도(긴급성)을 분류하는 체계다. Facility의 역할로그 메시지가 어떤 종류의 프로그램이나 서비스에서 발생했는지를 식별로그를 카테고리별로 구분하여 효율적으로 관리하고 분석할 수 있도록 도움시스템 로그 관리 도구(syslog, rsyslog)가 로그 메시지를 처리 후 적절한 목적지로 보낼 때 사용 Facility의 종류Facility설명auth인증 관련 로그authpriv민감한 인증 정보croncron 데몬의 스케줄링 로그daemon일반 데몬 프로세스kern커널 메시지lpr프린터 관련 로그mail이메일 관련 로그news뉴스 데몬 관련 로그syslogsyslog 데몬 자체의 로그user일반 사용자 ..
서버로 들어오는 트래픽을 다른 Target에게 라우팅 할 때 설정하는 방법1. iptable-services 설치# CentOS, AmazonLinuxyum install iptables-services# Ubuntuapt install iptables-persistent2. NAT Table 설정# CentOS, AmazonLinux : /etc/sysconfig/iptables# Ubuntu : /etc/iptables/rules.v4*nat-A PREROUTING -i eth0 -p tcp -m tcp --dport 8022 -j DNAT --to-destination 10.0.2.176:22-A POSTROUTING -j MASQUERADECOMMIT-A PREROUTING : 패킷이 들어오는 즉..
Linux history 명령어로 사용자 명령어 실행 내역 + 실행 시간이 보이도록 표시하는 방법1. 설정 파일root 계정 대상 설정 파일vim /root/.bash_profileec2-user 계정 대상 설정 파일vim /home/ec2-user/.bash_profile전체 계정 할당 시 설정 파일vim /etc/profile2. 설정 내용echo "#history timestamp settingexport HISTFILESIZE=5000export HISTSIZE=5000export HISTTIMEFORMAT=\"%y-%m-%d %H:%M:%S \"" >> /etc/profilesource /etc/profileexport HISTFILESIZE=5000history 파일에 기록할 최대 줄 수 설정..
Linux에서 사용되는 시스템 및 서비스 관리자1. 역할 및 기능운영체제 초기화 (운영체제 핵심 구성요소 시작, 관리하는 역할)Kernel 로딩 후 루트 프로세스 실행Hardware 초기화 (네트워크 카드, 그래픽 카드, 사운드 카드 등 장치 드라이버 초기화)File System 마운트 (/etc/fstab 파일 정보 기반 시스템 마운트)System Service 시작 (Network Service, SSH Server..)사용자 환경 준비 (Display Manager 실행)System Status Monitoring (systemctl status로 보이는 서비스 상태나 시스템 자체의 이벤트 관리)System 종료 관리 (시스템과 관련된 열린 파일 종료하고, 실행 중인 프로세스 안전하게 종료)Unit..
EndiYou
'System & Network/Linux' 카테고리의 글 목록