웹포트로 나가는 패킷을 막으려고 하는데 질문이 있습니다.
글쓴이: blue39 / 작성시간: 월, 2004/01/19 - 11:13오전
안녕하세요~~
디바이스 드라이버에서 나가는 패킷을 검사해서 웹으로 나가는 포트를 검색
해서 패킷을 막으려고 합니다. 그래서 코드를 넣어서 테스트를 해봤는데요
왜 TCP로 나가는 패킷의 포트번호가 80이 아닐까요.. ^^;
찍히는 메시지들로 보아 패킷의 목적지 포트가 32774가 됩니다. 이거는 십진
수로 찍은거구요 혹시나 해서 16진수로 찍었더니 같은 포트가 나오더군요.
음.. 제가 잘못 알고 있는걸까요? 전 들어 온 패킷의 skb_buff 데이터를 IP
헤더를 잘라내고 TCP 헤더를 보고 한 작업이거든요. 이 부분에 웹 포트나 특정
포트를 막을려면 어떻게 해야 할까요? 여러분의 조언 부탁드립니다.
그럼 좋은 하루 보내시구요
Forums:
80포트에대해 tcp커넥션을 처음 시도할때, 즉 SYN 플래그를 달고 나
80포트에대해 tcp커넥션을 처음 시도할때, 즉 SYN 플래그를 달고 나갈때는 웰노운 포트인 80을 사용할겁니다.
그후 3way hand shaking이 끝나면, 서버측에서는 accept()가 리턴하고 클라이언트와 1:1로 연결된 포트가 생성됩니다. 이 과정이 지난후 패킷을 덤프하면 말씀하신 것 처럼 포트가 다르게 나오겠죠.
Do you think that's the air you are breathing now?
네 답변 감사드리구요. 저두 그 생각은 해봤는데요 그렇다면 왜 초기에 패
네 답변 감사드리구요. 저두 그 생각은 해봤는데요 그렇다면 왜 초기에 패킷이
나갈때 그 패킷의 포트가 80이 아닐까요? 일단 연결이 확립되어야 서로간에
임의 포트를 지정하고 데이터가 교환되는게 정상이잖아요. 그런데 패킷의 흐름
을 보아서는 초기에 80으로 나가는 패킷이 없더라구요.
음.. 어찌 된 영문인지 너무나 궁금하군요. ^^
막아야 하는 것이 서버가 있는 곳인가요? 아니면 클라이언트가 있는 곳인가
막아야 하는 것이 서버가 있는 곳인가요? 아니면 클라이언트가 있는 곳인가요?
source와 destination을 잘못체크한 것 아닌가요?
[quote="운형"]80포트에대해 tcp커넥션을 처음 시도할때, 즉 S
아닙니다. 포트는 변하지 않습니다.
[quote="eungkyu"][quote="운형"]80포트에대해 tcp
커넥션이 맺어지면
클라이언트와 통신하는 서버쪽 포트는
80이 아닌 다른 포트로 통신하지않나요??
아니라면 어떻게 되나요?
[quote="초코리"]클라이언트와 서버간의 커넥션이 맺어지면
소켓이 (serverip, serverport, clientip, clientport)인 tuple이라 한다면,
(80번 포트로 아무 ip의 접속을 받는) 일반적인 웹서버의 경우
먼저 (serverip, 80, 0.0.0.0, 0)인 소켓이 만들어져 listen을 하고 있다가,
클라이어트가 접속하면 (serverip, 80, clientip, clientport)인 소켓이 만들어져서 통신을 하게 됩니다.
물론 serverip, clientip는 각 컴퓨터의 ip일테고 clientport는 client가 자동으로 만들어준 포트겠죠.
서버의 포트는 변하지 않습니다.
왠만한 network 책이라면 소켓을 구분하는 identifier정도는 설명되어있을 것으로 생각합니다만...
어려운거 하시네요.. 하시면 소스좀 보내주세요 ^^일단 서버측의 포트
어려운거 하시네요.. 하시면 소스좀 보내주세요 ^^
일단 서버측의 포트가 80 포트(소스포트)를 막아야하지 안나요? 웹포트로 접속을 거부하려면..
상대측이 접근하려면 syn 을 보내와도.. drop 해버려야죠.. 소스포트를 가지고 막아버리면 안될까요? syn ~ ack 해야하니가.. ack 를 안보내면 =.= 뭐 지가 별수가 있나요.. syn 패킷이 80포트를 목적지로하면.. 먹어버리고 =.=;; jyj9782@chollian.net 메일주소남깁니다.. 소스 다 작성하시면 좀 보내주세요.. 부탁드려요 ^^ 요즘 공부중이거든요.. 커널..
힘내세요.
여러분들 답변 감사드리구요 ^^아~~ 그리고 이게 머 대단한 거라
여러분들 답변 감사드리구요 ^^
아~~ 그리고 이게 머 대단한 거라고.. 아무것도 모르고 그냥 삽질하는 겁니다.
^^; 그리고 지금 테스트 하는 시스템은 클라이언트가 있고 클라이언트는 일단
공유기를 거쳐서 나가게 됩니다. 정확히 말하면 무선 AP가 되겠죠. 그 공유기
는 외부로 연결이 된 상태이구요. 그리고 공유기에 달린 2개의 NIC은 브리지로
묶여있는 상태입니다. 이 상태에서 클라이언트가 웹 접속을 시도하면 중간의
공유기에서 그 패킷을 돌려 특정 사이트를 보여주려 하는 거거든요. 그런데 이
놈의 포트가 이상하니 이거 원... 아무래도 제가 뭘 잘못하고 있는거 같기도 한
데요.. 일단 제가 작성한 소스라도 보여 드릴테니 여러분이 보시고 잘못된데 있
음 지적 좀 해주세요. 이상 초보가~~~ ^^;
위 코드는 현재 디바이스 드라이버 내에 패킷을 보내는 최종 함수 내에 들어가
있는 상태입니다. 그럼~~
그런데 단순히 웹트래픽을 막는 것이라면 iptables를 이용해서 간단히
그런데 단순히 웹트래픽을 막는 것이라면 iptables를 이용해서 간단히 할 수 있을텐데 커널부분을 직접 건드는 이유가 따로 있나요?
공부하기 위해서라면야 상관없지만.
공부를 위한것 같네요.. IPTABLES 도 역시 모듈이잖아요.. 그러니
공부를 위한것 같네요.. IPTABLES 도 역시 모듈이잖아요.. 그러니까.. IPTABLES 를 구현하는 첫걸음 ?=.= 인듯.. 데비안에는 af_packet 인가 하는 모듈을 쓰는데요.. 이거 프린터해서 저도 한번 보고 고쳐써먹어야겠네요 =.=;;
힘내세요.
^^ 웹 트래픽을 막으려는 목적이 아니고 시스템 상에서 인증을 받지 못한
^^ 웹 트래픽을 막으려는 목적이 아니고 시스템 상에서 인증을 받지 못한 놈
들을 우회 시키려고 하는 겁니다. 한마디로 로그인 않된 놈들은 로그인 하라는
쪽으로 돌리는 거죠.
[quote="blue39"]^^ 웹 트래픽을 막으려는 목적이 아니고 시
그런 것은 웹 프로그래밍으로 해야 하는 것 아닌가요?
정확히 말씀 드리면 무선 AP에서 접속한 클라이언트들에 대해 802.1x
정확히 말씀 드리면 무선 AP에서 접속한 클라이언트들에 대해 802.1x 인증을
받지 못한 녀석들에 대해 웹 리다이렉션을 하려고 합니다. 이런 상황이 아니면
간단히 우회 시키겠지만 802.1x와 연동을 시켜야 하기 때문에 커널 내부에서
돌리려고 하는 겁니다. 우회 시킬 때는 여러 가지 경우의 수가 존재 하기 때문에
무선 AP의 설정에 따라 상황이 틀려지는 일도 있구요.
[quote="blue39"]정확히 말씀 드리면 무선 AP에서 접속한 클
여기부터는 제가 잘 아는것이 아니라 도와드릴 수가 없네요 :)
언뜻 생각하기에는 iptables에 802.1x 인증 조건을 체크하는 모듈을 만들어서 해결하는 방법도 괜찮을 것 같기는 합니다만, 제가 상황을 알고 있는 것이 아니니.
빨리 해결하시길...
[quote="blue39"]^^ 웹 트래픽을 막으려는 목적이 아니고 시
상황을 정확히 모르면서 쓰는 것 같아 조심스럽게 질문을 드립니다.
혹시 AP에서 WEP를 지원하지 않습니까?
지원하면 그냥 WEP를 사용하면 될 것으로 생각됩니다.
제일 궁금한 것은 인증의 목적이 무엇이냐 하는 것입니다.
혹시 이런 것을 구현하시려는 것인지요?
http://wiki.kldp.org/wiki.php/DocbookSgml/Authentication-Gateway-HOWTO
To be a rich
댓글 달기