그 게시물을 그대로 복사해서 rc.local에 넣으면
ESTABLISHED,RELATED -j ACCEPT 등이 아래줄로 밀려서
command not found가 나옵니다.
아는 사람들은 알아서 수정하겠지만
저같은 초보자들은 혹시 모를 수도 있지 않을까해서 적어봅니다.
: ===== ADSL 외장형 설치 및 IP공유(masq/iptables) =====
:
: ##### 설치환경 #####
:
: ADSL : 하나로 ADSL Light 외장형(HD3100)
: Server : Wow Linux 7.1 paran (kernel 2.4.x)
: Client : Window 2000 professional
: LANcard : 10/100M realtek (all)
:
: ##### 하나로 ADSL 잡기 #####
:
: 1. 랜카드를 꼽는다. 부팅한다.
: 부팅시 혹은 ifconfig 해보면 eth0 인터페이스가 잡혀있음을 확인할수 있다.
:
: 2. eth0에 ip를 부여한다.
: netcfg로 192.168.0.1(ip), 255.255.255.0(netmask), allboot(yes), proto
: (none)한다.
:
: 3. adsl-setup
: 알아서 설정해준다. DNS 확실하게 쳐넣고, firewall은 0(none)으로 하자.
:
: 4. adsl-start
: ping empas.com 해보자. 핑되면 인터넷 다 된다 이제.
:
: ##### IP 공유하기 -Masquerade using iptables #####
:
: 1. (iptables이고 뭐고간에 우선 공유컴끼리 핑이 먹는 환경을 만들어야한
: 다.)
: 서버컴에 랜카드 하나더 꼽고 인식시킨다.
: 아까와 마찬가지로 잘 올라왔는지 확인한다.
:
: 2. netcfg해서 eth1을 eth0과 다똑같이하고 ip만 192.168.1.1 해준다.
:
: 3. 클라이언트컴(windog)에서 TCP/IP 셋업한다.
: 192.168.1.101(ip), 255.255.255.0(netmask), 192.168.1.1(gateway).
: DNS는 서버컴의 DNS와 같이 해준다.
:
: 4. 크로스케이블로 클라이언트와 서버컴의 eth1을 연결한다.
: 서버->클라이언트 : ping 192.168.1.101
: 클라이언트->서버 : ping 192.168.1.1
: 양쪽다 잘 가나 확인한다.
: 자 이제 본격적인 공유 설정을 시작할 시간이다.
:
: 5. iptables 관련 설정을 시작한다.
: /etc/rc.d/rc.local 파일을 열어 다음을 추가한다.
: (이제 추가하는 내용은 masq 관련 설정과 adsl을 구동하는 스크립트다.)
:
: ----------------------------- 요기서부터 ------------------------
:
: #
: # pppo/eth1을 각각 EXTIF/INTIF 변수로 선언
: #
: EXTIF="ppp0"
: INTIF="eth1"
: echo "---> External Ethernet Interface : $EXTIF"
: echo "---> Internal Ethernet Interface : $INTIF"
:
: #
: # iptables + ftp 사용을 위한 모듈 등록
: #
: echo "---> iptables module up <---"
: /sbin/depmod -a
: /sbin/insmod ip_tables
: /sbin/insmod ip_conntrack
: /sbin/insmod ip_conntrack_ftp
: /sbin/insmod ip_nat_ftp
: /sbin/insmod iptable_nat
:
: #
: # ip_forward 를 위한 커널매개변수 수정
: #
: echo "1" > /proc/sys/net/ipv4/ip_forward
:
: #
: # Dynamic IP 사용을 위한 커널매개변수 수정
: #
: echo "1" > /proc/sys/net/ipv4/ip_dynaddr
:
: #
: # IP forwarding / Masquerading 설정
: #
: echo "---> Setting up IP forwarding/masquerading <---"
:
: #
: # 1. 기존 rule을 지우고, 새로운 rule을 적용하기위한 정책설정
: #
: iptables -P INPUT ACCEPT
: iptables -F INPUT
: iptables -P OUTPUT ACCEPT
: iptables -F OUTPUT
: iptables -P FORWARD DROP
: iptables -F FORWARD
: iptables -t nat -F
: echo "---> step 1 complete"
:
: #
: # 2. iptables rule 설정
: #
: iptables -A FORWARD -i $EXTIF -o $INTIF -m state --state
: ESTABLISHED,RELATED -j
: ACCEPT
: iptables -A FORWARD -i $INTIF -o $EXTIF -j ACCEPT
: iptables -A FORWARD -j LOG
: echo "---> step 2 complete"
:
: #
: # 3. ip masquerade 설정
: #
: iptables -t nat -A POSTROUTING -o $EXTIF -s 192.168.1.0/24 -j
: MASQUERADE
: echo "---> step 3 complete"
:
: #
: # start ADSL
: #
: echo "---> Starting ADSL now!! <---"
: adsl-start
:
: ------------------------------ 요기까지 -------------------------
:
: 6. 재부팅하면 이제 자동으로 공유+ADSL이 올라온다.
: 클라이언트컴과 서버컴에서 ping empas.com 해보자.
: 양쪽다 잘 동작하면 이제 당신은 해방이다. (야허
/)
:
: ##### 클라이언트컴 2대 이상 공유하기 #####
:
: 위와 마찬가지로 해주고 eth2의 ip는 192.168.2.1로 해준다.
: 참고로 필자의 경우 192.168.1.2 이렇게 해주니 또다시 핑이 안먹었었다.
: 그리고 iptable 관련설정에서 eth1(external)에 해주었던것과 마찬가지로
: eth2에 대한 설정을 추가해준다.
:
: ##### 주의사항 #####
:
: -> ping test할때 error message
:
: 이따금 "Request timed out" 혹은 "Destination host unreachable"이란
: 메시지가 뜰때가 있다. 필자가 서버컴(리눅)의 IP를 다음과같이 설정했을때
: 다.
: eth0 : 192.168.0.1(external)
: eth1 : 192.168.0.2(internal)
: 다음과같이 바꿔주었다.
: eth0 : 192.168.0.1(external)
: eth1 : 192.168.1.1(internal)
: 핑이 해결되었다. 어디서 주워들은얘긴데 DHCP를 쓸 경우에는
: 192.168.0.x 요 아이피는 언넘이 지정해서 써야한다나.. 하여튼 그런 이유로
: 내부아이피로는 사용치 않을것을 권한다.
: (참고로 랜카드가 서로 달라서 ex) 10M LAN <-> 10/100M LAN
: 이런일이 있을수 있다고하나, 이또한 95% 이상의 경우 믿기어려운 일이다 -
: _-;
: 요새 거의 10/100M LAN이다)
:
: -> 크로스케이블 확인방법
:
: 서로 핑이 안되다보면 괜히 애꿎은 케이블을 의심하게되곤 한다. (
: 거의 95% 이상의 경우에 케이블이 문제인 경우는 없었다 사실.
: 매장에 가서 살때 테스트를 해보고 사자.
: 필자의 경우 보니까 테스트기에 연결하고 작동하는걸 보여주던데
: 선 양쪽의 기계가 불이 반대방향으로 들어오는걸 확인할수 있었다.
: ex) 기계1:램프 1->2->3->4 / 기계2:램프 4->3->2->1
:
: -> iptables 실행시 "Device is busy..."
:
: masquerading은 여러가지 방법으로 가능하다.
: 그중 iptables/ipchains/ipfwadm 등이 유명한데 각각
: 커널버전 2.4.x/2.2.x/2.0.x 에서 권장하는 방식이라고 한다.
: 고로 필자의 경우 iptables만 사용할것이므로 다른 모듈을 분리수거해줘야
: 했다.
: default로 깔고나면 대개의 경우 iptables와 ipchains가 모두 올라와있다.
: 콘솔에서 setup을 치고 "System Services" 항목에서 ipchains를 찾아
: uncheck해주자.
: "Firewall configuration"에서도 방화벽 사용 안함에 체크해주자.
:
: -> 외부로 ping이 안될때 (혹은 인터넷연결이 안될때)
:
: 십중팔구 DNS셋팅이 잘못돼있어서다.
: 필자의 경우 하나로 ADSL DNS는 210.220.163.82/210.94.6.67 이었다.
: 하나로측에 문의할때마다 다른 대답을 받았으나 이게 최종적으로 확실하다.
: (
: DNS는 사용중인 모뎀이 ADSL인가 케이블인가에 따라서도 다른 모양이다 아
: 마.
:
: -> eth[n] 이더넷카드를 인식못할때
:
: 이건 드물게 일어나는 현상이라던데
: 필자의 경우 첨부터 랜카드세장을 꼽았을때 다 인식을 못했다.
: 참고로 세개 모두 PCI방식 리알텍 카드였다. 당근 자동인식 해줘야한다.
: 그럴땐 한개씩 뺐다꼽았다를 반복하면서 수차례 리부팅해주니까 결국 다 인
: 식했다.
: ISA방식은 좀 까다롭다고 한다.
: 일단 부팅시 CMOS셋업에서 PNP기능을 꺼준다음에 IRQ를 강제로 인식시켜줘
: 야 한다.
: ..고 들었다. (
:
: ##### 후기 #####
:
: 리눅스에서 인터넷 구동/공유 작업은 참으로 기나긴 싸움이었다
;
: 필요한 거의 모든 경우의 수를 동원하며 작업해보았고
: 그 결실이 보름만(?)에 이렇게 나타났다.
: 위에 정리한 내용의 20배정도의 삽질이 필요했다.
: 도중에 설치만 십수차례 반복했고, 엄한 크로스케이블도 세개나 구입했으며,
: 리눅스서적만 10만원 이상을 구입했고, 리눅서들이 자주 방문하는 사이트
: 열군데정도는 이제 웹서핑이 하루일과가 됐다.
: 반복된 삽질속에서 조금이나마 리눅스에 대해 알게되었고,
: 관련한 다른 내용도 간접적으로 공부할수 있었다. 한마디로 보람이 있었다.
: 나는 쉽게 질문글을 올리지 않았다.
: 사이트의 필요한 모든 자료를 뽑아서 보았고,
: 질문란과 팁란에서 떠오르는 모든 검색어로 검색된 글을 최소한 2000년도 1
: 월
: 글까지 죄다 읽었다.
: 질문이라고 올린건 불과 삽질 2주가 지난 어제 처음으로 질문글 세개를 올렸
: 고,
: 질문을 할때는 나름대로 정성을 다했다.
: 결국 답을 찾아낸것도 오늘 방문한 서점에서 몰래훔쳐본 책에서
: 뜻하지않은 오류를 발견하게 되었다.
: 원래 바쁜 현대인인지라 일단 내문제가 해결되면 땡~ 이란 사고방식으로 살
: 았지만
: 이런 기나긴 삽질을 하고나서 보니 한국땅 어디에선가 나와같이
: 삽을하고있을 어느 불쌍한 한 폐인의 그림자가 내눈에 스쳤다. (
;
: 누군가 이글을 통해 정말 작은 도움이라도 얻을수있기를 바랄뿐이다.
:
: --
: email : just4fun at nownuri.net--오늘도 삽질하는 한 리눅서 -루비-가