모범 사례: SSH에 대한 iptables 방화벽 규칙 적용

모범 사례: SSH에 대한 iptables 방화벽 규칙 적용

QA 환경에서 사용해야 합니다 iptables. 원격으로 변경해야 합니다. 일부 변경 사항에는 SSH소수의 네트워크 비활성화도 포함됩니다.

SSH어떤 이유로 서비스가 차단된 경우 호스트를 재부팅하지 않고 액세스를 복원할 수 있도록 따라야 할 모범 사례는 무엇입니까 ?

제가 계획하고 있는 몇 가지 사항은 다음과 같습니다.

chkconfig iptables off 

이는 호스트를 재부팅할 필요가 없어 iptables부팅이 실패하는 것을 방지하기 위한 것입니다.

그런데 이건 호스트를 재부팅할 때 호스트를 재부팅하지 않고도 복구가 가능하도록 뭔가를 찾고 있는 중입니다. 그런데 console서버에서는 작동하지 않습니다.

어떤 제안이 있으십니까?

답변1

그것이 iptables-apply목적입니다. ~에서매뉴얼 페이지:

iptables-apply will  try  to  apply  a  new  rulesfile  (as  output  by
   iptables-save,  read by iptables-restore) or run a command to configure
   iptables and then prompt the user whether the changes are okay. If  the
   new  iptables  rules  cut the existing connection, the user will not be
   able to answer affirmatively. In this case, the script  rolls  back  to
   the previous working iptables rules after the timeout expires.

기본 시간 제한은 10초입니다. 이 시간이 너무 짧은 경우 --timeout 3030초 후에도 확인이 수신되지 않으면 규칙을 재설정 하도록 변경할 수 있습니다 .

답변2

INPUT이와 같은 작업에 대해 제가 일반적으로 취하는 접근 방식은 기존 관리 연결을 명시적으로 허용하는 체인의 시작 부분에 안전 장치 규칙이 있는지 확인하는 것입니다 . 이렇게 하면 연결을 차단할 수 있는 후속 규칙이 현재 규칙에 영향을 미치지 않게 됩니다. 모든 규칙을 마련한 후 허용되어야 하는 두 번째 연결로 테스트했지만 이는 안전 장치 규칙과 일치하지 않습니다. 작동한다면 원래 세션의 연결을 안전하게 끊고 비상 안전 규칙을 제거할 수 있다는 것을 알고 있습니다.

예를 들어, 192.168.0.0/16(192.168.2.0/24 제외)에서 SSH를 허용하려고 하고 현재 192.168.22.22에서 서버에 연결하고 있다고 가정해 보겠습니다. 오타를 방지하려면 다음과 같이 규칙을 설정할 수 있습니다.

iptables -I INPUT -p tcp -s 192.168.22.22  --dport 22 -j ACCEPT
iptables -I INPUT -p tcp                   --dport 22 -j LOG
iptables -A INPUT -p tcp -s 192.168.2.0/24 --dport 22 -j DROP
iptables -A INPUT -p tcp -s 192.168.0.0/16 --dport 22 -j ACCEPT

이 경우 첫 번째 규칙을 -I체인의 맨 처음에 삽입하고, 다른 규칙을 -A체인 끝에 추가하도록 추가합니다. 귀하의 규칙은 이보다 더 복잡할 수 있지만 중요한 점은 안전 장치 규칙이 최우선인지 확인하는 것입니다. 이렇게 하면 실수로 두 번째 줄에 192.168.22.0/24를 입력하더라도 안전 장치 줄이 먼저 일치하므로 액세스가 유지됩니다.

192.168.0.0/16과 192.168.22.22 또는 192.168.2.0/24 사이에서 연결을 시도하여 규칙을 테스트합니다. 결과가 무엇이든 기록되어야 합니다 /var/log/kern.log. 연결이 실패하면 추가 작업이 필요하다는 것을 알 수 있습니다. 또한 로그는 실패의 원인을 파악하는 데 도움이 될 수 있습니다.

테스트가 성공하면 비상 안전 규칙을 안전하게 삭제할 수 있습니다.

iptables -D INPUT -p tcp -s 192.168.22.22 --dport 22 -j ACCEPT

관련 정보