Estamos traduciendo nuestros guías y 튜토리얼 al Español. . Estamos Trabajando con traductores profesionales para verificar las traducciones de nuestro sitio 웹. .
$ Credit 로이 안내서를 시도하기 위해 Linode 계정을 작성하십시오 .
이 크레딧은 첫 날에 사용되는 유효한 서비스에 적용됩니다.
. NFTABLE를 사용하면 성능 및 유용성이 향상되었지만 구문 및 사용에 대한 중대한 변화가 있습니다. 이 안내서를 사용하여 nftables가 무엇인지, 그리고 iptables와 어떻게 다른지에 대해 배우기 시작하십시오. .
?
. 레거시 네트 필터 인프라를 사용한 프레임 워크는 주요 Linux 배포판에서 단계적으로 폐지되고 있습니다. 이러한 프레임 워크는 기본 패킷 분류 프레임 워크로 NFTABLE를 채택하기 시작했습니다.
iptables의 편재에도 불구하고, 그 건축은 몇 가지 근본적인 한계와 비 효율성을 가지고 있으며, 이는 기본 재 설계로 만 해결할 수 있습니다. 그 재 설계는 nftables가 달성하기 위해 설정 한 것입니다.
. iptables
. iptables와 마찬가지로 Nftables는 여전히 테이블, 체인 및 규칙 계층 (체인이 포함 된 테이블 및 규칙이 포함 된 체인을 사용합니다. nftables는 명령 줄 구문을 변경하지만 Nftables 커널을 통해 iptables 명령을 실행할 수있는 호환성 계층을 유지합니다.
Nftables는 또한 iptables의 사용이 중대한 변화를 소개합니다. 위에서 언급했듯이 NFTABLE의 명령 줄 구문은 다릅니다. .
- iptables와 달리 Nftables는 사전 정의 된 테이블이나 체인이 없으므로 성능 향상을 향합니다.
- nftables에서 규칙에 따라 단일 조치에 대한 iptables의 제한과 달리 규칙은 여러 조치를 취할 수 있습니다.
- Nftables는 IPv4와 IPv6에 적용되는 테이블을 쉽게 만들 수있는 INET 주소 제품군과 함께 제공됩니다.
- Nftables의 규칙 세트는 동적 링크 된 목록으로 표시되며, 이는 iptables의 모 놀리 식 블로브 규칙 세트에 비해 규칙 세트의 유지 관리를 향상시킵니다.
또한 NFTABLE의 일반적인 세트 인프라는 규칙 세트를 구조화하기위한 새로운 옵션을 열어 다차원 “트리”구조를 허용합니다. .
nftables를 설치하는 방법
다음 배포 릴리스 중 하나 이상을 사용하는 경우 NFTABLE를 설치할 필요가 없습니다
- 데비안 10 (버스터)
- 우분투 20.10 (그루비 고릴라)
- Centos 8
- 페도라 32
그렇지 않으면 다음 단계를 사용하여 NFTABLE를 수동으로 설치할 수 있습니다. 이 단계는 Debian 9, Ubuntu 18에서 작동합니다..
시작하기 전에
- . Linode로 시작하고 인스턴스 가이드를 작성하는 것을 확인하십시오.
- 시스템 업데이트를 위해 컴퓨팅 인스턴스 안내서 설정 및 보호 시스템을 업데이트하십시오. 또한 시간대를 설정하고 호스트 이름을 구성하고 제한된 사용자 계정을 만들고 SSH 액세스를 Harden을 원할 수도 있습니다.
이 안내서는 뿌리가 아닌 사용자를 위해 작성되었습니다. 높은 권한이 필요한 명령은 Sudo와 접두사됩니다 . Sudo 명령에 익숙하지 않은 경우 Linux 사용자 및 그룹 가이드를 참조하십시오.
설치 단계
- nftables를 설치하십시오.
- Debian 및 Ubuntu 배포판에서는 다음을 사용합니다
sudo yum nftables를 설치하십시오
sudo systemctl anable nftables sudo systemctl start nftables
sudo apt iptables-nftables-compat sudo save save> iptables를 설치하십시오.덤프 sudo iptables-Restore-translate -f iptables.덤프> 규칙 세트.nft sudo nft -f Ruleset.nft
nftables에서 테이블 목록을 가져 와서 가져 오기를 확인할 수 있습니다.
Sudo nft 목록 테이블
nftables를 사용하는 방법
. 이 가이드의 끝에서 작업 규칙 세트를 설정하고 실제로 볼 수있는 방법에 대한 데모를 찾을 수 있습니다.
테이블
테이블은 NFTABLE 계층의 최고 수준입니다. 주어진 테이블은 단일 주소 제품군에 해당하며 해당 주소 패킷을 필터링하는 체인이 포함되어 있습니다.
- 테이블을 만들려면 예제 명령을 사용하십시오. 아래 및 후속 예제에서 테이블의 설명 이름으로 교체하십시오.
sudo nft add table inet example_table
Sudo nft 목록 테이블
sudo nft 플러시 테이블 inet example_table
쇠사슬
체인
그림 1 : NFTABLE TCP/IP 모델
nftables로 시작하십시오
Estamos traduciendo nuestros guías y 튜토리얼 al Español. es posible que usted esté viendo una traducción generatada automátiacamente. Estamos Trabajando con traductores profesionales para verificar las traducciones de nuestro sitio 웹. Este proyecto es un trabajo en curso.
$ Credit 로이 안내서를 시도하기 위해 Linode 계정을 작성하십시오 .
.
nftables NetFilter를 기반으로 한 성공적인 iptables 및 관련 프레임 워크를 대체합니다. NFTABLE를 사용하면 성능 및 유용성이 향상되었지만 구문 및 사용에 대한 중대한 변화가 있습니다. 이 안내서를 사용하여 nftables가 무엇인지, 그리고 iptables와 어떻게 다른지에 대해 배우기 시작하십시오. 이 안내서를 따라 가십시오’nftables에서 자신의 규칙을 구현하고 그것이 할 수있는 일에 대한 실습 아이디어를 얻는 예.
?
Nftables는 Linux 패킷 분류 프레임 워크입니다 iptables, ip6tables, arptables 및 ebtables의 인프라. 레거시 네트 필터 인프라를 사용한 프레임 워크는 주요 Linux 배포판에서 단계적으로 폐지되고 있습니다. 이러한 프레임 워크는 기본 패킷 분류 프레임 워크로 NFTABLE를 채택하기 시작했습니다.
iptables의 편재에도 불구하고, 그 건축은 몇 가지 근본적인 한계와 비 효율성을 가지고 있으며, 이는 기본 재 설계로 만 해결할 수 있습니다. .
. iptables
Nftables는 NetFilter Infrastructure 및 IPTables의 친숙한 부분을 유지합니다. iptables와 마찬가지로 Nftables는 여전히 테이블, 체인 및 규칙 계층 (체인이 포함 된 테이블 및 규칙이 포함 된 체인을 사용합니다. nftables는 명령 줄 구문을 변경하지만 Nftables 커널을 통해 iptables 명령을 실행할 수있는 호환성 계층을 유지합니다.
Nftables는 또한 iptables의 사용이 중대한 변화를 소개합니다. 위에서 언급했듯이 NFTABLE의 명령 줄 구문은 다릅니다. 다음은 nftables와 iptables의 추가 주목할만한 차이점입니다.
- .
- nftables에서는 규칙이 iptables와 달리 여러 행동을 취할 수 있습니다’ .
- Nftables는 IPv4와 IPv6에 적용되는 테이블을 쉽게 만들 수있는 INET 주소 제품군과 함께 제공됩니다.
- nftables’ 규칙 세트는 Dynamic Linked List로 표시되며 규칙 세트를 향상시킵니다’iptables와 비교하여 유지 가능성’ 모 놀리 식 블로브 규칙 세트.
또한, nftables’ 일반적인 세트 인프라는 규칙 세트를 구조화하기위한 새로운 옵션을 엽니 다 “나무” 구조. 이를 사용하여 쿼리 된 규칙 수를 크게 줄일 수 있습니다. 패킷에 대한 적절한 조치를 결정합니다.
nftables를 설치하는 방법
- 데비안 10 (버스터)
- .10 (그루비 고릴라)
- Centos 8
그렇지 않으면 다음 단계를 사용하여 NFTABLE를 수동으로 설치할 수 있습니다. 이 단계는 Debian 9, Ubuntu 18에서 작동합니다.04 및 Centos 7 및 이후이 분포의 출시.
시작하기 전에
- 아직 그렇게하지 않은 경우 Linode 계정을 작성하고 인스턴스를 계산하십시오. Linode로 시작하고 인스턴스 가이드를 작성하는 것을 확인하십시오.
- . .
. 높은 권한이 필요한 명령은 Sudo와 접두사됩니다 . ’.
설치 단계
- nftables를 설치하십시오.
- Debian 및 Ubuntu 배포판에서는 다음을 사용합니다
sudo yum nftables를 설치하십시오
sudo systemctl anable nftables sudo systemctl start nftables
..덤프> 규칙 세트.nft sudo nft -f Ruleset.
.
nftables를 사용하는 방법
이 섹션은 NFTABLE의 각 주요 구성 요소를 분류하여 가장 유용한 명령을 제공합니다. 이 가이드의 끝에서 작업 규칙 세트를 설정하고 실제로 볼 수있는 방법에 대한 데모를 찾을 수 있습니다.
테이블은 NFTABLE 계층의 최고 수준입니다. 주어진 테이블은 단일 주소 제품군에 해당하며 해당 주소 패킷을 필터링하는 체인이 포함되어 있습니다.
. 아래 및 후속 예제에서 테이블의 설명 이름으로 교체하십시오.
sudo nft add table inet example_table
Sudo nft 목록 테이블
체인은 테이블과 필터 패킷 아래에 살고 있습니다. 각 nftables 규칙을 체인에 부착하여 패킷 “잡았다” 체인에서’’S 규칙.
. 베이스 체인은 네트워크 스택에서 나오는 패킷의 진입 지점 역할을합니다. 정기적인 체인은 필터 역할을하지 않지만 점프 대상 역할을 할 수 있습니다. .
기본 체인을 만들려면 아래 예제 명령과 같은 명령을 사용하십시오. .
sudo nft add chain inet example_table example_chain '' '
sudo nft add chain inet example_table example_chain
sudo nft 삭제 체인 inet example_table example_chain
규칙은 체인으로 필터링 된 패킷을 받고 특정 기준과 일치하는지 여부에 따라 조치를 취합니다. 각 규칙은 두 부분으로 구성되며 명령의 테이블과 체인을 따르는 두 부분으로 구성됩니다. 첫째, 규칙에는 0 이상이 있습니다 표현 규칙의 기준을 제공합니다. 둘째, 규칙에는 하나 이상이 있습니다 진술 ’S 표현. . 이 두 부분을 분석하기 위해 규칙을 추가하려면 다음 예제를 참조하십시오.
. 이 규칙은 exames_chain에서 패킷을 가져 와서 포트에서 TCP 트래픽을 나타내는 패킷을 허용합니다 22:
sudo nft add lule inet example_table example_chain tcp dport 22 카운터 수락
- 여기에 TCP DPORT 22 부분에는 규칙이 포함되어 있습니다’s 두 표현. TCP 패킷과 일치 한 다음 해당 패킷이 포트 22로 향할 때 일치합니다.
- 카운터 수락 부분에는 규칙이 포함되어 있습니다’s 두 가지 진술. 먼저, 일치하는 패킷이 규칙에 추가됩니다’. 둘째, 일치하는 패킷이 허용됩니다.
- ’보내다.
sudo nft add rule inet example_table example_chain 위치 3 tcp dport 22 카운터 수락
sudo nft 목록 테이블 inet example_table
마찬가지로 예제와 같은 명령을 사용하여 example_chain 내에있는 모든 규칙을 나열 할 수 있습니다 .
sudo nft 목록 체인 inet example_table example_chain
sudo nft 삭제 규칙 inet example_table example_chain 핸들 2
여기서 핸들은 삭제중인 규칙의 식별자입니다. 당신은 규칙을 얻을 수 있습니다’s Listing Rules의 명령을 실행할 때 -a 옵션을 사용하여 다음과 같이 처리합니다
sudo nft 목록 테이블 inet example_table -a
예제 nftables 사용법
. 예제 규칙 세트는 INET 테이블, 두 개의 체인 (하나는 들어오는 패킷 및 다른 하나는 나가는 경우)을 사용하고 각 체인의 규칙을 사용합니다.
.
sudo nft add table inet inet-table
sudo nft add chain inet inet-table 출력 필터 체인 '< type filter hook output priority 0; >
sudo nft 추가 규칙 inet inet-table 출력 필터 체인 Ip Daddr 8.8.8.8 카운터
sudo nft add chain inet inet-table 입력 필터 체인 '< type filter hook input priority 0; >'sudo nft 추가 규칙 inet inet-table 입력 필터 체인 TCP DPORT 3030 카운터
sudo nft 목록 테이블 inet inet-table
다음과 비슷한 출력을 얻어야합니다
테이블 IP inet-table < chain output-filter-chain < type filter hook output priority 0; policy accept; ip daddr 8.8.8.8 counter packets 0 bytes 0 >체인 입력 필터 체인 < type filter hook input priority 0; policy accept; tcp dport 3030 counter packets 0 bytes 0 >>
nftables를 실행하는 기계에서 첫 번째 규칙에 지정된 대상 주소를 ping.
..8.8
.0.2.0 : 3030
테이블 IP inet-table < chain output-filter-chain < type filter hook output priority 0; policy accept; ip daddr 8.8.8.8 counter packets 1 bytes 84 >체인 입력 필터 체인 < type filter hook input priority 0; policy accept; tcp dport 3030 counter packets 1 bytes 64 >
추가 정보
이 주제에 대한 추가 정보는 다음 리소스를 참조하십시오. 이것들은 유용 할 것이라는 희망으로 제공되지만 외부 호스팅 재료의 정확성이나 적시성을 보증 할 수는 없습니다.
- nftables
- nftables는 가족을 다룹니다
.
우분투에 nftables를 설치하는 방법
이 기사에서는 Linux 방화벽을 iptables에서 Ubuntu의 Nftables로 전환하는 방법을 배웁니다. Linux 커널 Netfilter 모듈을 기반으로하는 iptables는 현재 많은 Linux 배포판의 기본 방화벽입니다. 여러 위협 벡터로부터 보호하고 특정 규칙 세트에 따라 원치 않는 트래픽을 차단할 수 있습니다.
Nftables는 Linux 커널의 새로운 서브 시스템으로 NetFilter 프레임 워크 (iptables 기반)의 여러 부분을 대체하여 기능을 향상시킬 수 있습니다. 이러한 변경 사항은 커널 버전 3에서 구현되었습니다.13. 이 모듈은 네트워크 트래픽을 필터링하기위한 NetFilter의 방화벽과 같은 기능을 향상시킵니다. . ’. IPTABLE는 곧 대부분의 모든 시스템에서 NFTABLE에 의해 단일 통합 플랫폼으로 대체 될 것이며, 내부 커널 가상 머신 위에 방화벽 구성을 제공합니다.
nftables는 iptables와 어떻게 다릅니다?
.
.
iptables에는 규칙 당 하나의 목표가 있습니다.
nftables에서는 단일 규칙 내에서 여러 작업을 수행 할 수 있습니다.
Nftables에는 ipset이라는 도구가 있습니다. .
iPtables 구조에는 가족당 4 가지 도구가 있습니다
- iptables
- ip6tables
- arptables
- ebtables
NFTABLE에는 이러한 모든 도구를 포함하는 호환성 레이어가 포함되어있어 이전 iPtables 규칙 규칙 구문을 사용할 수 있습니다.
?
- iPtables 도구를 단일 명령 줄 도구로 통합하는 구문
- .
- 학습하기 쉬운 새롭고 구문.
- .
- 개선 된 오류보고.
- 코드 복제 감소.
- 더 나은 전반적인 성능, 유지 및 규칙 필터링의 점진적인 변화.
규칙 비교
.모든 방화벽 정보는 NFT라는 단일 명령 줄 도구를 사용하여 볼 수 있습니다. NFT는 각 작업에 여러 규칙을 사용하는 대신 IPv4 및 IPv6 주소 모두에 대해 단일 규칙을 사용합니다. . . .
다음은 nftables의 IP에 대한 간단한 드롭 규칙입니다
NFT 추가 규칙 IP 필터 출력 IP DADDR 10.10.10.
iptables에서는 규칙이 다음과 같습니다
iptables -a 출력 -D 10.10.10.10 -J 드롭
아래 예제는 다양한 포트 서비스로 IPv6 트래픽을 허용하는 방화벽 규칙 세트를 만듭니다.
< nd-echo-request, nd-router-advert, neighbor-solicit, nd-neighbor-advert >수용하다
#review current configuration : root@host [~]# nft 목록 규칙 세트# Aadd 가족 "inet"및 테이블 "필터": root@host [~]# nft 추가 테이블 inet 필터 #add 새 체인, 모든 인바운드 트래픽을 수락하려면 : root@host [~]# nft add inet filter input \ < type filter hook input priority 0 \; policy accept \># 새 규칙, 여러 tcp 포트를 수락하려면 : root@host [~]# nft leule inet 필터 입력 tcp dport \ < ssh, telnet, https, http \># rule handles 표시 : root@host [~] # nft -handle -numeric 목록 체인 패밀리 테이블 체인 # 규칙을 삭제합니다 : root@host [~] # nft 삭제 규칙 inet 필터 입력 핸들 3 # root@host [~] # nft 목록 규칙 세트> /etc /nftables.콘크리트
데비안/우분투 설치
.Debian/Ubuntu 서버에 nftables를 설치하는 방법은 매우 간단합니다. ..
root@host : ~# iptables-save> fwrules.txt root@host : ~# cat fwrules.txt root@host : ~# iptables-restore-translate -f fwrules.txt root@host : ~# iptables-restore-translate -f fwrules.txt> 규칙 세트.nft
프로세스의 두 번째 부분에서는 nftables와 iptables-nftables-compat 도구 (규칙을 nf_tables 커널 서브 시스템에로드 함)를 설치하고 마지막으로 서비스를 활성화합니다.
root@host : ~# apt nftables root@host : ~# apt install iptables-nftables-compat root@host : ~# systemctl nftables 활성화.서비스
마지막 섹션에서는 규칙 세트에서 이전 규칙 세트를 가져옵니다.NFT 파일. 그런 다음 규칙 세트를 검토합니다 ‘목록’ 깃발.
root@host : ~# nft -f Ruleset.nft root@host : ~# nft 목록 규칙 세트 테이블 ip nat < chain PREROUTING < type nat hook prerouting priority 0; policy accept; >체인 입력 < type nat hook input priority 0; policy accept; >체인 출력 < type nat hook output priority 0; policy accept; >체인 포스트 아웃 < type nat hook postrouting priority 0; policy accept; >> 테이블 IP 맨글 < chain PREROUTING < type filter hook prerouting priority 0; policy accept; >체인 입력 < type filter hook input priority 0; policy accept; >체인 포워드 < type filter hook forward priority 0; policy accept; >체인 출력 < type filter hook output priority 0; policy accept; >체인 포스트 아웃 < type filter hook postrouting priority 0; policy accept; > < chain PREROUTING < type filter hook prerouting priority 0; policy accept; >체인 출력 < type filter hook output priority 0; policy accept; >> 테이블 IP 필터 < chain INPUT < type filter hook input priority 0; policy accept; >체인 포워드 < type filter hook forward priority 0; policy accept; >체인 출력 < type filter hook output priority 0; policy accept; >> 테이블 INET 필터 < chain input < type filter hook input priority 0; policy accept; >체인 포워드 < type filter hook forward priority 0; policy accept; >체인 출력 < type filter hook output priority 0; policy accept; >> root@host : ~#
NFT 명령 시놉시스
#NFT 명령 옵션 및 구문 root@host [~]# nft [-nnscaesupyj] [-i 디렉토리] [-f filename | -I | cmd…] root@host [~]# nft -h usage : nft [옵션] [cmds. . -f, -file read input at -i, -인터랙티브 CLI -N의 인터랙티브 읽기 입력, -numeric 일시 지정된 경우 네트워크 주소를 수치 적으로 표시합니다 (기본 동작). 인터넷 서비스 (포트 번호)를 수치 적으로 표시하려면 두 번 지정하십시오. 프로토콜, 사용자 ID 및 그룹 ID를 수치 적으로 표시하려면 세 번 지정하십시오. -s, - -스테이지형 규칙 세트의 상태 정보를 생략합니다. -n IP 주소를 이름으로 변환합니다. -a, -핸들 출력 규칙 핸들. -e, -echo echo 추가, 삽입 또는 교체. -i, -includepath include 파일을 검색 한 경로에 추가. 기본값 : /etc -Debug 디버깅 레벨을 지정합니다 (스캐너, 파서, 평가, 넷 링크, MNL, 프로토 -CTX, Segtree, All) root@host [~]# nft -v nftables v0.8.2 (Joe Btfsplk)
방화구 및 nftables
방화구는 어떻습니까? 고맙게도 Firewalld는 NFT 명령 자체를 통해 NFTABLE와 쉽게 상호 작용합니다. .
iptables와 방화구의 초기 문제는 방화구가 서버의 방화벽을 완전히 제어한다고 가정했다는 것입니다. 이제 NFTABLE를 백엔드로 사용할 때는 NFTABLE가 여러 네임 스페이스를 허용하고 방화구가 방화장 테이블에 규칙, 세트 및 체인을 범위로 범위를 범합니다. 이것은 방화장과 직접 상호 작용하지 않는 다른 소프트웨어와 직면 할 수있는 많은 충돌을 피합니다. 다가오는 릴리스에서 NFTables는 새로운 libnftables를 사용하도록 업데이트됩니다.
복원하다
어떤 이유로 든 오래된 iptables 백엔드로 되돌려 야하는 경우 ‘방화벽 백‘ 진입 /etc/firewalld/firewalld.콘크리트 돌아가다 ‘‘, 그런 다음 방화구를 다시 시작하십시오.
이 새로운 서비스가 서버의 전반적인 보안 계획에 어떻게 적합 할 수 있는지 알아보십시오. Ubuntu 서버에서이를 구현하는 방법에 대해 확신이 없거나 추가 질문이 있습니다? .
관련 기사:
- “이 사이트는 할 수 있습니다’t 안전한 연결을 제공합니다” 오류
- Almalinux에 MongoDB를 설치하는 방법
- Almalinux에 PostgreSQL을 설치하는 방법
- WP 툴킷을 사용하여 WordPress를 보호하고 업데이트하는 방법
- CPANEL의 EasyApache 4 컨테이너 내부에 Redis를 설치하는 방법
저자 소개 : David Singer
나는 G33K, Linux Blogger, 개발자, 학생 및 LiquidWeb의 전 기술 작가입니다.com. 기술이 모든 것에 대한 나의 열정은 모든 Coolz에 대한 나의 사냥을 이끌어냅니다. .
’우분투 22의 새로운 보안.04 LTS?
표준 우분투 22.04 LTS는 세계 중 하나 인 우분투의 최신 장기 지원 릴리스입니다’가장 인기있는 Linux 배포판. 장기 지원 릴리스, 우분투 22.04 LTS는 10 년 동안 지원되며 Ubuntu Advantage 구독을 통해 확장 된 보안 업데이트 및 커널 라이브 래칭 (개인 용도로 무료)을 통해 수신됩니다. 이는 Linux 애플리케이션 및 서비스를 개발하고 배포 할 수있는 가장 안전한 기초 역할을하는 Ubuntu LTS 릴리스의 벤치 마크를 계속합니다. 이 블로그 게시물에서 우리는 Ubuntu 20 이후이 새로운 릴리스에 들어간 다양한 보안 기능과 향상을 살펴 봅니다.04 LTS 릴리스. 이러한 기능 중 일부에 대한 자세한 조사를 보려면이 시리즈의 이전 기사를 확인하십시오.04 LTS 및 22.04 LTS.
최적화 된 Linux 커널
우분투 22.. OEM 인증 데스크탑 장치의 경우 업스트림 V5.17 커널은 기준으로 사용되며 다른 모든 데스크탑 및 서버 플랫폼은 v5를 기반으로합니다.15 커널. V5 이후 많은 변화와 보안 향상이 Linux 커널로 들어갔습니다.4 우분투의 커널 20.04 LTS를 포함하여 :
하드웨어 특정 보안 향상
’S SGX (Software Guard Extensions)는 응용 프로그램이 민감한 데이터를 저장하거나 신뢰할 수없는 구성 요소의 간섭의 위험없이 민감한 계산을 수행하는 데 사용할 수있는 하드웨어 지원 보안 엔 클레이브를 제공합니다. 우분투 22.04 LTS는이 기능을 지원할 수 있으며 수년 동안 인텔 프로세서에 존재했습니다. ARM 플랫폼의 경우 ARMV8을 지원합니다.5 메모리 태깅 확장자가 ARM64 장치에서 사용할 수 있습니다. 이 기능은 쉽게 단조 할 수없는 키로 메모리 주소를 태그하여 메모리 안전 문제를 방지하고 버퍼 오버플로와 같은 일반적인 메모리 안전 공격을 방지합니다. 사용자 공간 프로세스는 이제 선택한 메모리 영역에 대한 메모리 태깅을 가능하게하여 메모리 손상 공격 방지를 돕습니다. 마지막으로, AMD Secure 암호화 가상화 (SEV)는 KVM Virtualisation 서브 시스템에서도 지원하여 게스트 가상 머신 레지스터가 호스트 운영 체제에서 액세스되는 것을 방지합니다.
일반 커널 보안 향상
핵심 스케줄링과 같은 새로운 보안 기능뿐만 아니라 다양한 경화 개선을 포함하여 여러 가지 일반적인 플랫폼 독립 커널 보안 기능도 사용할 수 있습니다. 미세 구조 측면 채널 취약점의 첫 번째 사례 이후. Specter etc)은 4 년 전에 처음 발견되었으며 개발자는 SMT (Sopmetric Multiprocessing) 코어에서 예정된 방법을 제어하기위한 프로세스를위한 수단을 연구하고 있습니다. SMT 형제 자매는 자체간에 CPU 하드웨어 리소스를 공유하므로 결과적으로 다양한 하드웨어 사이드 채널 공격을 피하기가 매우 어려울 수 있습니다. .
커널 스택 무작위 방송. 후속 시스템 호출에 다른 오프셋에 커널 스택을 배치함으로써 공격자는 먼저 커널 스택 주소를 누출 한 다음 나중에 시스템 호출 에서이 메모리를 덮어 쓰면 공격을 수행 할 수 없습니다. 이 잠재적 공격 벡터 Ubuntu 22를 폐쇄함으로써.04 LTS는 커널 공격에 대한보다 방어적인 플랫폼을 제공합니다.
BPF 서브 시스템은 또한 기본적으로 권한있는 프로세스 만 권한있는 프로세스 만 제한하고 서명 된 BPF 프로그램을 지원하려는 초기 노력을 포함하여 여러 가지 보안 향상을 보았습니다. 이 두 가지 조치는이 기능이 많은 서브 시스템이 커널을 공격하는 데 사용될 수있는 기회를 최소화하는 데 도움이되는 반면, 개발자와 시스템 관리자 모두가 필요에 따라 사용할 수있게하는 데 도움이됩니다.
마지막으로, New Lynlock Linux 보안 모듈을 포함 시키면 Apparmor 또는 Selinux를 통해 Application 샌드 박스가 더 전통적인 방법과 함께 갈 수있는 또 다른 메커니즘이 제공됩니다. Lynlock은 애플리케이션이 시스템 관리자가 다양한 응용 프로그램에서 글로벌 시스템 정책을 구성 할 수 있도록 설계된 Apparmor 및 Selinux와 달리 자체 정책을 지정할 수 있습니다. LSM 스태킹과 결합되면 집주인.
사용자 공간 보안 향상
새로운 Ubuntu 릴리스마다 Ubuntu 아카이브 내에서 제공되는 다양한 소프트웨어 패키지를 최신 업스트림 릴리스로 새로 고칠 수있는 기회가 있습니다. .04 LTS는 예외는 아닙니다. OpenSSL, OpenSSH, NFTABLE, GCC 및 겸손한 Bash Shell을 포함한 여러 보안 관련 패키지에 대한 업데이트를 제공합니다.
OpenSSL 3
우분투 22.04 LTS는 Venerable Cryptography Toolkit의 최신 주요 릴리스, OpenSSL을 제공합니다. OpenSSL 3에서는 MD2 및 DES를 포함하여 기본적으로 많은 레거시 알고리즘이 더 이상 사용되지 않고 비활성화되었습니다. 이러한 유가 상류 알고리즘은 대신 레거시 제공 업체에 존재하며 구성 변경을 통해 필요에 따라 활성화하거나 프로그래밍 방식으로 활성화 할 수 있습니다. 이를 기본적으로 비활성화하면 사용자와 응용 프로그램이 이러한 덜 안전한 알고리즘에 대한 암호화 공격으로부터 보호됩니다.
FIDO/U2F 토큰의 OpenSsh UX 개선
. 버전 8 이후 OpenSSH의 7 개 릴리스가 발생했습니다.2는 이전 우분투 20에 포함되었다.04 LTS 릴리스, 시스템 관리자, 개발자 및 사용자 모두에게 다양한 개선 사항을 제공합니다. 특히 Openssh 8에서 U2F/FIDO 하드웨어 보안 토큰 사용이 크게 향상되었습니다.9, 원격 액세스를 위해이 두 번째 인증 인증 장치를 사용할 때 상당한 사용자 경험 혜택을 제공합니다.
기본 방화벽 백엔드로 NFTABLE
Linux의 방화벽은 Linux 커널 내의 방화벽 메커니즘과 사용자 공간에서이를 구성하는 데 사용되는 도구 인 두 가지 구성 요소로 구성됩니다. Linux 커널은 전통적으로 방화벽 정책을위한 두 가지 하위 시스템 (iptables / xtables 및 새로운 Nftables)을 지원했습니다. Nftables는 방화벽 규칙을 작성하고 배포 할 때 성능과 유연성 측면에서 특히 듀얼 스택 IPv4/IPv6 시스템에 대한 상당한 이점을 제공합니다. 전통 iptables 사용자 공간 관리 도구는 이제 새로운 상태에서 커널 백엔드 nft 사용자 공간 도구는 또한 전통적인 것들이 지원하지 않는보다 유연한 규칙을 생성 할 수 있도록 도구가 있습니다 iptables 어형 변화표.
GCC 11 및 Bash 5.1
GCC 11.2는 강화 된 정적 분석 기능을 제공하여 개발자가 개발주기 동안 잠재적 소프트웨어 취약점 및 기타 문제를 감지하고 개선 할 수 있도록합니다. 여기에는 신호 핸들러 조건 내에서없는 무료, 널 포인터 피해, 메모리 누출 및 안전하지 않은 통화를 감지하는 지원이 포함됩니다. 우분투 22를 사용함으로써.04 LTS 개발 플랫폼의 기초로 소프트웨어 개발자는 작성된 코드가 최대한 정확하고 결함이 있는지 확인할 수 있습니다.
.1. 이 훌륭한 쉘 의이 릴리스는 $ Srandom 변수를 통한 개선 된 의사 랜덤 수 생성에 대한 기본 지원이 포함됩니다. Historical $ Random 변수와 달리 $ Srandom은 커널에서 파생됩니다’s /dev /urandom 보안 무작위 소스 장치, 잠재적 인 공격자가 출력을 쉽게 예측할 수 없도록.
개인 홈 디렉토리
전통적으로 우분투 시스템은 사용자에 대한 공유 액세스의 편의를 선택했습니다’S 홈 디렉토리, 대학 및 가정 환경에서 공유 PC와 같은 사용 사례를 지원합니다. . 우분투 22.04 LTS는 이제 기본적으로 개인 홈 디렉토리를 활성화하여 사용자 데이터가 명시 적 허가없이 다른 사람이 액세스 할 수 없도록합니다.
총 우분투 22의 보안 개선 범위.04 LTS는 오랫동안 우분투의 핵심 부분이었던 다양한 기타 강화 및 보안 기능을 활용하고 구축하여 현재까지 가장 안전한 우분투 릴리스입니다. 또한 보안 업데이트 및 22의 커널 라이브 래칭.04 LTS는 Ubuntu Advantage 구독을 통해 10 년 동안 제공되며 Linux 애플리케이션 및 서비스를 개발하고 배포 할 수있는 가장 안전한 기초 역할을하는 Ubuntu LTS 릴리스의 벤치 마크를 계속합니다.
오늘 우리와 이야기하십시오
조직에서 Ubuntu 운영에 관심이 있습니다?
Nftables 방화벽 설정
| 2020 년 6 월 1 일 | 10 분 읽기
nftables (netfilter)는 테이블을 새로운 커널 기반 Linux 방화벽으로 통합합니다. 대부분의 Linux 배포판은 기본 방화벽 프레임 워크로 iptables에서 nftables로 이동합니다. Nftables는 이제 Debian 10, Ubuntu 20의 기본값입니다.04, Rhel 8, Suse 15 및 Fedora 32. 마이그레이션 할 시간!
이 블로그 게시물은 주변 모델을 기반으로 nftables를 설정하는 방법에 대해 자세히 설명하며, 그림 1에서 은유 적으로 시각화됩니다. 주변 기반 접근 방식의 간격을 채우려면 제로 트러스트 네트워크 모델을 살펴보십시오. .
그림 1 : Fort Bourtange, The Netherlands (Elise van Heck의 사진)
nftables로 시작합니다
먼저 nftables를 설치합니다
$ sudo apt -get install nftables -y
$ nft -v nftables v0..3 (Topsy)
다음으로 부팅에서 nftables를 활성화하고 데몬을 시작합니다
$ sudo systemctl anable nftables $ sudo systemctl 시작 nftables $ sudo systemctl 상태 nftables nftables...nftables.조직 프로세스 : 16565 execstart =/usr/sbin/nft -f/etc/nftables.conf (code = 종료, 상태 = 0/성공) 메인 PID : 16565 (코드 = 종료, 상태 = 0/성공)
nftables는 어떻게 작동합니까?
Nftables는 본질적으로 네트워크 데이터 흐름을 제어 할 수있는 네트워크 액세스 제어 목록 (ACL)이라고도하는 네트워크 필터입니다. 이 네트워크 필터는 계층 적이며 주문 의존적입니다. 그림 1은 TCP/IP 모델을 기반으로 NFTABLE 기능 기능을 보여줍니다
그림 1 : NFTABLE TCP/IP 모델
TCP/IP 모델에서 바닥에서 시작하겠습니다. 데이터 링크는 수신 vnic (iifname) 및 vnic (oifname)을 기반으로 특정 (가상) NIC (네트워크 인터페이스 카드)의 트래픽을 간소화 할 수있는 지점입니다. 이렇게하면 데이터 트래픽을 세분화 할 수 있습니다 (e.g. 관리 트래픽 (e.g. SSH 또는 VNC).
데이터 링크에서 ARP (주소 해상도 프로토콜) 프로토콜은 MAC 주소로 IP 주소를 해결하는 데 사용됩니다. 초기 ARP 방송 중에 악성 엔티티는 자신의 MAC 주소를 요청 된 호스트 IP 주소의 IP 주소와 연결하려고 시도 할 수 있습니다. ARP 필터 섹션 (1)에서 ARP 트래픽을 제어 할 수 있습니다.
다음은 IP 필터와 IP6 필터가있는 TCP/IP 인터넷 워크 및 전송 계층입니다 (2). 이 필터는 호스트 IP (SADDR)에서 네트워크 세그먼트 또는 다른 호스트 (DADDR)로 네트워크 트래픽을 형성하는 데 도움이됩니다. NFTABLE는 네트워크 프로토콜, 대상 포트 (DPORT), 소스 포트 (SPORT) 및 해당 세션 상태 (CT 상태)를 기반으로 패킷을 필터링 할 수 있습니다. Small Note- ICMP 프로토콜은 실제로 IP 프로토콜의 일부이므로 기술적으로 인터넷 워크 계층에서 작동합니다. 이상적으로, IP 및 IP6 테이블은 명시 적으로 허용되지 않는 한 네트워크 트래픽 (DROF)을 차단해야합니다 (수락).
. 네트워크 포트는 종종 애플리케이션 네트워크 제어로 오인됩니다. 악의적 인 배우는 TCP 포트 443 (HTTPS) 또는 UDP 포트 53 (DNS)을 통해 리버스 쉘을 터널로 터널 할 수 있습니다. Application (L7) 필터링은 HTTPS 트래픽을위한 웹 프록시를 활용하여 이러한 격차를 메울 수 있으며 ICMP를 통해서도 다른 네트워크 프로토콜을 통해 다른 네트워크 프로토콜을 통해 악의적 인 터널 트래픽을 삭제하기위한 침입 방지 시스템 (IP). DPI (Deep Packet Inspection)는 여기의 키워드입니다.
nftables를 구성하는 방법
우리는 /etc /nftables를 직접 편집합니다.NFT CLI (NFT ADD) 및 (NFT DELETE)를 사용하는 대신 구성 파일. 이 구성 파일은 부팅시 기본적으로로드됩니다. 1024 세 미만의 포트에 방화벽 필터를 설정하려면 루트 (sudo) 여야합니다.
$ sudo cp /etc /nftables.conf /etc /nftables.콘크리트..콘크리트
먼저 규칙 세트에서 나중에 사용할 수있는 변수를 정의합니다
nic_name = "eth0"정의 nic_mac_gw = "de : ad : be : ef : ef : 01 : 01"define nic_ip = "192.168.1.12 "local_inetw = 정의하십시오 < 192.168.0.0/16 >local_inetwv6 =를 정의하십시오 < fe80::/10 >DNS_SERVERS = 정의하십시오 < 1.1.1.1, 8.8.8.8 >ntp_servers = 정의하십시오 < time1.google.com, time2.google.com, time3.google.com, time4.google.com >dhcp_server = "192 정의.168.1.1"
NFTABLE는 자동으로 네트워크 프로토콜 이름을 포트 번호에 매핑합니다 (E.g. . 이 예에서는 우리가 시작한 수신 세션 만 임시 포트 (DPORT 32768-65535)에서 시작한 수신 세션을 허용. 앱이나 웹 서버가 새로 시작된 세션을 허용해야합니다 (CT State New).
테이블 IP 필터 < chain input < type filter hook input priority 0; policy drop; iifname "lo" accept iifname "lo" ip saddr != 127.0.0.0/8 drop iifname $NIC_NAME ip saddr 0.0.0.0/0 ip daddr $NIC_IP tcp sport < ssh, http, https, http-alt >TCP DPORT 32768-65535 CT 상태 확립 된 주정부 수락 iifname $ NIC_NAME IP SADDR $ NTP_SERVERS IP DADDR $ NIC_IP UDP UDP UDP DPORT 32768-65535 CT 상태는 IIFNAME $ NIC_NAME IP SMADDR $ DHCP_SR DAVDR IP IP IP 38 5535 CT 상태 로그 수락 IIFNAME $ NIFNAME IP SADDR SADDR $ DNS_SERVERS IP DADDR $ NIC_IP UDP 스포츠 도메인 UDP DPORT DPORT 32768-65535 CT 상태 확립 된 IIFNAME $ IIFNAME $ NIC_NAME IP SADDR $ LOCAL_INETW IP IP DADDR $ NIC_IP ICMP 유형 ECHO-REPPY CT ECHO-REPPY CT ECCO-REPPY CT < type filter hook output priority 0; policy drop; oifname "lo" accept oifname "lo" ip daddr != 127.0.0.0/8 drop oifname $NIC_NAME ip daddr 0.0.0.0/0 ip saddr $NIC_IP tcp dport < ssh, http, https, http-alt >TCP Sport 32768-65535 CT 상태 신규, 새로운, 확립 된 수락 OIFNAME $ NIC_NAME IP DADDR $ NTP_SERVERS IP SADDR $ NIC_IP UDP DPORT NTP UDP SPORT 32768-65535 CT State New, OIFNAME IP DADDR $ DHCP _SERVER IP SADDP SADDP IP SADDP IP SADDP IP SADDP IP SADDP 8-65535 CT 상태 신규, 확립 된 로그 수락 OIFNAME $ NIC_NAME IP DADDR $ DNS_SERVERS IP SADDR $ NIC_IP UDP DOMAIN UDP SPORT 32768-65535 CT NEW NEW STATE NEW, SPEAPTION OIFNAME $ NIC IP DADDR $ LOCAL_INETW IP SADDR SADDR STORE STURE STURE STURE STURE STORY CT CT CT COR MOR MORON < type filter hook forward priority 0; policy drop; >>
다음 코드 블록은 Ping Requests (ICMPV6 유형 Echo-Request) 및 IPv6 네트워크 검색 (ND-Router-Advert, ND-Neighbor-Solicit, ND-Neighbor-Advert)을 제외하고 들어오고 나가는 IPv6 트래픽을 차단하는 데 사용됩니다. VNICS. 이러한 인터페이스는 악의적 인 엔티티에서 남용하여 기밀 데이터 또는 쉘을 터널링 할 수 있습니다.
표 IP6 필터 < chain input < type filter hook input priority 0; policy drop; iifname "lo" accept iifname "lo" ip6 saddr != ::1/128 drop iifname $NIC_NAME ip6 saddr $LOCAL_INETWv6 icmpv6 type < destination-unreachable, packet-too-big, time-exceeded, parameter-problem, echo-reply, nd-router-advert, nd-neighbor-solicit, nd-neighbor-advert > < type filter hook output priority 0; policy drop; oifname "lo" accept oifname "lo" ip6 daddr != ::1/128 drop oifname $NIC_NAME ip6 daddr $LOCAL_INETWv6 icmpv6 type echo-request ct state new,established accept > < type filter hook forward priority 0; policy drop; >>
마지막 코드 블록은 ARP 방송 네트워크 프레임을 제한하는 ARP 트래픽에 사용됩니다
테이블 ARP 필터 < chain input < type filter hook input priority 0; policy accept; iif $NIC_NAME limit rate 1/second burst 2 packets accept >체인 출력 < type filter hook output priority 0; policy accept; >>
$ sudo systemctl 재시작 nftables && systemctl 상태 nftables && nft 목록 규칙 세트
고려 사항
포트가 진정으로 열려 있거나 닫혀 있는지 테스트하십시오. 이를 위해 NC, Telnet 또는 TcpDump를 사용할 수 있습니다.
nftables는/var/log/syslog에 작업을 기록 할 수 있습니다 . RSYSLOG를 활용하여 좋아하는 SIEM 솔루션으로 로그를 전달하여 네트워크의 개념을 더 잘 얻으십시오.
올바른 골격을 사용하면 Nftables는 DevOps 엔지니어가 마이크로 세분화 방화벽을 적용 할 수있는 삶을 더 쉽게 만듭니다. DevOps 엔지니어는 Ansible과 같은 구성 관리 도구를 사용하여 Modular Firewall 규칙을 Linux 기반 호스트에 제공 할 수 있습니다. 이 방화벽 규칙 세트는 VM 또는 컨테이너의 핵심 기능을 기반으로 푸시 및로드됩니다. 예를 들어, 데이터베이스 서버는 웹 서버의 제한된 하위 집합과 만 대화해야합니다. 호스트 레벨에서 방화벽 규칙을 프로비저닝하는 방법은 악의적 인 행위자에 의한 측면 이동의 공격 표면을 줄여야합니다.
이 블로그 게시물은 단지 NFTABLE의 핵심 방화벽 기능을 다루었습니다. 더 많은 방화벽 기술은 Nftables Wiki 페이지를 확인하십시오. 하나의 방화벽 솔루션이 다른 방화벽 솔루션을 대체 할 필요는 없습니다. 제로 트러스트 네트워크 도메인이없는 경우 에지 방화벽을 살펴보십시오.
토론과 질문
. 판권 소유.
코드는 새로운 버클리 소프트웨어 배포 (BSD) 라이센스에 따라 더 개방적 인 세계 구축에 관심이 있습니다.