KT 인터넷 추가단말 팝업 문제

KT인터넷을 몇 년 째 사용 중이다. 이런 적이 한번도 없었는데 최근 갑자기 추가단말 또는 오피스 IP 팩에 가입하라며 웹 서핑 중 팝업을 수시로 띄운다. 요새 단말 한두대만 쓰는 사람이 어디 있다고 이렇게 하는건지 모르겠지만, 정책이 그런가보다 하면서 넘어가려고 해도 팝업이 너무 거슬려서 해결책을 찾아보기로 했다. 물론 돈을 더 내고 쓰는 것은 해결 방법이 아니라고 생각하고, 정 방법이 없으면 다른 사업자로 갈아타면 되니까…

KT 인터넷 추가단말 팝업
  1. AdBlock Plus를 통한 팝업 차단
  2. 공유기에서 해당 팝업을 띄우는 서버에 접속 못하도록 차단
  3. DNS를 Google Public DNS로 변경

1, 2번의 경우는 브라우징을 할 때 팝업은 뜨진 않지만, 뭔가 반응이 느려진다. 예를들어 daum.net을 입력하면 daum.net/? 사이트로 redirect되면서 페이지가 표시되는데, 아마도 이런 과정을 거치면서 딜레이가 생기는 것 같다.

3번 방법은 KT의 DNS를 사용하지 않고 Google이 제공하는 Public DNS를 사용하도록 변경하는 것이다. 이렇게 변경을 하면 응답도 빨라지고 /? 붙은 사이트로 redirect되지도 않는다.

동일한 문제를 겪는 사용자들은 DNS 서버 주소를 한 번 바꿔보면 어떨까 싶다.

참고로 Google의 DNS 주소는, 아래 이미지와 같이 8.8.8.8, 8.8.4.4를 넣어주면 된다.

Windows DNS 설정
Mac DNS 설정

패킷을 잡아보고 확인해보면 좋겠지만, 지금의 난 그런 열정 까지는 없다.. -_-

라즈베리파이 부팅시 FTP통해 IP 알림 받기

라즈베리파이를 public 망에 물려서 공인 IP를 받아 쓰기 시작했다. 공인 IP를 받으면 어디서든 제약 없이 접근할 수 있으니 따로 서버 호스팅을 하는 것과 동일한 효과를 볼 수 있다. 공인 IP에 도메인을 연결해두면 도메인으로도 접근이 잘 된다.

라즈베리파이는 입출력 장치 없이 사용하는 서버이므로 부팅시 IP를 알려주는 방법이 필요해서 찾아봤는데, 처음 검색된 것이 gmail smtp를 이용하여 메일로 알림을 주는 것이다.

이것이 잘 되면 좋을텐데, 구글에서 비 보안 어플리케이션이 접근한다면서 보안 경고를 보내온다. 좀 꺼림직하여 다른 방법을 찾아봤다.

다음으로 시도해본것이 scp를 이용하여 ip를 다른 서버에 알려주는 것이다. authorized_keys도 입력을 해 두고 비번 없이 scp가 되도록 설정을 해 두었는데 이상하게 잘 안된다. pi 계정, root 계정 모두 pub key를 등록해봐도 안된다. rc.local에 스크립트를 추가하는 방식이었는데 될 것 같은데 안되는…

다음으로 시도해본게 NAS에 ftp로 ip 주소를 전송하는 방법이다. 라즈베리파이가 부팅하면서 ip.html 이라는 파일을 만들고 이를 ftp를 이용하여 NAS에 전송한다. NAS에 http로 접근하면 해당 주소를 web으로 바로 확인할 수 있다. cron 작업에 하루에 한번 IP를 리포트하도록 설정을 했다. 깔끔하게 동작한다.

pi@raspberrypi:~ $ cat startup.sh 
#!/bin/bash
HOST='nas.server.net'
USER='nas_ftp_id'
PASSWD='nas_password'
FILE='ip.html'

cd /home/pi

hostname -I > $FILE
date >> $FILE

ftp -n $HOST << END_SCRIPT
quote USER $USER
quote PASS $PASSWD
cd /web
put $FILE
quit
END_SCRIPT

위 스크립트는 ip address를 ip.html 파일에 기록한 후 ftp로 server로 전송하는 스크립트이다. 본인 상황에 맞게 수정하여 사용하면 될 것 같다.

부팅시 위 스크립트를 실행하기 위해 rc.local 파일에 다음 라인을 추가했다.

pi@raspberrypi:~ $ cat /etc/rc.local 
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

# Print the IP address
_IP=$(hostname -I) || true
if [ "$_IP" ]; then
  printf "My IP address is %s\n" "$_IP"
  /home/pi/startup.sh # 라인 추가
fi

exit 0

하루에 한 번 실행되도록 cron에도 추가해줬다.

pi@raspberrypi:~ $ crontab -l
# Edit this file to introduce tasks to be run by cron.
# 
# Each task to run has to be defined through a single line
# indicating with different fields when the task will be run
# and what command to run for the task
# 
# To define the time you can provide concrete values for
# minute (m), hour (h), day of month (dom), month (mon),
# and day of week (dow) or use '*' in these fields (for 'any').# 
# Notice that tasks will be started based on the cron's system
# daemon's notion of time and timezones.
# 
# Output of the crontab jobs (including errors) is sent through
# email to the user the crontab file belongs to (unless redirected).
# 
# For example, you can run a backup of all your user accounts
# at 5 a.m every week with:
# 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/
# 
# For more information see the manual pages of crontab(5) and cron(8)
# 
# m h  dom mon dow   command
0 4 * * * /home/pi/startup.sh