Câu trả lời:
Tôi không biết về "Ubuntu", nhưng trong Linux nói chung, "iptables" không phải là một dịch vụ - đó là một lệnh để thao túng tường lửa hạt nhân netfilter. Bạn có thể "vô hiệu hóa" (hoặc dừng) tường lửa bằng cách đặt các chính sách mặc định trên tất cả các chuỗi tiêu chuẩn thành "CHẤP NHẬN" và xóa các quy tắc.
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -F
(Bạn cũng có thể cần phải xóa các bảng khác, chẳng hạn như "nat", nếu bạn đã sử dụng chúng)
Bài viết sau đây trên trang web Ubuntu mô tả việc thiết lập iptables để sử dụng với NetworkManager: https://help.ubfox.com/community/IptablesHowTo
iptables -F
là những gì tôi đã thiếu :-)
iptables-save > /tmp/rules
đã cứu ngày của tôi. Cảm ơn
Bạn đã sai :-)
Lệnh bạn đang tìm kiếm là:
$ sudo ufw disable
Trước tiên tôi sẽ kiểm tra xem nó đã được cài đặt chưa (có lẽ là vậy):
dpkg -l | grep iptables
Trên Ubuntu, iptables không phải là một dịch vụ. Để ngăn chặn nó, bạn phải làm như sau:
sudo iptables-save > /root/firewall.rules
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
Để khôi phục các quy tắc trước đây của bạn:
iptables-restore < /root/firewall.rules
Điều này được lấy từ http://www.cyberciti.biz/faq/turn-on-turn-off-firewall-in-linux/ và đã được thử nghiệm trên nhiều bản cài đặt Ubuntu 8.X & 9.10.
Iptables là một lệnh nó không phải là một dịch vụ, vì vậy nói chung không thể sử dụng các lệnh như
service iptables start
hoặc là
service iptables stop
để bắt đầu và dừng tường lửa, nhưng một số distro như centos đã cài đặt một dịch vụ có tên iptables để khởi động và dừng tường lửa và tệp cấu hình để định cấu hình. Dù sao, có thể tạo một dịch vụ để quản lý chỉnh sửa ipotables hoặc cài đặt tập lệnh cho phạm vi này. Tất cả các dịch vụ trong linux, ubfox không phải là ngoại lệ, là các tập lệnh thực thi trong thư mục /etc/init.d, thực hiện giao diện chuẩn (bắt đầu, dừng, khởi động lại) Một tập lệnh có thể trông như thế này:
#!/bin/sh -e
### BEGIN INIT INFO
# Provides: iptables
# Required-Start: mountvirtfs ifupdown $local_fs
# Default-Start: S
# Default-Stop: 0 6
### END INIT INFO
# July 9, 2007
# James B. Crocker <ubuntu@james.crocker.name>
# Creative Commons Attribution - Share Alike 3.0 License (BY,SA)
# Script to load/unload/save iptables firewall settings.
PATH="/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin"
IPTABLES=/sbin/iptables
IPTABLES_SAVE=/sbin/iptables-save
IPTABLES_RESTORE=/sbin/iptables-restore
IPTABLES_CONFIG=/etc/iptables.conf
[ -x $IPTABLES ] || exit 0
. /lib/lsb/init-functions
case "$1" in
start)
log_action_begin_msg "Starting firewall"
type usplash_write >/dev/null 2>/dev/null && usplash_write "TIMEOUT 120" || true
if $IPTABLES_RESTORE < $IPTABLES_CONFIG ; then
log_action_end_msg $?
else
log_action_end_msg $?
fi
type usplash_write >/dev/null 2>/dev/null && usplash_write "TIMEOUT 15" || true
;;
stop)
log_action_begin_msg "Saving current firewall configuration"
if $IPTABLES_SAVE > $IPTABLES_CONFIG ; then
log_action_end_msg $?
else
log_action_end_msg $?
fi
log_action_begin_msg "Flushing ALL firewall rules from chains!"
if $IPTABLES -F ; then
log_action_end_msg $?
else
log_action_end_msg $?
fi
log_action_begin_msg "Deleting ALL firewall chains [Warning: ACCEPTING ALL PORT SERVICES!]"
if $IPTABLES -X ; then
$IPTABLES -P INPUT ACCEPT
$IPTABLES -P FORWARD ACCEPT
$IPTABLES -P OUTPUT ACCEPT
log_action_end_msg $?
else
log_action_end_msg $?
fi
;;
save)
log_action_begin_msg "Saving current firewall configuration"
if $IPTABLES_SAVE > $IPTABLES_CONFIG ; then
log_action_end_msg $?
else
log_action_end_msg $?
fi
;;
force-reload|restart)
log_action_begin_msg "Reloading firewall configuration [Warning: POTENTIAL NETWORK INSECURITY DURING RELOAD]"
$IPTABLES -F
$IPTABLES -X
if $IPTABLES_RESTORE < $IPTABLES_CONFIG ; then
log_action_end_msg $?
else
log_action_end_msg $?
fi
;;
*)
echo "Usage: /etc/init.d/iptables {start|stop|save|restart|force-reload}"
exit 1
;;
esac
exit 0
Kịch bản này là một phần của hướng dẫn này , tất cả các lệnh để định cấu hình tường lửa phải được chèn, theo tập lệnh ở trên, vào tệp /etc/iptables.conf. Tập lệnh này phải được chèn vào một tệp có tên iptables trong /etc/init.d và làm cho nó có thể thực thi được bằng cách sử dụng
chmod+x *iptables*
và thêm dịch vụ vào runlevels bằng cách sử dụng
update-rc.d iptables defaults
Bạn có thể thêm các quy tắc mới từ shell, các quy tắc này sẽ ngay lập tức hoạt động và sẽ được thêm vào /etc/iptables.conf khi dịch vụ dừng (điều đó có nghĩa là chúng sẽ được lưu chắc chắn khi tắt hệ thống).
Tôi hy vọng điều này sẽ hữu ích cho mọi người.
Vì cả iptables và ufw đều là cách để quản lý tường lửa bộ lọc mạng trong Linux và vì cả hai đều có sẵn theo mặc định trong Ubuntu, nên bạn có thể sử dụng để bắt đầu và dừng (và quản lý) các quy tắc tường lửa.
iptables linh hoạt hơn, nhưng vì ufw cung cấp ngôn ngữ giao diện rất đơn giản cho chức năng đơn giản và điển hình mà bạn có thể sử dụng:
sudo ufw disable
# Để tắt tường lửa
sudo ufw enable
# Để bật tường lửa
Để xem các cài đặt tường lửa hiện tại sử dụng sudo ufw status verbose
, hoặc iptables -L
.
Các trang tài liệu Cộng đồng Ubuntu trên iptables và UFW có nhiều thông tin hơn.
Có vẻ như có một số cách để quản lý tường lửa trong Ubuntu, vì vậy bạn có thể quan tâm đến việc đọc này: https://help.ubfox.com/community/IptablesHowTo#Configuration%20on%20startup
Để loại bỏ tất cả các quy tắc hiện tại, bạn có thể sử dụng các lệnh này (đặt chúng trong một số tập lệnh):
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P POSTROUTING ACCEPT
iptables -t nat -P OUTPUT ACCEPT
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -P PREROUTING ACCEPT
iptables -t mangle -P INPUT ACCEPT
iptables -t mangle -P FORWARD ACCEPT
iptables -t mangle -P OUTPUT ACCEPT
iptables -t mangle -P POSTROUTING ACCEPT
iptables -t mangle -F
iptables -t mangle -X
iptables -t filter -P INPUT ACCEPT
iptables -t filter -P FORWARD ACCEPT
iptables -t filter -P OUTPUT ACCEPT
iptables -t filter -F
iptables -t filter -X
Trong trường hợp thông thường, quy tắc tường lửa mặc định của bạn được lưu trong một số tệp (ví dụ: /etc/iptables.rules). Trong khi khởi động hệ thống lệnh iptables-restore </etc/iptables.rules
thực thi để tải quy tắc tường lửa. Vì vậy, thực thi cùng một lệnh sau khi bạn bỏ tất cả các quy tắc sử dụng các lệnh trên sẽ dẫn đến "tải lại tường lửa" mà bạn yêu cầu.
Nếu tôi nhớ lại một cách chính xác, cách được đề xuất để thiết lập iptables trong hướng dẫn ubfox là thiết lập nó như một phần của tập lệnh mạng. điều đó có nghĩa là không có tập lệnh /etc/init.d/iptables giống như trong hệ điều hành kiểu BSD.
Tạo một tệp trên /etc/init.d/
touch fw.rc
Làm cho tập tin thực thi chmod + x
Tạo một liên kết tượng trưng đến tệp đó trên /etc/rc2.d/
ln -s /etc/init.d/fw.rc S80firewall
Chỉnh sửa S80firewall và thêm vào như sau
iptables --flush
iptables --table nat --flush
iptables --delete-chain
iptables --table nat --delete-chain
echo "1" > /proc/sys/net/ipv4/ip_forward
iptables -F
Bạn có thể thêm tất cả các quy tắc iptables tùy chỉnh của mình vào tệp này
Bây giờ bạn có thể khởi động lại tường lửa (iptables) bằng cách chạy /etc/rc2.d/S80firewall (phải là root)
Tôi gặp vấn đề tương tự. Trong thực tế, không có iptables-dai dẳng trong/etc/init.d
Vì vậy, tôi đã tạo tệp iptables-continent trong /etc/init.d
nano /etc/init.d/iptables-persistent
và đã viết như sau:
#!/bin/sh
# Written by Simon Richter <sjr@debian.org>
# modified by Jonathan Wiltshire <jmw@debian.org>
# with help from Christoph Anton Mitterer
#
### BEGIN INIT INFO
# Provides: iptables-persistent
# Required-Start: mountkernfs $local_fs
# Required-Stop: $local_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# X-Start-Before: $network
# X-Stop-After: $network
# Short-Description: Set up iptables rules
# Description: Loads/saves current iptables rules from/to /etc/iptables
# to provide a persistent rule set during boot time
### END INIT INFO
. /lib/lsb/init-functions
rc=0
load_rules()
{
log_action_begin_msg "Loading iptables rules"
#load IPv4 rules
if [ ! -f /etc/iptables/rules.v4 ]; then
log_action_cont_msg " skipping IPv4 (no rules to load)"
else
log_action_cont_msg " IPv4"
iptables-restore < /etc/iptables/rules.v4 2> /dev/null
if [ $? -ne 0 ]; then
rc=1
fi
fi
#load IPv6 rules
if [ ! -f /etc/iptables/rules.v6 ]; then
log_action_cont_msg " skipping IPv6 (no rules to load)"
else
log_action_cont_msg " IPv6"
ip6tables-restore < /etc/iptables/rules.v6 2> /dev/null
if [ $? -ne 0 ]; then
rc=1
fi
fi
log_action_end_msg $rc
}
save_rules()
{
log_action_begin_msg "Saving rules"
#save IPv4 rules
#need at least iptable_filter loaded:
/sbin/modprobe -q iptable_filter
if [ ! -f /proc/net/ip_tables_names ]; then
log_action_cont_msg " skipping IPv4 (no modules loaded)"
elif [ -x /sbin/iptables-save ]; then
log_action_cont_msg " IPv4"
iptables-save > /etc/iptables/rules.v4
if [ $? -ne 0 ]; then
rc=1
fi
fi
#save IPv6 rules
#need at least ip6table_filter loaded:
/sbin/modprobe -q ip6table_filter
if [ ! -f /proc/net/ip6_tables_names ]; then
log_action_cont_msg " skipping IPv6 (no modules loaded)"
elif [ -x /sbin/ip6tables-save ]; then
log_action_cont_msg " IPv6"
ip6tables-save > /etc/iptables/rules.v6
if [ $? -ne 0 ]; then
rc=1
fi
fi
log_action_end_msg $rc
}
flush_rules()
{
log_action_begin_msg "Flushing rules"
if [ ! -f /proc/net/ip_tables_names ]; then
log_action_cont_msg " skipping IPv4 (no module loaded)"
elif [ -x /sbin/iptables ]; then
log_action_cont_msg " IPv4"
for param in F Z X; do /sbin/iptables -$param; done
for table in $(cat /proc/net/ip_tables_names)
do
/sbin/iptables -t $table -F
/sbin/iptables -t $table -Z
/sbin/iptables -t $table -X
done
for chain in INPUT FORWARD OUTPUT
do
/sbin/iptables -P $chain ACCEPT
done
fi
if [ ! -f /proc/net/ip6_tables_names ]; then
log_action_cont_msg " skipping IPv6 (no module loaded)"
elif [ -x /sbin/ip6tables ]; then
log_action_cont_msg " IPv6"
for param in F Z X; do /sbin/ip6tables -$param; done
for table in $(cat /proc/net/ip6_tables_names)
do
/sbin/ip6tables -t $table -F
/sbin/ip6tables -t $table -Z
/sbin/ip6tables -t $table -X
done
for chain in INPUT FORWARD OUTPUT
do
/sbin/ip6tables -P $chain ACCEPT
done
fi
log_action_end_msg 0
}
case "$1" in
start|restart|reload|force-reload)
load_rules
;;
save)
save_rules
;;
stop)
# Why? because if stop is used, the firewall gets flushed for a variable
# amount of time during package upgrades, leaving the machine vulnerable
# It's also not always desirable to flush during purge
echo "Automatic flushing disabled, use \"flush\" instead of \"stop\""
;;
flush)
flush_rules
;;
*)
echo "Usage: $0 {start|restart|reload|force-reload|save|flush}" >&2
exit 1
;;
esac
exit $rc
và sau đó đã cho phép chmod 755.
chmod 755 /etc/init.d/iptables-persistent
Bây giờ nó hoạt động hoàn hảo! Hy vọng nó có thể giúp được ai đó.
Nếu bạn đang chạy máy chủ Ubuntu với tư cách là khách VM (ví dụ: trong VirtualBox) thì libvirt có thể được bật. Nếu vậy libvirt chứa một số bộ lọc mạng tích hợp sử dụng iptables. Các bộ lọc này có thể được cấu hình như được mô tả trong phần tường lửa trên nwfilters .
Để vô hiệu hóa các quy tắc iptables, bạn sẽ cần xóa tất cả các quy tắc vi phạm khỏi libvirt hoặc bạn chỉ có thể tắt libvirt nếu bạn không sử dụng nó - ví dụ: cài đặt cấu hình ghi đè thủ công (sau đó khởi động lại):
sudo bash -c 'echo "manual" > /etc/init/libvirt-bin.override'
Bạn đang sử dụng lệnh phù hợp với RedHat và CentOS, không phải Ubuntu hoặc Debian.
Không có cái nào theo mặc định, nhưng trong các dẫn xuất debian gần đây (bao gồm Ubuntu), bạn có thể cài đặt một dịch vụ để quản lý iptables :
sudo apt install iptables-persistent
Sau đó, bạn có thể tải các quy tắc đã lưu trước đó:
systemctl start netfilter-persistent
Xem lại những gì đã xảy ra:
systemctl status netfilter-persistent
netfilter-persistent.service - netfilter persistent configuration
Loaded: loaded (/lib/systemd/system/netfilter-persistent.service; enabled; vendor preset: enabled)
Active: active (exited) since Sun 2019-03-24 10:49:50 IST; 16min ago
Main PID: 1674 (code=exited, status=0/SUCCESS)
Tasks: 0
Memory: 0B
CPU: 0
CGroup: /system.slice/netfilter-persistent.service
Mar 24 10:49:50 ubuntu systemd[1]: Starting netfilter persistent configuration...
Mar 24 10:49:50 ubuntu netfilter-persistent[1674]: run-parts: executing /usr/share/netfilter-persistent/plugins.d/15-ip4tables start
Mar 24 10:49:50 ubuntu netfilter-persistent[1674]: Warning: skipping IPv4 (no rules to load)
Mar 24 10:49:50 ubuntu netfilter-persistent[1674]: run-parts: executing /usr/share/netfilter-persistent/plugins.d/25-ip6tables start
Mar 24 10:49:50 ubuntu netfilter-persistent[1674]: Warning: skipping IPv6 (no rules to load)
Mar 24 10:49:50 ubuntu systemd[1]: Started netfilter persistent configuration.
Mar 24 11:02:49 ubuntu systemd[1]: Started netfilter persistent configuration.
Hoặc dừng dịch vụ:
systemctl stop netfilter-persistent
Theo mặc định, việc dừng dịch vụ sẽ không xóa iptables (nghĩa là sẽ không tắt tường lửa, xem man netfilter-persistent
).
/etc/init.d/
đó (un) hữu ích là liên kết hàng đầu bạn nhận được khi googling 'tắt iptables ubfox'.