방화벽이란
- 1차적인 보안 수단
- 패킷제어를 함으로서 네트워크로 침투하는 경로의 침투 보완
- 과거 iptables, 7버전 이후 firewalld 사용
- 설정 방법 3가지
- 그래픽 도구 - firewalld config, cockpit
- 명령어 도구 - firewall-cmd
- 설정파일
firewalld-cmd
- 현재 구동 상태에 즉시 적용
- 기본정책 : 거부, 설정을 통해 허용해준다.
- —permanent 영구 설정 옵션
- #firewall-cmd —reload
- 재부팅 시 예전 정책 초기화 → 영구 설정 필요
- firewall-cmd —list-all
- 설정 확인
- -zones
- —permanent
- firewall-cmd —add(remove)-service=ftp
- 서비스 허용 및 제거
- firewall-cmd —add-port = 21/tcp
- firewall-cmd —add-port = 8000-9000 /tcp
- 포트 허용 룰 추가
- 21번(ftp) 포트 허용
- firewall-cmd —add-source = 192.168.56.0/24
- 해당 대역 허용
- firewall-cmd —add-source = 192.168.56.11/32
- 특정 아이피 허용
firewalld zone
- zone이라는 영역 개념이 존재하여 인터페이스 별로 영역을 설정하여 관리를 쉽게 할 수 있다.
- firewall-cmd —get-zones → 사전 정의된 존
- firewall-cmd —get-active-zones →활성화된 존 정의
- firewall-cmd —get-default-zones → 전체 존 정의
- firewall-cmd —list-all-zones → default로 정의된 존
- firewall-cmd —new-zone=webserver —permanent → 웹서버라는 존 생성
- firewall-cmd —delete-zone=webserver —permanent → 웹서버라는 존 삭제
- firewall-cmd —zone=webserver —add-service=http —permanent ,remove가능
- firewall-cmd —set-default-zone=webserver
- firewall-cmd —set-default-zone=public
rich-rule
특정 아이피만 차단
- firewall-cmd -add-rich-rule=’rule family=”ipv4” source address=192.168.56.100 reject’
- add 대신 remove
- reject 거절 메시지
- drop 그냥 버리기
Linux 접근 통제 방식(2가지)
- DAC(Discretionary Access Control, 임의적 접근 통제) 모델
- 접근하려고 하는 사용자가 누구인지 확인하여 접근 제어
- 일반적인 시스템에서 사용
- MAC모델
- Mandatory Access Control, 강제적 접근 통제
- root 사용자에게 막강한 권력이 있어서
- 지속적으로 권한 탈취 문제가 야기, 관리자의 실수로 인해 다양한 장애 등이 발생할 수 있는 위험에 노출되어 있음
- 일반 사용자에게 제한적인 권한 이외에도 쉘 또는 웹 등으로만 접근할 수 있게하는 등, 프로세스로만 접근 가능하다.
SELinux(Security Enhanced Linux)
- SELinux라는 중요한 보안 기능을 제공
- 안전하게 사용하기 위함
- 모든 파일, 프로세스, 디렉토리, 포트에는 특수 보안 레이어가 있음
- 특수 보안 레이블에는 여러 컨텍스트가 존재
- 컨텍스트 종류 : 사용자 역할 유형 민감도
- 활성화되는 기본 정책인 타겟 정책은 유형 컨텍스트를 기준으로 정해진다.
- 이름은 주로 _t로 끝난다.
- ex)
- 웹서버의 유형 컨텍스트는 httpd_t
- /var/www/html에서 주로 발견되는 파일 및 디렉토리의 유형 컨텍스트는 httpd_sys_content_t
- mariaDB 서버의 유형 컨텍스트는 mysqld_t
- /data/mysql에서 주로 발견되는 파일 및 디렉토리의 유형 컨텍스트는 mysqld_db_t
- 웹서버의 유형 컨텍스트는 httpd_t
프로세스 유형 컨텍스트확인
ps axZ, Z가 유형 컨텍스트
특정 컨텍스트 확인
systemctl start httpd
ps -ZC httpd
ls -Z /var/www
- cp를 통해 이동 시 같은 파일을 복사하더라도 위치가 바뀌면 컨텍스트 유형이 바뀐다.
- a옵션 사용하여 복사하면 파일의 유형 컨텍스트가 바뀌지 않는다.
SE Linux 정상 동작확인 및 설정
getenforce
setenforce 0(1) → 활성화 및 비활성화
SELinux 설정 파일
#vim /etc/selinux/config
- setenforce를 통한 런타임 설정 가능
- enforcing → SELinux 정책 강제
- permissive → 정책 위반시 차단이 아니라 로그에 기록
- 파일에서 설정 후 재부팅
- disabled → SELinux 비활성화
SELinux 부울
- 추가적인 기능 설정, 스위치 처럼 on, off
- semanage boolean -l , getsebool -a → 불 설정 확인, 후자는 현재 상태만 확인 가능
- setsebool httpd_enable_homedirs on → 불 설정 켜기, 현재 상태만
- setsebool -P httpd_enable_homedirs on → 영구 설정 변경, semange로 확인해야함
- semanage boolean -m -0 httpd_enable_homedirs → 설정 한번에 변경
semanage(보안 정책 설정 및 확인)
- [-a][-t] t옵션으로 추가
- semanage fcontext -l | grep /var/www
- 디렉토리에 적용되어 있는 유형 컨텍스트 확인(시스템에 등록)
- 유형 컨텍스트 등록 후에 적용
- restorecon -RFv /context
- R : 하위 디렉토리에 적용
- F : 콘텍스트 재설정
- v : 정보 출력
- ex1)
- semanage fcontext -a -t httpd_sys_content_t ‘/context(/.*)?’
- context 폴더 밑에 httpd_sys_content_t 유형을 설정
임시적으로 정책 변경
chcon -t [default_t /content]
- 런타임 설정
vim /etc/httpd/conf/httpd.conf → #listen에서 포트 번호 변경
systemctl restart httpd → 서비스 재시작
semanage port -a(d, m) -t http_port_t -p tcp 82 → 포트 등록 삭제 타입 수정(포트바인딩변경)
firewall-cmd —add -t http_port_t -p tcp 82→ 방화벽 설정
해당 포트로 접속시 접속 가능
'Language > Linux' 카테고리의 다른 글
Linux 로드밸런싱 (0) | 2022.03.10 |
---|---|
Linux DNS 서버 구축 (0) | 2022.03.10 |
Linux 강제 부팅 (0) | 2022.03.10 |
Linux 파일시스템과 스토리지 마운트 언마운트 (0) | 2022.03.10 |
Linux 작업 스케줄링 (0) | 2022.03.10 |