안녕하세요.
특정 포트로 들어오는 모든 패킷을 dst로 보내는 방법이 없을까 해서 글을 올립니다.
해킹툴에 가까운 몇몇 툴을 이용하면 가능 할것도 같은데..
대부분의 툴들은 인터페이스 단위로 작업을 하는듯 하더라구요.
혹 이런 부분에 대해서 생각해보신 분이 계신가요?
http://kldp.org/node/103423
■ 80포트로 들어오는것을 다른서버PC(172.16.8.163:8080)로 리다이렉트
먼저 forward가 허용되어 있는지 확인후, 포워딩체크 [root@]# cat /proc/sys/net/ipv4/ip_forward 0 [root@]# echo "1"> /proc/sys/net/ipv4/ip_forward [root@]# cat /proc/sys/net/ipv4/ip_forward 1
iptables설정 [root@]# iptables -t nat -F [root@]# iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to 172.16.8.163:8080 [root@]# iptables -t nat -A POSTROUTING -p tcp -d 172.16.8.182 -j MASQUERADE [root@]# iptables -t nat -L
POSTROUTING -p tcp -d 172.16.8.182 이부분의 IP를 172.16.8.163로.
iptables 로 snmp나 syslog의 릴레이도 가능하네요.
다만 source ip가 변경되는 점이 조금 껄끄럽네요.
iptables에서 source ip는 변경이 안될듯 한데....좀더 자료를 찾아봐야 할듯 합니다.
작업을 하느라 댓글이 늦었습니다.
한가지 궁금한 점이 있는데
syslog 나 snmpTrap 같은 데이터 패킷또한 iptables로 릴레이가 되는지 궁금하네요.
안될게 있을까요.. ftp처럼 첨 연결후 동적(ftp-data)으로 연결된다면은 그 부분을 조정해준다면은.. 될것 같은데요..
해보지는 않아서 장담은 할수 없습니다.
iptables로 릴레이 할 경우에
iptables만으로 여러곳으로 redirect 할수가 있나요?
예를 들어 A라는 서버에서 B라는 서버로 릴레이 할때
그 이후 C D 서버로 릴레이 할 수 있는 방법이 있을지 궁금합니다.
저의 독해능력이 딸려서 그런지.. 이해가 잘 안가는군요. "그 이후 C D 서버로 릴레이 할 수 있는" 그 이후가 뭘 말하시는지요. 한번은 A에서 B로, 다른 한번은 A에서 C로 또 다른 한번은 D로 이런 경우인가요? 라운드로빈처럼 말인가요?
회사 워크샾때문에 이제야 답글을 다네요.
제가 글을 좀 애매하게 쓴듯합니다.
상황은 패킷을 보내는 서버 A 와 패킷을 릴레이 할 서버 B 마지막으로 패킷을 받을 서버 C 가 있습니다.
iptables를 이용해서 릴레이를 할 경우 B를 거쳐 C로 패킷이 전달 되게 되는데
문제는 B에서도 패킷을 받아 들여야 한다는 것입니다.
예를 들어 Syslog를 A에서 쏘고 있다고 했을때 B와 C모두 syslog가 수집이 되어야 한다는 이야기 입니다.
한데 iptables를 이용하면 syslog를 수집하는 데몬이 수집하기전에 릴레이를 통해 C로 보내버리는 듯 합니다.
해서 릴레이를 하면서 자기자신또한 패킷을 받는 방법이 있을까 해서 글을 올린 것입니다.
방법이 없을까요?
패치로 가능할것도 같은데.. 여기에서 [ROUTE - iptables ROUTE target]부분을 읽어보세요.http://www.netfilter.org/projects/patch-o-matic/pom-external.html
여기서 하는게 원하시는거와 비슷한것 같습니다.http://www.bjou.de/blog/2008/05/howto-copyteeclone-network-traffic-using-iptables/
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
http://kldp.org/node/103423
http://kldp.org/node/103423
■ 80포트로 들어오는것을
■ 80포트로 들어오는것을 다른서버PC(172.16.8.163:8080)로 리다이렉트
먼저 forward가 허용되어 있는지 확인후, 포워딩체크
[root@]# cat /proc/sys/net/ipv4/ip_forward
0
[root@]# echo "1"> /proc/sys/net/ipv4/ip_forward
[root@]# cat /proc/sys/net/ipv4/ip_forward
1
iptables설정
[root@]# iptables -t nat -F
[root@]# iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to 172.16.8.163:8080
[root@]# iptables -t nat -A POSTROUTING -p tcp -d 172.16.8.182 -j MASQUERADE
[root@]# iptables -t nat -L
IP가 틀렸군요..
POSTROUTING -p tcp -d 172.16.8.182 이부분의 IP를 172.16.8.163로.
해결했습니다.
iptables 로 snmp나 syslog의 릴레이도 가능하네요.
다만 source ip가 변경되는 점이 조금 껄끄럽네요.
iptables에서 source ip는 변경이 안될듯 한데....좀더 자료를 찾아봐야 할듯 합니다.
작업을 하느라 댓글이 늦었습니다. 한가지 궁금한
작업을 하느라 댓글이 늦었습니다.
한가지 궁금한 점이 있는데
syslog 나 snmpTrap 같은 데이터 패킷또한 iptables로 릴레이가 되는지 궁금하네요.
안될게 있을까요.. ftp처럼 첨 연결후
안될게 있을까요.. ftp처럼 첨 연결후 동적(ftp-data)으로 연결된다면은 그 부분을 조정해준다면은.. 될것 같은데요..
해보지는 않아서 장담은 할수 없습니다.
자꾸 질문만 하는 것 같아 죄송합니다만..
iptables로 릴레이 할 경우에
iptables만으로 여러곳으로 redirect 할수가 있나요?
예를 들어 A라는 서버에서 B라는 서버로 릴레이 할때
그 이후 C D 서버로 릴레이 할 수 있는 방법이 있을지 궁금합니다.
저의 독해능력이 딸려서 그런지.. 이해가 잘
저의 독해능력이 딸려서 그런지.. 이해가 잘 안가는군요.
"그 이후 C D 서버로 릴레이 할 수 있는" 그 이후가 뭘 말하시는지요.
한번은 A에서 B로, 다른 한번은 A에서 C로 또 다른 한번은 D로 이런 경우인가요?
라운드로빈처럼 말인가요?
으으 죄송합니다.
회사 워크샾때문에 이제야 답글을 다네요.
제가 글을 좀 애매하게 쓴듯합니다.
상황은 패킷을 보내는 서버 A 와 패킷을 릴레이 할 서버 B 마지막으로 패킷을 받을 서버 C 가 있습니다.
iptables를 이용해서 릴레이를 할 경우 B를 거쳐 C로 패킷이 전달 되게 되는데
문제는 B에서도 패킷을 받아 들여야 한다는 것입니다.
예를 들어 Syslog를 A에서 쏘고 있다고 했을때 B와 C모두 syslog가 수집이 되어야 한다는 이야기 입니다.
한데 iptables를 이용하면 syslog를 수집하는 데몬이 수집하기전에 릴레이를 통해 C로 보내버리는 듯 합니다.
해서 릴레이를 하면서 자기자신또한 패킷을 받는 방법이 있을까 해서 글을 올린 것입니다.
방법이 없을까요?
패치로 가능할것도 같은데.. 여기에서 [ROUTE -
패치로 가능할것도 같은데.. 여기에서 [ROUTE - iptables ROUTE target]부분을 읽어보세요.
http://www.netfilter.org/projects/patch-o-matic/pom-external.html
여기서 하는게 원하시는거와 비슷한것
여기서 하는게 원하시는거와 비슷한것 같습니다.
http://www.bjou.de/blog/2008/05/howto-copyteeclone-network-traffic-using-iptables/
댓글 달기