저는 미리 설정 파일을 사용하는 동안 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
것입니다.
원본을 다음
rc.local
과 같이 백업합니다rc.local.orig
( 사용mv
).rc.local
그런 다음 시스템을 처음 부팅할 때 실행될 스크립트인 새 항목이 생성됩니다.새 스크립트는 다음을 수행합니다.
- 다음을 사용하여 SSH 액세스를 활성화합니다.
ufw
- 원본 복원
rc.local
(로 이동rc.local.orig
,rc.local
자체 삭제) - 원본이
rc.local
실행 가능한지 테스트하고 실행하십시오. - 성공적으로 종료되었습니다
- 다음을 사용하여 SSH 액세스를 활성화합니다.