「dinamic filter」の編集履歴(バックアップ)一覧はこちら
「dinamic filter」(2008/03/06 (木) 14:33:40) の最新版変更点
追加された行は緑色になります。
削除された行は赤色になります。
<p><html><br />
<title>dinamic filter</title><br />
<body><br />
<body bgcolor="rosybrown"><br />
/etc/sysconfig/iptables-config<br />
<br><br />
IPTABLES_MODULES="ip_conntrack_ftp"<br />
<br><br />
<pre><br />
NEWがないと一切の通信がダメ。ポートが開かない。NEWだけは特別なのだ<br />
アプリ I/O SA DA PROT SP DP CONN.STAT<br />
FTP OUT 自分 FTP鯖 TCP ー 21
NEW(一番最初のステータスですよ)、ESTABLISHED コマンドチャンネル?<br />
FTP IN FTP鯖 自分 TCP 21 ー
ESTABLISHED(全部ACKがついてますから?) コマンドチャンネル?<br />
ポート番号21ってFTPの制御用のポートだよね<br />
何番のポートと何番のポートで通信しますよでRELATED(関係のある)通信になる<br />
↓データチャンネル<br />
FTP OUT 自分 FTP鯖 TCP ー ー RELATED、ESTABLISHED<br />
FTP IN FTP鯖 自分 TCP ー ー ESTABLISHED<br /><br />
<font size=5
color=darkblue><b>iptables追加ftpパッシブモードクライアントルール</b></font><br />
#dinamicfilter ftp comand-ch<br />
-A OUTPUT -p tcp --dport 21 -m state --state NEW,ESTABLISHED -j ACCEPT<br />
-A INPUT -p tcp --sport 21 -m state --state ESTABLISHED -j ACCEPT<br />
#dinamicfilter ftp date-ch<br />
-A OUTPUT -p tcp -m state --state RELATED,ESTABLISHED -m helper --helper ftp -j
ACCEPT<br />
-A INPUT -p tcp -m state --state ESTABLISHED -m helper --helper ftp -j
ACCEPT<br /><br />
-m state<br />
接続状態の指定<br />
接続状態にはNEW、INVALID、ESTABLISHED、RELATEDが指定できる<br /><br />
-m helper<br />
unknown<br /><br />
-A<br />
指定したチェインにルールを追加する<br />
-F<br />
-Aとは逆でチェインの内容を削除する<br /><br />
<font size=5 color=darkblue><b>検証</b></font><br />
[root@neteng18 ~]#<br />
[root@neteng18 ~]# ftp 192.168.128.1<br />
Connected to 192.168.128.1.<br />
220 (vsFTPd 2.0.5)<br />
530 Please login with USER and PASS.<br />
530 Please login with USER and PASS.<br />
KERBEROS_V4 rejected as an authentication type<br />
Name (192.168.128.1:root): neteng18<br />
331 Please specify the password.<br />
Password:<br />
230 Login successful.<br />
Remote system type is UNIX.<br />
Using binary mode to transfer files.<br />
ftp> ascii<br />
200 Switching to ASCII mode.<br />
ftp> get welcome<br />
local: welcome remote: welcome<br />
227 Entering Passive Mode (192,168,128,1,115,140)<br />
150 Opening BINARY mode data connection for welcome (24 bytes).<br />
WARNING! 2 bare linefeeds received in ASCII mode<br />
File may not have transferred correctly.<br />
226 File send OK.<br />
24 bytes received in 0.00013 seconds (1.9e+02 Kbytes/s)<br />
ftp> quit<br />
221 Goodbye.<br />
[root@neteng18 ~]# cat /proc/net/ip_conntrack<br />
tcp 6 112 TIME_WAIT src=192.168.128.212 dst=192.168.128.1 sport=45107
dport=29580 packets=4 bytes=216 src=192.168.128.1 dst=192.168.128.212
sport=29580 dport=45107 packets=4 bytes=240 [ASSURED] mark=0 secmark=0
use=1<br />
tcp 6 117 TIME_WAIT src=192.168.128.212 dst=192.168.128.1 sport=54614
dport=21 packets=21 bytes=1201 src=192.168.128.1 dst=192.168.128.212 sport=21
dport=54614 packets=15 bytes=1139 [ASSURED] mark=0 secmark=0 use=2<br />
[root@neteng18 ~]# cat welcome<br />
Welcome to ftp server!<br /><br />
<b><font size=4 color=darkblue>ノーマルモード</font></b><br />
FTP上でpassiveと打つとON/OFFを切り替えることができる<br />
パッシブモードの設定だとコマンドをやっても通信ができないのですよう<br />
ー私案ー<br />
合意はもうできている上で<br />
要はノーマルということはFTP鯖からの20番ポートからのTCPデータを受信できればよいだから<br />
アプリ I/O SA DA Prot SP DP State<br />
FTP IN FTP鯖 自分 TCP 20 ー RELATED,ESTABLISHED<br />
FTP OUT 自分 FTP鯖 TCP ー 20 ESTABLISHED<br />
FTPクライアントの設定ノーマルデータCHを送受信するにはこれだけで良い<br />
#dinamicfilter ftp date-ch<br />
-A INPUT -p tcp --sport 20 -m state --state RELATED,ESTABLISHED -m helper
--helper ftp -j ACCEPT<br />
-A OUTPUT -p tcp --dport 20 -m state --state ESTABLISHED -m helper --helper ftp
-j ACCEPT<br />
<font size=5 color=darkblue><b>検証</b></font><br />
[root@neteng18 ~]# ftp 192.168.128.1<br />
Connected to 192.168.128.1.<br />
220 (vsFTPd 2.0.5)<br />
530 Please login with USER and PASS.<br />
530 Please login with USER and PASS.<br />
KERBEROS_V4 rejected as an authentication type<br />
Name (192.168.128.1:root): neteng18<br />
331 Please specify the password.<br />
Password:<br />
530 Login incorrect.<br />
Login failed.<br />
ftp> quit<br />
221 Goodbye.<br />
[root@neteng18 ~]# ftp 192.168.128.1<br />
Connected to 192.168.128.1.<br />
220 (vsFTPd 2.0.5)<br />
530 Please login with USER and PASS.<br />
530 Please login with USER and PASS.<br />
KERBEROS_V4 rejected as an authentication type<br />
Name (192.168.128.1:root): neteng18<br />
331 Please specify the password.<br />
Password:<br />
230 Login successful.<br />
Remote system type is UNIX.<br />
Using binary mode to transfer files.<br />
ftp> passive<br />
Passive mode off.<br />
ftp> ls<br />
200 PORT command successful. Consider using PASV.<br />
150 Here comes the directory listing.<br />
-rw-r--r-- 1 518 500 24 Feb 25 02:34 welcome<br />
226 Directory send OK.<br />
ftp> get welcome<br />
local: welcome remote: welcome<br />
200 PORT command successful. Consider using PASV.<br />
150 Opening BINARY mode data connection for welcome (24 bytes).<br />
226 File send OK.<br />
24 bytes received in 8.6e-05 seconds (2.7e+02 Kbytes/s)<br />
ftp> quit<br />
221 Goodbye.<br />
[root@neteng18 ~]# cat /proc/net/ip_conntrack<br />
tcp 6 96 TIME_WAIT src=192.168.128.1 dst=192.168.128.212 sport=20
dport=35862 packets=5 bytes=333 src=192.168.128.212 dst=192.168.128.1
sport=35862 dport=20 packets=3 bytes=164 [ASSURED] mark=0 secmark=0 use=1<br />
tcp 6 79 TIME_WAIT src=192.168.128.212 dst=192.168.128.1 sport=35714
dport=21 packets=16 bytes=911 src=192.168.128.1 dst=192.168.128.212 sport=21
dport=35714 packets=13 bytes=888 [ASSURED] mark=0 secmark=0 use=1<br />
tcp 6 112 TIME_WAIT src=192.168.128.212 dst=192.168.128.1 sport=35715
dport=21 packets=23 bytes=1364 src=192.168.128.1 dst=192.168.128.212 sport=21
dport=35715 packets=18 bytes=1410 [ASSURED] mark=0 secmark=0 use=3<br />
tcp 6 107 TIME_WAIT src=192.168.128.1 dst=192.168.128.212 sport=20
dport=60047 packets=5 bytes=292 src=192.168.128.212 dst=192.168.128.1
sport=60047 dport=20 packets=3 bytes=164 [ASSURED] mark=0 secmark=0 use=1<br />
[root@neteng18 ~]#<br /><br />
<a href="index.html">戻る</a><br />
</body><br />
</html></p>