출처 : http://www.hackerschool.org/HS_Boards/zboard.php?id=Free_Lectures&no=1618
1.ping
2.ipconfig
3.nslookup
4.route
5.tracert
6.pathping
7.arp
8.netstat
9.nbtstat
10.hostname
11.ftp
12.telnet
13.tftp
14.getmac
15.ipxroute
16.netsh
17.proxycfg



1. ping
Packet Internet Groper의 약자로서, ip기반 유틸리티이고 icmp프로토콜을 이용합니다. ping에서 보내는 icmp패킷의 data영역은 소문자 abcdefghijklmnopqrstuvw를 반복해서 보냅니다. 핑의 경우, 상대 호스트에 icmp_reply가 열려 있어야 응답이 옵니다. 요즘은 보안상의 이유로 icmp_reply를 막아 놓은 경우가 많습니다.



예1) 아래의 경우, icmp_reply가 막혀 있어서 응답이 없습니다.
c:\>ping naver.com



예2) 아래의 경우엔 열려있어서 응답이 옵니다.
c:\>ping kr.yahoo.com



옵션을 예제로 보여드리겠습니다. 옵션 설명문은 ping /?로 알 수 있습니다.



예3)사용자가 ctrl-c로 멈추기 전 까지 무한정 핑을 날립니다.
c:\>ping -t kr.yahoo.com



예4)ip주소를 호스트이름으로 바꿔서 핑 날립니다. reverse dns가 설정되어 있는 ip만 가능합니다.

c:\>ping -a 211.115.101.150 (home.vip.krs.yahoo.com의 ip)



예5)핑을 10개만 날립니다.

c:\>ping -n 10 kr.yahoo.com



예6)보내는 버퍼 사이즈를 정합니다. 최대값은 65500입니다.
c:\>ping -l 2800 kr.yahoo.com
c:\>ping -l 65500 127.0.0.1


최대값은 주로 1hop 거리인 gateway나 루프백 테스트에서만 되는거 같습니다. 호스트마다 받아들이는 최대값이 다르게 되어있어서 그런 것이라 생각하고 있습니다.



-l옵션은 외부로 나가는 망이 로드밸런싱 구성이 되어 있을 때, mtu보다 큰 사이즈 (예:2800)를 보내서 정상적으로 되나 테스트 하는 용도로 많이 쓰입니다.



예7)보내는 패킷을 분할하지 않습니다. -l옵션과 함께 많이 쓰이는데, 보통 mtu는 1500이므로 icmp헤더 8바이트, ip헤더 20바이트를 뺀 1472이 최대값이 됩니다.
c:\>ping -l 1472 -f 127.0.0.1



예8)보내는 패킷의 ttl값을 변경합니다. 예제에서는 hop이 10개 이하인 경로에 대해서만 응답이 올 겁니다.
c:\>ping -i 10 ping.test.com



예9)TOS값을 정합니다. ip헤더에서 tos는 4비트만 할당되어 있는데, ping 에러메세지에서는 0~255의 값을 넣으라고 하네요. +_+ 0000,1000,0100,0001등 많이 쓰이는 값을 넣고 이더리얼로 돌려봐도 특별한 변화가 없습니다. 아직 뭔지 모르겠다는 뜻입니다. ^^
c:\>ping -v 1 ping.test.com



예10)traceroute처럼 경로를 보여줍니다. 1부터 9까지.
c:\>ping -r 9 ping.test.com



예11)경로별 응답온 시간을 보여줍니다. 1부터 4까지.
c:\>ping -s 4 ping.test.com



예12)응답이 없을 경우, 다음 시간(밀리초)까지만 기다리고 재시도합니다.
c:\>ping -w 100 null.test.com



예13)각 옵션은 짬봉해서 쓸 수 있습니다. 사실 -t옵션과 -l옵션이 제일 많이 쓰이죠. ^^
c:\>ping -t -l 2500 -s 4 test.com











2.ipconfig
unix계열의 ifconfig와는 달리 그냥 보여주는 기능밖에 못 합니다. dns와 dhcp에 관련된 조작만 조금 할 수 있구요. ㅎㅎ



예1)nic별로 nic이름, ip, netmask, gateway정보를 보여줍니다.
c:\>ipconfig



예2)wins서버, dns서버, mac주소등 몇 가지 정보를 더 보여줍니다.
c:\>ipconfig /all



예3)dhcp 설정일 때, dhcp서버에게 ip 임대 기간을 갱신요청 합니다. 어댑터 미지

정시, 모든 어댑터가 대상합니다.
c:\>ipconfig /release



예4)dhcp 설정일 때, dhcp서버에게 ip반납 후 새롭게 요청합니다. 어댑터 미지정시, 모든 어댑터가 대상합니다.
c:\>ipconfig /renew



예5)dns캐시 목록을 보여줍니다.
c:\>ipconfig/displaydns



예6)dns캐시 목록을 지웁니다. 주로 dns관련 문제로 dns서버를 바꿨을 때, 이 명령 후 테스트합니다.
c:\>ipconfig /flushdns



예7)ip주소를 갱신하고 ddns에 레코드를 등록합니다.
c:\>ipconfig /registerdns

dhcp갱신은 ipconfig말고도 시작->제어판->네트워크연결->nic우클릭->사용 안 함->사용. 이런 식으로 갱신해도 됩니다.









3.nslookup
name server lookup의 약자이고, dns질의를 해 보는 udp53포트 기반 유틸리티입니다. 네트워크 문제의 상당수가 dns관련 문제이니까 dns서버 동작원리에 대해서 알아두면 많은 도움이 됩니다.



예1)도메인에 대한 ip를 질의합니다.
c:\>nslookup www.test.com



예2)ip에 대한 reverse도메인 질의를 합니다.
c:\>nslookup 192.168.0.1



예3)옵션을 줘서 질의합니다.
c:\>nslookup
> www.test.com
server: 168.126.63.1
address:168.126.63.1

name:www.test.com
address:192.168.0.1

> 192.168.0.1
server: 168.126.63.1
address:168.126.63.1

name:www.test.com
address:192.168.0.1

> server 10.0.0.1 (기본 질의 서버를 바꿉니다)
Default Server: ns.test.com
address: 10.0.0.1

> set all
(현재 설정되어 있는 기본 질의 옵션들을 보여줍니다)
> set type=any(기본 질의 타잎을 A(호스트)에서 ANY(도메인에 해당하는 모든 정보)

로 바꿉니다)
> test.com
test.com   internet address=192.168.0.1 (루트도메인 정보입니다)
test.com   MX preference = 10, mail exchanger = mail.test.com (메일서버가 이

중화되어 있을 경우, 여러 개의 값이 나옵니다.
test.com   nameserver = ns1.test.com (1차 네임서버)
test.com   nameserver = ns2.test.com (2차 네임서버)
test.com
      primary name server = ns1.test.com
      responsible mail addr = root.test.com
      serial = 2007010101 (임의의 숫자.보통 도메인 존 수정한 날짜로 합니다. yyyymmddhh)
      refresh = 28800 (초단위.갱신주기)
      retry = 14400 (초단위.갱신 실패시 재시도 주기)
      expire = 360000 (초단위.갱신 실패시 만료일)
      default TTL = 0


test.com   text =
      "v=spf1 ip4:192.168.0.10 -all" (화이트 도메인 관련 정보입니다. 메일서버 정책에 따르겠다는 설정)


test.com   nameserver = ns1.test.com
test.com   nameserver = ns2.test.com
mail.test.com internet address=192.168.0.10
ns1.test.com internet address=192.168.0.1
ns2.test.com internet address=192.168.0.2


> set type=mx (메일서버 질의)
> test.com
test.com   MX preference = 10, mail exchanger = mail.test.com
test.com   nameserver = ns1.test.com
test.com   nameserver = ns2.test.com
mail.test.com internet address=192.168.0.10
ns1.test.com internet address=192.168.0.1
ns2.test.com internet address=192.168.0.2


> set type=A (기본값. 호스트 질의)
> test.com
server: ns1.test.com
address:192.168.0.1

name:www.test.com
address:192.168.0.1


> ?
가능한 옵션들이 다 나옵니다.









4.route
현재 호스트의 라우팅 보여주기 및 경로 재설정하는 유틸입니다. 라우팅이라고 하면 의아해 하시겠지만 ip프로토콜이 탑재된 호스트는 기본적으로 라우팅 기능을 할 수 있습니다.



예1)현재 라우팅 목록을 보여줍니다.
c:\>route print



예2)192로 시작하는 목록, 100이 포함되어 있는 목록을 보여줍니다.
c:\>route print 192*
c:\>route print *100*



예3)10.0.0.0/16을 목록에 추가합니다.
c:\>route add 10.0.0.0 mask 255.255.0.0 192.168.0.1 metric 10



예4)10.0.0.0/16의 메트릭을 변경합니다.
c:\>route change 10.0.0.0 mask 255.255.0.0 192.168.0.1 metric 20
(메트릭 변경은 윈도 네트워크정보의 tcp/ip설정 고급란에서도 가능합니다)



예5)기본 경로를 목록에 추가합니다.
c:\>route add 0.0.0.0 mask 0.0.0.0 192.168.0.1
(메트릭을 지정하지 않으면 기본메트릭20이 적용됩니다)
(기본 경로가 2개일 경우 기본 게이트웨이 산정은 메트릭에 의존하고, 메트릭이 동

일할 경우 랜덤하게 결정됩니다^^)



예6)추가된 목록 10.0.0.0/16을 지웁니다.
c:\>route delete 10.0.0.0 mask 255.255.0.0 192.168.0.1 metric 20



예7)추가된 라우팅 정보와 기본경로를 지웁니다. 라우터가 아니라 호스트일 경우,

이 명령어 후에는 반드시 기본 경로를 지정해줘야 합니다.
c:\>route -f



예8)추가 라우팅 목록이 재부팅 후에도 남아있도록 합니다.
c:\>route -p add 10.0.0.0 mask 255.255.0.0 192.168.0.1 metric 10







5.tracert
상대방 호스트까지 가는 경로를 보여줍니다. icmp를 쓰므로, 역시 ip기반 유틸리티입니다.
원리는 ttl(time to live)값을 1에서부터 1씩 늘려가면서 목적지에게 icmp type 8 echo request를 보내서 라우터마다 ttl값이 만료됐다는 메시지를 받음으로써, 각 hop마다의 라우터를 확인할 수 있습니다. 가끔 라우터-라우터 구간의 사설ip로도 응답이 오는 것도 이 때문입니다.



이것도 역시 보안상의 이유로 icmp type 0 echo reply나 icmp type 11 ttl exceeded를 비활성화 해 놓은 구간에서는 응답이 없어서 그 구간은 * 혹은 request time out으로 표시됩니다.



예1)www.test.com까지의 경로 확인
c:\>tracert www.test.com



예2)주소를 호스트이름으로 바꾸지 않는 옵션입니다. 처리속도가 엄청나게 늘어나므로 꼭 사용해주세요. ^^
c:\>tracert -d 192.168.0.1



예3)최대 홉 수를 10으로, 각 구간의 응답대기 시간을 500ms로 설정합니다.
c:\>tracert -h 10 -w 500 192.168.0.1






6.pathping
traceroute와 ping의 짬봉+통계치입니다. ^^ icmp를 쓰므로, 역시 ip기반 유틸리티입니다.




예1)이름변환 없이 진행합니다. (tracert의 -d옵션과 같음)
c:\>pathping -n 192.168.0.1



예2)최대 홉 수를 10으로, 각 구간의 응답대기 시간을 500ms로 설정합니다.
c:\>pathping -h 10 -w 500 192.168.0.1



예3)각 ping사이의 대기시간을 100ms로, 보내는 패킷의 source ip를 192.168.0.10으로 합니다
c:\>pathping -p 100 -i 192.168.0.10 192.168.0.1



예4)각 구간 사이의 layer-2 priority tag를 검사합니다. (802.1p QoS on the mac level)
c:\>pathping -T 192.168.0.1








7.arp
arp 캐시 테이블을 보여주고, 조정하는 유틸입니다.



예1)현재의 arp 캐시 테이블을 보여줍니다. 기본 저장기간은 5분이니까, 보여지는 목록은 5분동안의 통신된 내역입니다.
c:\>arp -a



예2)특정 호스트의 arp 테이블을 지우거나 전부 지웁니다.
c:\>arp -d 192.168.0.100
c:\>arp -d 192.168.*
c:\>arp -d 192.168.0.1*
c:\>arp -d *



예3)수동으로 arp 테이블에 호스트를 올립니다.
c:\>arp -s 192.168.0.200 aa-bb-cc-dd-ee-ff








8.netstat
소켓 인터페이스를 통해 연결되어진 내용을 보여줍니다. 아주 중요한 명령어 중에 하나죠.



예1) 주소 및 포트번호를 이름변환 없이 숫자로 보여주면서 모든 연결 및 대기 포트를 표시합니다. 제일 많이 쓰이죠. ^^
c:\>netstat -na



예2) 이더넷 통계를 보여줍니다. 물리계층 에러도 확인할 수 있어서 좋습니다
c:\>netstat -e



예3) 사용되는 프로토콜별로 통계를 보여줍니다. 보통 tcp,ip,udp,icmp를 보여줍니다.
c:\>netstat -s



예4) 연결을 만드는데 주관한 프로세스의 실행 프로그램을 모두 보여줍니다.
c:\>netstat -ba


예5) 모든 연결 중에 특정 프로토콜만 보여줍니다.
c:\>netstat -a -p TCP
c:\>netstat -a -p UDP



예6) route print와 같은 결과물을 보여줍니다.
c:\>netstat -r







9.nbtstat
NetBIOS인터페이스와 관련된 정보를 보여줍니다.



예1)Netbios 이름으로 ip와 mac정보등을 보여줍니다.
c:\>nbtstat -a 테스트서버



예2)ip주소로 NetBIOS이름, mac정보등을 보여줍니다.
c:\>nbtstat -A 192.168.0.1



예3)현재 시스템의 NetBIOS 이름 캐시와 해당IP를 보여줍니다.
c:\>nbtstat -c



예4)현재 시스템의 NetBIOS 이름들을 보여줍니다.
c:\>nbtstat -n



예5)arp -d *처럼 모든 넷바이오스 이름 캐시를 지웁니다.
c:\>nbtstat -R



예6)네트워크를 통한 이름처리 통계를 보여줍니다. 여기서 나오는 Name Server는 WINS서버를 뜻합니다.
c:\>nbtstat -r









10.hostname
현재 시스템의 호스트 이름을 보여줍니다. 리눅스에서는 호스트 이름도 바꾸는 기능이 있지만, 윈도에선 걍 보여주기만 합니다. ^^

예)주로 키보드 만지다가 마우스 잡기 귀찮을 때 쓰는 명령어입니다. ㅋㅋ
c:\>hostname






11.ftp
어떠한 이유에 의해서 윈도우 유틸리티를 사용 못 할 때가 있습니다. 그런 때를 대비해서 텍스트 모드의 사용법도 알아두면 요긴하게 사용됩니다. tcp20,21 포트 기반 유틸리티입니다.



c:\>ftp
ftp>open 192.168.0.1 (해당 호스트로 접속합니다. 불행히도 21번 포트를 제외한 다른 포트 지정은 안됩니다)
user: anonymous (익명연결의 경우)
password: 패스워드 혹은 익명일 경우 아무 문자나.
ftp>ls 혹은 dir (원격지 디렉토리 목록을 보여줍니다)
ftp>cd temp (원격지의 하위 디렉토리로 이동합니다)
ftp>get test.exe (파일을 다운로드합니다)
ftp>lcd \data (로컬 시스템의 경로를 바꿉니다)
ftp>put upload.exe (파일을 업로드합니다)
ftp>mget test1.exe test2.exe test3.exe (파일을 여러 개 다운합니다)
ftp>mput upload1.exe upload2.exe (파일을 여러 개 업로드합니다)
ftp>ascii (파일 전송 기본 모드를 ascii로 바꿉니다)
ftp>binary (파일 전송 기본 모드를 binary로 바꿉니다)
~윈도는 기본이 binary이고, 리눅스는 기본이 ascii입니다. 참고하세요~
ftp>bye (접속종료)








12.telnet
핑과 더불어 네트워크 엔지니어들이 제일 많이 쓰는 유틸리티라 잘 아시겠죠. ^^ 보통은 tcp25포트 기반입니다.

예1)해당 호스트에 포트 50으로 접속
c:\>telnet 192.168.0.1 50



예2)웹브라우저 접속을 못 하는 상황에서 해당ip의 정보 조회를 할 때

c:\>telnet ipwhois.nic.or.kr 43

엔터후에 화면이 clear되는데, 조회하고자 하는 ip를 입력 후 엔터치면 해당 ip에 대한 정보가 화면에 나오고 텔넷접속은 종료됩니다. 웹페이지에 보여지는 내용 기준으로 <br>되기 때문에 텔넷 윈도우를 크게 키운 후 사용하시면 좋습니다.




13.tftp
시시한(?) ftp입니다. ^^ udp 69 기반입니다.



예1)해당 호스트의 test.exe파일을 binary형식으로 다운로드
c:\>tftp -i 192.168.0.1 GET test.exe



예2)현재 시스템의 test.exe파일을 binary형식으로 원격지에 test10.exe으로 업로드.
c:\>tftp -i 192.168.0.1 PUT test.exe test10.exe






14.getmac
rpc프로토콜을 이용하여 원격지에 있는 호스트의 mac주소를 얻어내는 명령어입니다. 해당 호스트의 계정정보가 필요합니다.

출력 결과는 mac주소와 nic의 디바이스 정보가 나오고, tcp135와 tcp2041으로 통신합니다.



예) 원격지 호스트가 test.com(ip나 netbios이름으로 해도 됨) 이고, id:test pw:testpw이라면,
c:\>getmac /S test.com /U test /P testpw
c:\>getmac /S 192.168.10.1 /U test /P testpw





15.ipxroute
제 pc에 ipx프로토콜도 없구, ipx쪽은 잘 모르는데 이런 명령어가 있길래 그냥 적어만 봤습니다. ^^






16.netsh
네트워크 관련 설정 등을 해 주는 유틸리티입니다. 윈2003의 RRAS와 연계된 많은 기능들이 있지만, 일반적으로는 노트북 사용자처럼 ip주소를 여러 번 변경하는 상황에 응용해서 많이 쓰입니다.



예1) 아래와 같이 만들고 static1.bat만 실행해주면 ip가 바뀝니다.
c:\>copy con static1.bat
netsh interface ip set address "로컬 영역 연결" static 192.168.0.10 255.255.255.0 192.168.0.1
netsh interface ip set dns name="로컬 영역 연결" source=static 168.126.63.1 register=PRIMARY
^Z


예2) 아래와 같이 만들고 dhcp.bat만 실행해주면 dhcp로 바뀝니다.
c:\>copy con dhcp.bat
netsh interface ip set address "로컬 영역 연결" source=dhcp
netsh interface ip set dns name="로컬 영역 연결" source=dhcp
^Z



예3)도움말 윈도 창이 뜨면서 gui환경으로 기본적인 네트워크 자가진단을 하고 결과를 알려줍니다.
c:\>netsh diag gui







17.proxycfg
웹 브라우저의 프록시 설정을 바꿔줍니다. 웹 브라우저에서 프록시 서버가 사용 가능으로 체크되어 있어야 동작합니다.



예1) 프록시 서버가 proxy.test.com. ip는 192.168.100.1이라면,
c:\>proxycfg -p proxy.test.com
c:\>proxycfg -p 192.168.100.1



예2) 웹 브라우저의 프록시 설정값대로 바꿔줍니다.
c:\>proxycfg -u

블로그 이미지

레몬도리 LemonDory

개발자의 이야기

댓글을 달아 주세요

네트워크 관련 명령어

출처 : http://egloos.zum.com/yoontaesub/v/110992


ping 명령어

  : 네트워크 환경 장비들 간의 통신이 잘 되고 있는지 확인하는 명령어. ICMP 프로토콜을

   이용하여 로컬 호스트와 외부와의 통신이 이루어지고 있는지 테스트하기 위한 네트워크

   명령어로 결과값 중 TTL 값으로 사용되는 운영체제도 알 수 있음.

 - # ping [option] 호스트

            -c : ping 테스트 시 지정한 수만큼의 패킷을 보냄. 기본 무한

            -s : ping 테스트 시 보내는 패킷의 바이트 수를 지정. 기본 56Byte

            -i : ping 테스트 시 몇 초 간격으로 패킷을 보낼지 설정. 기본 1초

            -w : ping 테스트 시 패킷을 보내고 몇 초 후에 실행을 멈출것인지 설정


 - # ping -c 4 -i 2 192.168.1.32 ->192.168.1.32 호스트를 4개의 패킷, 2초 간격으로 패킷 전송

 


netstat 명령어

  : 라우팅과 관련된 정보를 얻기 위한 명령어. 라우팅 테이블을 화면에 표시.


 - # netstat -nr : 커널 라우팅 테이블을 10진수의 수치정보로 출력

 - # netstat -a | grep LISTEN : 열려 있는 포트를 출력 (= # netstat -atp)



traceroute 명령어

  : 네트워크 통신 경로를 확인하는 명령어로 패킷이 목적지까지 전달되는 경로를 확인하는

   명령어. ICMP를 이용하여 TTL값을 포함하고 있는 패킷을 전송하여 반환값을 출력.


 - # traceroute -i eth1 168.126.63.1 : 특정 인터페이스를 통해 목적지의 호스트까지 경로 확인



My traceroute 명령어

  : 콘솔 상에서의 traceroute와 동일한 GUI 환경에서의 네트워크 통신 경로 확인 명령어



rpcinfo 명령어

  : 한 프로그램이 네트워크 상의 다른 호스트의 프로그램에 서비스를 요청하는 데 사용

   되는 프로토콜인 RPC의 정보를 확인하는 명령어


 - # rpcinfo [ -n <포트번호> ] -u <호스트> <프로그램번호> [ <버전번호> ]

 - # rpcinfo [ -n <포트번호> ] -t 호스트 프로그램 번호 [ 버전번호 ]

 - # rpcinfo -p [ <호스트> ]

 - # rpcinfo -b 프로그램번호 버전번호

 - # rpcinfo -d 프로그램번호 버전번호



arp 명령어

  : IP 주소를 하드웨어 주소인 MAC 주소로 변경해 주는 명령어. ARP cache는 IP 주소와

   MAC 주소의 목록을 유지하는데 사용되는 메커니즘으로, 서로 간에 맵핑된 정보는

   cache에 잠시 동안 보관되는데 최근에 맵핑된 정보를 보기 위해 사용하는 명령어가 바

   로 arp임.


 - # arp [option] 호스트

          -a : 지정한 호스트에 대한 정보를 출력하며, 호스트를 지정하지 않을 경우에는 현재 캐시

               에 들어있는 모든 정보를 출력

          -s : 캐시에 저장된 특정 IP 주소에 대한 MAC Address 변경

          -d : 캐시에 저장된 특정 MAC Address 삭제

          -i : 지정한 네트워크 인터페이스의 ARP를 출력

 

블로그 이미지

레몬도리 LemonDory

개발자의 이야기

댓글을 달아 주세요

출처 : http://blog.daum.net/hypermax/6


*먼저 내 업무에서는 iptables와 hosts.allow 파일을 함께 이용 한다.

1. 방화벽 내용 넣고 > 방화벽 실행 > 방화벽 내용 저장

#cd /etc/sysconfig/

#vi iptables

(iptables 내용)

#service iptables restart

#/etc/init.d/iptables save

 

--------------▶ iptables 사용법

-기본 모두 막고 시작하기-
# iptables -F
# iptables -X
# iptables -P INPUT DROP
# iptables -P FORWARD DROP
# iptables -P OUTPUT DROP
-루프백 허용
-
# iptables -A INPUT -i lo -j ACCEPT
# iptables -A OUTPUT -o -lo -j ACCEPT

iptables [-t table] command [match] [target\jump]

 

-A(--append)            : 규칙을 추가한다.

-N(--new-chain)        : 새로운 체인 생성

-X(--delete-chain)     : 체인 제거

-P(--policy)              : 체인 기본정책 변경

-L(--list)                  : 체인의 규칙상태 보기

-F(--flush)               : 체인내의 모든 규칙 제거(방화벽 초기화)

-Z(--zero)                : 체인내의 모든 규칙의 패킷과 바이트의 카운트를 0으로 초기화

-D(--delete)             : 규칙을 삭제

-R(--replace)            : 새로운 규칙으로 대체

-I(--insert)               : 체인의 가장 처음에 규칙을 추가한다.

-E(--rename-chain)    : 체인의 이름을 변경한다.

 

 

2) iptables 체인 종류

INPUT : 로컬로 들어오는 패킷(입력 패킷)

FORWARD : INPUT와 OUTPUT 역할, 라우터에 방화벽을 적용할 때 쓰임

OUTPUT : 외부로 나가는 패킷(출력 패킷)

 

INPUT 체인에 사용자 정의로 체인을 추가하여 INPUT 체인 대신에 사용할 수 있는데, 페도라 코어의 경우는 RH-Firewall-1-INPUT라는 사용자 정의 체인을 사용한다. 3개의 기본 체인(INPUT, OUTPUT, FORWARD)은 수정이나 삭제가 불가능하며, 사용자 정의 체인은 다음과 같은 방법으로 생성해 줄 수 있다.

 

 

 

 

3) iptables 다루기

 

▶ 방화벽 정책 초기화

# iptables -F

# iptables -X

# iptables -Z

 

 

▶ 기본 정책 설정

# iptables -P INPUT DROP

# iptables -P OUTPUT DROP

# iptables -P FORWARD DROP

 

 

▶ 사용자 정의 체인 생성 및 INPUT 체인에 추가

# iptables -N 사용자정의체인명

# iptables -A INPUT -j 사용자정의체인명

 

 

▶ 허용 정책 설정

루프백 접속 허용

다른 곳과 네트워크가 연결되어 있지 않더라도 시스템의 기본 네트워크이며 로컬 호스트의 인터페이스인 루프백에 대해서는 접속이 이뤄질 수 있도록 해야 하므로, 다음과 같이 설정한다.

iptables -A INPUT -i lo -j ACCEPT

iptables -A OUTPUT -o lo -j ACCEPT

 

 

내부 네트워크 접속

iptables -A fedora -s 192.168.0.0/24 -d 192.168.0.0/24 -j ACCEPT

iptables -A OUTPUT -s 192.168.0.0/24 -d 192.168.0.0/24 -j ACCEPT

 

 

내부 -> 외부 접속

iptables -A fedora -s 외부주소 -p tcp -m tcp --sport 포트번호 -j ACCEPT

iptables -A OUTPUT -d 외부주소 -p tcp -m tcp --dport 포트 -j ACCEPT

 

 

① DNS 포트 허용

iptables -A fedora -p udp -m udp --sport 53 -j ACCEPT

iptables -A OUTPUT -p udp -m udp --dport 53 -j ACCEPT

 

② ICMP 핑 허용

iptables -A OUTPUT -o eth0 -p icmp --icmp-type echo-request -j ACCEPT

iptables -A fedora -i eth0 -p icmp --icmp-type echo-reply -j ACCEPT

iptables -A OUTPUT -o eth0 -p icmp --icmp-type echo-reply -j ACCEPT

 

③ SSH 포트 허용 ( 192.168.0.1 -> 172.16.1.20)

iptables -A fedora -s 172.16.1.20 -p tcp -m tcp --sport 22 -j ACCEPT

iptables -A OUTPUT -d 172.16.1.20 -p tcp -m tcp --dport 22 -j ACCEPT

 

④ HTTP 포트 허용

iptables -A fedora -i eth0 -p tcp -m tcp --sport 80 --dport 1024:65535 -j ACCEPT

iptables -A OUTPUT -o eth0 -p tcp -m tcp --sport 1024:65535 --dport 80 -j ACCEPT

 

⑤ FTP 포트 허용

명령(제어) 포트(tcp 21) 접속

iptables -A fedora -i eth0 -p tcp -m tcp --sport 21 --dport 1024:65535 -j ACCEPT

iptables -A OUTPUT -o eth0 -p tcp -m tcp --sport 1024:65535 --dport 21 -j ACCEPT

*데이터 포트(tcp20) 접속(능동 모드 접속)

iptables -A fedora -i eth0 -p tcp -m tcp --sport 21 --dport 1024:65535 -j ACCEPT

iptables -A OUTPUT -o eth0 -p tcp -m tcp --sport 1024:65535 --dport 21 -j ACCEPT

*데이터 포트(tcp 1024이상의 포트) (Passive 모드 접속)

iptables -A fedora -i eth0 -p tcp -m tcp --sport 1024:65535 --dport 1024:65535 -j ACCEPT

iptables -A OUTPUT -o eth0 -p tcp -m tcp --sport 1024:65535 --dport 1024:65535 -j ACCEPT

 

 

외부 -> 내부 접속

① SSH 포트 허용

iptables -A fedora -i eth0 -p tcp -m tcp --dport 22 -j ACCEPT

iptables -A OUTPUT -o eth0 -p tcp -m tcp --sport 22 -j ACCEPT

 

② http 포트 허용

iptables -A fedora -i eth0 -p tcp -m tcp --dport 80 -j ACCEPT

iptables -A OUTPUT -o eth0 0p tcp -m tcp --sport 80 -j ACCEPT

 

③ ftp 포트 허용 ( passive mode)

iptables -A fedora -i eth0 -p tcp -m tcp --dport 21 -j ACCEPT

iptables -A OUTPUT -o eth0 -p tcp -m tcp --sport 21 -j ACCEPT

 

iptables -A fedora -i eth0 -p tcp -m tcp --dport 1024:65535 -j ACCEPT

iptables -A OUTPUT -o eth0 -p tcp -m tcp --sport 1024:65535 -j ACCEPT

 

 

예제 :

중국발 해킹을 통하여 웹서버를 공격하고 있다는 사실을 알았다.
  찾아낸 IP는 10.10.1.1 ~ 10.10.1.255, 10.10.2.3, 10.10.3.5 와 같으며 접근통제정책을 통하여

  위의 IP에 대하여 web 접속을 거부하라. 단, 10.10.1.33 IP는 web 접속을 허락하여야 한다.

/sbin/iptables -A INPUT -s 10.10.1.33  -p tcp --dport 80 -j ACCEPT

/sbin/iptables -A INPUT -s 10.10.1.1/10.10.1.255  -p tcp --dport 80 -j DROP

/sbin/iptables -A INPUT -s 10.10.2.3  -p tcp --dport 80 -j DROP

/sbin/iptables -A INPUT -s 10.10.3.5  -p tcp --dport 80 -j DROP

 

/sbin/iptables -A INPUT -s 202.190.123.68  -p tcp --dport 21 -j DROP

 

/sbin/iptables -A INPUT -s 118.217.12.35  -p tcp --dport 1:65535 -j DROP

- PING 명령어는 서버 내부에서는 사용가능해야 하며, 192.168.1.13, 192.168.1.11 IP를 제외하고는
  모두 거부하라.

 

/sbin/iptables -A INPUT -s 192.168.1.13 -p icmp --icmp-type echo-request  -j ACCEPT

/sbin/iptables -A INPUT -s 192.168.1.11 -p icmp --icmp-type echo-request  -j ACCEPT

/sbin/iptables -A INPUT  -p icmp --icmp-type echo-request  -j DROP

 

- 110포트와 143포트는 localhost와 192.168.1.13, 192.168.1.11 에서는 허용하고
   외부에서는 차단하라.

 

/sbin/iptables -A INPUT -s 192.168.1.13  -p tcp --dport 110 -j ACCEPT

/sbin/iptables -A INPUT -s 192.168.1.11  -p tcp --dport 110 -j ACCEPT

/sbin/iptables -A INPUT -p tcp -m tcp --dport 110 -j DROP

 

/sbin/iptables -A INPUT -p tcp -m tcp --dport 110 -j DROP

 

/sbin/iptables -A INPUT -s 192.168.1.13  -p tcp --dport 143 -j ACCEPT

/sbin/iptables -A INPUT -s 192.168.1.11  -p tcp --dport 143 -j ACCEPT

/sbin/iptables -A INPUT -p tcp -m tcp --dport 143 -j DROP

 

- ssh와 ftp에 대해서는 iptables 를 통하여 문제 2번에 해당하는 정책을 사용하여 똑 같이 적용하라.

/sbin/iptables -A INPUT -s 192.168.0.0/24  -p tcp --dport 22 -j ACCEPT

/sbin/iptables -A INPUT -s 192.168.1.13  -p tcp --dport 22 -j ACCEPT

/sbin/iptables -A INPUT -s 192.168.1.11  -p tcp --dport 22 -j ACCEPT

/sbin/iptables -A INPUT -p tcp -m tcp --dport 22 -j

 

개요

설치

솔라리스 10의 경우는 설치할 필요 없다. (이미 설치되어있다) 여기서는 솔라리스 9 이하를 기준으로 설명한 것이다.

·         설치

·         root@wl ~ # wget http://coombs.anu.edu.au/~avalon/ip_fil4.1.33.tar.gz
·         root@wl ~ # wget http://coombs.anu.edu.au/~avalon/pfil-2.1.13.tar.gz
·         root@wl ~ # tar xvfz ip_fil4.1.33.tar.gz
·         root@wl ~ # tar xvfz pfil-2.1.13.tar.gz
·         root@wl ~ # cd pfil
·         root@wl ~/pfil # /usr/ccs/bin/make SunOS32 1)
·         root@wl ~/pfil # /usr/ccs/bin/make package 1)
·         root@wl ~/pfil # pkgadd -d /tmp/pfil.pkg 2)
·         root@wl ~/pfil # ifconfig -a
·         lo0: flags=1000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv4> mtu 8232 index 1
·                 inet 127.0.0.1 netmask ff000000
·         pcn0: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
·                 inet 192.168.0.11 netmask ffffff00 broadcast 192.168.0.255
·                 ether 0:c:29:d4:e0:bd
·         root@wl ~/pfil # cat /etc/opt/pfil/iu.ap 3)
·                 pcn     -1      0       pfil
·         root@wl ~/pfil # cd ..
·         root@wl ~ # cd ip_fil4.1.33
·         root@wl ~/ip_fil4.1.33 # /usr/ccs/bin/make solaris
·         root@wl ~/ip_fil4.1.33 # cd SunOS5
·         root@wl ~/ip_fil4.1.33/SunOS5 # /usr/ccs/bin/make package 4)
·         root@wl ~/ip_fil4.1.33/SunOS5 # sync; sync; reboot 5)

1) 반드시 /usr/ccs/bin/make 를 사용한다. 만약 gnu make를 사용하고 있으면 컴파일이 되지 않는다. 64bit 솔라리스를 사용하고 있다면 32대신 64를 입력한다.
2) 자동으로 설치되는 것이 아니라 패키지파일이 생성된다. 패키지 파일은 그냥 설치해주면 된다.
3) 패키지 파일을 인스톨 한 후 /etc/opt/pfil/iu.ap 파일을 확인한다. 시스템에 설치되어있는 NIC 종류별로 (lo제외) 한줄씩 /etc/opt/pfil/iu.ap에 등록되어있어야 한다. 같은 종류의 NIC가 두개 설치되어 있어도 한 종류이므로 한 줄만 들어가게 된다.
4) make package하면 자동으로 패키지가 생성되고 인스톨 된다. (SunOS5디렉토리에 ipf.pkg 파일이 생성된다) 바이너리는 /opt/ipf에, 설정파일은 /etc/opt/ipf에 있다.
5) pfil 을 설치한 후, 반드시 재시작해야 한다. (ipf 때문에 재시작하는 것이 아니다)

·         실행

재시작 하면 IPFilter 가 이미 실행되어있을 것이다. 아래는 제대로 설치되었는지 확인하기 위함이다.

root@wl ~ # /etc/init.d/ipfboot start 1)
Set 0 now inactive
filter sync'd
0 entries flushed from NAT table
0 entries flushed from NAT list
filter sync'd
root@wl ~ # ndd /dev/pfil qif_status 2)
ifname ill q OTHERQ ipmp num sap hl nr nw bad copy copyfail drop notip nodata notdata
QIF1 0x0 0xd40d2cf0 0xd40d2d74 0x0 1 806 0 3 14 0 0 0 0 0 0 0
pcn0 0xd3c49a9c 0xd4054180 0xd4054204 0x0 0 800 14 695 572 0 0 0 0 0 0 0
root@wl ~/pfil # strconf < /dev/pcn 2)
pfil
pcn
root@wl ~ #

1) 시작하기. /etc/rc2.d/S65ipfboot에 등록되어있다.
2) pfil장치와 이에 연결된 pcn 디바이스(시스템마다 다르다)에 IPFilter가 제대로 연결되어있는지 확인한다.

블로그 이미지

레몬도리 LemonDory

개발자의 이야기

댓글을 달아 주세요

 

윈도우 10 KN버전에 LG폰을 연결해야할 때 드라이버 설치를 했음에도 불구하고 핸드폰이 인식이 되지 않고

 

장치관리자에 드라이버는 느낌표를 보여주고 있을 때

 

자료도 없어 찾아보니 아래 링크에 업데이트를 설치해주면 된다.

 

https://www.microsoft.com/ko-kr/download/details.aspx?id=48231

 

블로그 이미지

레몬도리 LemonDory

개발자의 이야기

댓글을 달아 주세요

먼저, root 권한 획득으로 인한 몇 가지 주의사항들부터 시작하겠습니다.

아시다시피, 대부분의 UNIX 시스템들과는 달리, Mac OS X에서 root 계정(super-user)이 기본적으로 활성화되어 있지 않습니다. 직접적인 root login을 막아놓은 까닭은 시스템 차원의 영향을 주는 작업들을 실행할 때, 또 한번의 인증을 거치게 해서 여분의 보호막과도 같은 장치를 제공하기 위해서입니다. 
이렇게 해 놓은 또 하나의 이점이라면, root 계정이 활성화되어 있지 않기 때문에, root 권한 작업이 필요할 때마다, 관리자 계정에서 sudo 명령어를 사용해서 root의 권한을 획득해야 합니다. 이런 과정은 log(/var/log/system.log) 파일에 기록이 되기 때문에, 여러 관리자들을 포함하는 사람들이 사용하는 시스템에 문제가 발생할 경우에는, 원인이 관리자의 오류 때문인지 혹은 어떤 악의를 품은 공격 때문인지를 비교적 쉽게 가려낼 수가 있게 됩니다.

물론, root 계정이 비활성화 되어 있는 상태라도, 몇 가지 터미널 명령으로 쉽게 관리자의 계정에서 완전한 root 계정을 획득할 수도 있으므로, 이것마저도 막기 위해서는 /etc/sudoers 파일을 수정하고, 또한 권한 없는 자가 Single User Mode로 시동해서 sudoers 파일을 수정하는 것을 막기 위해 Open Firmware Password를 설정해 놓는 등의 여러 단계의 추가 설정 작업들이 필요하게 됩니다.

보안 관련 주의사항은 여기까지만 하고, 이제 가장 손쉬운 root 계정 활성화 방법부터 말씀드리겠습니다.

/Applications/Utilities/ 폴더 속에 위치하는 NetInfo Manager를 실행시키고, 보안(Security) 메뉴에 있는 "인증(Authenticate)..." 항목을 선택합니다. 인증 후에, 다시 보안 메뉴의 "루트 계정 활성(Enable Root User)"을 선택합니다.
이제, 터미널을 열고 매번 sudo를 입력할 필요 없이, su 명령을 사용해서 root로 로그인 합니다. 작업을 마쳤으면, exit로 나옵니다.

위의 과정은, 간단하게 터미널에서 sudo passwd root 명령으로 root 계정의 암호를 설정하는 것과 동시에 활성화시킬 수도 있습니다.

다음은, root 계정을 활성화 할 필요 없이, 터미널에서 바로 root의 권한을 얻는 방법입니다.

먼저, 관리자 계정으로 로그인한 후에 터미널에서 다음과 같은 명령을 입력합니다:

sudo su

그리고 나서, 관리자의 암호를 입력하면 완전한 root 권한을 가지고 작업할 수 있습니다.
나중에, root 권한이 필요한 작업을 모두 마쳤으면, exit로 빠져 나옵니다.

이 것과 비슷한 명령으로 위의 sudo su 대신에, sudo -s를 사용하실 수도 있습니다.
여기서, -s 표시는 현재의 shell에서 나오고 새로운 shell로 들어가게 합니다.

또한, root 권한의 획득과 함께 원하는 shell 환경으로 이동하려면, sudo bash, sudo tcsh, sudo sh 등과 같은 명령으로 shell을 지정해 줄 수도 있습니다.

참고로, sudo와 su 명령 후에 암호를 묻게되는 과정의 차이점은 sudo는 현재 사용자의 암호를 묻고나서 해당 사용자의 권한을 인증하게 되고, su는 전환하려는 사용자 계정의 암호를 묻고나서 해당 사용자의 계정으로 전환하게 됩니다. 그래서, 만약 root 계정에서 su 명령을 사용한다면, 암호를 묻는 과정이 생략됩니다.

결론적으로는, OS X에서의 관리자(admin) 계정은 곧 root 계정이나 마찬가지가 되고, 그에 따르는 안전한 관리도 중요할 것입니다.


출처 : http://appletree.or.kr/forum/viewtopic.php?id=37

블로그 이미지

레몬도리 LemonDory

개발자의 이야기

댓글을 달아 주세요

오늘 백업 관련해서 레지스트리를 접근하려고 코드 작성 중
내 PC는 이상 없이 접근 하는데 배포한 PC에서 말썽을 일으켜 알아보던 중 완전 바보 짓을 하느라고
시간을 많이 낭비했다.

이유는 즉, 내 PC는 Administrator 계정을 활성화 시켜서 사용하고 있어서 PC에 모든 권한을 사용 가능하지만 배포 PC는 일반 사용자 권한으로 사용 되기 때문에 레지스트리 접근이 불가능하다.

실행 - regiedit로 들어가게 되면 트리뷰로 모두 볼 수는 있다.
하지만 프로그램으로 접근 시 불가능하게 되어있다. 여기서 삽질이 시작 된다.
UAC를 꺼보고 왜 접근이 안되나 검색 해보고 하던 중 레지스트리 폴더(subkey)에 옵션이 있다.


위 그림을 보면 사용 권한이라는 메뉴가 있다.
바로 여기서 설정 해주면 접근할 수 있는 힘(권한)이 생긴다.
아래 그림과 같이 설정해주면 레지스트리를 편집할 수 있는 권한이 생기게 된다.


블로그 이미지

레몬도리 LemonDory

개발자의 이야기

댓글을 달아 주세요