80에서 8080으로 포트 라우팅 지속


23

우분투를 통해 작동하는 Amazon EC2 인스턴스를 사용합니다. 기본적으로 보안 제한 사항에 따라 응용 프로그램을 포트 80에 바인딩 할 수 없으므로 포트 8080을 바인딩 한 다음 다음 명령을 통해 포트 80에서 8080으로 라우팅 리디렉션을 설정하십시오.

iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to 8080

그러나 서버를 재부팅하면이 명령을 다시 호출 할 때 까지이 설정이 더 이상 활성화되지 않는다는 것을 알았습니다.

그래서 제 질문은 시스템이 재부팅 된 경우에도 포트의 리디렉션 작업을 활성화하는 방법입니다.

답변:


18

이 명령을 추가하면 /etc/rc.local재부팅 후 자동으로 실행됩니다.


이미 그렇게했지만 여전히 답변에 감사드립니다
Ph0en1x

내 친구를 환영합니다, 좋은 방법입니다
nux

2
이것은 작동하지만 실제 답변은 아래의 @MeOMy의 답변입니다.
Dirk Groeneveld

15

대신 iptables-save 명령을 사용하십시오. 방화벽 규칙은 절대로 rc.local 스크립트에 들어 가지 않아야합니다. rc.local이 마지막으로 실행됩니다. 차단 규칙이 rc.local에 배치 된 경우 공격자가 존재하지 않는 규칙을 악용 할 수있는 짧은 시간이 있습니다. 이 상황에서는 중요하지 않지만 나중에 물릴 수있는 나쁜 습관에 빠지지 않는 것이 가장 좋습니다.


1
"sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to 8080"및 "sudo iptables-save"를 실행했습니다. 그러나 재부팅시 라우팅이 재설정되었습니다. 이 작업을 수행하는 방법을 이해하지 못했습니까?
gromit190

2
답이 불완전하다. iptables-save > some-file-path규칙을 저장하고, 당신은을 통해 복원 할 iptables-restore < some-file-path에서 rc.local. 또는 iptables-persistent서비스로 부팅하는 동안이 작업을 수행하십시오.
토마스 워드

이 작업을 수행하는 방법을 이해하고 싶습니다. 좀 더 구체적으로 설명해주세요
gromit190

4

다음은 공식 ipttable의 문서가 우리에게 어떻게 가르쳐 주는지입니다. 여기를 봐

/ etc / network / interfaces에 다음 두 줄을 추가하십시오.
pre-up iptables-restore < /etc/iptables.rules post-down iptables-save > /etc/iptables.rules

"post-down iptables-save> /etc/iptables.rules"줄은 다음 부팅시 사용할 규칙을 저장합니다.


이 작업을 완료하기 위해 공식적으로 권장되는 방법 (이 경우 가장 간단한 방법)을 사용하는 것이 좋습니다. KISS 방법을 사용할 수 있다면 +2입니다.
DeeJayh

0

Ubuntu 16.04에서 /etc/network네트워크 초기화 및 종료 중에 여러 번 스크립트를 실행 하는 일련의 디렉토리를 발견했습니다 .

if-down.d
if-post-down.d  
if-pre-up.d  
if-up.d
interfaces.d

그래서 평소처럼 구성을 덤프 할 수 있음을 발견했습니다.

$ sudo sh -c "iptables-save > /etc/iptables.rules"

그런 다음`/etc/network/if-pre-up.d/restore 파일을 만들었습니다 :

#!/bin/sh

iptables-restore < /etc/iptables.rules

... 실행 가능으로 플래그 지정

$ sudo chmod 755 /etc/network/if-pre-up.d/restore
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.