IPTABLES의 MAC 주소 필터링

IPTABLES의 MAC 주소 필터링

저는 CentOS7을 처음 접했고 현재 SSH를 통해 CentOS 7 서버에 대한 매우 제한된 사용자 액세스가 필요한 프로젝트를 진행하고 있습니다. 따라서 IPtables 명령을 사용하여 특정 사용자에게만 액세스를 제공합니다.

MAC 주소를 가진 사용자에 대한 액세스를 허용하는 데 사용하는 명령은 다음과 같습니다.

iptables -A INPUT -p tcp --destination-port 22 -m mac --mac-source XX:XX:XX:XX:XX:XX -j ACCEPT

다음 출력에 따라 작동하고 iptables에 추가됩니다.

ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:ssh MAC XX:XX:XX:XX:XX:XX

다른 모든 사람이 포트 22에 액세스하지 못하도록 차단하는 두 번째 규칙을 추가할 때 Cent OS 7 상자와의 연결이 끊어졌습니다.

iptables -A INPUT -p tcp --destination-port 22 -j DROP

내가 잘못될 수 있는 아이디어

답변1

"잘못된" 점은 두 번째 명령에서 iptables에 지시한다는 것입니다. 대상 포트 22의 모든 연결을 삭제하십시오. 여기에는 분명히 상자에 대한 자체 연결이 포함됩니다. 첫 번째 규칙에 지정된 MAC 주소를 사용하여 클라이언트 컴퓨터에서 연결하고 있습니까?

이 문제를 해결하려면 iptables 규칙 파일을 사용하는 것이 좋습니다. iptables-save및 명령을 사용하십시오 iptables-restore. 기본적으로 텍스트 파일( iptables_rulesv4)을 생성한 다음 iptables에 이 규칙에 따라 자체적으로 복원하도록 지시합니다. 이는 두 가지 규칙이 있는 기본 예입니다.

*filter
:INPUT DROP
:FORWARD DROP
:OUTPUT ACCEPT
-A INPUT -p tcp --destination-port 22 -m mac --mac-source XX:XX:XX:XX:XX:XX -m comment --comment "Allow ssh connections from specific MAC address" -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -m comment --comment "Maintain open connections" -j ACCEPT
COMMIT

1: *filter- 이것은 작업할 iptables 테이블이고, 필터 테이블입니다.

2-4: 이 파일은 기본 상태입니다. INPUT 및 FORWARD는 기본적으로 삭제(DROP)되고 OUTPUT은 기본적으로 허용(ACCEPT)됩니다.

5: 규칙 1 - MAC 주소에서 시작되는 포트 SSH 연결을 허용합니다 XX:XX:XX:XX:XX:XX.

6: 규칙 2 - 확립되었거나 열려 있는 모든 연결을 허용합니다.

7: 이 규칙을 iptables에 제출합니다.

참고: iptables는 패킷을 찾은 첫 번째 일치 규칙과 일치시키는 방식으로 작동하며, 일치하는 규칙이 없으면 해당 기본 규칙이 사용됩니다.

그런 다음 명령을 실행할 수 있습니다

sudo iptables-restore iptables_rulesv4

이 규칙을 컴퓨터에 적용하십시오. 그런 다음 규칙 세트를 볼 수 있습니다

sudo iptables -L -n -t filter

참고: 위의 규칙 세트를 서버에 맹목적으로 적용하지 마십시오. 이는 단지 예시로만 제공됩니다. 보안 요구 사항과 조직의 보안 요구 사항이 무엇인지 확인하고 보안 요구 사항을 충족하는 규칙 세트를 설계해야 합니다.

관련 정보