@Rakib дал отличный ответ, и я думаю, что он должен быть принятым. Ответ, который я даю, просто дополняет его. Я рекомендую создать сценарий оболочки, чтобы вы могли запускать его автоматически при загрузке ОС или по запросу без необходимости вводить все заново:
#!/bin/sh
IPT = iptables
#allowing the specific port
$IPT -A INPUT -p tcp --dport 22 -j ACCEPT
#block all incoming traffic
$IPT -A INPUT -j REJECT
#ALLOW ALL OUTGOING PACKETS
$IPT -A OUTPUT -j ACCEPT
$IPT -A OUTPUT -o lo -j ACCEPT
#same thing for ip6tables (IPv6)
IPT = ip6tables
$IPT -A INPUT -p tcp --dport 22 -j ACCEPT
$IPT -A INPUT -j REJECT
$IPT -A OUTPUT -j ACCEPT
$IPT -A OUTPUT -o lo -j ACCEPT
Также сценарий выполнялся дважды, с той лишь разницей, что ip6tables был включен, так что заявка также на IPv6, как сказал @Michael Mol в своем комментарии под ответом @Rakib
Возможно, ваш .profile
не загружает файл .bashrc
.
cat ~/.profile
Должно выглядеть примерно так:
# ~/.profile: executed by the command interpreter for login shells.
# This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login
# exists.
# see /usr/share/doc/bash/examples/startup-files for examples.
# the files are located in the bash-doc package.
# the default umask is set in /etc/profile; for setting the umask
# for ssh logins, install and configure the libpam-umask package.
#umask 022
# if running bash
if [ -n "$BASH_VERSION" ]; then
# include .bashrc if it exists
if [ -f "$HOME/.bashrc" ]; then
. "$HOME/.bashrc"
fi
fi
# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
PATH="$HOME/bin:$PATH"
fi
Но есть много других мест для проверки:
Действительно ли вы используете bash
:
ls -l $SHELL
Если да, обязательно посмотрите все эти файлы (если они существуют):
/etc/profile
~/.bash_profile
~/.bash_login
~/. profile
Если вывод ls -l ~/.bashrc
содержит root
как владелец/группа:
sudo chown $USER:$USER ~/.bashrc
Также, предполагаемые права пользователя 644
означает:
ls -l ~/.bashrc
дает вывод:
-rw-r--r--
Если нет, измените его следующим образом:
chmod 644 ~/.bashrc