사전 설정 설치 중 ufw 규칙 추가

사전 설정 설치 중 ufw 규칙 추가

저는 미리 설정 파일을 사용하는 동안 16.04를 설치하는 동안 SSH 액세스를 허용하기 위해 UFW 규칙을 자동으로 추가하려고 했습니다. 그러나 문서화된 방법 중 어느 것도 첫 번째 부팅 후 포트 22가 열리는 결과를 초래하지 않습니다.

특히 다음 줄의 변형을 시도했습니다.

ufw     ufw/enable      boolean true
ufw     ufw/allow_custom_ports  string 22/tcp
ufw     ufw/allow_known_ports  string 22/tcp
ufw     ufw/allow_known_ports   string  SSH

그러나 그들 중 누구도 변화를 가져오는 것 같지 않았습니다. 또한 iptables 커널 모듈이 로드되지 않아 설치 후 섹션에 규칙을 추가하려는 시도가 실패하여 오류가 발생했습니다.

미리 설정 파일 내에서 이것이 가능합니까? 아니면 그냥 포기하고 해킹으로 부팅 시 방화벽을 활성화해야 합니까?

답변1

나도 한동안 이것을 작동 시키려고 노력해 왔습니다. 아무것도 작동하지 않는 것 같습니다. 마침내 포기하고 간단한 rc.local 해결 방법으로 문제를 해결했습니다.

d-i preseed/late_command string \
    mv /target/etc/rc.local /target/etc/rc.local.orig; \
    echo '#!/bin/sh -e' > /target/etc/rc.local; \
    echo '/usr/sbin/ufw allow ssh' >> /target/etc/rc.local; \
    echo 'mv -f /etc/rc.local.orig /etc/rc.local' >> /target/etc/rc.local; \
    echo 'test -x /etc/rc.local && /etc/rc.local' >> /target/etc/rc.local; \
    echo 'exit 0' >> /target/etc/rc.local; \
    chmod +x /target/etc/rc.local

rc.local해결 방법은 다음을 사용하여 사용자 지정 스크립트를 추가하는 preseed/late_command것입니다.

  1. 원본을 다음 rc.local과 같이 백업합니다 rc.local.orig( 사용 mv).

  2. rc.local그런 다음 시스템을 처음 부팅할 때 실행될 스크립트인 새 항목이 생성됩니다.

  3. 새 스크립트는 다음을 수행합니다.

    1. 다음을 사용하여 SSH 액세스를 활성화합니다.ufw
    2. 원본 복원 rc.local(로 이동 rc.local.orig, rc.local자체 삭제)
    3. 원본이 rc.local실행 가능한지 테스트하고 실행하십시오.
    4. 성공적으로 종료되었습니다

관련 정보