當前位置:首頁 » 文件管理 » iptables開放ftp

iptables開放ftp

發布時間: 2022-04-28 19:45:31

A. iptables簡單提問,我在linux下用做了一個nat,客戶機的ftp不能用,是不是nat 沒有把21埠打開,怎麼打開

要載入ftp模塊
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp
載入這2個模塊後再試試

B. linux中iptables防火牆怎麼設置

首先講介紹幾個簡單命令:
/etc/init.d/iptables save ##保存防火牆規則,如果不進行保存的話 重啟iptables之後規則將消失

iptables -L -n ##查看當前防火牆規則
PS:在添加規則之前先用iptables -L -n查看一下當前規則,如果顯示沒有規則,可能是你的iptables沒有開啟。如果這個時候添加規則,保存之後將覆蓋之前的規則。如果要繼續使用之前的規則,先開啟iptables服務,這時候就能看到之前的規則,然後再在之前的基礎上添加。
我們先添加兩條規則
iptables -A INPUT -p tcp --dport 22 -j ACCEPT ##添加一個開放埠22的輸入流的規則

iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT ##添加一個開放埠22的輸出流的規則

添加以上兩條規則之後,就不用擔心登陸不了SSH了,想了解命令詳情使用iptables --help
這里重點講一下iptables 裡面的 dport 和 sport的區別:
dport:目的埠
sport:來源埠
通過兩個INPUT的例子,大家區分下INPUT裡面的dport 和sport
例子1:
iptables -A INPUT -p tcp --dport 22 -j ACCEPT

這條INPUT規則可以這么描述:
1.這是一條從外部進入內部本地伺服器的數據。
2.數據包的目的(dport)地址是22,就是要訪問我本地的22埠。
3.允許以上的數據行為通過。
例子2:
1

iptables -A INPUT -p tcp --sport 22 -j ACCEPT

這條INPUT規則可以這么描述:
1.這是一條從外部進入內部本地伺服器的數據。
2.數據包的來源埠是(sport)22,就是對方的數據包是22埠發送過來的。
3.允許以上數據行為。
通過兩個OUTPUT的例子,大家區分下OUTPUT裡面的dport 和sport
例子1:
iptables -A OUTPUT -p tcp --dport 22 -j ACCEPT

這條OUTPUT規則可以這么描述:
1.這是一條從內部出去的數據。
2.出去的目的(dport)埠是22。
3.允許以上數據行為。
例子2:
iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT
這條OUTPUT規則可以這么描述:
1.這是一條從內部出去的數據。
2.數據包的來源埠是(sport)22,從本伺服器的22埠發出數據。
3.允許以上數據行為。
默認INPUT、OUTPUT、FORWARD都是ACCEPT的
不添加規則,則對所有埠的數據來者不拒~
iptables -P INPUT DROP #如果沒有添加埠22的accept規則,切勿運行此命令
如果運行上述命令的話,則是除了添加的規則之外的INPUT數據包都DROP掉。。。
同理還有這些命令:
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
一般把INPUT設置為DROP。那麼我們需要添加一些規則針對INPUT的ACCEPT的規則:
iptables -A INPUT -p tcp --dport 22 -j ACCEPT #開放ssh埠
iptables -A INPUT -p tcp --dport 80 -j ACCEPT #開放web服務埠
iptables -A INPUT -p tcp --dport 21 -j ACCEPT #開放ftp服務埠

iptables -A INPUT -p icmp -j ACCEPT #允許icmp包通過,也就是允許ping
iptables -A INPUT -i lo -p all -j ACCEPT #允許loopback

#####如果你還做了其他的伺服器,需要開啟哪個埠,照寫就行了.
一般把OUTPUT設置為ACCEPT。那麼我們需要添加一些規則針對OUTPUT的DROP規則:
關閉一些埠
iptables -A OUTPUT -p tcp --sport 27444 -j DROP
iptables -A OUTPUT -p tcp --sport 27665 -j DROP
iptables -A OUTPUT -p tcp --sport 31337 -j DROP

C. Linux下防火牆規則開放ftp埠的問題

setup,進入設置,然後選擇firewall,開放21埠就可以了,有的時候selinux也組織防火牆。

D. linux問題,關閉iptables服務安全嗎,如果不關閉怎麼開放FTP等埠

不建議關閉iptables,可以設置規則讓FTP埠通過過濾。
ftp埠比較特殊,分為連接用的埠,當上傳下載文件的傳輸數據用的埠。並不像80,22這些埠。

netstat -tnl 命令可以看到,現在運行了ftp服務。

這里現在只允許 22 埠的訪問。

現在開始對ftp埠的設置,ftp連接埠有2個 21 和 20 埠,現在添加對應的規則。

[root@localhost root]# iptables -A INPUT -p tcp --dport 21 -j ACCEPT

[root@localhost root]# iptables -A INPUT -p tcp --dport 20 -j ACCEPT

[root@localhost root]# iptables -A OUTPUT -p tcp --sport 21 -j ACCEPT

[root@localhost root]# iptables -A OUTPUT -p tcp --sport 20 -j ACCEPT

添加完瀏覽器訪問一下ftp,會出現超時。
例如目錄列表, 上傳 ,下載 文件都要用到這些埠。

而這些埠是任意埠。 這個任意真的比較特殊。如果不指定什麼一個埠范圍, iptables 很難對任意埠開放的,如果iptables允許任意埠訪問, 那和不設置防火牆沒什麼區別,所以不現實的。

那麼解決辦法就是指定這個數據傳輸埠的一個范圍。

下面修改一下ftp配置文件。

這里使用vsftpd來修改演示。

[root@localhost root]# vi /etc/vsftpd.conf

在配置文件的最下面 加入
pasv_min_port=30001

pasv_max_port=31000

然後保存退出。

這兩句話的意思告訴vsftpd, 要傳輸數據的埠范圍就在30001到31000 這個范圍內傳送。

這樣使用 iptables 就好辦多了,只需打開 30001到31000 這些埠。

[root@localhost root]# iptables -A INPUT -p tcp --dport 30001:31000 -j ACCEPT

[root@localhost root]# iptables -A OUTPUT -p tcp --sport 30001:31000 -j ACCEPT

[root@localhost root]# service iptables save

最後進行保存, 然後再用瀏覽器范圍下ftp。即可正常訪問。

E. linux iptables ftp設置

這些規則很羅嗦,最重要的是概念不清,加了基本等於沒加,該防護的都沒防護到,反而加重系統負擔。
OUTPUT鏈默認就是允許的,如果這個主機是你管理並可控的,你為何不讓本機可以訪問外部所有的地址?非得加那麼多啰嗦的腳本
一、本機做NAT,讓內部主機訪問外部FTP伺服器的做法
1、清除所有舊有的規則
service iptables stop //RHEL才有的命令
2、載入讓NAT內部主機訪問外部FTP的模塊:
modeprobe ip_nat_ftp
//從RHEL4開始,該模塊會自動在系統載入ip_nat/ip_conntrack/ip_tables/ip_conntrack_ftp/ip_conntrack_irc等多個模塊
3、打開linux的轉發開關
echo "1" /proc/sys/net/ipv4/ip_forward
4、開啟NAT
iptables -t nat -A POSTROUTING -s $INT_NET -j SNAT --to $FW_IP
這樣,內部主機就可以訪問外部的FTP服務了,你不需要知道對方是主動還是被動模式

二、如果本機做FTP被訪問
service iptables stop
modprobe ip_conntrack_irc //如果埠不是21,後面還需要加上埠號。如果是21,這步也可以用modprobe ip_nat_ftp,把其他模塊也載入上。
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
當INPUT的默認策略是DROP時,RELATED模塊用途就是為本機的FTP服務打開衍生埠,ESTABLISHED是允許回包。
iptables -A INPUT -p tcp --dport 21 -m state --state NEW -j ACCEPT //開放21埠
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -j ACCEPT //開放管理埠
iptables -P INPUT DROP //默認策略拒絕

F. 請教高手,用iptables如何實現FTP埠映射

ftp ###載入ip_nat_ftp模塊(若沒有編譯進內核),以使ftp能被正確NAT
modprobe ip_conntrack_ftp ###載入ip_conntrack_ftp模塊
# 用DNAT作埠映射
iptables -t nat -A PREROUTING -d a.b.c.d -p tcp --dport 21 -j DNAT --to 192.168.0.5
iptables -A FORWARD -o eth0 -d 192.168.0.5 -p tcp --dport 21 -j ACCEPT
iptables -A FORWARD -i eth0 -s 192.168.0.5-p tcp --sport 21 -m --state ESTABLISHED -j ACCEPT
iptables -A FORWARD -i eth0 -s 192.168.0.5 -p tcp --sport 20 -m --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -o eth0 -d 192.168.0.5 -p tcp --dport 20 -m --state ESTABLISHED -j ACCEPT
iptables -A FORWARD -o eth0 -d 192.168.0.5 -p tcp --dport 1024: -m --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i eth0 -s 192.168.0.5 -p tcp --sport 1024: -m --state ESTABLISHED -j ACCEPT
# 用SNAT作源地址轉換(關鍵),以使回應包能正確返回
iptables -t nat -A POSTROUTING -d 192.168.0.5 -p tcp --dport 21 -i eth0 -j SNAT --to 192.168.0.1

最後配置自動啟動文件,這樣開機就自動啟動服務了

G. linux開放FTP服務iptable怎麼設置

做如下設置應該可以的
iptables -A INPUT -p tcp --dport 21 -j ACCEPT
iptables -A INPUT -p tcp --dport 20 -j ACCEPT

H. 如何修改 ftp 埠

怎樣修改SSH和FTP的登錄埠

LINUX 的默認SSH 埠是 22。為了防止別人暴力破解(這年頭無聊的菜鳥黑客太多),建議修改SSH 訪問埠:
第一步:
[[email protected] ~]#vim /etc/ssh/sshd_config
找到#Port 22一段,這里是標識默認使用22埠,修改為如下:
Port 22
Port 3456

注意:先不要刪除Port 22,以免發生意外無法登錄。

保存退出,然後執行/etc/init.d/sshd restart(或/etc/init.d/ssh restart,或service sshd restart),重啟SSH服務,這樣SSH埠將同時工作與22和3456上。測試成功後再關閉22埠。
如果沒有啟用防火牆或者防火牆沒有屏蔽埠,就可以直接測試新埠是否可用了。

如果打開了iptables,則執行第二步:

編輯防火牆配置:vi /etc/sysconfig/iptables 開放 3456埠

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 3456 -j ACCEPT

然後執行/etc/init.d/iptables restart

第三步:
使用ssh工具連接3456埠,來測試是否成功。
如果連接成功了,則再次編輯sshd_config的設置,將里邊的Port 22 刪除即可。

最後,別忘了重啟SSH服務哦。

修改FTP埠相對要復雜一些,主要是因為FTP軟體太多,啟動方式也不一樣。

第一種情況:vsftpd

步驟:1.修改/etc/services文件

# vi /etc/services

將21/tcp修改為20129/tcp (20129是你自己想要的埠號,可以隨便修改,不過必須注意:埠號最大為65535。)

2.修改(新增)FTP配置文件vsftpd.conf

# vi /etc/vsftpd/vsftpd.conf

如果文件中有Listen_port=21,則將21修改為2021,

否則添加一行Listen_port=2021

3.啟動TFP服務

# service vsftpd restart

4.檢查TFP服務

# service vsftpd status

第二種情況:FTP集成在Kloxo之中。Kloxo是一整套的伺服器模塊,其中一個是FTP。您不能改變對Kloxo管理控制面板的伺服器配置。默認情況下Kloxo使用pureftp作為FTP伺服器,xinetd的作為協助進程啟動FTP服務。

步驟:1,登錄使用root的SSH訪問。
您的pureftp配置是在/etc/xinetd.d/pureftp,這個文件的第一行就是ftp的服務,一般不需修改。

2,打開/etc/services 編輯,找到這些行:
ftp 21/tcp
ftp 21/udp fsp fspd
將其修改成這樣:
ftp 20129/tcp
ftp 20129/udp fsp fspd
保存文件並退出。

3,重新啟動xinetd:
service xinetd restart

檢查所有的監聽埠:
netstat -an | grep LISTEN

如果已沒有偵聽埠21,而是發現埠20129
tcp 0 0 0.0.0.0:20129 0.0.0.0:* LISTEN
則應該就算成功了。當然,你應該馬上通過您的FTP客戶端來測試一下,不要忘記使用新埠哦!

第三種情況:LNMP集成pureftp

這種情況應該修改 /usr/local/pureftpd/pure-ftpd.conf

找到其中的

#Bind 127.0.0.1,21
修改為:
Bind 127.0.0.1,20129

有的時候這樣也不行,那就將127.0.0.1刪掉,改為

Bind ,20129

然後重啟ftp服務 /etc/init.d/pureftpd restart

I. linux中怎麼解決開啟iptables和setlinux實現ftp登陸

如果要開啟防火牆:/etc/init.d/iptables
stop或者services
iptables
stop
如果要開啟selinux:setenforce
0
建議關閉防火牆以及selinux

熱點內容
輕應用伺服器適合搭建網站嗎 發布:2024-11-15 11:36:08 瀏覽:246
c語言的百分號 發布:2024-11-15 11:34:24 瀏覽:31
一加五安卓8什麼時候推送 發布:2024-11-15 11:19:40 瀏覽:854
暗影騎士擎有哪些配置 發布:2024-11-15 11:13:46 瀏覽:598
方舟主機專用伺服器是什麼意思 發布:2024-11-15 11:12:23 瀏覽:8
創維最早的伺服器是什麼 發布:2024-11-15 11:11:35 瀏覽:864
手機配置太低怎麼下載原聲 發布:2024-11-15 11:03:31 瀏覽:905
21款奧迪a6配置有哪些 發布:2024-11-15 11:03:20 瀏覽:120
sql內連接外連接 發布:2024-11-15 11:03:19 瀏覽:601
學完python基礎 發布:2024-11-15 11:01:56 瀏覽:63