유동아피라서 켤때마다 ip가 바뀝니다. 가끔은 그대로이구여…
그래서 집밖에서도 컴에 접근할 수 있도록 스크립트를 만들어봤습니다…
/etc/rc.d/rc.local에 아래와 같이 등록해 두면 되겠죠…
/etc/startup/ip_send > /dev/null &
유동ip를 도메인으로 바꿔주는 서비스도 있던데… 그걸 별로 좋아하지 않는
분들은 써보세요.. ip만으로 찾아가니까 훨 빨리 뜨죠…
다른건 건들 필요 없고 /etc/startup 디렉을 만들고 거기다 ip_send, mail_list
파일만 만들어주면 됩니다. 포트를 바꾸어서 운영하시면 port 파일을 만들고 거기다
원하는 내용을 적어주면 됩니다.
우리집이 둘넷에서 ip를 필터링해서 www과 ftp가 안되더군요… 80번과 21번으로는…
그래서 바꿔서 돌리고 있습니다. 그것도 모르고 기본포트에서 안된다고 몇일을
난리를 쳤는데…
여기는 /etc/startup/ 이라는 디렉을 만들고 거기에 저장되어 있는 모양입니다.
그리고 mail_list라는 파일을 만들고 거기에다 보낼 사람의 메일주소를 적으면 됩니다.
# /etc/startup/ip_send
#!/bin/sh
# 부트시에 지난번의 ip와 새로 얻은 ip가 다를 경우 /etc/startup/ip 파일을 갱신하고
# 새로운 ip를 mail_list에 등록된 사용자에게 보낸다.
IP_ADDR=`/sbin/ifconfig eth0 | grep inet | cut -c21-35 | grep '^[1-9]'`
# 새로 얻은 ip를 구한다.
if [ -f /etc/startup/ip ]; then # 파일이 있을 경우…
OLD_IP_ADDR=`cat /etc/startup/ip`
else
OLD_IP_ADDR='192.168.0.1' # 파일이 없으면 기본 ip를
fi # 셋팅한다…
#echo "New ip_address is $IP_ADDR"
#echo "Old ip_address is $OLD_IP_ADDR"
if [ $OLD_IP_ADDR != $IP_ADDR ]; then
echo $IP_ADDR > /etc/startup/ip # 새로운 ip를 파일에 쓴다….
echo "Ip address is changed." > /etc/startup/ip_msg # 메일에 적을 말들..
echo "The new ip address is" >> /etc/startup/ip_msg
echo >> /etc/startup/ip_msg
echo "$IP_ADDR" >> /etc/startup/ip_msg
echo >> /etc/startup/ip_msg
echo >> /etc/startup/ip_msg
if [ -f /etc/startup/port ]; then
cat /etc/startup/port >> /etc/startup/ip_msg # 포트번호가 다르므로 같이 보낸다…
fi
if [ -f /etc/startup/mail_list ]; then
MAIL_LIST=$(grep '^[^#]' /etc/startup/mail_list | cut -d: -f1|sort|uniq)
# 주석문자 '#'로 시작하는 놈을 제외한 모든 이에게 메일을…
for i in $MAIL_LIST;do
# echo $i
cat /etc/startup/ip_msg | /bin/mail -s ip_address $i
done
else
echo "Please make your mail_list file…"
fi
fi
=======================================================================================
#!/bin/sh R=$(ifconfig ppp0|grep inet|cut -c21-35) echo "IP Address is $R" echo "Scripted by Heo, Jeong Gyun." echo "$R adsl.korea62.com mycomputer" > /etc/hosts echo "127.0.0.1 localhost localhost" >> /etc/hosts echo "192.168.1.1 masq.korea62.com adsl" >> /etc/hosts cp /etc/named.boot.ori /etc/named.boot echo "Primary $R adsl.rev" >>/etc/named.boot cp /etc/named.conf.ori /etc/named.conf cp /var/named/adsl.loo.ori /var/named/adsl.loo echo "@ IN A $R" >>/var/named/adsl.loo cp /var/named/adsl.loo /var/named/adsl.rev cp /var/named/adsl.for.ori /var/named/named.for echo "ns IN A $R" >>/var/named/named.for echo "mail IN A $R" >>/var/named/named.for echo "www IN A $R" >>/var/named/named.for echo "@ IN MX 5 mail" >>/var/named/named.for echo "@ IN NS adsl.korea62.com" >>/var/named/named.for echo "@ IN A $R" >>/var/named/named.for ######:##echo "zone \"$R\" {" >>/etc/named.conf echo "domain adsl.korea62.com" > /etc/resolv.conf echo "search adsl.korea62.com" >>/etc/resolv.conf echo "nameserver $R" >>/etc/resolv.conf echo "nameserver 168.126.63.2" >>/etc/resolv.conf echo "nameserver 168.126.63.1" >>/etc/resolv.conf /etc/rc.d/init.d/named restart
================================================================================
아이피 알아내기+ipmasquade 샘플
/etc/rc.d/init.d/firewall
#!/bin/sh
# Get ip
extip="`ifconfig ppp0 | grep 'inet addr' | awk '{print $2}' | sed -e 's/.*://'`"
# Save ip
echo $extip > /etc/ppp/ip
ipchains -P input ACCEPT
ipchains -P output ACCEPT
ipchains -P forward DENY
ipchains -F forward
ipchains -F input
ipchains -F output
# Do masquerading
echo 1 > /proc/sys/net/ipv4/ip_forward
ipchains -A forward -j MASQ
ipchains -A forward -s 192.168.1.2/32 -j MASQ
# Modules
modprobe ip_masq_ftp
modprobe ip_masq_irc
modprobe ip_masq_portfw
modprobe ip_masq_autofw
modprobe ip_masq_raudio
# Port forwarding(for secondary web server & cast server)
ipmasqadm portfw -f
ipmasqadm portfw -a -P tcp -L $extip 8080 -R 192.168.1.2 80
ipmasqadm portfw -a -P tcp -L $extip 8000 -R 192.168.1.2 8000
# Port forwarding(for SORIBADA)
port=9000
while [ $port -lt 9004 ]
do
ipmasqadm portfw -a -P tcp -L $extip $port -R 192.168.1.2 $port
ipmasqadm portfw -a -P udp -L $extip $port -R 192.168.1.2 $port
let port=port+1
done
# Port forwarding(for dialpad)
#ipmasqadm autofw -A -v -u -r udp 51200 51201 -c tcp 7175
#ipmasqadm autofw -A -v -u -r tcp 51210 51211 -c tcp 7175
# Port forwarding(for battle.net)
echo 1 > /proc/sys/net/ipv4/ip_masq_udp_dloose
ipmasqadm autofw -A -r udp 6112 6112 -c tcp 6112
# Port forwarding(for ICQ)
port=2000
while [ $port -lt 2020 ]
do
ipmasqadm portfw -a -P tcp -L $extip $port -R 192.168.1.2 $port
let port=port+1
done
# Setting GMT
rdate -s soback.kornet.nm.kr
hwclock --systohc
# Domain Setting(dyndns.org)
/etc/ez-ipupdate -c /etc/ez-ipupdate.conf
firewall-restart
#!/bin/sh
# Load ip
oldip='cat /etc/ppp/ip'
extip="'ifconfig ppp0 | grep 'inet addr' | awk '{print $2}' | sed -e 's/.*://'`"
if $oldip=""; then
exit
else
if $oldip=$extip; then
exit
else
# Delete ipmasqadm entry
ipmasqadm portfw -d -P tcp -L $oldip 8080
ipmasqadm portfw -d -P tcp -L $oldip 8000
port=9000
while [ $port -lt 9004 ]
do
ipmasqadm portfw -d -P -tcp -L $oldip $port
ipmasqadm portfw -d -P -udp -L $oldip $port
let port=port+1
done
port=2000
while [ $port -lt 2020 ]
do
ipmasqadm portfw -d -P tcp -L $oldip $port
let port=port+1
done
# Exec firewall
/etc/rc.d/init.d/firewall
fi
fi